]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONQADataMakerRec.h
mixing example
[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 class AliMUONDigitMaker;
15 class AliMUONVDigitStore;
16 class AliMUONVTriggerStore;
17 class AliMUONVClusterStore;
18
19 #include "AliQADataMakerRec.h"
20 #include "AliMUONRecoParam.h"
21
22 class AliMUONVTrackerDataMaker;
23 class AliMUONRecoParam;
24
25 class AliMUONQADataMakerRec: public AliQADataMakerRec {
26
27 public:
28   AliMUONQADataMakerRec();         
29   AliMUONQADataMakerRec(const AliMUONQADataMakerRec& qadm);   
30   AliMUONQADataMakerRec& operator=(const AliMUONQADataMakerRec& qadm);
31   virtual ~AliMUONQADataMakerRec();
32   
33 private:
34   /// Raw histograms indices
35   enum ERaw { 
36                 kTrackerData           = 3,   ///< Accumulated data
37     kTriggerScalersBP      = 22,  ///< Trigger scalers on BP histogram per chamber index
38     kTriggerScalersNBP     = 23,  ///< Trigger scalers on NBP histogram per chamber index
39     kTriggerScalersDisplay = 24   ///< Trigger scalers display histogram per chamber index
40   };
41          
42   /// Rec points histograms indices
43   enum ERecPoints { 
44     
45                 kTriggerDigitsBendPlane    = 0,  ///< Trigger digits on BP histogram index
46     kTriggerDigitsNonBendPlane = 1,  ///< Trigger digits on NBP histogram index
47     kTriggeredBoards           = 2,  ///< Triggered boards histogram index
48     kTriggerDigitsDisplay      = 3,  ///< Trigger digits display histogram per plane index
49     kTriggerBoardsDisplay      = 11,  ///< Triggered boards display histogram index
50
51                 kTrackerNumberOfClustersPerChamber = 100, ///< Tracker: # of clusters per chamber
52                 kTrackerClusterMultiplicityPerChamber = 200, ///< Tracker: cluster multiplicity per chamber
53                 kTrackerClusterChargePerChamber = 300, ///< Tracker: cluster charge per chamber
54                                 
55                 kTrackerNumberOfClustersPerDE    = 1000, ///< Tracker : number of clusters per DE               
56                 kTrackerClusterMultiplicityPerDE = 3000, ///< Tracker : cluster multiplicity per DE             
57                 kTrackerClusterChargePerDE       = 5000 ///< Tracker : cluster charge per DE
58                 
59   };
60           
61   /// ESD histograms indices
62   enum EESD { 
63     kESDnTracks       = 0,  ///< ESD nTrack histogram index
64     kESDMomentum      = 1,  ///< ESD momentum histogram index
65     kESDPt            = 2,  ///< ESD Pt histogram index
66     kESDRapidity      = 3,  ///< ESD Rapidity histogram index
67     kESDClusterHitMap = 4   ///< ESD Cluster hit map histogram index
68   };
69
70 protected:
71         
72   virtual void StartOfDetectorCycle(); 
73
74   virtual void InitRaws(); 
75   virtual void InitRecPoints(); 
76   virtual void InitESDs(); 
77   
78   virtual void MakeRaws(AliRawReader* rawReader); 
79   virtual void MakeRecPoints(TTree* recpo); 
80   virtual void MakeESDs(AliESDEvent* esd) ;
81   
82   virtual void DefaultEndOfDetectorCycle(AliQA::TASKINDEX_t) {}
83
84         virtual void EndOfDetectorCycle(AliQA::TASKINDEX_t task, TObjArray* list);
85
86 private:
87         
88         void Ctor();
89   void DisplayTriggerInfo(AliQA::TASKINDEX_t task);
90         void InitRecPointsTracker();
91         void InitRecPointsTrigger();
92         void MakeRawsTracker(AliRawReader* rawReader);
93         void MakeRawsTrigger(AliRawReader* rawReader);
94   void MakeRecPointsTracker(TTree* treeR);
95   void MakeRecPointsTrigger(TTree* treeR);
96         
97   const AliMUONRecoParam* GetRecoParam() const { return dynamic_cast<const AliMUONRecoParam *>(fRecoParam); }
98   
99   Bool_t  fIsInitRaws;       //!<  info if InitRaws() went ok
100   Bool_t  fIsInitRecPointsTracker;  //!<  info if InitRecPoints() went ok
101   Bool_t  fIsInitRecPointsTrigger;  //!<  info if InitRecPoints() went ok
102   Bool_t  fIsInitESDs;       //!<  info if InitESDs() went ok
103   
104   AliMUONVDigitStore*   fDigitStore; //!< pointer to digits store
105   AliMUONVTriggerStore* fTriggerStore; //!< pointer to trigger store
106   AliMUONDigitMaker*    fDigitMaker;  //!< pointer to digit maker
107   AliMUONVClusterStore* fClusterStore; //!< pointer to cluster store
108         
109   AliMUONVTrackerDataMaker* fTrackerDataMaker; //!< tracker data accumulation
110         
111   ClassDef(AliMUONQADataMakerRec,4)  // MUON Quality assurance data maker
112
113 };
114 #endif