ROOT logo
AliRoot » MUON » AliMUONCalibrationData

class AliMUONCalibrationData: public TObject

 \class AliMUONCalibrationData

 For the moment, this class stores pedestals, gains, hv (for tracker)
 and lut, masks and efficiencies (for trigger) that are fetched from the CDB.

 This class is to be considered as a convenience class.
 Its aim is to ease retrieval of calibration data from the
 condition database.

 It acts as a "facade" to a bunch of underlying
 containers/calibration classes.

 \author Laurent Aphecetche

Function Members (Methods)

public:
AliMUONCalibrationData(Int_t runNumber = -1, Bool_t deferredInitialization = kTRUE)
virtual~AliMUONCalibrationData()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static voidBypassStores(AliMUONVStore* ped, AliMUONVStore* gain)
AliMUONVStore*Capacitances() const
static voidCheck(Int_t runNumber)
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
AliMUONVStore*Config() const
virtual voidTObject::Copy(TObject& object) const
static AliMUONVStore*CreateCapacitances(Int_t runNumber, Int_t* startOfValidity = 0)
static AliMUONVStore*CreateConfig(Int_t runNumber, Int_t* startOfValidity = 0)
static AliMUONVStore*CreateGains(Int_t runNumber, Int_t* startOfValidity = 0)
static AliMUONGlobalCrateConfig*CreateGlobalTriggerCrateConfig(Int_t runNumber, Int_t* startOfValidity = 0)
static TMap*CreateHV(Int_t runNumber, Int_t* startOfValidity = 0, Bool_t patched = kTRUE, TList* messages = 0x0, Bool_t dryRun = kFALSE)
static AliMUONVStore*CreateLocalTriggerBoardMasks(Int_t runNumber, Int_t* startOfValidity = 0)
static AliMUONVStore*CreateNeighbours(Int_t runNumber, Int_t* startOfValidity = 0)
static TObject*CreateObject(Int_t runNumber, const char* path, Int_t* startOfValidity = 0x0)
static AliMUONVStore*CreateOccupancyMap(Int_t runNumber, Int_t* startOfValidity = 0)
static AliMUONVStore*CreatePedestals(Int_t runNumber, Int_t* startOfValidity = 0)
static AliMUONRegionalTriggerConfig*CreateRegionalTriggerConfig(Int_t runNumber, Int_t* startOfValidity = 0)
static AliMUONRejectList*CreateRejectList(Int_t runNumber, Int_t* startOfValidity = 0)
static TMap*CreateTriggerDCS(Int_t runNumber, Int_t* startOfValidity = 0)
static AliMUONTriggerEfficiencyCells*CreateTriggerEfficiency(Int_t runNumber, Int_t* startOfValidity = 0)
static AliMUONTriggerLut*CreateTriggerLut(Int_t runNumber, Int_t* startOfValidity = 0)
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
AliMUONVStore*Gains() const
AliMUONVCalibParam*Gains(Int_t detElemId, Int_t manuId) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() 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
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
AliMUONGlobalCrateConfig*GlobalTriggerCrateConfig() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
TMap*HV(Bool_t patched = kTRUE) 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
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_tIsValid() const
Bool_tTObject::IsZombie() const
AliMUONVCalibParam*LocalTriggerBoardMasks(Int_t localBoardNumber) const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
AliMUONVStore*Neighbours() const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
AliMUONVStore*OccupancyMap() 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)
virtual voidTObject::Paint(Option_t* option = "")
AliMUONVStore*Pedestals() const
AliMUONVCalibParam*Pedestals(Int_t detElemId, Int_t manuId) const
virtual voidTObject::Pop()
virtual voidPrint(Option_t* opt = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
AliMUONRegionalTriggerConfig*RegionalTriggerConfig() const
AliMUONRejectList*RejectList() const
voidReset()
voidTObject::ResetBit(UInt_t f)
Int_tRunNumber() const
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
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
TMap*TriggerDCS() const
AliMUONTriggerEfficiencyCells*TriggerEfficiency() const
AliMUONTriggerLut*TriggerLut() 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:
AliMUONCalibrationData(const AliMUONCalibrationData& other)
static voidAddToMap(const TMap& sourceMap, TMap& destMap, const TString& key, const char* source, const char* dest)
static Bool_tCheckHVGroup(TObjArray& values, Int_t first, Int_t last, Double_t& value, Int_t& slope, TString* msg)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
AliMUONCalibrationData&operator=(const AliMUONCalibrationData& other)
static Bool_tPatchHVValues(TObjArray& values, TString* msg = 0x0, Bool_t dryRun = kFALSE)
static voidPatchSt1DCSAliases(TMap& hvMap)

Data Members

private:
AliMUONVStore*fCapacitances!< Manu capacitances
AliMUONVStore*fConfig!< configuration of the tracker
AliMUONVStore*fGains!< Gains
AliMUONGlobalCrateConfig*fGlobalTriggerCrateConfig!< Global trigger crate config
TMap*fHV!< HV
Bool_tfIsValid/< Whether we were able to correctly initialize
AliMUONVStore*fLocalTriggerBoardMasks!< Local trigger board maska
AliMUONVStore*fNeighbours!< list of neighbours for all channels
AliMUONVStore*fOccupancyMap!< occupancy map
AliMUONVStore*fPedestals!< Pedestals
AliMUONRegionalTriggerConfig*fRegionalTriggerConfig!< Regional trigger config
AliMUONRejectList*fRejectList!< reject list
Int_tfRunNumber/< The run number for which we hold calibrations
TMap*fTriggerDCS!< Trigger HV and Currents
AliMUONTriggerEfficiencyCells*fTriggerEfficiency!< Trigger efficiency cells
AliMUONTriggerLut*fTriggerLut!< TRigger LUTs
static AliMUONVStore*fgBypassGains
static AliMUONVStore*fgBypassPedestals
static UInt_tfgkDCSSt1Flag!< flag to indicate that the DCS alias naming is not messed up in St1

Class Charts

Inheritance Chart:
TObject
AliMUONCalibrationData

Function documentation

AliMUONCalibrationData(Int_t runNumber = -1, Bool_t deferredInitialization = kTRUE)
 Default ctor.
~AliMUONCalibrationData()
 Destructor. Note that we're the owner of our pointers if the OCDB cache
 is not set. Otherwise the cache is supposed to take care of them...
Capacitances() const
 Create (if needed) and return the internal store for capacitances.
CreateCapacitances(Int_t runNumber, Int_t* startOfValidity = 0)
 Create capa store from OCDB for a given run
CreateGains(Int_t runNumber, Int_t* startOfValidity = 0)
 Create a new gain store from the OCDB for a given run
CreateGlobalTriggerCrateConfig(Int_t runNumber, Int_t* startOfValidity = 0)
 Create the internal store for GlobalTriggerCrateConfig from OCDB
Bool_t CheckHVGroup(TObjArray& values, Int_t first, Int_t last, Double_t& value, Int_t& slope, TString* msg)
 Get the HV of the values between first and last indices
 return the HV slope  (in Volt per second) and a message
 Return kFALSE if we must discard the group

Bool_t PatchHVValues(TObjArray& values, TString* msg = 0x0, Bool_t dryRun = kFALSE)
 We do here a little bit of massaging of the HV values, if needed.

 The main point is to "gather" values that are within a given small amount
 of time (typically 60 seconds) and infer a slope from those values
 slope > 0 means it is a ramp-up, slope < 0 that's a ramp-down

 This is to avoid both the "ramp-down-before-end-of-run" and the
 "ramp-up-after-start-of-run" syndroms...

 Use dryRun = kTRUE to fill the messages *without* altering the values

 Return kFALSE is the kind of HV (trouble) case we have here
 has not been identified...

void AddToMap(const TMap& sourceMap, TMap& destMap, const TString& key, const char* source, const char* dest)
 Remap
void PatchSt1DCSAliases(TMap& hvMap)
 It was discovered (in sept. 2013) that the DCS aliases for St1 was
 wrongly assigned (in the hardware), so the correspondence between DCS channels
 and actual HV channels is wrong for St1 in the DCS (and thus in the DCS archive,
 and so in the OCDB HV object).

 It affects all the OCDB object written in 2010-2013.

 This method fixes that.
CreateHV(Int_t runNumber, Int_t* startOfValidity = 0, Bool_t patched = kTRUE, TList* messages = 0x0, Bool_t dryRun = kFALSE)
 Create a new HV map from the OCDB for a given run

 dryRun is only usefull with patched=kTRUE and non-empty messages) :
 it allow to get the list of messages without altering the values at all
 (A patch without a patch, so to speak...)

