]>
Commit | Line | Data |
---|---|---|
6eebc585 | 1 | #ifndef ALIANALYSISTASKNORM_H |
2 | #define ALIANALYSISTASKNORM_H | |
3 | ||
4 | /* $Id$ */ | |
5 | // | |
6 | // AliAnalysisTaskNorm | |
7 | // Analysis task for muon trigger normalization | |
8 | // | |
9 | // author: C. Hadjidakis | |
10 | // | |
11 | ||
12 | #ifndef ALIANALYSISTASKSE_H | |
13 | # include "AliAnalysisTaskSE.h" | |
14 | #endif | |
15 | ||
16 | class AliCounterCollection; | |
17 | class AliMuonEventCuts; | |
18 | class AliVEvent; | |
19 | ||
20 | class AliAnalysisTaskNorm : public AliAnalysisTaskSE | |
21 | { | |
22 | public: | |
23 | ||
24 | AliAnalysisTaskNorm(const char *name = "<default name>"); | |
25 | virtual ~AliAnalysisTaskNorm(); | |
26 | ||
27 | virtual void Print(Option_t *opt="") const; | |
28 | void Print(TObjArray *obj) const; | |
29 | virtual void Terminate(Option_t *); | |
30 | virtual void UserCreateOutputObjects(); | |
31 | virtual void UserExec(Option_t* opt); | |
32 | ||
33 | // | |
34 | static Bool_t IsAODEvent( const AliVEvent *event); | |
35 | static TString GetFiredTriggerClasses( const AliVEvent *event); | |
36 | ||
37 | //build list of counters | |
38 | TList *BuildListOfNormFactor(const TObjArray*); | |
39 | TList *BuildListOfTrigger(const TObjArray*); | |
40 | TList *BuildListOfCentrality(AliCentrality *centrality); | |
41 | TList *BuildListOfPileUp( const AliVEvent *event); | |
42 | TList *BuildListOfTracklets( const AliVEvent *event); | |
43 | TList *BuildListOfV0AMult( const AliVEvent *event); | |
44 | ||
45 | //fill histograms | |
46 | void FillHistoPileUpVertices( const AliVEvent *event, const TObjArray*); | |
47 | void FillHistoMult( const AliVEvent *event, const TObjArray*); | |
48 | ||
49 | Bool_t CheckPattern(TString, TObjArray*, TObjArray*); | |
50 | TObjArray *BuildArrayOfTrigger(const TObjArray*, TString keepPattern="", TString rejectPattern="OTHER,TRUE,PHI,ANY,EMC,-ACE-,-ABCE-,WU,MUP,SPI,SHM"); | |
51 | // | |
52 | Bool_t IsPileupFromSPDInMultBins(const AliVEvent *event) const; | |
53 | ||
54 | TString GetOCDBPath() {return "raw://";}; // OCDB to be used (raw:// by default) | |
55 | ||
56 | //Fill object methods | |
57 | void FillEventCounters(Int_t, TList*,TList*,TList*,TList*,TList*,TList*,Bool_t,Bool_t,TString,Bool_t); | |
58 | ||
59 | // | |
60 | AliMuonEventCuts* GetMuonEventCuts() { return fMuonEventCuts;} | |
61 | void SetIsMC(Bool_t isMC) { fIsMC = isMC;}; | |
62 | void SetIsESD(Bool_t isESD) { fIsESD = isESD;}; | |
63 | void SetBeamConf(TString sBeamConf) { fBeamConf = sBeamConf;}; | |
64 | ||
65 | private: | |
66 | ||
67 | enum eListV0A { | |
68 | kV0AMB = 0, ///<V0A mult for CINT7 trigger | |
69 | kV0AMUL = 1, ///<V0A mult for CMUL7 trigger | |
70 | kV0AMultvsCentMB = 2, ///<V0A mult vs centrality for CMUL7 trigger | |
71 | kV0ACentvsV0CCentMUL = 3, ///<V0A vs V0C centrality for CMUL7 trigger | |
72 | kV0ACentvsCL1CentMUL = 4, ///<V0A vs CL1 centrality for CMUL7 trigger | |
73 | kV0ACentvsV0CCentMB = 5, ///<V0A vs V0C centrality for CINT7 trigger | |
74 | kV0ACentvsCL1CentMB = 6, ///<V0A vs CL1 centrality for CINT7 trigger | |
75 | kV0CCentvsCL1CentMB = 7, ///<V0A vs CL1 centrality for CINT7 trigger | |
76 | kV0ACentMB = 8, ///<V0A centrality for CINT7 trigger | |
77 | kV0ACentMUL = 9 ///<V0A centrality for CMUL7 trigger | |
78 | }; | |
79 | ||
80 | enum eListZN { | |
81 | kZNMB = 0, ///<ZN energy for CINT7 trigger | |
82 | kZNMUL = 1, ///<ZN energy for CMUL7 trigger | |
83 | kZNCentMB = 2, ///<ZN cent for CINT7 trigger | |
84 | kZNCentMUL = 3, ///<ZN cent for CMUL7 trigger | |
85 | kZNMultvsCentMB = 4 ///<ZN mult vs centrality for CINT7 trigger | |
86 | }; | |
87 | ||
88 | enum eListVertex { | |
89 | kVZMB = 0, ///< primary vertex Z | |
90 | kVnCMB = 1, ///<primary vertex nContributors | |
91 | kPileupVZMB = 2, ///< pileup vertices Z | |
92 | kPileupnCMB = 3, ///< pileup nContributors | |
93 | kVZMUL = 4, ///< primary vertex Z | |
94 | kVnCMUL = 5, ///<primary vertex nContributors | |
95 | kPileupVZMUL = 6, ///< pileup vertices Z | |
96 | kPileupnCMUL = 7, ///< pileup nContributors | |
97 | kDeltaZMB = 8,///<distrance between primary and pileupvertices | |
98 | kDeltaZMUL = 9,///<distrance between primary and pileupvertices | |
99 | kNPileupMB = 10,///<number of pileupvertices | |
100 | kNPileupMUL = 11///<number of pileupvertices | |
101 | }; | |
102 | ||
103 | AliCounterCollection *fRunCounters;//! run counters | |
104 | AliCounterCollection *fEventCounters;//! event counters | |
105 | TObjArray *fListVertex; //!list of objects vertex related | |
106 | TObjArray *fListV0A; //!list of objects V0A related | |
107 | TObjArray *fListZN; //!list of objects ZN related | |
108 | Bool_t fIsESD; //ESD or AOD | |
109 | Bool_t fIsMC; //MC or data | |
110 | TString fBeamConf; //Beam configuration (p-Pb,Pb-p) | |
111 | AliMuonEventCuts *fMuonEventCuts; // cuts for muon events | |
112 | ||
113 | TObjArray *fSCentEst; // array of centrality estimators | |
114 | TArrayI fCentBin; //centrality range for event counters | |
115 | TObjArray *fSCentBin; // array of centrality bins | |
116 | TArrayI fTrackletsBin; //ntracklets range for event counters | |
117 | TObjArray *fSTrackletsBin; //array of ntracklets bins | |
118 | TArrayI fV0AMultBin; //V0Amult range for event counters | |
119 | TObjArray *fSV0AMultBin; //array of V0Amult bins | |
120 | ||
121 | AliAnalysisTaskNorm(const AliAnalysisTaskNorm&);// not implemented | |
122 | AliAnalysisTaskNorm& operator=(const AliAnalysisTaskNorm&); //not implemented; | |
123 | ||
124 | ClassDef(AliAnalysisTaskNorm,4); | |
125 | ||
126 | }; | |
127 | ||
128 | #endif |