Fixes for bug #49914: Compilation breaks in trunk, and bug #48629: Trunk cannot read...
[u/mrichter/AliRoot.git] / MUON / AliMUONQADataMakerRec.h
CommitLineData
7d5d0cc5 1#ifndef ALIMUONQADATAMAKERREC_H
2#define ALIMUONQADATAMAKERREC_H
04236e67 3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
bf4d93eb 6// $Id$
7
04236e67 8/// \ingroup rec
9/// \class AliMUONQADataMakerRec
10/// \brief MUON Quality assurance data maker
11///
04236e67 12
04236e67 13// --- AliRoot header files ---
c92a8c85 14#include "AliQADataMakerRec.h"
15#include "AliMUONRecoParam.h"
16
7035694f 17class AliMUONDigitMaker;
18class AliMUONVDigitStore;
19class AliMUONVTriggerStore;
f587a77d 20class AliMUONVClusterStore;
de1d4a53 21class AliMUONVTrackerData;
f587a77d 22class AliMUONVTrackerDataMaker;
23
04236e67 24class AliMUONQADataMakerRec: public AliQADataMakerRec {
25
26public:
b8bd1ab8 27 AliMUONQADataMakerRec();
04236e67 28 AliMUONQADataMakerRec(const AliMUONQADataMakerRec& qadm);
29 AliMUONQADataMakerRec& operator=(const AliMUONQADataMakerRec& qadm);
30 virtual ~AliMUONQADataMakerRec();
31
de1d4a53 32 AliMUONVTrackerData* GetTrackerData() const;
33
7d5d0cc5 34protected:
35
36 virtual void StartOfDetectorCycle();
37
38 virtual void InitRaws();
39 virtual void InitRecPoints();
40 virtual void InitESDs();
41
42 virtual void MakeRaws(AliRawReader* rawReader);
43 virtual void MakeRecPoints(TTree* recpo);
44 virtual void MakeESDs(AliESDEvent* esd) ;
45
4e25ac79 46 virtual void DefaultEndOfDetectorCycle(AliQAv1::TASKINDEX_t) {}
7d5d0cc5 47
4e25ac79 48 virtual void EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray** list);
7d5d0cc5 49
04236e67 50private:
b62881f2 51 /// Raw histograms indices
52 enum ERaw {
c92a8c85 53 kTrackerData = 3, ///< Accumulated data
5bb54f70 54 kTrackerBusPatchOccupancy = 4, ///< Bus patch occupancies
c92a8c85 55 kTriggerScalersBP = 22, ///< Trigger scalers on BP histogram per chamber index
56 kTriggerScalersNBP = 23, ///< Trigger scalers on NBP histogram per chamber index
eb3886c8 57 kTriggerScalersDisplay = 24, ///< Trigger scalers display histogram per chamber index
58 kTriggerScalersTime = 32 ///< Trigger scalers acquisition time index
b62881f2 59 };
60
61 /// Rec points histograms indices
62 enum ERecPoints {
c92a8c85 63 kTriggerDigitsBendPlane = 0, ///< Trigger digits on BP histogram index
2346e1ad 64 kTriggerDigitsNonBendPlane = 1, ///< Trigger digits on NBP histogram index
65 kTriggeredBoards = 2, ///< Triggered boards histogram index
66 kTriggerDigitsDisplay = 3, ///< Trigger digits display histogram per plane index
c92a8c85 67 kTriggerBoardsDisplay = 11, ///< Triggered boards display histogram index
49e110ec 68 kTriggerRPCi = 12, ///< Trigger chamber currents index
69 kTriggerRPChv = 13, ///< Trigger chamber HV index
70 kTriggerIDisplay = 14, ///< Trigger chamber currents display histogram index
71 kTriggerHVDisplay = 18, ///< Trigger chamber HV display histogram index
c92a8c85 72
2d114b34 73 kTrackerNumberOfClustersPerChamber = 100, ///< Tracker: number of clusters per chamber
74 kTrackerClusterMultiplicityPerChMean = 101, ///< cluster size per Ch: mean
75 kTrackerClusterMultiplicityPerChSigma = 102, ///< cluster size per Ch: dispersion
76 kTrackerClusterChargePerChMean = 103, ///< cluster charge per Ch: mean
77 kTrackerClusterChargePerChSigma = 104, ///< cluster charge per Ch: dispersion
78
c92a8c85 79 kTrackerClusterMultiplicityPerChamber = 200, ///< Tracker: cluster multiplicity per chamber
80 kTrackerClusterChargePerChamber = 300, ///< Tracker: cluster charge per chamber
2d114b34 81 kTrackerClusterHitMapPerChamber = 400, ///< Tracker: cluster position distribution per chamber
82
83 kTrackerNumberOfClustersPerDE = 1000, ///< Tracker : number of clusters per DE
84 kTrackerClusterMultiplicityPerDEMean = 1001, ///< cluster size per DE: mean
85 kTrackerClusterChargePerDEMean = 1002, ///< cluster charge per DE: mean
86
c92a8c85 87 kTrackerClusterMultiplicityPerDE = 3000, ///< Tracker : cluster multiplicity per DE
88 kTrackerClusterChargePerDE = 5000 ///< Tracker : cluster charge per DE
b62881f2 89 };
c92a8c85 90
b62881f2 91 /// ESD histograms indices
92 enum EESD {
5a240757 93 kESDnTracks = 0, ///< number of tracks
94 kESDMatchTrig = 1, ///< number of tracks matched with trigger
95 kESDMomentum = 2, ///< P distribution
96 kESDPt = 3, ///< Pt distribution
97 kESDRapidity = 4, ///< rapidity distribution
98 kESDChi2 = 5, ///< normalized chi2 distribution
99 kESDProbChi2 = 6, ///< distribution of probability of chi2
c92a8c85 100
5a240757 101 kESDClusterHitMap = 7, ///< cluster position distribution in chamber i
102 kESDnClustersPerTrack = 17, ///< number of clusters per track
103 kESDnClustersPerCh = 18, ///< number of clusters per chamber per track
104 kESDnClustersPerDE = 19, ///< number of clusters per DE per track
105 kESDClusterChargeInCh = 20, ///< cluster charge distribution in chamber i
106 kESDClusterChargePerChMean = 30, ///< cluster charge per Ch: mean
107 kESDClusterChargePerChSigma = 31, ///< cluster charge per Ch: dispersion
108 kESDClusterChargePerDE = 32, ///< cluster charge per DE: mean
109 kESDClusterSizeInCh = 33, ///< cluster size distribution in chamber i
110 kESDClusterSizePerChMean = 43, ///< cluster size per Ch: mean
111 kESDClusterSizePerChSigma = 44, ///< cluster size per Ch: dispersion
112 kESDClusterSizePerDE = 45, ///< cluster size per DE: mean
c92a8c85 113
5a240757 114 kESDResidualXInCh = 46, ///< cluster-track residual-X distribution in chamber i
115 kESDResidualYInCh = 56, ///< cluster-track residual-Y distribution in chamber i
116 kESDResidualXPerChMean = 66, ///< cluster-track residual-X per Ch: mean
117 kESDResidualYPerChMean = 67, ///< cluster-track residual-Y per Ch: mean
118 kESDResidualXPerChSigma = 68, ///< cluster-track residual-X per Ch: dispersion
119 kESDResidualYPerChSigma = 69, ///< cluster-track residual-Y per Ch: dispersion
120 kESDResidualXPerDEMean = 70, ///< cluster-track residual-X per DE: mean
121 kESDResidualYPerDEMean = 71, ///< cluster-track residual-Y per DE: mean
122 kESDResidualXPerDESigma = 72, ///< cluster-track residual-X per DE: dispersion
123 kESDResidualYPerDESigma = 73, ///< cluster-track residual-Y per DE: dispersion
124 kESDLocalChi2XInCh = 74, ///< local chi2-X distribution in chamber i
125 kESDLocalChi2YInCh = 84, ///< local chi2-Y distribution in chamber i
126 kESDLocalChi2XPerChMean = 94, ///< local chi2-X per Ch: mean
127 kESDLocalChi2YPerChMean = 95, ///< local chi2-Y per Ch: mean
128 kESDLocalChi2XPerDEMean = 96, ///< local chi2-X per DE: mean
abcfd6d0 129 kESDLocalChi2YPerDEMean = 97, ///< local chi2-Y per DE: mean
130
131 kESDnTotClustersPerCh = 1000, ///< total number of associated clusters per chamber
132 kESDnTotClustersPerDE = 1001, ///< total number of associated clusters per DE
133 kESDnTotFullClustersPerDE = 1002, ///< total number of associated clusters containing pad info per DE
134 kESDSumClusterChargePerDE = 1003, ///< sum of cluster charge per DE
135 kESDSumClusterSizePerDE = 1004, ///< sum of cluster size per DE
136 kESDSumResidualXPerDE = 1005, ///< sum of cluster-track residual-X per DE
137 kESDSumResidualYPerDE = 1006, ///< sum of cluster-track residual-Y per DE
138 kESDSumResidualX2PerDE = 1007, ///< sum of cluster-track residual-X**2 per DE
139 kESDSumResidualY2PerDE = 1008, ///< sum of cluster-track residual-Y**2 per DE
140 kESDSumLocalChi2XPerDE = 1009, ///< sum of local chi2-X per DE
141 kESDSumLocalChi2YPerDE = 1010 ///< sum of local chi2-X per DE
b62881f2 142 };
abcfd6d0 143
f587a77d 144private:
145
21973f26 146 void Ctor();
4e25ac79 147 void DisplayTriggerInfo(AliQAv1::TASKINDEX_t task);
49e110ec 148 Bool_t FillTriggerDCSHistos();
21973f26 149 void InitRecPointsTracker();
150 void InitRecPointsTrigger();
151 void MakeRawsTracker(AliRawReader* rawReader);
152 void MakeRawsTrigger(AliRawReader* rawReader);
f587a77d 153 void MakeRecPointsTracker(TTree* treeR);
154 void MakeRecPointsTrigger(TTree* treeR);
155
21973f26 156 /// Return reco parameters
b8bd1ab8 157 const AliMUONRecoParam* GetRecoParam() const { return dynamic_cast<const AliMUONRecoParam *>(fRecoParam); }
a0dc65b4 158
b1341ab0 159 Bool_t fIsInitRaws; //!< info if InitRaws() went ok
f587a77d 160 Bool_t fIsInitRecPointsTracker; //!< info if InitRecPoints() went ok
161 Bool_t fIsInitRecPointsTrigger; //!< info if InitRecPoints() went ok
b1341ab0 162 Bool_t fIsInitESDs; //!< info if InitESDs() went ok
163
164 AliMUONVDigitStore* fDigitStore; //!< pointer to digits store
7035694f 165 AliMUONVTriggerStore* fTriggerStore; //!< pointer to trigger store
b1341ab0 166 AliMUONDigitMaker* fDigitMaker; //!< pointer to digit maker
f587a77d 167 AliMUONVClusterStore* fClusterStore; //!< pointer to cluster store
168
b8bd1ab8 169 AliMUONVTrackerDataMaker* fTrackerDataMaker; //!< tracker data accumulation
5a240757 170
5a240757 171 ClassDef(AliMUONQADataMakerRec,5) // MUON Quality assurance data maker
04236e67 172
173};
174#endif