]>
Commit | Line | Data |
---|---|---|
bf7b8731 | 1 | #ifndef ALIANALYSISTASKJETSERVICES_H |
2 | #define ALIANALYSISTASKJETSERVICES_H | |
3 | ||
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | // ************************************** | |
8 | // Task used for the correction of determiantion of reconstructed jet spectra | |
9 | // Compares input (gen) and output (rec) jets | |
10 | // ******************************************* | |
11 | ||
12 | #include "AliAnalysisTaskSE.h" | |
13 | #include "THnSparse.h" // cannot forward declare ThnSparseF | |
14 | ||
15 | //////////////// | |
16 | class AliJetHeader; | |
17 | class AliESDEvent; | |
6d597ca2 | 18 | class AliESDVertex; |
bf7b8731 | 19 | class AliAODEvent; |
6d597ca2 | 20 | class AliAODVertex; |
bf7b8731 | 21 | class AliAODJet; |
22 | class AliGenPythiaEventHeader; | |
23 | class AliCFManager; | |
3493c3a9 | 24 | class AliTriggerAnalysis; |
bf7b8731 | 25 | |
26 | class TList; | |
80a790fd | 27 | class TClonesArray; |
bf7b8731 | 28 | class TChain; |
c0997643 | 29 | class TH1F; |
bf7b8731 | 30 | class TH2F; |
31 | class TH3F; | |
32 | class TProfile; | |
1d1b304d | 33 | class TRandom3; |
bf7b8731 | 34 | |
35 | ||
36 | ||
37 | class AliAnalysisTaskJetServices : public AliAnalysisTaskSE | |
38 | { | |
39 | public: | |
40 | AliAnalysisTaskJetServices(); | |
41 | AliAnalysisTaskJetServices(const char* name); | |
80a790fd | 42 | virtual ~AliAnalysisTaskJetServices(); |
bf7b8731 | 43 | // Implementation of interface methods |
44 | virtual void UserCreateOutputObjects(); | |
45 | virtual void Init(); | |
46 | virtual void LocalInit() { Init(); } | |
47 | virtual void UserExec(Option_t *option); | |
48 | virtual void Terminate(Option_t *option); | |
c0997643 | 49 | virtual void SetZVertexCut(Float_t f){fVtxZCut = f;} |
d49d814a | 50 | virtual void SetPtMinCosmic(Float_t ptMin) {fPtMinCosmic = ptMin;} |
51 | virtual void SetRMinCosmic(Float_t rMin) {fRIsolMinCosmic = rMin;} | |
52 | virtual void SetMaxCosmicAngle(Float_t angle) {fMaxCosmicAngle = angle;} | |
bf7b8731 | 53 | virtual Bool_t Notify(); |
54 | ||
55 | virtual void SetAODInput(Bool_t b){fUseAODInput = b;} | |
b5a3f310 | 56 | virtual void SetRunRange(Float_t fLo,Float_t fUp){fRunRange[0] = fLo;fRunRange[1] = fUp;} |
3493c3a9 | 57 | virtual void SetMCData(Bool_t b){fMC = b;} |
cc0649e4 | 58 | virtual void SetUsePhysicsSelection(Bool_t b){fUsePhysicsSelection = b;} |
39e7e8ab | 59 | virtual void SetPhysicsSelectionFlag(Int_t i){fPhysicsSelectionFlag = i;} |
f4132e7d | 60 | virtual void SetFilterAODCollisions(Bool_t b){fFilterAODCollisions = b;} |
61 | ||
62 | virtual void SetNonStdFile(char *c){fNonStdFile = c;} | |
6d597ca2 | 63 | Bool_t IsEventSelected(const AliESDEvent* esd); |
64 | Bool_t IsEventSelected(const AliAODEvent* aod) const; | |
65 | ||
66 | Bool_t IsEventPileUp(const AliESDEvent* esd) const; | |
67 | ||
68 | Bool_t IsEventCosmic(const AliESDEvent* esd) const; | |
bf7b8731 | 69 | |
6d597ca2 | 70 | Bool_t IsVertexValid(const AliESDVertex *vtx); |
71 | Bool_t IsVertexValid(const AliAODVertex *vtx) const; | |
72 | ||
73 | Bool_t IsVertexIn(const AliESDVertex *vtx); | |
74 | Bool_t IsVertexIn(const AliAODVertex *vtx) const; | |
f4132e7d | 75 | Int_t GetEventClass(AliESDEvent *esd); |
ffab794c | 76 | Int_t GetEventClass(AliAODEvent *aod); |
6d597ca2 | 77 | |
40445651 | 78 | |
79 | virtual void SetFilterMask(UInt_t i){fFilterMask = i;} | |
80 | virtual void SetMinTrackPt(Float_t f){fMinTrackPt = f;} | |
81 | virtual void SetTrackEtaWindow(Float_t f){fTrackRecEtaWindow = f;} | |
82 | ||
83 | virtual void SetPhiWeights(TH3F *phiw){fh3PhiWeights = phiw;} | |
84 | virtual void SetFlatteningCoeff(Float_t *fA,Float_t *fB){ | |
85 | fFlatA[0] = fA[0];fFlatA[1] = fA[1]; | |
86 | fFlatA[0] = fB[0];fFlatB[1] = fB[1]; | |
87 | } | |
88 | virtual void SetDeltaQxy(Float_t *fD){ | |
89 | fDeltaQxy[0] = fD[0]; | |
90 | fDeltaQxy[1] = fD[1]; | |
91 | } | |
92 | ||
93 | Bool_t CalculateReactionPlaneAngle(const TList *trackList); | |
94 | Double_t GetPhiWeight(Double_t phi,Double_t signedpt); | |
95 | Int_t GetListOfTracks(TList *list); | |
96 | ||
6d597ca2 | 97 | enum { kAllTriggered = 0,kTriggeredVertex,kTriggeredVertexIn,kSelectedALICE,kSelectedALICEVertexValid,kSelectedALICEVertexIn,kSelected,kConstraints}; |
f2dd0695 | 98 | |
6d597ca2 | 99 | enum { kNoEventCut=1<<0, |
100 | kPhysicsSelectionCut=1<<1, | |
101 | kContributorsCut1=1<<2, | |
102 | kContributorsCut2=1<<3, | |
103 | kContributorsCut3=1<<4, | |
104 | kVertexTPC=1<<5, | |
105 | kVertexSPD=1<<6, | |
106 | kVertexGlobal=1<<7, | |
107 | kSPDDispersionCut=1<<8, | |
108 | kVertexZCut=1<<9, | |
109 | kVertexRCut=1<<10, | |
110 | kTotalEventCuts=(1<<11)-1}; | |
f2dd0695 | 111 | |
bf7b8731 | 112 | private: |
113 | ||
114 | AliAnalysisTaskJetServices(const AliAnalysisTaskJetServices&); | |
115 | AliAnalysisTaskJetServices& operator=(const AliAnalysisTaskJetServices&); | |
116 | ||
117 | Bool_t fUseAODInput; // take jet from input AOD not from ouptu AOD | |
cc0649e4 | 118 | Bool_t fUsePhysicsSelection;// decide wether we take into account physicsselction task |
3493c3a9 | 119 | Bool_t fMC; // true for MC data to allow correct trigger slection |
f4132e7d | 120 | Bool_t fFilterAODCollisions; // filter out collision canditates to the AOD |
39e7e8ab | 121 | UInt_t fPhysicsSelectionFlag; // defines the glag for acceptance of events from physics selection |
d49d814a | 122 | UInt_t fSelectionInfoESD; // slection info bit mask |
6d597ca2 | 123 | UInt_t fEventCutInfoESD; // event selection info of what is cutted after physics selection |
40445651 | 124 | UInt_t fFilterMask; // filter bit for slecected tracks |
125 | Int_t fRPSubeventMethod; // method for subevent calculation | |
bf7b8731 | 126 | Float_t fAvgTrials; // Average number of trials |
d49d814a | 127 | Float_t fVtxXMean; // mean x for cuts |
128 | Float_t fVtxYMean; // mean y for cuts | |
129 | Float_t fVtxZMean; // mean z for cuts | |
130 | Float_t fVtxRCut; // vtx cut in R | |
131 | Float_t fVtxZCut; // vtzx cut in Z | |
132 | Float_t fPtMinCosmic; // Minimum pT to be considered as cosmic candidate | |
133 | Float_t fRIsolMinCosmic; // Minimum R = sqrt{deltaPhi^2 + deltaEta^2} to be considered as cosmic candidate | |
134 | Float_t fMaxCosmicAngle; // Max deviation from pi (angle between two tracks) in case of cosmic candidate | |
b5a3f310 | 135 | Float_t fRunRange[2]; // only important for real data for |
40445651 | 136 | Float_t fCentrality; // ! centrality |
137 | Float_t fTrackRecEtaWindow; // eta window for rec tracks | |
138 | Float_t fMinTrackPt; // limits the track p_T | |
139 | Float_t fRPAngle; // ! RP angle of the reaction plane | |
140 | Float_t fFlatA[2]; // flattening for RP | |
141 | Float_t fFlatB[2]; // flattening for RP | |
142 | Float_t fDeltaQxy[2]; // centering of QX QY | |
143 | ||
144 | TRandom3 *fRandomizer; // ! randomizer | |
145 | ||
f4132e7d | 146 | TString fNonStdFile; // outputName for replication |
3493c3a9 | 147 | TProfile* fh1Xsec; //! pythia cross section and trials |
148 | TH1F* fh1Trials; //! trials are added | |
149 | TH1F* fh1PtHard; //! Pt har of the event... | |
150 | TH1F* fh1PtHardTrials; //! Number of trials | |
151 | TH1F* fh1SelectionInfoESD; //! Masks that satisfy fSelectionInfo | |
152 | TH1F* fh1EventCutInfoESD; //! Masks that satisfy fSelectionInfo | |
742ee86c | 153 | TH1F* fh1CentralityESD; //! centrality |
154 | TH1F* fh1Centrality; //! centrality | |
40445651 | 155 | TH1F* fh1RP; //! RP distribution |
3493c3a9 | 156 | TH2F* fh2TriggerCount; //! number of fire triggers in each case |
157 | TH2F* fh2ESDTriggerCount; //! number of fire triggers in each case | |
158 | TH2F* fh2TriggerVtx; //! vtx. position vs. trigger decision | |
159 | TH2F* fh2ESDTriggerVtx; //! vtx. position vs. trigger decision | |
160 | TH2F* fh2ESDTriggerRun; //! fired triggers vs. run number | |
161 | TH2F* fh2VtxXY; //! XY position of VTX were available | |
162 | TH1F* fh1NCosmicsPerEvent; //! Number of coscmic candidates found in event | |
40445651 | 163 | TH2F* fh2RPSubevents; //! subevent RP |
164 | TH2F* fh2RPCentrality; //! RP vs centrality | |
165 | TH2F* fh2RPDeltaRP; //! centrality vs. RP dela | |
166 | TH2F* fh2RPQxQy; //! QX QY moments | |
167 | TH2F* fh2RPCosDeltaRP; //! RP resolution | |
168 | ||
169 | TH3F* fh3PhiWeights; // RP phi weights, need to be set externally | |
170 | TH3F* fh3RPPhiTracks; //! RP angle | |
171 | ||
3493c3a9 | 172 | AliTriggerAnalysis *fTriggerAnalysis; //! Trigger Analysis to get the background rates etc. |
f4132e7d | 173 | TList *fHistList; //! Output list |
174 | ||
175 | // Provisions for replication | |
176 | static AliAODHeader* fgAODHeader; //! Header for replication | |
80a790fd | 177 | static TClonesArray* fgAODVertices; //! primary vertex for replication |
178 | ClassDef(AliAnalysisTaskJetServices,12) | |
bf7b8731 | 179 | }; |
180 | ||
181 | #endif |