1 #ifndef ALIMUONQADATAMAKERREC_H
2 #define ALIMUONQADATAMAKERREC_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
9 /// \class AliMUONQADataMakerRec
10 /// \brief MUON Quality assurance data maker
13 // --- AliRoot header files ---
14 #include "AliQADataMakerRec.h"
15 #include "AliMUONRecoParam.h"
17 class AliMUONDigitMaker;
18 class AliMUONVClusterStore;
19 class AliMUONVDigitStore;
21 class AliMUONVTrackerData;
22 class AliMUONVTrackerDataMaker;
23 class AliMUONVTriggerStore;
25 class AliMUONQAMappingCheck;
27 class AliMUONQADataMakerRec: public AliQADataMakerRec {
30 AliMUONQADataMakerRec();
31 AliMUONQADataMakerRec(const AliMUONQADataMakerRec& qadm);
32 AliMUONQADataMakerRec& operator=(const AliMUONQADataMakerRec& qadm);
33 virtual ~AliMUONQADataMakerRec();
35 AliMUONVTrackerData* GetTrackerData() const;
37 virtual void InitRaws();
38 virtual void InitRecPoints();
42 virtual void StartOfDetectorCycle();
44 virtual void InitDigits();
45 virtual void InitESDs();
47 virtual void MakeRaws(AliRawReader* rawReader);
48 virtual void MakeDigits(TTree* dig);
49 virtual void MakeDigits() {return;}
50 virtual void MakeRecPoints(TTree* recpo);
51 virtual void MakeESDs(AliESDEvent* esd) ;
53 virtual void DefaultEndOfDetectorCycle(AliQAv1::TASKINDEX_t) {}
55 virtual void EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray** list);
58 /// Raw histograms indices
60 kTrackerData = 3, ///< Accumulated data
61 kTrackerBusPatchOccupancy = 4, ///< Bus patch occupancies
62 kTrackerBusPatchNofPads = 5, ///< Number of pads per bus patch
63 kTrackerBusPatchNofManus = 6, ///< Number of manus per bus patch
64 kTriggerScalers = 22, ///< Trigger scalers histogram per plane index
65 kTriggerScalersDisplay = 30, ///< Trigger scalers display histogram per plane index
66 kTriggerScalersTime = 38, ///< Trigger scalers acquisition time index
67 kTriggerRPCi = 39, ///< Trigger chamber currents index
68 kTriggerRPChv = 43 ///< Trigger chamber HV index
71 /// Rec points histograms indices
73 kTriggerDigits = 0, ///< Trigger digits histogram per plane index
74 kTriggeredBoards = 8, ///< Triggered boards histogram index
75 kTriggerDigitsDisplay = 9, ///< Trigger digits display histogram per plane index
76 kTriggerBoardsDisplay = 17, ///< Triggered boards display histogram index
78 kNAnalyzedEvents = 90, ///< Number of analyzed events per event specie
80 kTrackerNumberOfClustersPerChamber = 100, ///< Tracker: number of clusters per chamber
81 kTrackerClusterMultiplicityPerChMean = 101, ///< cluster size per Ch: mean
82 kTrackerClusterMultiplicityPerChSigma = 102, ///< cluster size per Ch: dispersion
83 kTrackerClusterChargePerChMean = 103, ///< cluster charge per Ch: mean
84 kTrackerClusterChargePerChSigma = 104, ///< cluster charge per Ch: dispersion
86 kTrackerRecPoints = 105, ///< Tracker : tracker data of clusters (all and mono-cathode ones)
88 kTrackerClusterMultiplicityPerChamber = 200, ///< Tracker: cluster multiplicity per chamber
89 kTrackerClusterChargePerChamber = 300, ///< Tracker: cluster charge per chamber
90 kTrackerClusterHitMapPerChamber = 400, ///< Tracker: cluster position distribution per chamber
92 kTrackerNumberOfClustersPerDE = 1000, ///< Tracker : number of clusters per DE
93 kTrackerClusterMultiplicityPerDEMean = 1001, ///< cluster size per DE: mean
94 kTrackerClusterChargePerDEMean = 1002, ///< cluster charge per DE: mean
96 kTrackerClusterMultiplicityPerDE = 3000, ///< Tracker : cluster multiplicity per DE
97 kTrackerClusterChargePerDE = 5000 ///< Tracker : cluster charge per DE
101 /// ESD histograms indices
103 kESDnTracks = 0, ///< number of tracks
104 kESDMatchTrig = 1, ///< number of tracks matched with trigger
105 kESDMomentum = 2, ///< P distribution
106 kESDPt = 3, ///< Pt distribution
107 kESDRapidity = 4, ///< rapidity distribution
108 kESDChi2 = 5, ///< normalized chi2 distribution
109 kESDProbChi2 = 6, ///< distribution of probability of chi2
111 kESDClusterHitMap = 7, ///< cluster position distribution in chamber i
112 kESDnClustersPerTrack = 17, ///< number of clusters per track
113 kESDnClustersPerCh = 18, ///< number of clusters per chamber per track
114 kESDnClustersPerDE = 19, ///< number of clusters per DE per track
115 kESDClusterChargeInCh = 20, ///< cluster charge distribution in chamber i
116 kESDClusterChargePerChMean = 30, ///< cluster charge per Ch: mean
117 kESDClusterChargePerChSigma = 31, ///< cluster charge per Ch: dispersion
118 kESDClusterChargePerDE = 32, ///< cluster charge per DE: mean
119 kESDClusterSizeInCh = 33, ///< cluster size distribution in chamber i
120 kESDClusterSizePerChMean = 43, ///< cluster size per Ch: mean
121 kESDClusterSizePerChSigma = 44, ///< cluster size per Ch: dispersion
122 kESDClusterSizePerDE = 45, ///< cluster size per DE: mean
124 kESDResidualXInCh = 46, ///< cluster-track residual-X distribution in chamber i
125 kESDResidualYInCh = 56, ///< cluster-track residual-Y distribution in chamber i
126 kESDResidualXPerChMean = 66, ///< cluster-track residual-X per Ch: mean
127 kESDResidualYPerChMean = 67, ///< cluster-track residual-Y per Ch: mean
128 kESDResidualXPerChSigma = 68, ///< cluster-track residual-X per Ch: dispersion
129 kESDResidualYPerChSigma = 69, ///< cluster-track residual-Y per Ch: dispersion
130 kESDResidualXPerDEMean = 70, ///< cluster-track residual-X per DE: mean
131 kESDResidualYPerDEMean = 71, ///< cluster-track residual-Y per DE: mean
132 kESDResidualXPerDESigma = 72, ///< cluster-track residual-X per DE: dispersion
133 kESDResidualYPerDESigma = 73, ///< cluster-track residual-Y per DE: dispersion
134 kESDLocalChi2XInCh = 74, ///< local chi2-X distribution in chamber i
135 kESDLocalChi2YInCh = 84, ///< local chi2-Y distribution in chamber i
136 kESDLocalChi2XPerChMean = 94, ///< local chi2-X per Ch: mean
137 kESDLocalChi2YPerChMean = 95, ///< local chi2-Y per Ch: mean
138 kESDLocalChi2XPerDEMean = 96, ///< local chi2-X per DE: mean
139 kESDLocalChi2YPerDEMean = 97, ///< local chi2-Y per DE: mean
140 kESDLocalChi2InCh = 98, ///< local chi2-X distribution in chamber i
141 kESDLocalChi2PerChMean = 108, ///< local chi2 per Ch: mean
142 kESDLocalChi2PerDEMean = 109, ///< local chi2 per DE: mean
144 kESDThetaX = 110, ///< thetaX distribution
145 kESDThetaY = 111, ///< thetaY distribution
147 kESDnTotClustersPerCh = 1000, ///< total number of associated clusters per chamber
148 kESDnTotClustersPerDE = 1001, ///< total number of associated clusters per DE
149 kESDnTotFullClustersPerDE = 1002, ///< total number of associated clusters containing pad info per DE
150 kESDSumClusterChargePerDE = 1003, ///< sum of cluster charge per DE
151 kESDSumClusterSizePerDE = 1004, ///< sum of cluster size per DE
152 kESDSumResidualXPerDE = 1005, ///< sum of cluster-track residual-X per DE
153 kESDSumResidualYPerDE = 1006, ///< sum of cluster-track residual-Y per DE
154 kESDSumResidualX2PerDE = 1007, ///< sum of cluster-track residual-X**2 per DE
155 kESDSumResidualY2PerDE = 1008, ///< sum of cluster-track residual-Y**2 per DE
156 kESDSumLocalChi2XPerDE = 1009, ///< sum of local chi2-X per DE
157 kESDSumLocalChi2YPerDE = 1010, ///< sum of local chi2-Y per DE
158 kESDSumLocalChi2PerDE = 1011, ///< sum of local chi2 per DE
162 void BeautifyTrackerBusPatchOccupancy(TH1& hbp);
164 void EndOfDetectorCycleRaws(Int_t specie, TObjArray** list);
165 void EndOfDetectorCycleRecPoints(Int_t specie, TObjArray** list);
166 void EndOfDetectorCycleESDs();
168 void InsertTrackerData(Int_t specie, TObjArray** list, TObject* object,
169 Int_t indexNumber, Bool_t replace=kFALSE);
174 void DisplayTriggerInfo(AliQAv1::TASKINDEX_t task);
175 Bool_t FillTriggerDCSHistos();
176 void InitRecPointsTracker();
177 void InitRecPointsTrigger();
178 void MakeRawsTracker(AliRawReader* rawReader);
179 void MakeRawsTrigger(AliRawReader* rawReader);
180 void MakeRecPointsTracker(TTree* treeR);
181 void MakeRecPointsTrigger(TTree* treeR);
183 /// Return reco parameters
184 const AliMUONRecoParam* GetMUONRecoParam() const { return dynamic_cast<const AliMUONRecoParam *>(fRecoParam); }
186 AliMUONVDigitStore* fDigitStore; //!< pointer to digits store
187 AliMUONVTriggerStore* fTriggerStore; //!< pointer to trigger store
188 AliMUONDigitMaker* fDigitMaker; //!< pointer to digit maker
189 AliMUONVClusterStore* fClusterStore; //!< pointer to cluster store
191 AliMUONVTrackerDataMaker* fTrackerDataMaker; //!< tracker data accumulation (Raw)
193 AliMUONQAMappingCheck* fMappingCheckRecPoints; //!< mapping cross-checker (RecPoints)
195 ClassDef(AliMUONQADataMakerRec,8) // MUON Quality assurance data maker