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