]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONQADataMakerRec.h
Separate the checks for DATE and DIM installation (requested by Laurent)
[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();
44ed7a66 39 virtual void InitDigits();
7d5d0cc5 40 virtual void InitRecPoints();
41 virtual void InitESDs();
42
43 virtual void MakeRaws(AliRawReader* rawReader);
44ed7a66 44 virtual void MakeDigits(TTree* dig);
6252ceeb 45 virtual void MakeDigits() {return;}
7d5d0cc5 46 virtual void MakeRecPoints(TTree* recpo);
47 virtual void MakeESDs(AliESDEvent* esd) ;
48
4e25ac79 49 virtual void DefaultEndOfDetectorCycle(AliQAv1::TASKINDEX_t) {}
7d5d0cc5 50
4e25ac79 51 virtual void EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray** list);
7d5d0cc5 52
04236e67 53private:
b62881f2 54 /// Raw histograms indices
55 enum ERaw {
43b113b8 56 kTrackerData = 3, ///< Accumulated data
5bb54f70 57 kTrackerBusPatchOccupancy = 4, ///< Bus patch occupancies
43b113b8 58 kTriggerScalers = 22, ///< Trigger scalers histogram per plane index
59 kTriggerScalersDisplay = 30, ///< Trigger scalers display histogram per plane index
60 kTriggerScalersTime = 38, ///< Trigger scalers acquisition time index
61 kTriggerRPCi = 39, ///< Trigger chamber currents index
62 kTriggerRPChv = 43 ///< Trigger chamber HV index
b62881f2 63 };
64
65 /// Rec points histograms indices
66 enum ERecPoints {
43b113b8 67 kTriggerDigits = 0, ///< Trigger digits histogram per plane index
68 kTriggeredBoards = 8, ///< Triggered boards histogram index
69 kTriggerDigitsDisplay = 9, ///< Trigger digits display histogram per plane index
70 kTriggerBoardsDisplay = 17, ///< Triggered boards display histogram index
719914e0 71
72 kNAnalyzedEvents = 90, ///< Number of analyzed events per event specie
c92a8c85 73
2d114b34 74 kTrackerNumberOfClustersPerChamber = 100, ///< Tracker: number of clusters per chamber
75 kTrackerClusterMultiplicityPerChMean = 101, ///< cluster size per Ch: mean
76 kTrackerClusterMultiplicityPerChSigma = 102, ///< cluster size per Ch: dispersion
77 kTrackerClusterChargePerChMean = 103, ///< cluster charge per Ch: mean
78 kTrackerClusterChargePerChSigma = 104, ///< cluster charge per Ch: dispersion
79
c92a8c85 80 kTrackerClusterMultiplicityPerChamber = 200, ///< Tracker: cluster multiplicity per chamber
81 kTrackerClusterChargePerChamber = 300, ///< Tracker: cluster charge per chamber
2d114b34 82 kTrackerClusterHitMapPerChamber = 400, ///< Tracker: cluster position distribution per chamber
83
84 kTrackerNumberOfClustersPerDE = 1000, ///< Tracker : number of clusters per DE
85 kTrackerClusterMultiplicityPerDEMean = 1001, ///< cluster size per DE: mean
86 kTrackerClusterChargePerDEMean = 1002, ///< cluster charge per DE: mean
87
c92a8c85 88 kTrackerClusterMultiplicityPerDE = 3000, ///< Tracker : cluster multiplicity per DE
89 kTrackerClusterChargePerDE = 5000 ///< Tracker : cluster charge per DE
b62881f2 90 };
c92a8c85 91
b62881f2 92 /// ESD histograms indices
93 enum EESD {
5a240757 94 kESDnTracks = 0, ///< number of tracks
95 kESDMatchTrig = 1, ///< number of tracks matched with trigger
96 kESDMomentum = 2, ///< P distribution
97 kESDPt = 3, ///< Pt distribution
98 kESDRapidity = 4, ///< rapidity distribution
99 kESDChi2 = 5, ///< normalized chi2 distribution
100 kESDProbChi2 = 6, ///< distribution of probability of chi2
c92a8c85 101
5a240757 102 kESDClusterHitMap = 7, ///< cluster position distribution in chamber i
103 kESDnClustersPerTrack = 17, ///< number of clusters per track
104 kESDnClustersPerCh = 18, ///< number of clusters per chamber per track
105 kESDnClustersPerDE = 19, ///< number of clusters per DE per track
106 kESDClusterChargeInCh = 20, ///< cluster charge distribution in chamber i
107 kESDClusterChargePerChMean = 30, ///< cluster charge per Ch: mean
108 kESDClusterChargePerChSigma = 31, ///< cluster charge per Ch: dispersion
109 kESDClusterChargePerDE = 32, ///< cluster charge per DE: mean
110 kESDClusterSizeInCh = 33, ///< cluster size distribution in chamber i
111 kESDClusterSizePerChMean = 43, ///< cluster size per Ch: mean
112 kESDClusterSizePerChSigma = 44, ///< cluster size per Ch: dispersion
113 kESDClusterSizePerDE = 45, ///< cluster size per DE: mean
c92a8c85 114
5a240757 115 kESDResidualXInCh = 46, ///< cluster-track residual-X distribution in chamber i
116 kESDResidualYInCh = 56, ///< cluster-track residual-Y distribution in chamber i
117 kESDResidualXPerChMean = 66, ///< cluster-track residual-X per Ch: mean
118 kESDResidualYPerChMean = 67, ///< cluster-track residual-Y per Ch: mean
119 kESDResidualXPerChSigma = 68, ///< cluster-track residual-X per Ch: dispersion
120 kESDResidualYPerChSigma = 69, ///< cluster-track residual-Y per Ch: dispersion
121 kESDResidualXPerDEMean = 70, ///< cluster-track residual-X per DE: mean
122 kESDResidualYPerDEMean = 71, ///< cluster-track residual-Y per DE: mean
123 kESDResidualXPerDESigma = 72, ///< cluster-track residual-X per DE: dispersion
124 kESDResidualYPerDESigma = 73, ///< cluster-track residual-Y per DE: dispersion
125 kESDLocalChi2XInCh = 74, ///< local chi2-X distribution in chamber i
126 kESDLocalChi2YInCh = 84, ///< local chi2-Y distribution in chamber i
127 kESDLocalChi2XPerChMean = 94, ///< local chi2-X per Ch: mean
128 kESDLocalChi2YPerChMean = 95, ///< local chi2-Y per Ch: mean
129 kESDLocalChi2XPerDEMean = 96, ///< local chi2-X per DE: mean
abcfd6d0 130 kESDLocalChi2YPerDEMean = 97, ///< local chi2-Y per DE: mean
d1e6fdee 131 kESDLocalChi2InCh = 98, ///< local chi2-X distribution in chamber i
132 kESDLocalChi2PerChMean = 108, ///< local chi2 per Ch: mean
133 kESDLocalChi2PerDEMean = 109, ///< local chi2 per DE: mean
134
135 kESDThetaX = 110, ///< thetaX distribution
136 kESDThetaY = 111, ///< thetaY distribution
abcfd6d0 137
138 kESDnTotClustersPerCh = 1000, ///< total number of associated clusters per chamber
139 kESDnTotClustersPerDE = 1001, ///< total number of associated clusters per DE
140 kESDnTotFullClustersPerDE = 1002, ///< total number of associated clusters containing pad info per DE
141 kESDSumClusterChargePerDE = 1003, ///< sum of cluster charge per DE
142 kESDSumClusterSizePerDE = 1004, ///< sum of cluster size per DE
143 kESDSumResidualXPerDE = 1005, ///< sum of cluster-track residual-X per DE
144 kESDSumResidualYPerDE = 1006, ///< sum of cluster-track residual-Y per DE
145 kESDSumResidualX2PerDE = 1007, ///< sum of cluster-track residual-X**2 per DE
146 kESDSumResidualY2PerDE = 1008, ///< sum of cluster-track residual-Y**2 per DE
147 kESDSumLocalChi2XPerDE = 1009, ///< sum of local chi2-X per DE
d1e6fdee 148 kESDSumLocalChi2YPerDE = 1010, ///< sum of local chi2-Y per DE
149 kESDSumLocalChi2PerDE = 1011 ///< sum of local chi2 per DE
b62881f2 150 };
abcfd6d0 151
f587a77d 152private:
153
21973f26 154 void Ctor();
4e25ac79 155 void DisplayTriggerInfo(AliQAv1::TASKINDEX_t task);
49e110ec 156 Bool_t FillTriggerDCSHistos();
21973f26 157 void InitRecPointsTracker();
158 void InitRecPointsTrigger();
159 void MakeRawsTracker(AliRawReader* rawReader);
160 void MakeRawsTrigger(AliRawReader* rawReader);
f587a77d 161 void MakeRecPointsTracker(TTree* treeR);
162 void MakeRecPointsTrigger(TTree* treeR);
163
21973f26 164 /// Return reco parameters
ac624e6b 165 const AliMUONRecoParam* GetMUONRecoParam() const { return dynamic_cast<const AliMUONRecoParam *>(fRecoParam); }
a0dc65b4 166
b1341ab0 167 AliMUONVDigitStore* fDigitStore; //!< pointer to digits store
7035694f 168 AliMUONVTriggerStore* fTriggerStore; //!< pointer to trigger store
b1341ab0 169 AliMUONDigitMaker* fDigitMaker; //!< pointer to digit maker
f587a77d 170 AliMUONVClusterStore* fClusterStore; //!< pointer to cluster store
171
b8bd1ab8 172 AliMUONVTrackerDataMaker* fTrackerDataMaker; //!< tracker data accumulation
5a240757 173
66cdf5b3 174 ClassDef(AliMUONQADataMakerRec,6) // MUON Quality assurance data maker
04236e67 175
176};
177#endif