#ifndef ALIMPDCSNAMER_H
#define ALIMPDCSNAMER_H
#ifndef ROOT_TObject
# include "TObject.h"
#endif
class TObjArray;
class AliMpDCSNamer : public TObject
{
public:
AliMpDCSNamer();
AliMpDCSNamer(const char* detName);
virtual ~AliMpDCSNamer();
Bool_t SetDetector(const char* detName);
TString DCSNameFromAlias(const char* dcsAlias) const;
TString DCSAliasFromName(const char* dcsName) const;
TString DCSAliasName(Int_t detElemId, Int_t sector=0, Int_t dcsMeasure=0) const;
TString DCSSwitchAliasName(Int_t detElemId, Int_t pcbNumber) const;
Int_t DCS2DE(Int_t chamberId, Int_t side, Int_t dcsNumber) const;
Int_t DetElemId2DCS(Int_t detElemId, Int_t& side, Int_t& chId) const;
Int_t DCSIndexFromDCSAlias(const char* dcsAlias) const;
Int_t DetElemIdFromDCSAlias(const char* dcsAlias) const;
Int_t DCSvariableFromDCSAlias(const char* dcsAlias) const;
Int_t ManuId2Index(Int_t detElemId, Int_t manuId) const;
Int_t ManuId2PCBIndex(Int_t detElemId, Int_t manuId) const;
Int_t ManuId2Sector(Int_t detElemId, Int_t manuId) const;
Int_t NumberOfPCBs(Int_t detElemId) const;
TObjArray* GenerateAliases() const;
TObjArray* CompactAliases() const;
void AliasesAsLdif(const char* ldiffile) const;
static Float_t TrackerHVOFF() { return 30.0; }
enum
{
kDCSHV,
kDCSI,
kNDCSMeas
};
enum
{
kTrackerDet,
kTriggerDet
};
private:
AliMpDCSNamer(const AliMpDCSNamer& right);
AliMpDCSNamer& operator = (const AliMpDCSNamer& right);
Bool_t CheckConsistency(Int_t detElemId) const;
static const char* fgkDCSChannelSt345Pattern[];
static const char* fgkDCSChannelSt12Pattern[];
static const char* fgkDCSQuadrantPattern[];
static const char* fgkDCSChamberPattern[];
static const char* fgkDCSSwitchSt345Pattern;
static const char* fgkDCSSideTrackerName[];
static const char* fgkDCSChannelTriggerPatternRead[];
static const char* fgkDCSChannelTriggerPattern[];
static const char* fgkDCSSideTriggerName[];
static const char* fgkDCSMeasureName[];
static const char* fgkDetectorName[];
Int_t fDetector;
ClassDef(AliMpDCSNamer,0)
};
#endif