]>
Commit | Line | Data |
---|---|---|
ece56eb9 | 1 | #ifndef ALIMUONTRIGGERQADATAMAKERREC_H |
2 | #define ALIMUONTRIGGERQADATAMAKERREC_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | // $Id$ | |
7 | ||
8 | /// \ingroup rec | |
9 | /// \class AliMUONTriggerQADataMakerRec | |
10 | /// \brief MUON Quality assurance data maker for MTR | |
11 | /// | |
12 | ||
13 | // --- AliRoot header files --- | |
14 | #include "AliMUONVQADataMakerRec.h" | |
15 | ||
16 | class AliMUONCalibrationData; | |
17 | class AliMUONDigitMaker; | |
18 | class AliMUONVClusterStore; | |
19 | class AliMUONTriggerElectronics; | |
20 | class AliMUONVDigitStore; | |
21 | class TObjectArray; | |
22 | class TMap; | |
23 | class AliMpDCSNamer; | |
24 | ||
25 | class AliMUONTriggerQADataMakerRec: public AliMUONVQADataMakerRec { | |
26 | ||
27 | public: | |
28 | AliMUONTriggerQADataMakerRec(AliQADataMakerRec* master); | |
29 | virtual ~AliMUONTriggerQADataMakerRec(); | |
30 | ||
31 | virtual void InitRaws(); | |
32 | virtual void InitRecPoints(); | |
33 | virtual void InitDigits(); | |
34 | virtual void InitESDs(); | |
35 | ||
36 | void EndOfDetectorCycleRaws(Int_t specie, TObjArray** list); | |
37 | void EndOfDetectorCycleRecPoints(Int_t specie, TObjArray** list); | |
38 | void EndOfDetectorCycleESDs(Int_t specie, TObjArray** list); | |
39 | void EndOfDetectorCycleDigits(Int_t , TObjArray** ) {} | |
40 | ||
41 | virtual void MakeRaws(AliRawReader* rawReader); | |
42 | ||
43 | virtual void MakeDigits(TTree* dig); | |
44 | virtual void MakeRecPoints(TTree* recpo); | |
45 | virtual void MakeESDs(AliESDEvent* esd) ; | |
46 | ||
47 | public: | |
48 | ||
49 | /// Raw histograms indices | |
50 | ||
51 | enum ERaw { | |
52 | kTriggerScalers = 22, ///< Trigger scalers histogram per plane index | |
53 | kTriggerScalersDisplay = 30, ///< Trigger scalers display histogram per plane index | |
54 | kTriggerScalersTime = 38, ///< Trigger scalers acquisition time index | |
55 | kTriggerCalibSummary = 39, ///< Summary of responding strips/boards and noisy strips | |
56 | kTriggeredBoards = 40, ///< Triggered boards histogram index | |
57 | kTriggerBoardsDisplay = 41, ///< Triggered boards display histogram index | |
58 | kTriggerErrorLocalXPos = 50, ///< Local board: Number of XPos Error vs Local Board Id | |
59 | kTriggerErrorLocalYPos = 51, ///< Local board: Number of YPos Error vs Local Board Id | |
60 | kTriggerErrorLocalDev = 52, ///< Local board: Number of Deviation Error vs Local Board | |
61 | kTriggerErrorLocalTriggerDec = 53, ///< Local board: Number of Trigger Decision (All Pt) Error vs Local Board Id | |
62 | kTriggerErrorLocalLPtLSB = 54, ///< Local board: Number of LSB Low Pt Error vs Local Board Id | |
63 | kTriggerErrorLocalLPtMSB = 55, ///< Local board: Number of MSB Low Pt Error vs Local Board Id | |
64 | kTriggerErrorLocalHPtLSB = 56, ///< Local board: Number of LSB High Pt Error vs Local Board Id | |
65 | kTriggerErrorLocalHPtMSB = 57, ///< Local board: Number of MSB High Pt Error vs Local Board Id | |
66 | kTriggerErrorLocal2RegionalLPtLSB = 58, ///< Local to Regional: Number of LPt LSB error vs Local Board Id | |
67 | kTriggerErrorLocal2RegionalLPtMSB = 59, ///< Local to Regional: Number of LPt MSB error vs Local Board Id | |
68 | kTriggerErrorLocal2RegionalHPtLSB = 60, ///< Local to Regional: Number of HPt LSB error vs Local Board Id | |
69 | kTriggerErrorLocal2RegionalHPtMSB = 61, ///< Local to Regional: Number of HPt MSB error vs Local Board Id | |
70 | kTriggerErrorOutGlobalFromInGlobal = 62, ///< Global board: Number of error vs output bit | |
71 | kTriggerError = 63, ///< percentage of error for each trigger decision level (Local, Reg->Local, Reg, Reg->Glob, Global) | |
72 | kTriggerErrorLocalTrigY = 64, ///< Local board: Number of TrigY Error vs Local Board Id | |
73 | kTriggerErrorLocalYCopy = 65, ///< Local board: Number of Y Copy Error vs Local Board Id | |
74 | ||
75 | kRawNAnalyzedEvents = 66, ///< Number of analyzed events per event specie | |
76 | kTriggerReadOutErrors = 67, ///< Number of read-out errors | |
77 | kTriggerGlobalOutput = 68 //< Histo including Global outputs and Global algo errors | |
78 | }; | |
79 | ||
80 | /// Rec points histograms indices | |
81 | enum ERecPoints { | |
82 | kNAnalyzedEvents = 0, ///< Number of analyzed events per event specie | |
83 | kTriggerRPCtrips = 1, ///< Trips in trigger chambers | |
ffaafee5 | 84 | kTriggerRPChv = 2 ///< Trigger chamber HV index |
ece56eb9 | 85 | }; |
86 | ||
87 | // /// ESD histograms indices | |
88 | // enum EESD { | |
89 | // }; | |
90 | ||
91 | // Bins for summary histos | |
92 | enum { | |
93 | kTriggerRespStrips, ///< Bin for % of responding trigger strips | |
94 | kTriggerRespLocal, ///< Bin for % of responding trigger local boards | |
95 | kTriggerRespRegional, ///< Bin for % of responding trigger regional boards | |
96 | kTriggerRespGlobal, ///< Bin for % of responding trigger global boards | |
97 | kTriggerNoisyStrips, ///< Bin for % of noisy trigger strips | |
98 | kNtrigCalibSummaryBins ///< Total number of bins for trigger calibration summary | |
99 | }; | |
100 | ||
101 | // Bins for algorithm error histos | |
102 | enum { | |
103 | kAlgoLocalX, ///< Bin for % of local board X pos errors | |
104 | kAlgoLocalY, ///< Bin for % of local board Y pos errors | |
105 | kAlgoLocalLUT, ///< Bin for % of local board deviation errors | |
106 | kAlgoLocalYCopy, ///< Bin for % of local board Y copy errors | |
107 | kAlgoLocalToRegional, ///< Bin for % of local to regional errors | |
108 | kAlgoRegional, ///< Bin for % of regional board errors | |
109 | kAlgoRegionalToGlobal, ///< Bin for % of regional to global errors | |
110 | kAlgoGlobalFromGlobal, ///< Bin for % of global from global board errors | |
111 | kAlgoGlobalFromLocal, ///< Bin for % of global from local board errors | |
112 | kAlgoGlobalFromRegional, ///< Bin for % of global from regional board errors | |
113 | kNtrigAlgoErrorBins ///< Total number of bins for trigger error summary | |
114 | }; | |
115 | ||
116 | enum { | |
117 | kLocalStructError, ///< Bin for % of errors in local struct | |
118 | kRegionalStructError, ///< Bin for % of errors in regional struct | |
119 | kGlobalStructError, ///< Bin for % of errors in global struct | |
120 | kDarcStructError, ///< Bin for % of errors in darc struct | |
121 | kNtrigStructErrorBins ///< Total number of bins for struct error summary | |
122 | }; | |
123 | ||
124 | private: | |
125 | ||
126 | AliMUONTriggerQADataMakerRec(const AliMUONTriggerQADataMakerRec& qadm); | |
127 | AliMUONTriggerQADataMakerRec& operator=(const AliMUONTriggerQADataMakerRec& qadm); | |
128 | ||
129 | void DisplayTriggerInfo(); | |
130 | Bool_t FillTriggerDCSHistos(); | |
131 | TObjArray* GetDCSValues(Int_t iMeas, Int_t detElemId, | |
132 | TMap* triggerDcsMap, AliMpDCSNamer& triggerDcsNamer); | |
133 | void RawTriggerInRegional2OutRegional(); | |
134 | void RawTriggerInGlobal2OutGlobal(); | |
135 | void RawTriggerMatchOutLocal(); | |
136 | void RawTriggerMatchOutLocalInRegional(); | |
137 | void RawTriggerMatchOutGlobalFromInGlobal(); | |
138 | ||
139 | Int_t fTriggerOutputLocalDataTriggerDec[235]; ///< Data Local Trigger decision for each active Local Board | |
140 | Int_t fTriggerOutputLocalDataTrigY[235]; ///< Data Local Trigger Y decision for each active Local Board | |
141 | Int_t fTriggerOutputLocalDataLPtDec[2][235]; ///< Data Local decision Low Pt for each active Local Board (2 Bits -> 0:LSB, 1:MSB) | |
142 | Int_t fTriggerOutputLocalDataHPtDec[2][235]; ///< Data Local decision High Pt for each active Local Board (2 Bits -> 0:LSB, 1:MSB) | |
143 | Int_t fTriggerOutputLocalDataXPos[235]; ///< Data Local XPos for each active Local Board | |
144 | Int_t fTriggerOutputLocalDataYPos[235]; ///< Data Local YPos for each active Local Board | |
145 | Int_t fTriggerOutputLocalDataDev[235]; ///< Data Local deviation for each active Local Board | |
146 | ||
147 | Int_t fTriggerOutputLocalRecTriggerDec[235]; ///< Reconstructed Local Trigger decision for each active Local Board | |
148 | Int_t fTriggerOutputLocalRecTrigY[235]; ///< Reconstructed Local Trigger Y decision for each active Local Board | |
149 | Int_t fTriggerOutputLocalRecLPtDec[2][235]; ///< Reconstructed Local decision Low Pt for each active Local Board (2 Bits -> 0:LSB, 1:MSB) | |
150 | Int_t fTriggerOutputLocalRecHPtDec[2][235]; ///< Reconstructed Local decision High Pt for each active Local Board (2 Bits -> 0:LSB, 1:MSB) | |
151 | Int_t fTriggerOutputLocalRecXPos[235]; ///< Reconstructed Local XPos for each active Local Board | |
152 | Int_t fTriggerOutputLocalRecYPos[235]; ///< Reconstructed Local YPos for each active Local Board | |
153 | Int_t fTriggerOutputLocalRecDev[235]; ///< Reconstructed Local deviation for each active Local Board | |
154 | ||
155 | Int_t fTriggerInputRegionalDataLPt[2][235]; ///< Data Regional Input LPt for each Local board | |
156 | Int_t fTriggerInputRegionalDataHPt[2][235]; ///< Data Regional Input HPt for each Local board | |
157 | Int_t fTriggerOutputRegionalData[16]; ///< Data Regional Trigger decision for each Regional Board (1R:0, 2R:1, ... , 1L:8, ...) -> 4 bits LPt, 4 bits HPt | |
158 | Int_t fTriggerInputRegionalRecLPt[2][16][16]; ///< Reconstructed Regional Input LPt for each Regional Board ([bit][reg][loc]) (reg -> 1R:0, 2R:1, ... , 1L:8, ...) | |
159 | Int_t fTriggerInputRegionalRecHPt[2][16][16]; ///< Reconstructed Regional Input HPt for each Regional Board ([bit][reg][loc]) (reg -> 1R:0, 2R:1, ... , 1L:8, ...) | |
160 | Int_t fTriggerOutputRegionalRec[16]; ///< Reconstructed Regional Trigger decision for each Regional Board (8 Bits) | |
161 | ||
162 | Int_t fTriggerInputGlobalDataLPt[16][4]; ///< Data Global inputs LPt (1R:0, 2R:1, ... , 1L:8, ...) | |
163 | Int_t fTriggerInputGlobalDataHPt[16][4]; ///< Data Global inputs HPt (1R:0, 2R:1, ... , 1L:8, ...) | |
164 | Int_t fTriggerOutputGlobalData[6]; ///< Data Global outputs | |
165 | Int_t fTriggerOutputGlobalRecFromGlobalInput[6]; //< Reconstructed Global outputs from Global inputs | |
166 | Int_t fTriggerOutputGlobalRecFromLocalInput[6]; //< Reconstructed Global outputs from Local inputs | |
167 | Int_t fTriggerOutputGlobalRecFromLocalOutput[6]; //< Reconstructed Global outputs from Local outputs | |
168 | Int_t fgitmp[4]; //< Tempory used to store Global inputs | |
169 | Int_t fgotmp[6]; //< Tempory used to store Global outputs | |
170 | ||
171 | Int_t fTriggerPatternX1[243][16]; ///< Local pattern X1 | |
172 | Int_t fTriggerPatternX2[243][16]; ///< Local pattern X2 | |
173 | Int_t fTriggerPatternX3[243][16]; ///< Local pattern X3 | |
174 | Int_t fTriggerPatternX4[243][16]; ///< Local pattern X4 | |
175 | Int_t fTriggerPatternY1[243][16]; ///< Local pattern Y1 | |
176 | Int_t fTriggerPatternY2[243][16]; ///< Local pattern Y2 | |
177 | Int_t fTriggerPatternY3[243][16]; ///< Local pattern Y3 | |
178 | Int_t fTriggerPatternY4[243][16]; ///< Local pattern Y4 | |
179 | ||
180 | Bool_t fTriggerErrorLocalYCopy[235]; ///< True if Y copy error for Local Board i | |
181 | ||
182 | AliMUONDigitMaker* fDigitMaker; //!< pointer to digit maker | |
183 | AliMUONCalibrationData* fCalibrationData; //!< Used to load Local, Regional and Global masks | |
184 | AliMUONTriggerElectronics* fTriggerProcessor; //!< trigger processore to re-compute response | |
185 | AliMUONVDigitStore* fDigitStore; //!< pointer to digits store | |
186 | ||
187 | ClassDef(AliMUONTriggerQADataMakerRec,1) // MUON Quality assurance data maker | |
188 | ||
189 | }; | |
190 | ||
191 | #endif |