]>
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 | ||
42650ece | 61 | enum { |
62 | kNDetectors = 20 // Number of detectors | |
63 | }; | |
64 | ||
65 | private: | |
66 | ||
67 | static const char *fgkDetectorName[kNDetectors]; // Detector names | |
68 | static Int_t fgkNumberOfDdls[kNDetectors]; // Number of DDLs per detector | |
69 | static Float_t fgkNumberOfLdcs[kNDetectors]; // Number of LDCs per detector (not fixed - used only for the raw data simulation) | |
70 | ||
71 | ClassDef(AliDAQ, 1) // ALICE DAQ Configuration class | |
72 | }; | |
73 | ||
74 | #endif |