ROOT logo
AliRoot » EMCAL » AliEMCALCalibTimeDep

class AliEMCALCalibTimeDep: public TObject

*-- Author:


 class for EMCAL time-dep calibration
 - supposed to run in preprocessor
 we use input from the following sources:
 AliEMCALCalibTempCoeff (APD temperature coefficients),
 AliCaloCalibSignal (LED DA), AliEMCALSensorTempArray (ELMB DCS)
 AliEMCALCalibReference: LED amplitude and temperature info at reference time

 output/result is in AliEMCALCalibTimeDepCorrection


Function Members (Methods)

public:
AliEMCALCalibTimeDep()
AliEMCALCalibTimeDep(const AliEMCALCalibTimeDep& calibt)
virtual~AliEMCALCalibTimeDep()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
Int_tCalcCorrection()
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
AliEMCALCalibReference*GetCalibReference() const
AliCaloCalibSignal*GetCalibSignal() const
AliEMCALCalibTempCoeff*GetCalibTempCoeff() const
AliEMCALCalibTimeDepCorrection*GetCalibTimeDepCorrection() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
UInt_tGetEndTime() const
Double_tGetHighLowGainFactor() const
virtual const char*TObject::GetIconName() const
Double_tGetLengthOfRunInBins() const
Double_tGetLengthOfRunInHours() const
Double_tGetMaxTemp() const
Double_tGetMaxTemperatureDiff() const
Double_tGetMaxTempValid() const
Double_tGetMaxTempVariation() const
UInt_tGetMaxTime() const
Double_tGetMinTemp() const
Double_tGetMinTempValid() const
Double_tGetMinTempVariation() const
UInt_tGetMinTime() const
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Double_tGetRangeOfTempMeasureInDegrees() const
Double_tGetRangeOfTempMeasureInHours() const
Int_tGetRunNumber() const
UInt_tGetStartTime() const
AliEMCALSensorTempArray*GetTempArray() const
Double_tGetTempCoeff(Double_t IDark, Double_t M) const
Double_tGetTemperatureResolution() const
Double_tGetTemperatureSM(int imod, UInt_t timeStamp) const
Int_tGetTimeBinsPerHour() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
Int_tGetVerbosity() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
voidInitialize(Int_t run, UInt_t startTime, UInt_t endTime)
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
AliEMCALCalibTimeDep&operator=(const AliEMCALCalibTimeDep& calibt)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual voidPrintInfo() const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
Int_tScanTemperatureInfo()
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetCalibReference(AliEMCALCalibReference* obj)
voidSetCalibSignal(AliCaloCalibSignal* obj)
voidSetCalibTempCoeff(AliEMCALCalibTempCoeff* obj)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetEndTime(UInt_t ui)
voidSetHighLowGainFactor(Double_t value)
voidSetMaxTemperatureDiff(Double_t d)
voidSetMaxTempValid(Double_t d)
voidSetMinTempValid(Double_t d)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetRunNumber(Int_t i)
voidSetStartTime(UInt_t ui)
voidSetTempArray(AliEMCALSensorTempArray* arr)
voidSetTemperatureResolution(Double_t d)
voidSetTimeBinsPerHour(Int_t i)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidSetVerbosity(Int_t i)
virtual voidShowMembers(TMemberInspector&)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()

Data Members

private:
AliEMCALCalibReference*fCalibReferencereference info
AliCaloCalibSignal*fCalibSignalLED signal info
AliEMCALCalibTempCoeff*fCalibTempCoeffTemperature Coefficient info
AliEMCALCalibTimeDepCorrection*fCalibTimeDepCorrectioncorrection values
UInt_tfEndTimeend timestamp
Double_tfHighLowGainFactorgain factor to convert between high and low gain
Double_tfMaxTempmax temp
Double_tfMaxTempValidmax limit for when temp. readings appear valid
Double_tfMaxTempVariationmax temp variation, within a sensor
Double_tfMaxTemperatureDiffvalue for checking that temperature sensor info seems reasonable
UInt_tfMaxTimemax time
Double_tfMinTempmin temp
Double_tfMinTempValidmin limit for when temp. readings appear valid
Double_tfMinTempVariationmin temp variation, within a sensor
UInt_tfMinTimemin time
Int_tfRunrun number
UInt_tfStartTimestart timestamp
AliEMCALSensorTempArray*fTempArrayCDB class for temperature sensors
Double_tfTemperatureResolutionvalue for checking at which level we care about temperature differences
Int_tfTimeBinsPerHoursize of the time-bins we use for corrections
Int_tfVerbositydebug flag

Class Charts

Inheritance Chart:
TObject
AliEMCALCalibTimeDep

Function documentation

AliEMCALCalibTimeDep()
 Constructor
AliEMCALCalibTimeDep(const AliEMCALCalibTimeDep& calibt)
 copy constructor
~AliEMCALCalibTimeDep()
 Destructor
