]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONQADataMakerRec.h
Added missing QA histograms for ESD
[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 AliMUONVTrackerDataMaker;
22
23 class AliMUONQADataMakerRec: public AliQADataMakerRec {
24
25 public:
26   AliMUONQADataMakerRec();         
27   AliMUONQADataMakerRec(const AliMUONQADataMakerRec& qadm);   
28   AliMUONQADataMakerRec& operator=(const AliMUONQADataMakerRec& qadm);
29   virtual ~AliMUONQADataMakerRec();
30   
31 private:
32   /// Raw histograms indices
33   enum ERaw { 
34     kTrackerData           = 3,  ///< Accumulated data
35     kTriggerScalersBP      = 22, ///< Trigger scalers on BP histogram per chamber index
36     kTriggerScalersNBP     = 23, ///< Trigger scalers on NBP histogram per chamber index
37     kTriggerScalersDisplay = 24  ///< Trigger scalers display histogram per chamber index
38   };
39          
40   /// Rec points histograms indices
41   enum ERecPoints { 
42     kTriggerDigitsBendPlane    = 0,  ///< Trigger digits on BP histogram index
43     kTriggerDigitsNonBendPlane = 1,  ///< Trigger digits on NBP histogram index
44     kTriggeredBoards           = 2,  ///< Triggered boards histogram index
45     kTriggerDigitsDisplay      = 3,  ///< Trigger digits display histogram per plane index
46     kTriggerBoardsDisplay      = 11, ///< Triggered boards display histogram index
47     
48     kTrackerNumberOfClustersPerChamber    = 100, ///< Tracker: # of clusters per chamber
49     kTrackerClusterMultiplicityPerChamber = 200, ///< Tracker: cluster multiplicity per chamber
50     kTrackerClusterChargePerChamber       = 300, ///< Tracker: cluster charge per chamber
51                                 
52     kTrackerNumberOfClustersPerDE    = 1000, ///< Tracker : number of clusters per DE           
53     kTrackerClusterMultiplicityPerDE = 3000, ///< Tracker : cluster multiplicity per DE         
54     kTrackerClusterChargePerDE       = 5000  ///< Tracker : cluster charge per DE
55   };
56   
57   /// ESD histograms indices
58   enum EESD { 
59     kESDnTracks             = 0,  ///< number of tracks
60     kESDMatchTrig           = 1,  ///< number of tracks matched with trigger
61     kESDMomentum            = 2,  ///< P distribution
62     kESDPt                  = 3,  ///< Pt distribution
63     kESDRapidity            = 4,  ///< rapidity distribution
64     kESDChi2                = 5,  ///< normalized chi2 distribution
65     
66     kESDClusterHitMap       = 6,  ///< cluster position distribution in chamber i
67     kESDnClustersPerTrack   = 16, ///< number of clusters per track
68     kESDnClustersPerCh      = 17, ///< number of clusters per chamber
69     kESDnClustersPerDE      = 18, ///< number of clusters per DE
70     kESDClusterCharge       = 19, ///< cluster charge distribution
71     kESDClusterChargeInCh   = 20, ///< cluster charge distribution in chamber i
72     kESDClusterChargePerDE  = 30, ///< cluster charge per DE: mean +- dispersion
73     kESDClusterMult         = 31, ///< cluster multiplicity distribution
74     kESDClusterMultInCh     = 32, ///< cluster multiplicity distribution in chamber i
75     kESDClusterMultPerDE    = 42, ///< cluster multiplicity per DE: mean +- dispersion
76     
77     kESDResidualX           = 43, ///< cluster-track residual-X distribution
78     kESDResidualY           = 44, ///< cluster-track residual-Y distribution
79     kESDResidualXInCh       = 45, ///< cluster-track residual-X distribution in chamber i
80     kESDResidualYInCh       = 55, ///< cluster-track residual-Y distribution in chamber i
81     kESDResidualXPerDEMean  = 65, ///< cluster-track residual-X per DE: mean
82     kESDResidualYPerDEMean  = 66, ///< cluster-track residual-Y per DE: mean
83     kESDResidualXPerDESigma = 67, ///< cluster-track residual-X per DE: sigma
84     kESDResidualYPerDESigma = 68  ///< cluster-track residual-Y per DE: sigma
85   };
86
87 protected:
88         
89   virtual void StartOfDetectorCycle(); 
90
91   virtual void InitRaws(); 
92   virtual void InitRecPoints(); 
93   virtual void InitESDs(); 
94   
95   virtual void MakeRaws(AliRawReader* rawReader); 
96   virtual void MakeRecPoints(TTree* recpo); 
97   virtual void MakeESDs(AliESDEvent* esd) ;
98   
99   virtual void DefaultEndOfDetectorCycle(AliQA::TASKINDEX_t) {}
100
101         virtual void EndOfDetectorCycle(AliQA::TASKINDEX_t task, TObjArray* list);
102
103 private:
104         
105         void Ctor();
106   void DisplayTriggerInfo(AliQA::TASKINDEX_t task);
107         void InitRecPointsTracker();
108         void InitRecPointsTrigger();
109         void MakeRawsTracker(AliRawReader* rawReader);
110         void MakeRawsTrigger(AliRawReader* rawReader);
111   void MakeRecPointsTracker(TTree* treeR);
112   void MakeRecPointsTrigger(TTree* treeR);
113         
114   const AliMUONRecoParam* GetRecoParam() const { return dynamic_cast<const AliMUONRecoParam *>(fRecoParam); }
115   
116   Bool_t  fIsInitRaws;       //!<  info if InitRaws() went ok
117   Bool_t  fIsInitRecPointsTracker;  //!<  info if InitRecPoints() went ok
118   Bool_t  fIsInitRecPointsTrigger;  //!<  info if InitRecPoints() went ok
119   Bool_t  fIsInitESDs;       //!<  info if InitESDs() went ok
120   
121   AliMUONVDigitStore*   fDigitStore; //!< pointer to digits store
122   AliMUONVTriggerStore* fTriggerStore; //!< pointer to trigger store
123   AliMUONDigitMaker*    fDigitMaker;  //!< pointer to digit maker
124   AliMUONVClusterStore* fClusterStore; //!< pointer to cluster store
125         
126   AliMUONVTrackerDataMaker* fTrackerDataMaker; //!< tracker data accumulation
127         
128   ClassDef(AliMUONQADataMakerRec,4)  // MUON Quality assurance data maker
129
130 };
131 #endif