]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/JetTasks/AliAnalysisTaskJetServices.h
adding forward declaration
[u/mrichter/AliRoot.git] / PWG4 / JetTasks / AliAnalysisTaskJetServices.h
CommitLineData
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////////////////
16class AliJetHeader;
17class AliESDEvent;
6d597ca2 18class AliESDVertex;
bf7b8731 19class AliAODEvent;
6d597ca2 20class AliAODVertex;
bf7b8731 21class AliAODJet;
22class AliGenPythiaEventHeader;
23class AliCFManager;
3493c3a9 24class AliTriggerAnalysis;
bf7b8731 25
26class TList;
80a790fd 27class TClonesArray;
bf7b8731 28class TChain;
c0997643 29class TH1F;
bf7b8731 30class TH2F;
31class TH3F;
32class TProfile;
1d1b304d 33class TRandom3;
bf7b8731 34
35
36
37class 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