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 */
9 /// \class AliMUONQADataMakerRec
10 /// \brief MUON Quality assurance data maker
13 // --- AliRoot header files ---
14 #include "AliQADataMakerRec.h"
15 #include "AliMUONRecoParam.h"
17 class AliMUONDigitMaker;
18 class AliMUONVDigitStore;
19 class AliMUONVTriggerStore;
20 class AliMUONVClusterStore;
21 class AliMUONVTrackerDataMaker;
23 class AliMUONQADataMakerRec: public AliQADataMakerRec {
26 AliMUONQADataMakerRec();
27 AliMUONQADataMakerRec(const AliMUONQADataMakerRec& qadm);
28 AliMUONQADataMakerRec& operator=(const AliMUONQADataMakerRec& qadm);
29 virtual ~AliMUONQADataMakerRec();
32 /// Raw histograms indices
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
41 /// Rec points histograms indices
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
53 kTrackerNumberOfClustersPerChamber = 100, ///< Tracker: # of clusters per chamber
54 kTrackerClusterMultiplicityPerChamber = 200, ///< Tracker: cluster multiplicity per chamber
55 kTrackerClusterChargePerChamber = 300, ///< Tracker: cluster charge per chamber
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
62 /// ESD histograms indices
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
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
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
94 virtual void StartOfDetectorCycle();
96 virtual void InitRaws();
97 virtual void InitRecPoints();
98 virtual void InitESDs();
100 virtual void MakeRaws(AliRawReader* rawReader);
101 virtual void MakeRecPoints(TTree* recpo);
102 virtual void MakeESDs(AliESDEvent* esd) ;
104 virtual void DefaultEndOfDetectorCycle(AliQA::TASKINDEX_t) {}
106 virtual void EndOfDetectorCycle(AliQA::TASKINDEX_t task, TObjArray** list);
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);
120 const AliMUONRecoParam* GetRecoParam() const { return dynamic_cast<const AliMUONRecoParam *>(fRecoParam); }
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
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
132 AliMUONVTrackerDataMaker* fTrackerDataMaker; //!< tracker data accumulation
134 ClassDef(AliMUONQADataMakerRec,4) // MUON Quality assurance data maker