CreateTriggerDCS(Int_t runNumber, Int_t* startOfValidity = 0)
 Create a new Trigger HV and curent map from the OCDB for a given run
CreateLocalTriggerBoardMasks(Int_t runNumber, Int_t* startOfValidity = 0)
 Get the internal store for LocalTriggerBoardMasks from OCDB
CreateNeighbours(Int_t runNumber, Int_t* startOfValidity = 0)
 Create a neighbour store from the OCDB for a given run
CreateObject(Int_t runNumber, const char* path, Int_t* startOfValidity = 0x0)
 Access the CDB for a given path (e.g. MUON/Calib/Pedestals),
 and return the corresponding TObject.
CreateOccupancyMap(Int_t runNumber, Int_t* startOfValidity = 0)
 Create a new occupancy map store from the OCDB for a given run
CreateRejectList(Int_t runNumber, Int_t* startOfValidity = 0)
 Create a new rejectlist store from the OCDB for a given run
CreatePedestals(Int_t runNumber, Int_t* startOfValidity = 0)
 Create a new pedestal store from the OCDB for a given run
CreateConfig(Int_t runNumber, Int_t* startOfValidity = 0)
 Create a new config store from the OCDB for a given run
CreateRegionalTriggerConfig(Int_t runNumber, Int_t* startOfValidity = 0)
 Create the internal store for RegionalTriggerConfig from OCDB
