]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/JetTasks/AliAnalysisTaskJetServices.h
Adding histogram for bookkeeping of the number of events that do not pass event cuts...
[u/mrichter/AliRoot.git] / PWG4 / JetTasks / AliAnalysisTaskJetServices.h
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;
18 class AliESDVertex;
19 class AliAODEvent;
20 class AliAODVertex;
21 class AliAODJet;
22 class AliGenPythiaEventHeader;
23 class AliCFManager;
24
25 class TList;
26 class TChain;
27 class TH1F;
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);
46     virtual void SetZVertexCut(Float_t f){fVtxZCut = f;}
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;}
50     virtual Bool_t Notify();
51
52     virtual void SetAODInput(Bool_t b){fUseAODInput = b;}
53     virtual void SetRunRange(Float_t fLo,Float_t fUp){fRunRange[0] = fLo;fRunRange[1] = fUp;}
54     virtual void SetRealData(Bool_t b){fRealData = b;}
55     virtual void SetUsePhysicsSelection(Bool_t b){fUsePhysicsSelection = b;}
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;
62
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};
70
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};
83
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
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
92     UInt_t        fSelectionInfoESD;   // slection info bit mask
93     UInt_t        fEventCutInfoESD;   // event selection info of what is cutted after physics selection
94     Float_t       fAvgTrials;          // Average number of trials
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
103     Float_t       fRunRange[2];        // only important for real data for 
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 
108     TH1F*         fh1SelectionInfoESD; // Masks that satisfy fSelectionInfo
109     TH1F*         fh1EventCutInfoESD; // Masks that satisfy fSelectionInfo
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
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
117     TList *fHistList; // Output list
118    
119     ClassDef(AliAnalysisTaskJetServices,7)
120 };
121  
122 #endif