]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONTrackerQADataMakerRec.h
Fixing memory leak
[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
43   /// Empty implementation 
44   void EndOfDetectorCycleDigits(Int_t, TObjArray**) {}
45     
46   virtual void MakeDigits(TTree* dig); 
47   virtual void MakeESDs(AliESDEvent* esd) ;
48   virtual void MakeRaws(AliRawReader* rawReader); 
49   virtual void MakeRecPoints(TTree* recpo); 
50   
51 public:
52
53   /// Raw histograms indices
54   enum ERaw { 
55     kTrackerData              = 3,  ///< Accumulated data
56     kTrackerBusPatchOccupancy = 4, ///< Bus patch occupancies
57     kTrackerBusPatchNofPads   = 5, ///< Number of pads per bus patch
58     kTrackerBusPatchNofManus  = 6, ///< Number of manus per bus patch
59     kTrackerBusPatchConfig    = 7 ///< Configuration of the tracker
60   };
61          
62   /// Rec points histograms indices
63   enum ERecPoints { 
64     kTrackerNumberOfClustersPerChamber    = 100, ///< Tracker: number of clusters per chamber
65     kTrackerClusterMultiplicityPerChMean  = 101, ///< cluster size per Ch: mean
66     kTrackerClusterMultiplicityPerChSigma = 102, ///< cluster size per Ch: dispersion
67     kTrackerClusterChargePerChMean        = 103, ///< cluster charge per Ch: mean
68     kTrackerClusterChargePerChSigma       = 104, ///< cluster charge per Ch: dispersion
69
70     kTrackerRecPoints = 105, ///< Tracker : tracker data of clusters (all and mono-cathode ones)
71
72     kTrackerClusterMultiplicityPerChamber = 200, ///< Tracker: cluster multiplicity per chamber
73     kTrackerClusterChargePerChamber       = 300, ///< Tracker: cluster charge per chamber
74     kTrackerClusterHitMapPerChamber       = 400, ///< Tracker: cluster position distribution per chamber
75     
76     kTrackerNumberOfClustersPerDE        = 1000, ///< Tracker : number of clusters per DE               
77     kTrackerClusterMultiplicityPerDEMean = 1001, ///< cluster size per DE: mean
78     kTrackerClusterChargePerDEMean       = 1002, ///< cluster charge per DE: mean
79     
80     kTrackerClusterMultiplicityPerDE = 3000, ///< Tracker : cluster multiplicity per DE         
81     kTrackerClusterChargePerDE       = 5000  ///< Tracker : cluster charge per DE
82     
83   };
84   
85   /// ESD histograms indices
86   enum EESD { 
87     kESDnTracks                 = 0,  ///< number of tracks
88     kESDMatchTrig               = 1,  ///< number of tracks matched with trigger
89     kESDMomentum                = 2,  ///< P distribution
90     kESDPt                      = 3,  ///< Pt distribution
91     kESDRapidity                = 4,  ///< rapidity distribution
92     kESDChi2                    = 5,  ///< normalized chi2 distribution
93     kESDProbChi2                = 6,  ///< distribution of probability of chi2
94     
95     kESDClusterHitMap           = 7,  ///< cluster position distribution in chamber i
96     kESDnClustersPerTrack       = 17, ///< number of clusters per track
97     kESDnClustersPerCh          = 18, ///< number of clusters per chamber per track
98     kESDnClustersPerDE          = 19, ///< number of clusters per DE per track
99     kESDClusterChargeInCh       = 20, ///< cluster charge distribution in chamber i
100     kESDClusterChargePerChMean  = 30, ///< cluster charge per Ch: mean
101     kESDClusterChargePerChSigma = 31, ///< cluster charge per Ch: dispersion
102     kESDClusterChargePerDE      = 32, ///< cluster charge per DE: mean
103     kESDClusterSizeInCh         = 33, ///< cluster size distribution in chamber i
104     kESDClusterSizePerChMean    = 43, ///< cluster size per Ch: mean
105     kESDClusterSizePerChSigma   = 44, ///< cluster size per Ch: dispersion
106     kESDClusterSizePerDE        = 45, ///< cluster size per DE: mean
107     
108     kESDResidualXInCh           = 46, ///< cluster-track residual-X distribution in chamber i
109     kESDResidualYInCh           = 56, ///< cluster-track residual-Y distribution in chamber i
110     kESDResidualXPerChMean      = 66, ///< cluster-track residual-X per Ch: mean
111     kESDResidualYPerChMean      = 67, ///< cluster-track residual-Y per Ch: mean
112     kESDResidualXPerChSigma     = 68, ///< cluster-track residual-X per Ch: dispersion
113     kESDResidualYPerChSigma     = 69, ///< cluster-track residual-Y per Ch: dispersion
114     kESDResidualXPerDEMean      = 70, ///< cluster-track residual-X per DE: mean
115     kESDResidualYPerDEMean      = 71, ///< cluster-track residual-Y per DE: mean
116     kESDResidualXPerDESigma     = 72, ///< cluster-track residual-X per DE: dispersion
117     kESDResidualYPerDESigma     = 73, ///< cluster-track residual-Y per DE: dispersion
118     kESDLocalChi2XInCh          = 74, ///< local chi2-X distribution in chamber i
119     kESDLocalChi2YInCh          = 84, ///< local chi2-Y distribution in chamber i
120     kESDLocalChi2XPerChMean     = 94, ///< local chi2-X per Ch: mean
121     kESDLocalChi2YPerChMean     = 95, ///< local chi2-Y per Ch: mean
122     kESDLocalChi2XPerDEMean     = 96, ///< local chi2-X per DE: mean
123     kESDLocalChi2YPerDEMean     = 97, ///< local chi2-Y per DE: mean
124     kESDLocalChi2InCh           = 98, ///< local chi2-X distribution in chamber i
125     kESDLocalChi2PerChMean      = 108, ///< local chi2 per Ch: mean
126     kESDLocalChi2PerDEMean      = 109, ///< local chi2 per DE: mean
127     
128     kESDThetaX                  = 110, ///< thetaX distribution
129     kESDThetaY                  = 111, ///< thetaY distribution
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-Y per DE
142     kESDSumLocalChi2PerDE       = 1011  ///< sum of local chi2 per DE
143   };
144   
145 private:
146   
147   void InsertTrackerData(Int_t specie, TObjArray** list, TObject* object, 
148                          Int_t indexNumber, Bool_t replace=kFALSE);
149
150 private:
151   /// Not implemented
152   AliMUONTrackerQADataMakerRec(const AliMUONTrackerQADataMakerRec& rhs);
153   /// Not implemented
154   AliMUONTrackerQADataMakerRec& operator=(const AliMUONTrackerQADataMakerRec& rhs);
155   
156   AliMUONVDigitStore*   fDigitStore; //!< pointer to digits store
157   AliMUONDigitMaker*    fDigitMaker;  //!< pointer to digit maker
158   AliMUONVClusterStore* fClusterStore; //!< pointer to cluster store
159         
160   AliMUONVTrackerDataMaker* fTrackerDataMaker; //!< tracker data accumulation (Raw)
161   
162   AliMUONQAMappingCheck* fMappingCheckRecPoints; //!< mapping cross-checker (RecPoints)
163   
164   AliMUONCalibrationData* fCalibrationData; //!< Used to load Local, Regional and Global masks
165   
166   ClassDef(AliMUONTrackerQADataMakerRec,1)  // MUON Quality assurance data maker
167
168 };
169 #endif