]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/muon/AliAnalysisTaskNorm.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / muon / AliAnalysisTaskNorm.h
CommitLineData
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
16class AliCounterCollection;
17class AliMuonEventCuts;
18class AliVEvent;
19
20class 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