1 #ifndef ALIMPDCSNAMER_H
2 #define ALIMPDCSNAMER_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
9 /// \ingroup management
10 /// \class AliMpDCSNamer
11 /// \brief Collection of methods usefull to DCS handling for MUON TRK and TRG
13 // Author Laurent Aphecetche and Diego Stocco, Subatech
21 class AliMpDCSNamer : public TObject
25 AliMpDCSNamer(const char* detName);
27 virtual ~AliMpDCSNamer();
29 Bool_t SetDetector(const char* detName);
31 const char* DCSChannelName(Int_t detElemId, Int_t sector=0, Int_t dcsMeasure=0) const;
33 const char* DCSSwitchName(Int_t detElemId, Int_t pcbNumber) const;
35 Int_t DCS2DE(Int_t chamberId, Int_t side, Int_t dcsNumber) const;
37 Int_t DetElemId2DCS(Int_t detElemId, Int_t& side, Int_t& chId) const;
39 Int_t DCSIndexFromDCSAlias(const char* dcsAlias) const;
41 Int_t DetElemIdFromDCSAlias(const char* dcsAlias) const;
43 Int_t DCSvariableFromDCSAlias(const char* dcsAlias) const;
45 Int_t ManuId2Index(Int_t detElemId, Int_t manuId) const;
47 /// Returns the index of PCB (within a St345 slat) for a given manu number.
48 Int_t ManuId2PCBIndex(Int_t detElemId, Int_t manuId) const;
50 /// Return the HV-sector number (within a St12 quadrant) for a given manu number.
51 Int_t ManuId2Sector(Int_t detElemId, Int_t manuId) const;
53 Int_t NumberOfPCBs(Int_t detElemId) const;
55 TObjArray* GenerateAliases() const;
56 TObjArray* CompactAliases() const;
57 void AliasesAsLdif(const char* ldiffile) const;
61 kDCSHV, ///< High Voltage
63 kNDCSMeas ///< Number of measured quantities
68 kTrackerDet, ///< Namer for tracker
69 kTriggerDet ///< Namer for trigger
75 AliMpDCSNamer(const AliMpDCSNamer& right);
77 AliMpDCSNamer& operator = (const AliMpDCSNamer& right);
79 Bool_t CheckConsistency(Int_t detElemId) const;
81 static const char* fgkDCSChannelSt345Pattern[]; ///< DCS Tracker Channel name template
82 static const char* fgkDCSChannelSt12Pattern[]; ///< DCS Tracker Channel name template
83 static const char* fgkDCSSwitchSt345Pattern; ///< DCS Tracker Switch name template
84 static const char* fgkDCSSideTrackerName[]; ///< DCS Tracker Name of the side written in DCS
86 static const char* fgkDCSChannelTriggerPattern[]; ///< DCS Trigger Channel name template
87 static const char* fgkDCSSideTriggerName[]; ///< DCS Trigger Name of the side written in DCS
88 static const char* fgkDCSMeasureName[]; ///< DCS Trigger Name of the measure (HV or current) written in DCS
90 static const char* fgkDetectorName[]; ///< Name of detector (Tracker or Trigger)
92 Int_t fDetector; ///< Detector type (either tracker or trigger)
94 ClassDef(AliMpDCSNamer,0) // Utility class for coding/decoding DCS aliases