4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 //////////////////////////////////////////////////////////////////////////////
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. //
25 // cvetan.cheshkov@cern.ch 2006/06/09 //
27 //////////////////////////////////////////////////////////////////////////////
31 class AliDAQ: public TObject {
35 AliDAQ(const AliDAQ& source);
36 AliDAQ& operator = (const AliDAQ& source);
39 static Int_t DetectorID(const char *detectorName);
40 static const char *DetectorName(Int_t detectorID);
42 static Int_t DdlIDOffset(const char *detectorName);
43 static Int_t DdlIDOffset(Int_t detectorID);
45 static const char *DetectorNameFromDdlID(Int_t ddlID);
46 static Int_t DetectorIDFromDdlID(Int_t ddlID);
48 static Int_t DdlID(const char *detectorName, Int_t ddlIndex);
49 static Int_t DdlID(Int_t detectorID, Int_t ddlIndex);
51 static Int_t NumberOfDdls(const char *detectorName);
52 static Int_t NumberOfDdls(Int_t detectorID);
54 static Float_t NumberOfLdcs(const char *detectorName);
55 static Float_t NumberOfLdcs(Int_t detectorID);
57 static void PrintConfig();
60 kNDetectors = 20 // Number of detectors
65 static const char *fgkDetectorName[kNDetectors]; // Detector names
66 static Int_t fgkNumberOfDdls[kNDetectors]; // Number of DDLs per detector
67 static Float_t fgkNumberOfLdcs[kNDetectors]; // Number of LDCs per detector (not fixed - used only for the raw data simulation)
69 ClassDef(AliDAQ, 1) // ALICE DAQ Configuration class