]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/AliAnalysisTaskJetCorePP.h
read header for MC
[u/mrichter/AliRoot.git] / PWGJE / AliAnalysisTaskJetCorePP.h
1 #ifndef ALIANALYSISTASKJETCOREPP_H
2 #define ALIANALYSISTASKJETCOREPP_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 // This task performs hadron-trigger recoil jet correlations 
9 // Output pT spectrum of jet given trigger pT 
10 // Author: filip krizek 1st March 2013
11 // *******************************************
12
13 class TH1F;
14 class TH1D;
15 class TH1I;
16 class TH2F;
17 class TH3F;
18 class THnSparse;
19 class AliESDEvent;
20 class AliAODExtension;
21 class AliAODEvent;
22
23 #include "AliAnalysisTaskSE.h"
24 #include "AliVEvent.h"
25
26 class AliAnalysisTaskJetCorePP : public AliAnalysisTaskSE {
27 public:
28    AliAnalysisTaskJetCorePP();
29    AliAnalysisTaskJetCorePP(const char *name);
30    AliAnalysisTaskJetCorePP(const AliAnalysisTaskJetCorePP& a); 
31    AliAnalysisTaskJetCorePP& operator=(const AliAnalysisTaskJetCorePP& a); // not implemented
32    virtual ~AliAnalysisTaskJetCorePP();
33    virtual void  LocalInit() {Init();}
34    virtual void  Init();
35    virtual void  UserCreateOutputObjects();
36    virtual void  UserExec(Option_t *option);
37    virtual void  Terminate(const Option_t*);
38  
39    virtual void  SetBranchName(const TString &name){ fJetBranchName = name; } 
40    virtual void  SetNonStdFile(char* c){fNonStdFile = c;} 
41    virtual void  SetSystem(Int_t sys) { fSystem = sys; } 
42    virtual void  SetJetR(Float_t jR) { fJetParamR = jR; }
43    virtual void  SetOfflineTrgMask(AliVEvent::EOfflineTriggerTypes mask) { fOfflineTrgMask = mask; } 
44    virtual void  SetMinContribVtx(Int_t n) { fMinContribVtx = n; } 
45    virtual void  SetVtxZMin(Float_t z) { fVtxZMin = z; }
46    virtual void  SetVtxZMax(Float_t z) { fVtxZMax = z; } 
47    virtual void  SetFilterMask(UInt_t i){fFilterMask = i;} 
48    virtual void  SetCentMin(Float_t cent) { fCentMin = cent; }
49    virtual void  SetCentMax(Float_t cent) { fCentMax = cent; } 
50    virtual void  SetJetEtaMin(Float_t eta) { fJetEtaMin = eta; }
51    virtual void  SetJetEtaMax(Float_t eta) { fJetEtaMax = eta; } 
52    virtual void  SetTriggerEtaCut(Float_t eta) { fTriggerEtaCut = eta; }
53    virtual void  SetTrackEtaCut(Float_t eta) { fTrackEtaCut = eta; }
54    virtual void  SetTrackLowPtCut(Float_t pt) { fTrackLowPtCut=pt; } 
55
56    Double_t RelativePhi(Double_t angle1, Double_t angle2); 
57
58 private:
59    //private member functions
60    Int_t   GetListOfTracks(TList *list); //returns index of trig and track list 
61    Double_t GetBackgroundInPerpCone(Float_t jetR, Double_t jetPhi, Double_t jetEta, TList* trkList); //sums pT in the cone perp in phi to jet
62  
63    //private member objects
64    AliESDEvent *fESD;    //! ESD object
65    AliAODEvent *fAODIn;  //! AOD event for AOD input tracks
66    AliAODEvent *fAODOut; //! AOD event 
67    AliAODExtension  *fAODExtension; //! where we take the jets from can be input or output AOD
68
69    // jets to compare
70    TString fJetBranchName; //  name of jet branch 
71    TList  *fListJets;      //! jet lists  
72
73    TString fNonStdFile;    // name of delta aod file to catch the extension
74
75    // event selection
76    Int_t   fSystem;        // collision system  pp=0, pPb=1  
77    Float_t fJetParamR;     // jet cone resolution (radius) R 
78    AliVEvent::EOfflineTriggerTypes fOfflineTrgMask; // mask of offline trigs 
79    Int_t   fMinContribVtx; // min numb of trk contrib for prim vertex 
80    Float_t fVtxZMin;       // lower bound on vertex z 
81    Float_t fVtxZMax;       // upper bound on vertex z 
82    UInt_t  fFilterMask;    // filter bit for slected tracks  
83    Float_t fCentMin;       // lower bound on centrality 
84    Float_t fCentMax;       // upper bound on centrality 
85    Float_t fJetEtaMin;     // lower bound on eta for found jets 
86    Float_t fJetEtaMax;     // upper bound on eta for found jets 
87    Float_t fTriggerEtaCut; // lower bound on eta for trigger track
88    Float_t fTrackEtaCut;   // upper bound on eta for trigger track 
89    Float_t fTrackLowPtCut; // upper bound on eta for trigger track
90    
91    
92    TList *fOutputList;          //! output data container 
93    TH1I  *fHistEvtSelection;    //! event selection statistic 
94    TH2F      *fh2Ntriggers;     //trigger pT versus centrality 
95    THnSparse *fHJetSpec;      //Recoil jet spectrum  
96    
97    //Diagnostics
98    THnSparse *fHJetDensity;       //density of jet with A>0.07  //fk
99    THnSparse *fHJetDensityA4;     //density of jets with A>0.4 //fk
100    TH1D *fhJetPhi;     //Azimuthal distribution of jets
101    TH1D *fhTriggerPhi; //Azimuthal distribution of trigger hadron
102    TH1D *fhJetEta;     //Pseudorapidity distribution of jets
103    TH1D *fhTriggerEta; //Pseudorapidity distribution of trigger hadron
104    TH1D *fhVertexZ;    //z vertex distribution 
105    TH1D *fhVertexZAccept;    //z vertex distribution after cut
106    TH1D *fhContribVtx;    //contributors to vertex 
107    TH1D *fhContribVtxAccept;    //contributors to vertex after cut
108    TH1D *fhDphiTriggerJet;  //Deltaphi between trigger and jet 
109    TH1D *fhDphiTriggerJetAccept;  //Deltaphi between trigger and jet after cut
110    TH1D *fhCentrality;  //Deltaphi between trigger and jet 
111    TH1D *fhCentralityAccept;  //Deltaphi between trigger and jet after cut
112
113    const Double_t fkAcceptance; //eta times phi  Alice coverage  
114   
115    ClassDef(AliAnalysisTaskJetCorePP, 1);  //has to end with number larger than 0
116 };
117
118 #endif
119