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 AliMUONVDigitStore;
19 class AliMUONVTriggerStore;
20 class AliMUONVClusterStore;
21 class AliMUONVTrackerData;
22 class AliMUONVTrackerDataMaker;
24 class AliMUONQADataMakerRec: public AliQADataMakerRec {
27 AliMUONQADataMakerRec();
28 AliMUONQADataMakerRec(const AliMUONQADataMakerRec& qadm);
29 AliMUONQADataMakerRec& operator=(const AliMUONQADataMakerRec& qadm);
30 virtual ~AliMUONQADataMakerRec();
32 AliMUONVTrackerData* GetTrackerData() const;
36 virtual void StartOfDetectorCycle();
38 virtual void InitRaws();
39 virtual void InitDigits();
40 virtual void InitRecPoints();
41 virtual void InitESDs();
43 virtual void MakeRaws(AliRawReader* rawReader);
44 virtual void MakeDigits(TTree* dig);
45 virtual void MakeDigits(TClonesArray* /*digits*/) {return;}
46 virtual void MakeRecPoints(TTree* recpo);
47 virtual void MakeESDs(AliESDEvent* esd) ;
49 virtual void DefaultEndOfDetectorCycle(AliQAv1::TASKINDEX_t) {}
51 virtual void EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray** list);
54 /// Raw histograms indices
56 kTrackerData = 3, ///< Accumulated data
57 kTrackerBusPatchOccupancy = 4, ///< Bus patch occupancies
58 kTriggerScalersBP = 22, ///< Trigger scalers on BP histogram per chamber index
59 kTriggerScalersNBP = 23, ///< Trigger scalers on NBP histogram per chamber index
60 kTriggerScalersDisplay = 24, ///< Trigger scalers display histogram per chamber index
61 kTriggerScalersTime = 32 ///< Trigger scalers acquisition time index
64 /// Rec points histograms indices
66 kTriggerDigitsBendPlane = 0, ///< Trigger digits on BP histogram index
67 kTriggerDigitsNonBendPlane = 1, ///< Trigger digits on NBP histogram index
68 kTriggeredBoards = 2, ///< Triggered boards histogram index
69 kTriggerDigitsDisplay = 3, ///< Trigger digits display histogram per plane index
70 kTriggerBoardsDisplay = 11, ///< Triggered boards display histogram index
71 kTriggerRPCi = 12, ///< Trigger chamber currents index
72 kTriggerRPChv = 13, ///< Trigger chamber HV index
73 kTriggerIDisplay = 14, ///< Trigger chamber currents display histogram index
74 kTriggerHVDisplay = 18, ///< Trigger chamber HV display histogram index
76 kTrackerNumberOfClustersPerChamber = 100, ///< Tracker: number of clusters per chamber
77 kTrackerClusterMultiplicityPerChMean = 101, ///< cluster size per Ch: mean
78 kTrackerClusterMultiplicityPerChSigma = 102, ///< cluster size per Ch: dispersion
79 kTrackerClusterChargePerChMean = 103, ///< cluster charge per Ch: mean
80 kTrackerClusterChargePerChSigma = 104, ///< cluster charge per Ch: dispersion
82 kTrackerClusterMultiplicityPerChamber = 200, ///< Tracker: cluster multiplicity per chamber
83 kTrackerClusterChargePerChamber = 300, ///< Tracker: cluster charge per chamber
84 kTrackerClusterHitMapPerChamber = 400, ///< Tracker: cluster position distribution per chamber
86 kTrackerNumberOfClustersPerDE = 1000, ///< Tracker : number of clusters per DE
87 kTrackerClusterMultiplicityPerDEMean = 1001, ///< cluster size per DE: mean
88 kTrackerClusterChargePerDEMean = 1002, ///< cluster charge per DE: mean
90 kTrackerClusterMultiplicityPerDE = 3000, ///< Tracker : cluster multiplicity per DE
91 kTrackerClusterChargePerDE = 5000 ///< Tracker : cluster charge per DE
94 /// ESD histograms indices
96 kESDnTracks = 0, ///< number of tracks
97 kESDMatchTrig = 1, ///< number of tracks matched with trigger
98 kESDMomentum = 2, ///< P distribution
99 kESDPt = 3, ///< Pt distribution
100 kESDRapidity = 4, ///< rapidity distribution
101 kESDChi2 = 5, ///< normalized chi2 distribution
102 kESDProbChi2 = 6, ///< distribution of probability of chi2
104 kESDClusterHitMap = 7, ///< cluster position distribution in chamber i
105 kESDnClustersPerTrack = 17, ///< number of clusters per track
106 kESDnClustersPerCh = 18, ///< number of clusters per chamber per track
107 kESDnClustersPerDE = 19, ///< number of clusters per DE per track
108 kESDClusterChargeInCh = 20, ///< cluster charge distribution in chamber i
109 kESDClusterChargePerChMean = 30, ///< cluster charge per Ch: mean
110 kESDClusterChargePerChSigma = 31, ///< cluster charge per Ch: dispersion
111 kESDClusterChargePerDE = 32, ///< cluster charge per DE: mean
112 kESDClusterSizeInCh = 33, ///< cluster size distribution in chamber i
113 kESDClusterSizePerChMean = 43, ///< cluster size per Ch: mean
114 kESDClusterSizePerChSigma = 44, ///< cluster size per Ch: dispersion
115 kESDClusterSizePerDE = 45, ///< cluster size per DE: mean
117 kESDResidualXInCh = 46, ///< cluster-track residual-X distribution in chamber i
118 kESDResidualYInCh = 56, ///< cluster-track residual-Y distribution in chamber i
119 kESDResidualXPerChMean = 66, ///< cluster-track residual-X per Ch: mean
120 kESDResidualYPerChMean = 67, ///< cluster-track residual-Y per Ch: mean
121 kESDResidualXPerChSigma = 68, ///< cluster-track residual-X per Ch: dispersion
122 kESDResidualYPerChSigma = 69, ///< cluster-track residual-Y per Ch: dispersion
123 kESDResidualXPerDEMean = 70, ///< cluster-track residual-X per DE: mean
124 kESDResidualYPerDEMean = 71, ///< cluster-track residual-Y per DE: mean
125 kESDResidualXPerDESigma = 72, ///< cluster-track residual-X per DE: dispersion
126 kESDResidualYPerDESigma = 73, ///< cluster-track residual-Y per DE: dispersion
127 kESDLocalChi2XInCh = 74, ///< local chi2-X distribution in chamber i
128 kESDLocalChi2YInCh = 84, ///< local chi2-Y distribution in chamber i
129 kESDLocalChi2XPerChMean = 94, ///< local chi2-X per Ch: mean
130 kESDLocalChi2YPerChMean = 95, ///< local chi2-Y per Ch: mean
131 kESDLocalChi2XPerDEMean = 96, ///< local chi2-X per DE: mean
132 kESDLocalChi2YPerDEMean = 97, ///< local chi2-Y per DE: mean
134 kESDnTotClustersPerCh = 1000, ///< total number of associated clusters per chamber
135 kESDnTotClustersPerDE = 1001, ///< total number of associated clusters per DE
136 kESDnTotFullClustersPerDE = 1002, ///< total number of associated clusters containing pad info per DE
137 kESDSumClusterChargePerDE = 1003, ///< sum of cluster charge per DE
138 kESDSumClusterSizePerDE = 1004, ///< sum of cluster size per DE
139 kESDSumResidualXPerDE = 1005, ///< sum of cluster-track residual-X per DE
140 kESDSumResidualYPerDE = 1006, ///< sum of cluster-track residual-Y per DE
141 kESDSumResidualX2PerDE = 1007, ///< sum of cluster-track residual-X**2 per DE
142 kESDSumResidualY2PerDE = 1008, ///< sum of cluster-track residual-Y**2 per DE
143 kESDSumLocalChi2XPerDE = 1009, ///< sum of local chi2-X per DE
144 kESDSumLocalChi2YPerDE = 1010 ///< sum of local chi2-X per DE
150 void DisplayTriggerInfo(AliQAv1::TASKINDEX_t task);
151 Bool_t FillTriggerDCSHistos();
152 void InitRecPointsTracker();
153 void InitRecPointsTrigger();
154 void MakeRawsTracker(AliRawReader* rawReader);
155 void MakeRawsTrigger(AliRawReader* rawReader);
156 void MakeRecPointsTracker(TTree* treeR);
157 void MakeRecPointsTrigger(TTree* treeR);
159 /// Return reco parameters
160 const AliMUONRecoParam* GetRecoParam() const { return dynamic_cast<const AliMUONRecoParam *>(fRecoParam); }
162 Bool_t fIsInitRaws; //!< info if InitRaws() went ok
163 Bool_t fIsInitRecPointsTracker; //!< info if InitRecPoints() went ok
164 Bool_t fIsInitRecPointsTrigger; //!< info if InitRecPoints() went ok
165 Bool_t fIsInitESDs; //!< info if InitESDs() went ok
167 AliMUONVDigitStore* fDigitStore; //!< pointer to digits store
168 AliMUONVTriggerStore* fTriggerStore; //!< pointer to trigger store
169 AliMUONDigitMaker* fDigitMaker; //!< pointer to digit maker
170 AliMUONVClusterStore* fClusterStore; //!< pointer to cluster store
172 AliMUONVTrackerDataMaker* fTrackerDataMaker; //!< tracker data accumulation
174 ClassDef(AliMUONQADataMakerRec,5) // MUON Quality assurance data maker