]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONTriggerQADataMakerRec.h
Fixing errors not spotted on Mac
[u/mrichter/AliRoot.git] / MUON / AliMUONTriggerQADataMakerRec.h
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
84     kTriggerRPChv              = 2  ///< Trigger chamber HV index
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