]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/muon/AliAnalysisTaskMuonQA.h
Fixing warnigs (Philippe P.)
[u/mrichter/AliRoot.git] / PWG3 / muon / AliAnalysisTaskMuonQA.h
CommitLineData
94ef1a28 1#ifndef ALIANALYSISTASKMUONQA_H
2#define ALIANALYSISTASKMUONQA_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/// \ingroup muondep
7/// \class AliAnalysisTaskMuonQA
8/// \brief Quality assurance of MUON ESDs
9//Author: Philippe Pillot - SUBATECH Nantes
10
03ac5989 11class TMap;
12class TList;
94ef1a28 13class TObjArray;
14class AliCounterCollection;
15
16class AliAnalysisTaskMuonQA : public AliAnalysisTaskSE {
17public:
18
40be9f05 19 AliAnalysisTaskMuonQA();
20 AliAnalysisTaskMuonQA(const char *name);
94ef1a28 21 virtual ~AliAnalysisTaskMuonQA();
22
23 virtual void UserCreateOutputObjects();
24 virtual void UserExec(Option_t *);
25 virtual void Terminate(Option_t *);
26
b4f7418a 27 /// Select negative (<0), positive (>0) or all (==0) tracks to fill histograms
94ef1a28 28 void SelectCharge(Short_t charge = 0) {fSelectCharge = charge;}
b4f7418a 29
30 /// Select events passing the physics selection to fill histograms
94ef1a28 31 void SelectPhysics(Bool_t flag = kTRUE) {fSelectPhysics = flag;}
32
03ac5989 33 /// Select events belonging to at least one of the trigger classes selected by the mask to fill histograms:
34 /// - if the physics selection is used, apply the mask to the trigger word returned by the physics selection
35 /// - if not, apply the mask to the trigger word built by looking for triggers listed in "fSelectTriggerClass"
36 void SelectTrigger(Bool_t flag = kTRUE, UInt_t mask = AliVEvent::kMUON) {fSelectTrigger = flag; fTriggerMask = mask;}
b4f7418a 37
76e3d5d4 38 /// Select track matching the trigger to fill histograms
39 void SelectMatched(Bool_t flag = kTRUE) {fSelectMatched = flag;}
40
94ef1a28 41private:
42
43 /// Not implemented
44 AliAnalysisTaskMuonQA(const AliAnalysisTaskMuonQA& rhs);
45 /// Not implemented
46 AliAnalysisTaskMuonQA& operator = (const AliAnalysisTaskMuonQA& rhs);
47
48 Double_t ChangeThetaRange(Double_t theta);
49
03ac5989 50 UInt_t BuildTriggerWord(TString& FiredTriggerClasses);
51
52 TList* BuildListOfTriggerCases(TString& FiredTriggerClasses);
53
94ef1a28 54private:
55
03ac5989 56 enum eList {
94ef1a28 57 kNTracks = 0, ///< number of tracks
58 kMatchTrig = 1, ///< number of tracks matched with trigger
59 kSign = 2, ///< track sign
60 kDCA = 3, ///< DCA distribution
61 kP = 4, ///< P distribution
03ac5989 62 kPMuPlus = 5, ///< P distribution of mu+
63 kPMuMinus = 6, ///< P distribution of mu-
64 kPt = 7, ///< Pt distribution
65 kPtMuPlus = 8, ///< Pt distribution of mu+
66 kPtMuMinus = 9, ///< Pt distribution of mu-
67 kRapidity = 10, ///< rapidity distribution
68 kThetaX = 11, ///< thetaX distribution
69 kThetaY = 12, ///< thetaY distribution
70 kChi2 = 13, ///< normalized chi2 distribution
71 kProbChi2 = 14, ///< distribution of probability of chi2
72 kNClustersPerTrack = 15, ///< number of clusters per track
73 kNChamberHitPerTrack = 16 ///< number of chamber hit per track
74 };
75
76 enum eListExpert {
77 kNClustersPerCh = 0, ///< number of clusters per chamber
78 kNClustersPerDE = 1, ///< number of clusters per DE
79 kClusterHitMapInCh = 2, ///< cluster position distribution in chamber i
80 kClusterChargeInCh = 12, ///< cluster charge distribution in chamber i
81 kClusterChargePerDE = 22, ///< cluster charge distribution per DE
82 kClusterSizeInCh = 23, ///< cluster size distribution in chamber i
83 kClusterSizePerDE = 33 ///< cluster size distribution per DE
84 };
85
86 enum eListNorm {
87 kClusterChargePerChMean = 0, ///< cluster charge per Ch: mean
88 kClusterChargePerChSigma = 1, ///< cluster charge per Ch: dispersion
89 kClusterChargePerDEMean = 2, ///< cluster charge per DE: mean
90 kClusterChargePerDESigma = 3, ///< cluster charge per DE: dispersion
91 kClusterSizePerChMean = 4, ///< cluster size per Ch: mean
92 kClusterSizePerChSigma = 5, ///< cluster size per Ch: dispersion
93 kClusterSizePerDEMean = 6, ///< cluster size per DE: mean
94 kClusterSizePerDESigma = 7, ///< cluster size per DE: dispersion
95 kNClustersPerChPerTrack = 8, ///< number of clusters per chamber per track
96 kNClustersPerDEPerTrack = 9 ///< number of clusters per DE per track
94ef1a28 97 };
98
99 TObjArray* fList; //!< List of output object for everybody
100 TObjArray* fListExpert; //!< List of output object for experts
40be9f05 101 TObjArray* fListNorm; //!< Normalized histograms
94ef1a28 102
103 AliCounterCollection* fTrackCounters; //!< track statistics
104 AliCounterCollection* fEventCounters; //!< event statistics
105
106 Short_t fSelectCharge; ///< Fill histograms only with negative/position tracks (0=all)
76e3d5d4 107 Bool_t fSelectPhysics; ///< Fill histograms only with events passing the physics selection
108 Bool_t fSelectTrigger; ///< Fill histograms only with events passing the trigger selection
109 UInt_t fTriggerMask; ///< Trigger mask to be used when selecting events
110 Bool_t fSelectMatched; ///< Fill histograms only with tracks matching the trigger
03ac5989 111
112 TMap* fTriggerClass; //!< map of trigger class name associated to short name
113 TList* fSelectTriggerClass; //!< list of trigger class that can be selected to fill histograms
94ef1a28 114
115 static const Int_t nCh; ///< number of tracking chambers
116 static const Int_t nDE; ///< number of DE
117 static const Float_t dMax[5]; ///< maximum diameter of each station
94ef1a28 118
76e3d5d4 119 ClassDef(AliAnalysisTaskMuonQA, 5);
94ef1a28 120};
121
122#endif
123