]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONTrackerQADataMakerRec.h
Reorganization of the QA (Rec), by splitting a MTR and MCH parts, so they can be...
[u/mrichter/AliRoot.git] / MUON / AliMUONTrackerQADataMakerRec.h
1 #ifndef ALIMUONTRACKERQADATAMAKERREC_H
2 #define ALIMUONTRACKERQADATAMAKERREC_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 // $Id: AliMUONTrackerQADataMakerRec.h 35760 2009-10-21 21:45:42Z ivana $
7
8 /// \ingroup rec
9 /// \class AliMUONTrackerQADataMakerRec
10 /// \brief MUON Quality assurance data maker
11 ///
12
13 // --- AliRoot header files ---
14 #include "AliMUONVQADataMakerRec.h"
15 #include "AliMUONRecoParam.h"
16
17 class AliMUONDigitMaker;
18 class AliMUONVClusterStore;
19 class AliMUONVDigitStore;
20 class AliMUONVStore;
21 class AliMUONVTrackerData;
22 class AliMUONVTrackerDataMaker;
23 class AliMUONCalibrationData;
24 class AliMUONQAMappingCheck;
25
26 class AliMUONTrackerQADataMakerRec: public AliMUONVQADataMakerRec {
27
28 public:
29   AliMUONTrackerQADataMakerRec(AliQADataMakerRec* master);         
30   virtual ~AliMUONTrackerQADataMakerRec();
31   
32   AliMUONVTrackerData* GetTrackerData() const;
33
34   virtual void InitDigits(); 
35   virtual void InitESDs(); 
36   virtual void InitRaws(); 
37   virtual void InitRecPoints(); 
38   
39   void EndOfDetectorCycleRaws(Int_t specie, TObjArray** list);
40   void EndOfDetectorCycleRecPoints(Int_t specie, TObjArray** list);
41   void EndOfDetectorCycleESDs(Int_t specie, TObjArray** list);
42   void EndOfDetectorCycleDigits(Int_t, TObjArray**) {}
43     
44   virtual void MakeDigits(TTree* dig); 
45   virtual void MakeESDs(AliESDEvent* esd) ;
46   virtual void MakeRaws(AliRawReader* rawReader); 
47   virtual void MakeRecPoints(TTree* recpo); 
48   
49 public:
50
51   /// Raw histograms indices
52   enum ERaw { 
53     kTrackerData              = 3,  ///< Accumulated data
54     kTrackerBusPatchOccupancy = 4, ///< Bus patch occupancies
55     kTrackerBusPatchNofPads   = 5, ///< Number of pads per bus patch
56     kTrackerBusPatchNofManus  = 6, ///< Number of manus per bus patch
57     kTrackerBusPatchConfig    = 7, ///< Configuration of the tracker
58   };
59          
60   /// Rec points histograms indices
61   enum ERecPoints { 
62     kTrackerNumberOfClustersPerChamber    = 100, ///< Tracker: number of clusters per chamber
63     kTrackerClusterMultiplicityPerChMean  = 101, ///< cluster size per Ch: mean
64     kTrackerClusterMultiplicityPerChSigma = 102, ///< cluster size per Ch: dispersion
65     kTrackerClusterChargePerChMean        = 103, ///< cluster charge per Ch: mean
66     kTrackerClusterChargePerChSigma       = 104, ///< cluster charge per Ch: dispersion
67
68     kTrackerRecPoints = 105, ///< Tracker : tracker data of clusters (all and mono-cathode ones)
69
70     kTrackerClusterMultiplicityPerChamber = 200, ///< Tracker: cluster multiplicity per chamber
71     kTrackerClusterChargePerChamber       = 300, ///< Tracker: cluster charge per chamber
72     kTrackerClusterHitMapPerChamber       = 400, ///< Tracker: cluster position distribution per chamber
73     
74     kTrackerNumberOfClustersPerDE        = 1000, ///< Tracker : number of clusters per DE               
75     kTrackerClusterMultiplicityPerDEMean = 1001, ///< cluster size per DE: mean
76     kTrackerClusterChargePerDEMean       = 1002, ///< cluster charge per DE: mean
77     
78     kTrackerClusterMultiplicityPerDE = 3000, ///< Tracker : cluster multiplicity per DE         
79     kTrackerClusterChargePerDE       = 5000  ///< Tracker : cluster charge per DE
80     
81   };
82   
83   /// ESD histograms indices
84   enum EESD { 
85     kESDnTracks                 = 0,  ///< number of tracks
86     kESDMatchTrig               = 1,  ///< number of tracks matched with trigger
87     kESDMomentum                = 2,  ///< P distribution
88     kESDPt                      = 3,  ///< Pt distribution
89     kESDRapidity                = 4,  ///< rapidity distribution
90     kESDChi2                    = 5,  ///< normalized chi2 distribution
91     kESDProbChi2                = 6,  ///< distribution of probability of chi2
92     
93     kESDClusterHitMap           = 7,  ///< cluster position distribution in chamber i
94     kESDnClustersPerTrack       = 17, ///< number of clusters per track
95     kESDnClustersPerCh          = 18, ///< number of clusters per chamber per track
96     kESDnClustersPerDE          = 19, ///< number of clusters per DE per track
97     kESDClusterChargeInCh       = 20, ///< cluster charge distribution in chamber i
98     kESDClusterChargePerChMean  = 30, ///< cluster charge per Ch: mean
99     kESDClusterChargePerChSigma = 31, ///< cluster charge per Ch: dispersion
100     kESDClusterChargePerDE      = 32, ///< cluster charge per DE: mean
101     kESDClusterSizeInCh         = 33, ///< cluster size distribution in chamber i
102     kESDClusterSizePerChMean    = 43, ///< cluster size per Ch: mean
103     kESDClusterSizePerChSigma   = 44, ///< cluster size per Ch: dispersion
104     kESDClusterSizePerDE        = 45, ///< cluster size per DE: mean
105     
106     kESDResidualXInCh           = 46, ///< cluster-track residual-X distribution in chamber i
107     kESDResidualYInCh           = 56, ///< cluster-track residual-Y distribution in chamber i
108     kESDResidualXPerChMean      = 66, ///< cluster-track residual-X per Ch: mean
109     kESDResidualYPerChMean      = 67, ///< cluster-track residual-Y per Ch: mean
110     kESDResidualXPerChSigma     = 68, ///< cluster-track residual-X per Ch: dispersion
111     kESDResidualYPerChSigma     = 69, ///< cluster-track residual-Y per Ch: dispersion
112     kESDResidualXPerDEMean      = 70, ///< cluster-track residual-X per DE: mean
113     kESDResidualYPerDEMean      = 71, ///< cluster-track residual-Y per DE: mean
114     kESDResidualXPerDESigma     = 72, ///< cluster-track residual-X per DE: dispersion
115     kESDResidualYPerDESigma     = 73, ///< cluster-track residual-Y per DE: dispersion
116     kESDLocalChi2XInCh          = 74, ///< local chi2-X distribution in chamber i
117     kESDLocalChi2YInCh          = 84, ///< local chi2-Y distribution in chamber i
118     kESDLocalChi2XPerChMean     = 94, ///< local chi2-X per Ch: mean
119     kESDLocalChi2YPerChMean     = 95, ///< local chi2-Y per Ch: mean
120     kESDLocalChi2XPerDEMean     = 96, ///< local chi2-X per DE: mean
121     kESDLocalChi2YPerDEMean     = 97, ///< local chi2-Y per DE: mean
122     kESDLocalChi2InCh           = 98, ///< local chi2-X distribution in chamber i
123     kESDLocalChi2PerChMean      = 108, ///< local chi2 per Ch: mean
124     kESDLocalChi2PerDEMean      = 109, ///< local chi2 per DE: mean
125     
126     kESDThetaX                  = 110, ///< thetaX distribution
127     kESDThetaY                  = 111, ///< thetaY distribution
128     
129     kESDnTotClustersPerCh       = 1000, ///< total number of associated clusters per chamber
130     kESDnTotClustersPerDE       = 1001, ///< total number of associated clusters per DE
131     kESDnTotFullClustersPerDE   = 1002, ///< total number of associated clusters containing pad info per DE
132     kESDSumClusterChargePerDE   = 1003, ///< sum of cluster charge per DE
133     kESDSumClusterSizePerDE     = 1004, ///< sum of cluster size per DE
134     kESDSumResidualXPerDE       = 1005, ///< sum of cluster-track residual-X per DE
135     kESDSumResidualYPerDE       = 1006, ///< sum of cluster-track residual-Y per DE
136     kESDSumResidualX2PerDE      = 1007, ///< sum of cluster-track residual-X**2 per DE
137     kESDSumResidualY2PerDE      = 1008, ///< sum of cluster-track residual-Y**2 per DE
138     kESDSumLocalChi2XPerDE      = 1009, ///< sum of local chi2-X per DE
139     kESDSumLocalChi2YPerDE      = 1010, ///< sum of local chi2-Y per DE
140     kESDSumLocalChi2PerDE       = 1011  ///< sum of local chi2 per DE
141   };
142   
143 private:
144   
145   void InsertTrackerData(Int_t specie, TObjArray** list, TObject* object, 
146                          Int_t indexNumber, Bool_t replace=kFALSE);
147
148 private:
149         AliMUONTrackerQADataMakerRec(const AliMUONTrackerQADataMakerRec& rhs);
150         AliMUONTrackerQADataMakerRec& operator=(const AliMUONTrackerQADataMakerRec& rhs);
151   
152   AliMUONVDigitStore*   fDigitStore; //!< pointer to digits store
153   AliMUONDigitMaker*    fDigitMaker;  //!< pointer to digit maker
154   AliMUONVClusterStore* fClusterStore; //!< pointer to cluster store
155         
156   AliMUONVTrackerDataMaker* fTrackerDataMaker; //!< tracker data accumulation (Raw)
157   
158   AliMUONQAMappingCheck* fMappingCheckRecPoints; //!< mapping cross-checker (RecPoints)
159   
160   AliMUONCalibrationData* fCalibrationData; //!< Used to load Local, Regional and Global masks
161   
162   ClassDef(AliMUONTrackerQADataMakerRec,1)  // MUON Quality assurance data maker
163
164 };
165 #endif