]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONQADataMakerRec.h
In AliMUONQADataMakerRec:
[u/mrichter/AliRoot.git] / MUON / AliMUONQADataMakerRec.h
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                               */
5
6 // $Id$
7
8 /// \ingroup rec
9 /// \class AliMUONQADataMakerRec
10 /// \brief MUON Quality assurance data maker
11 ///
12
13 // --- AliRoot header files ---
14 #include "AliQADataMakerRec.h"
15 #include "AliMUONRecoParam.h"
16
17 class AliMUONDigitMaker;
18 class AliMUONVDigitStore;
19 class AliMUONVTriggerStore;
20 class AliMUONVClusterStore;
21 class AliMUONVTrackerData;
22 class AliMUONVTrackerDataMaker;
23
24 class AliMUONQADataMakerRec: public AliQADataMakerRec {
25
26 public:
27   AliMUONQADataMakerRec();         
28   AliMUONQADataMakerRec(const AliMUONQADataMakerRec& qadm);   
29   AliMUONQADataMakerRec& operator=(const AliMUONQADataMakerRec& qadm);
30   virtual ~AliMUONQADataMakerRec();
31   
32   AliMUONVTrackerData* GetTrackerData() const;
33   
34 protected:
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   
46   virtual void DefaultEndOfDetectorCycle(AliQA::TASKINDEX_t) {}
47
48   virtual void EndOfDetectorCycle(AliQA::TASKINDEX_t task, TObjArray** list);
49
50 private:
51   /// Raw histograms indices
52   enum ERaw { 
53     kTrackerData           = 3,  ///< Accumulated data
54     kTrackerBusPatchOccupancy = 4, ///< Bus patch occupancies
55     kTriggerScalersBP      = 22, ///< Trigger scalers on BP histogram per chamber index
56     kTriggerScalersNBP     = 23, ///< Trigger scalers on NBP histogram per chamber index
57     kTriggerScalersDisplay = 24, ///< Trigger scalers display histogram per chamber index
58     kTriggerScalersTime    = 32  ///< Trigger scalers acquisition time index
59   };
60          
61   /// Rec points histograms indices
62   enum ERecPoints { 
63     kTriggerDigitsBendPlane    = 0,  ///< Trigger digits on BP histogram index
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
67     kTriggerBoardsDisplay      = 11, ///< Triggered boards display histogram index
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
72     
73     kTrackerNumberOfClustersPerChamber    = 100, ///< Tracker: # of clusters per chamber
74     kTrackerClusterMultiplicityPerChamber = 200, ///< Tracker: cluster multiplicity per chamber
75     kTrackerClusterChargePerChamber       = 300, ///< Tracker: cluster charge per chamber
76                                 
77     kTrackerNumberOfClustersPerDE    = 1000, ///< Tracker : number of clusters per DE           
78     kTrackerClusterMultiplicityPerDE = 3000, ///< Tracker : cluster multiplicity per DE         
79     kTrackerClusterChargePerDE       = 5000  ///< Tracker : cluster charge per DE
80   };
81   
82   /// ESD histograms indices
83   enum EESD { 
84     kESDnTracks                 = 0,  ///< number of tracks
85     kESDMatchTrig               = 1,  ///< number of tracks matched with trigger
86     kESDMomentum                = 2,  ///< P distribution
87     kESDPt                      = 3,  ///< Pt distribution
88     kESDRapidity                = 4,  ///< rapidity distribution
89     kESDChi2                    = 5,  ///< normalized chi2 distribution
90     kESDProbChi2                = 6,  ///< distribution of probability of chi2
91     
92     kESDClusterHitMap           = 7,  ///< cluster position distribution in chamber i
93     kESDnClustersPerTrack       = 17, ///< number of clusters per track
94     kESDnClustersPerCh          = 18, ///< number of clusters per chamber per track
95     kESDnClustersPerDE          = 19, ///< number of clusters per DE per track
96     kESDClusterChargeInCh       = 20, ///< cluster charge distribution in chamber i
97     kESDClusterChargePerChMean  = 30, ///< cluster charge per Ch: mean
98     kESDClusterChargePerChSigma = 31, ///< cluster charge per Ch: dispersion
99     kESDClusterChargePerDE      = 32, ///< cluster charge per DE: mean
100     kESDClusterSizeInCh         = 33, ///< cluster size distribution in chamber i
101     kESDClusterSizePerChMean    = 43, ///< cluster size per Ch: mean
102     kESDClusterSizePerChSigma   = 44, ///< cluster size per Ch: dispersion
103     kESDClusterSizePerDE        = 45, ///< cluster size per DE: mean
104     
105     kESDResidualXInCh           = 46, ///< cluster-track residual-X distribution in chamber i
106     kESDResidualYInCh           = 56, ///< cluster-track residual-Y distribution in chamber i
107     kESDResidualXPerChMean      = 66, ///< cluster-track residual-X per Ch: mean
108     kESDResidualYPerChMean      = 67, ///< cluster-track residual-Y per Ch: mean
109     kESDResidualXPerChSigma     = 68, ///< cluster-track residual-X per Ch: dispersion
110     kESDResidualYPerChSigma     = 69, ///< cluster-track residual-Y per Ch: dispersion
111     kESDResidualXPerDEMean      = 70, ///< cluster-track residual-X per DE: mean
112     kESDResidualYPerDEMean      = 71, ///< cluster-track residual-Y per DE: mean
113     kESDResidualXPerDESigma     = 72, ///< cluster-track residual-X per DE: dispersion
114     kESDResidualYPerDESigma     = 73, ///< cluster-track residual-Y per DE: dispersion
115     kESDLocalChi2XInCh          = 74, ///< local chi2-X distribution in chamber i
116     kESDLocalChi2YInCh          = 84, ///< local chi2-Y distribution in chamber i
117     kESDLocalChi2XPerChMean     = 94, ///< local chi2-X per Ch: mean
118     kESDLocalChi2YPerChMean     = 95, ///< local chi2-Y per Ch: mean
119     kESDLocalChi2XPerDEMean     = 96, ///< local chi2-X per DE: mean
120     kESDLocalChi2YPerDEMean     = 97  ///< local chi2-Y per DE: mean
121   };
122
123 private:
124         
125   void Ctor();
126   void DisplayTriggerInfo(AliQA::TASKINDEX_t task);
127   Bool_t FillTriggerDCSHistos();
128   void InitRecPointsTracker();
129   void InitRecPointsTrigger();
130   void MakeRawsTracker(AliRawReader* rawReader);
131   void MakeRawsTrigger(AliRawReader* rawReader);
132   void MakeRecPointsTracker(TTree* treeR);
133   void MakeRecPointsTrigger(TTree* treeR);
134         
135   /// Return reco parameters
136   const AliMUONRecoParam* GetRecoParam() const { return dynamic_cast<const AliMUONRecoParam *>(fRecoParam); }
137   
138   Bool_t  fIsInitRaws;       //!<  info if InitRaws() went ok
139   Bool_t  fIsInitRecPointsTracker;  //!<  info if InitRecPoints() went ok
140   Bool_t  fIsInitRecPointsTrigger;  //!<  info if InitRecPoints() went ok
141   Bool_t  fIsInitESDs;       //!<  info if InitESDs() went ok
142   
143   AliMUONVDigitStore*   fDigitStore; //!< pointer to digits store
144   AliMUONVTriggerStore* fTriggerStore; //!< pointer to trigger store
145   AliMUONDigitMaker*    fDigitMaker;  //!< pointer to digit maker
146   AliMUONVClusterStore* fClusterStore; //!< pointer to cluster store
147         
148   AliMUONVTrackerDataMaker* fTrackerDataMaker; //!< tracker data accumulation
149   
150   TH1F* fhESDnTotClustersPerCh;      //!< total number of associated clusters per chamber
151   TH1F* fhESDnTotClustersPerDE;      //!< total number of associated clusters per DE
152   TH1F* fhESDnTotFullClustersPerDE;  //!< total number of associated clusters containing pad info per DE
153   TH1F* fhESDSumClusterChargePerDE;  //!< sum of cluster charge per DE
154   TH1F* fhESDSumClusterSizePerDE;    //!< sum of cluster size per DE
155   TH1F* fhESDSumResidualXPerDE;      //!< sum of cluster-track residual-X per DE
156   TH1F* fhESDSumResidualYPerDE;      //!< sum of cluster-track residual-Y per DE
157   TH1F* fhESDSumResidualX2PerDE;     //!< sum of cluster-track residual-X**2 per DE
158   TH1F* fhESDSumResidualY2PerDE;     //!< sum of cluster-track residual-Y**2 per DE
159   TH1F* fhESDSumLocalChi2XPerDE;     //!< sum of local chi2-X per DE
160   TH1F* fhESDSumLocalChi2YPerDE;     //!< sum of local chi2-X per DE
161   
162   ClassDef(AliMUONQADataMakerRec,5)  // MUON Quality assurance data maker
163
164 };
165 #endif