]>
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; | |
24 | ||
25 | class TList; | |
26 | class TChain; | |
c0997643 | 27 | class TH1F; |
bf7b8731 | 28 | class TH2F; |
29 | class TH3F; | |
30 | class TProfile; | |
31 | ||
32 | ||
33 | ||
34 | class AliAnalysisTaskJetServices : public AliAnalysisTaskSE | |
35 | { | |
36 | public: | |
37 | AliAnalysisTaskJetServices(); | |
38 | AliAnalysisTaskJetServices(const char* name); | |
39 | virtual ~AliAnalysisTaskJetServices() {;} | |
40 | // Implementation of interface methods | |
41 | virtual void UserCreateOutputObjects(); | |
42 | virtual void Init(); | |
43 | virtual void LocalInit() { Init(); } | |
44 | virtual void UserExec(Option_t *option); | |
45 | virtual void Terminate(Option_t *option); | |
c0997643 | 46 | virtual void SetZVertexCut(Float_t f){fVtxZCut = f;} |
d49d814a | 47 | virtual void SetPtMinCosmic(Float_t ptMin) {fPtMinCosmic = ptMin;} |
48 | virtual void SetRMinCosmic(Float_t rMin) {fRIsolMinCosmic = rMin;} | |
49 | virtual void SetMaxCosmicAngle(Float_t angle) {fMaxCosmicAngle = angle;} | |
bf7b8731 | 50 | virtual Bool_t Notify(); |
51 | ||
52 | virtual void SetAODInput(Bool_t b){fUseAODInput = b;} | |
b5a3f310 | 53 | virtual void SetRunRange(Float_t fLo,Float_t fUp){fRunRange[0] = fLo;fRunRange[1] = fUp;} |
fe669ac6 | 54 | virtual void SetRealData(Bool_t b){fRealData = b;} |
cc0649e4 | 55 | virtual void SetUsePhysicsSelection(Bool_t b){fUsePhysicsSelection = b;} |
6d597ca2 | 56 | Bool_t IsEventSelected(const AliESDEvent* esd); |
57 | Bool_t IsEventSelected(const AliAODEvent* aod) const; | |
58 | ||
59 | Bool_t IsEventPileUp(const AliESDEvent* esd) const; | |
60 | ||
61 | Bool_t IsEventCosmic(const AliESDEvent* esd) const; | |
bf7b8731 | 62 | |
6d597ca2 | 63 | Bool_t IsVertexValid(const AliESDVertex *vtx); |
64 | Bool_t IsVertexValid(const AliAODVertex *vtx) const; | |
65 | ||
66 | Bool_t IsVertexIn(const AliESDVertex *vtx); | |
67 | Bool_t IsVertexIn(const AliAODVertex *vtx) const; | |
68 | ||
69 | enum { kAllTriggered = 0,kTriggeredVertex,kTriggeredVertexIn,kSelectedALICE,kSelectedALICEVertexValid,kSelectedALICEVertexIn,kSelected,kConstraints}; | |
f2dd0695 | 70 | |
6d597ca2 | 71 | enum { kNoEventCut=1<<0, |
72 | kPhysicsSelectionCut=1<<1, | |
73 | kContributorsCut1=1<<2, | |
74 | kContributorsCut2=1<<3, | |
75 | kContributorsCut3=1<<4, | |
76 | kVertexTPC=1<<5, | |
77 | kVertexSPD=1<<6, | |
78 | kVertexGlobal=1<<7, | |
79 | kSPDDispersionCut=1<<8, | |
80 | kVertexZCut=1<<9, | |
81 | kVertexRCut=1<<10, | |
82 | kTotalEventCuts=(1<<11)-1}; | |
f2dd0695 | 83 | |
bf7b8731 | 84 | private: |
85 | ||
86 | AliAnalysisTaskJetServices(const AliAnalysisTaskJetServices&); | |
87 | AliAnalysisTaskJetServices& operator=(const AliAnalysisTaskJetServices&); | |
88 | ||
89 | Bool_t fUseAODInput; // take jet from input AOD not from ouptu AOD | |
cc0649e4 | 90 | Bool_t fUsePhysicsSelection;// decide wether we take into account physicsselction task |
91 | Bool_t fRealData; // true for real data to allow correct trigger slection | |
d49d814a | 92 | UInt_t fSelectionInfoESD; // slection info bit mask |
6d597ca2 | 93 | UInt_t fEventCutInfoESD; // event selection info of what is cutted after physics selection |
bf7b8731 | 94 | Float_t fAvgTrials; // Average number of trials |
d49d814a | 95 | Float_t fVtxXMean; // mean x for cuts |
96 | Float_t fVtxYMean; // mean y for cuts | |
97 | Float_t fVtxZMean; // mean z for cuts | |
98 | Float_t fVtxRCut; // vtx cut in R | |
99 | Float_t fVtxZCut; // vtzx cut in Z | |
100 | Float_t fPtMinCosmic; // Minimum pT to be considered as cosmic candidate | |
101 | Float_t fRIsolMinCosmic; // Minimum R = sqrt{deltaPhi^2 + deltaEta^2} to be considered as cosmic candidate | |
102 | Float_t fMaxCosmicAngle; // Max deviation from pi (angle between two tracks) in case of cosmic candidate | |
b5a3f310 | 103 | Float_t fRunRange[2]; // only important for real data for |
bf7b8731 | 104 | TProfile* fh1Xsec; // pythia cross section and trials |
105 | TH1F* fh1Trials; // trials are added | |
106 | TH1F* fh1PtHard; // Pt har of the event... | |
107 | TH1F* fh1PtHardTrials; // Number of trials | |
f2dd0695 | 108 | TH1F* fh1SelectionInfoESD; // Masks that satisfy fSelectionInfo |
6d597ca2 | 109 | TH1F* fh1EventCutInfoESD; // Masks that satisfy fSelectionInfo |
bf7b8731 | 110 | TH2F* fh2TriggerCount; // number of fire triggers in each case |
111 | TH2F* fh2ESDTriggerCount; // number of fire triggers in each case | |
112 | TH2F* fh2TriggerVtx; // vtx. position vs. trigger decision | |
d49d814a | 113 | TH2F* fh2ESDTriggerVtx; // vtx. position vs. trigger decision |
114 | TH2F* fh2ESDTriggerRun; // fired triggers vs. run number | |
115 | TH2F* fh2VtxXY; // XY position of VTX were available | |
116 | TH1F* fh1NCosmicsPerEvent; // Number of coscmic candidates found in event | |
bf7b8731 | 117 | TList *fHistList; // Output list |
118 | ||
6d597ca2 | 119 | ClassDef(AliAnalysisTaskJetServices,7) |
bf7b8731 | 120 | }; |
121 | ||
122 | #endif |