]>
Commit | Line | Data |
---|---|---|
42650ece | 1 | #ifndef ALIDAQ_H |
2 | #define ALIDAQ_H | |
3 | ||
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | ////////////////////////////////////////////////////////////////////////////// | |
8 | // // | |
9 | // The AliDAQ class is responsible for handling all the information about // | |
10 | // Data Acquisition configuration. It defines the detector indexing, // | |
11 | // the number of DDLs and LDCs per detector. // | |
12 | // The number of LDCs per detector is used only in the simulation in order // | |
13 | // to define the configuration of the dateStream application. Therefore the // | |
14 | // numbers in the corresponding array can be changed without affecting the // | |
15 | // rest of the aliroot code. // | |
16 | // The equipment ID (DDL ID) is an integer (32-bit) number defined as: // | |
17 | // Equipment ID = (detectorID << 8) + DDLIndex // | |
18 | // where the detectorID is given by fgkDetectorName array and DDLIndex is // | |
19 | // the index of the corresponding DDL inside the detector partition. // | |
20 | // Due to DAQ/HLT limitations, the ddl indexes should be consequtive, or // | |
21 | // at least without big gaps in between. // | |
22 | // The sub-detector code use only this class in the simulation and reading // | |
23 | // of the raw data. // | |
24 | // // | |
25 | // cvetan.cheshkov@cern.ch 2006/06/09 // | |
26 | // // | |
27 | ////////////////////////////////////////////////////////////////////////////// | |
28 | ||
29 | #include <TObject.h> | |
30 | ||
31 | class AliDAQ: public TObject { | |
32 | public: | |
33 | ||
34 | AliDAQ() {}; | |
35 | AliDAQ(const AliDAQ& source); | |
36 | AliDAQ& operator = (const AliDAQ& source); | |
37 | virtual ~AliDAQ() {}; | |
38 | ||
39 | static Int_t DetectorID(const char *detectorName); | |
40 | static const char *DetectorName(Int_t detectorID); | |
41 | ||
42 | static Int_t DdlIDOffset(const char *detectorName); | |
43 | static Int_t DdlIDOffset(Int_t detectorID); | |
44 | ||
362c9d61 | 45 | static const char *DetectorNameFromDdlID(Int_t ddlID, Int_t &ddlIndex); |
46 | static Int_t DetectorIDFromDdlID(Int_t ddlID, Int_t &ddlIndex); | |
42650ece | 47 | |
48 | static Int_t DdlID(const char *detectorName, Int_t ddlIndex); | |
49 | static Int_t DdlID(Int_t detectorID, Int_t ddlIndex); | |
cddbd913 | 50 | static const char *DdlFileName(const char *detectorName, Int_t ddlIndex); |
51 | static const char *DdlFileName(Int_t detectorID, Int_t ddlIndex); | |
42650ece | 52 | |
53 | static Int_t NumberOfDdls(const char *detectorName); | |
54 | static Int_t NumberOfDdls(Int_t detectorID); | |
55 | ||
56 | static Float_t NumberOfLdcs(const char *detectorName); | |
57 | static Float_t NumberOfLdcs(Int_t detectorID); | |
58 | ||
0d45e170 | 59 | static void PrintConfig(); |
60 | ||
7e88424f | 61 | static const char *ListOfTriggeredDetectors(UInt_t detectorPattern); |
62 | static UInt_t DetectorPattern(const char *detectorList); | |
7b649c02 | 63 | static UInt_t DetectorPatternOffline(const char *detectorList); |
7e88424f | 64 | |
65 | static const char *OfflineModuleName(const char *detectorName); | |
66 | static const char *OfflineModuleName(Int_t detectorID); | |
67 | ||
68 | static const char *OnlineName(const char *detectorName); | |
69 | static const char *OnlineName(Int_t detectorID); | |
1d3b4f15 | 70 | |
42650ece | 71 | enum { |
44f26f0f | 72 | kNDetectors = 22, // Number of detectors |
7034c7a7 | 73 | kHLTId = 30 // HLT detector index |
42650ece | 74 | }; |
e921939b | 75 | |
7b649c02 | 76 | enum DetectorBits {kSPD = 0x0001, kSDD = 0x0002, kSSD = 0x0004, kITS = 0x0007, |
77 | kTPC = 0x0008, kTRD = 0x0010, kTOF = 0x0020, kHMPID = 0x0040, | |
78 | kPHOS = 0x0080, kCPV = 0x0100, kPMD = 0x0200, kMUONTRK = 0x0400, | |
79 | kMUONTRG = 0x0800, kMUON = 0x0c00, kFMD = 0x1000, kT0 = 0x2000, kVZERO = 0x4000, | |
80 | kZDC = 0x8000, kACORDE = 0x10000, kTRG = 0x20000, kEMCAL = 0x40000, | |
44f26f0f | 81 | kDAQTEST = 0x80000, kMFT = 0x100000, kHLT = 0x40000000 }; |
e921939b | 82 | |
83 | private: | |
84 | ||
42650ece | 85 | static const char *fgkDetectorName[kNDetectors]; // Detector names |
86 | static Int_t fgkNumberOfDdls[kNDetectors]; // Number of DDLs per detector | |
87 | static Float_t fgkNumberOfLdcs[kNDetectors]; // Number of LDCs per detector (not fixed - used only for the raw data simulation) | |
7e88424f | 88 | static const char* fgkOfflineModuleName[kNDetectors]; // Names of the offline modules corresponding to the detectors |
89 | static const char* fgkOnlineName[kNDetectors]; // Online (DAQ/ECS) detector names | |
42650ece | 90 | |
e9d8cbc3 | 91 | ClassDef(AliDAQ, 4) // ALICE DAQ Configuration class |
42650ece | 92 | }; |
93 | ||
94 | #endif |