void Reset()
 clear variables to default
void PrintInfo() const
 print some info
Double_t GetLengthOfRunInHours() const
Double_t GetLengthOfRunInBins() const
Double_t GetRangeOfTempMeasureInHours() const
Double_t GetRangeOfTempMeasureInDegrees() const
void Initialize(Int_t run, UInt_t startTime, UInt_t endTime)
Double_t GetTemperatureSM(int imod, UInt_t timeStamp) const
Int_t CalcCorrection()
 The philosophy is as follows:
     0. Init corrections to 1.0 values, and see how many correction bins we need
     1. Check how large temperature variations we have through the run - do we really need all the correction bias (otherwise adjust to single bin)
     2. try to use temperature info + APD temperature coefficient info, to estimate correction.
     For now (from Dec 2009), we do not use LED info.

Double_t GetTempCoeff(Double_t IDark, Double_t M) const
 and the gain (M), based on Catania parameterizations
void GetTemperatureInfo()
 pick up Preprocessor output, based on fRun (most recent version)
Int_t ScanTemperatureInfo()
void GetCalibSignalInfo()
 pick up Preprocessor output, based on fRun (most recent version)
void GetCalibTempCoeffInfo()
 pick up Preprocessor output, based on fRun (most recent version)
void GetCalibReferenceInfo()
 pick up Preprocessor output, based on fRun (most recent version)
Int_t CalcLEDCorrection(Int_t nSM, Int_t nBins)
 The correction factor we keep is c(T) = R(t0)/R(T)
 T info from fCalibSignal, t0 info from fCalibReference
Int_t CalcLEDCorrectionStripBasis(Int_t nSM, Int_t nBins)
Int_t CalcTemperatureCorrection(Int_t nSM, Int_t nBins, Int_t binSize)
 with that info.
 So, instead we'll rely on the temperature info and try to do the correction
 based on that instead.
 For this, we'll need the info from 3 classes (+temperature array), and output the values in a 4th class
AliEMCALCalibTimeDep& operator=(const AliEMCALCalibTimeDep& calibt)
Int_t GetRunNumber() const
 simple getters
{ return fRun; }
UInt_t GetStartTime() const
{ return fStartTime; }
UInt_t GetEndTime() const
{ return fEndTime; }
AliEMCALSensorTempArray * GetTempArray() const
 Temperature Section
 access pointer to the basic temperature object: AliEMCALSensorTempArray
{ return fTempArray; }
Double_t GetMinTemp() const
{ return fMinTemp; }
Double_t GetMaxTemp() const
{ return fMaxTemp; }
Double_t GetMinTempVariation() const
{ return fMinTempVariation; }
Double_t GetMaxTempVariation() const
{ return fMaxTempVariation; }
Double_t GetMinTempValid() const
{ return fMinTempValid; }
Double_t GetMaxTempValid() const
{ return fMaxTempValid; }
UInt_t GetMinTime() const
{ return fMinTime; }
UInt_t GetMaxTime() const
{ return fMaxTime; }
void SetTemperatureResolution(Double_t d)
 End of Temperature Section
 control parameters
void SetMaxTemperatureDiff(Double_t d)
void SetTimeBinsPerHour(Int_t i)
Double_t GetTemperatureResolution() const
Double_t GetMaxTemperatureDiff() const
Int_t GetTimeBinsPerHour() const
{ return fTimeBinsPerHour; }
void SetHighLowGainFactor(Double_t value)
Double_t GetHighLowGainFactor() const
AliCaloCalibSignal * GetCalibSignal() const
 access to other pointers
{ return fCalibSignal; }
AliEMCALCalibTempCoeff * GetCalibTempCoeff() const
{ return fCalibTempCoeff; }
AliEMCALCalibReference * GetCalibReference() const
{ return fCalibReference; }
AliEMCALCalibTimeDepCorrection * GetCalibTimeDepCorrection()
void SetTempArray(AliEMCALSensorTempArray* arr)
 for local debugging: setters of the main input pointers that are normally from OCDB
{ fTempArray = arr; }
void SetCalibSignal(AliCaloCalibSignal* obj)
{ fCalibSignal = obj; }
void SetCalibTempCoeff(AliEMCALCalibTempCoeff* obj)
{ fCalibTempCoeff = obj; }
void SetCalibReference(AliEMCALCalibReference* obj)
 basic setters, also for local debugging
{ fCalibReference = obj; }
void SetRunNumber(Int_t i)
{ fRun= i; }
void SetStartTime(UInt_t ui)
{ fStartTime = ui; }
void SetEndTime(UInt_t ui)
{ fEndTime = ui; }
void SetMinTempValid(Double_t d)
{ fMinTempValid = d; }
void SetMaxTempValid(Double_t d)
{ fMaxTempValid = d; }
Int_t GetVerbosity() const
{ return fVerbosity; }
void SetVerbosity(Int_t i)
{ fVerbosity= i; }