CreateTriggerEfficiency(Int_t runNumber, Int_t* startOfValidity = 0)
 Create trigger efficiency object from OCBD
CreateTriggerLut(Int_t runNumber, Int_t* startOfValidity = 0)
 Create trigger LUT from OCDB
Gains() const
 Create (if needed) and return the internal store for gains.
Gains(Int_t detElemId, Int_t manuId) const
 Return the gains for a given (detElemId, manuId) pair
 Note that, unlike the DeadChannel case, if the result is 0x0, that's an
 error (meaning that we should get gains for all channels).
GlobalTriggerCrateConfig() const
 Return the config for the global trigger board.
HV(Bool_t patched = kTRUE) const
 Return the calibration for a given (detElemId, manuId) pair
TriggerDCS() const
 Return the calibration for a given (detElemId, manuId) pair
Neighbours() const
 Create (if needed) and return the internal store for neighbours.
LocalTriggerBoardMasks(Int_t localBoardNumber) const
 Return the masks for a given trigger local board.
OccupancyMap() const
 Get occupancy map
RejectList() const
 Get reject list
BypassStores(AliMUONVStore* ped, AliMUONVStore* gain)
 Force the use of those pedestals and gains
Pedestals() const
 Return pedestals
Config() const
 Return config
Pedestals(Int_t detElemId, Int_t manuId) const
 Return the pedestals for a given (detElemId, manuId) pair.
 A return value of 0x0 is considered an error, meaning we should get
 pedestals for all channels.
Print(Option_t* opt = "") const
 A very basic dump of our guts.
RegionalTriggerConfig() const
 Return the config for the regional trigger board.
TriggerEfficiency() const
 Return the trigger efficiency.
TriggerLut() const
 Return the trigger look up table.
Reset()
 Reset all data
Check(Int_t runNumber)
 Self-check to see if we can read all data for a given run
 from the current OCDB...
AliMUONCalibrationData(Int_t runNumber = -1, Bool_t deferredInitialization = kTRUE)
 Constructor.
    * @param runNumber is used as a key to the CDB
    * @param deferredInitialization if kFALSE, all the calibrations are fetched
    * regardless of whether you'll use them or not.

Bool_t IsValid() const
 Whether this object is valid or not (might be invalid if fetching from CDB failed).
{ return fIsValid; }
Int_t RunNumber() const
 The runnumber used by this object.
{ return fRunNumber; }
AliMUONCalibrationData& operator=(const AliMUONCalibrationData& other)
 Not implemented