1 #ifndef ALIANALYSISTASKJETCLUSTERKINE_H
2 #define ALIANALYSISTASKJETCLUSTERKINE_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 // *******************************************
8 // Jet Finding in the Kine train
9 // *******************************************
11 #include "AliAnalysisTaskSE.h"
12 #include "THnSparse.h" // cannot forward declare ThnSparseF
13 #include "AliVParticle.h" //FK//
15 # include "fastjet/ClusterSequenceArea.hh"
16 # include "fastjet/AreaDefinition.hh"
17 # include "fastjet/JetDefinition.hh"
22 enum RecombinationScheme;
31 class AliAODExtension;
33 class AliGenPythiaEventHeader;
35 class AliAODMCParticle;
36 class AliMCEvent; //FK//
37 class AliMCEventHandler; //FK//
38 class AliVParticle; //FK//
39 class AliGenEventHeader; //FK//
50 class AliAnalysisTaskJetClusterKine : public AliAnalysisTaskSE
53 AliAnalysisTaskJetClusterKine();
54 AliAnalysisTaskJetClusterKine(const char* name);
55 virtual ~AliAnalysisTaskJetClusterKine();
56 // Implementation of interface methods
57 virtual void UserCreateOutputObjects();
58 virtual void Init(); //FK//
59 virtual void LocalInit();
60 virtual void UserExec(Option_t *option);
61 virtual void Terminate(Option_t *option);
62 virtual Bool_t Notify();
65 virtual void SetTrackEtaWindow(Float_t f){fTrackEtaWindow = f;}
66 virtual void SetTrackTypeGen(Int_t i){fTrackTypeGen = i;}
67 virtual void SetTrackPtCut(Float_t x){fTrackPtCut = x;}
68 virtual void SetVtxCuts(Float_t z){fVtxZCut = z;}
70 virtual void SetJetOutputBranch(const char *c){fNonStdBranch = c;}
71 virtual void SetJetOutputContainer(Int_t c){fOutContainer = c;} //FF//
72 virtual const char* GetJetOutputBranch(){return fNonStdBranch.Data();}
73 virtual void SetJetOutputFile(const char *c){fNonStdFile = c;}
74 virtual const char* GetJetOutputFile(){return fNonStdFile.Data();}
75 virtual void SetMaxTrackPtInJet(Float_t x){fMaxTrackPtInJet = x;}
76 virtual void SetJetOutputMinPt(Float_t x){fJetOutputMinPt = x;}
81 fastjet::JetAlgorithm GetAlgorithm() const {return fAlgorithm;}
82 fastjet::Strategy GetStrategy() const {return fStrategy;}
83 fastjet::RecombinationScheme GetRecombScheme() const {return fRecombScheme;}
84 fastjet::AreaType GetAreaType() const {return fAreaType;}
86 void SetRparam(Double_t f) {fRparam = f;}
87 // Temporary change to integer; problem with dictionary generation?
88 //void SetAlgorithm(fastjet::JetAlgorithm f) {fAlgorithm = f;}
89 void SetAlgorithm(Int_t f) {fAlgorithm = (fastjet::JetAlgorithm) f;}
90 void SetStrategy(fastjet::Strategy f) {fStrategy = f;}
91 void SetRecombScheme(fastjet::RecombinationScheme f) {fRecombScheme = f;}
92 void SetAreaType(fastjet::AreaType f) {fAreaType = f;}
93 void SetGhostArea(Double_t f) {fGhostArea = f;}
94 void SetActiveAreaRepeats(Int_t f) {fActiveAreaRepeats = f;}
95 void SetGhostEtamax(Double_t f) {fGhostEtamax = f;}
102 // we have different cases
103 // AOD reading -> MC from AOD
104 // ESD reading -> MC from Kinematics
105 // this has to match with our selection of input events
106 enum {kTrackKineAll=0, kTrackKineCharged};
107 enum { kNoOutput=0, kAODBranch=1, kExchCont=2 }; //FF//
112 AliAnalysisTaskJetClusterKine(const AliAnalysisTaskJetClusterKine&);
113 AliAnalysisTaskJetClusterKine& operator=(const AliAnalysisTaskJetClusterKine&);
115 Int_t GetListOfTracks(TList *list,Int_t type);
117 AliMCEvent* fMcEvent; //! MC event //FK// FFF
118 AliInputEventHandler* fMcHandler; //! MCEventHandler //FK// FFF
119 TRefArray *fRef; // ! trefarray for track references within the jet FFF
120 Int_t fTrackTypeGen; // type of tracks used for 0=full, 1=charged FFF
121 Float_t fAvgTrials; // Average nimber of trials
122 Float_t fTrackEtaWindow; // eta window used for corraltion plots between rec and gen FFF
123 Float_t fTrackPtCut; // minimum track pt to be accepted FFF
124 Float_t fJetOutputMinPt; // minimum p_t for jets to be written out FFF
125 Float_t fMaxTrackPtInJet; // maximum track pt within a jet for flagging... FFF
126 Float_t fVtxZCut; // zvtx cut
128 // output configurartion
129 TString fNonStdBranch; // the name of the non-std branch name, if empty no branch is filled FFF
130 Int_t fOutContainer; //FF//output container 1=AOD Branch 2=Exchange container
131 TString fNonStdFile; // The optional name of the output file the non-std branch is written to FFF
136 Double_t fRparam; // fastjet distance parameter FFF
137 fastjet::JetAlgorithm fAlgorithm; //fastjet::kt_algorithm FFF
138 fastjet::Strategy fStrategy; //= fastjet::Best; FFF
139 fastjet::RecombinationScheme fRecombScheme; // = fastjet::BIpt_scheme; FFF
140 fastjet::AreaType fAreaType; // fastjet area type
141 Double_t fGhostArea; // fasjet ghost area FFF
142 Int_t fActiveAreaRepeats; // fast jet active area repeats FFF
143 Double_t fGhostEtamax; // fast jet ghost area FFF
145 TClonesArray *fTCAJetsOut; //! TCA of output jets FFF
147 TProfile* fh1Xsec; //! pythia cross section and trials
148 TH1F* fh1Trials; //! trials are added FFF
149 TH1F* fh1PtHard; //! Pt har of the event...
150 TH1F* fh1PtHardNoW; //! Pt har of the event without weigt
151 TH1F* fh1PtHardTrials; //! Number of trials
153 TH1F* fh1NJetsGen; //! number of generator level jets FFF
154 TH1F* fh1NConstGen;//! number of constiutens in leading jet FFF
155 TH1F* fh1NConstLeadingGen;//! number of constiutens in leading jet FFF
156 TH1F* fh1PtJetsGenIn; //! Jet pt for all jets FFF
157 TH1F* fh1PtJetsLeadingGenIn; //! Jet pt for the leading jets FFF
158 TH1F* fh1PtJetConstGen;//! pt of constituents FFF
159 TH1F* fh1PtJetConstLeadingGen;// pt of constituents FFF
160 TH1F* fh1PtTracksGenIn; //! track pt for all tracks FFF
162 TH1F* fh1Nch; //! (charged) particle mult FFF
163 TH1F* fh1Z; // ! centrality of anaylsed events FFF
166 TH2F* fh2NConstPt; //! number of constituents vs. pt FFF
167 TH2F* fh2NConstLeadingPt; //! number of constituents vs. pt FFF
168 TH2F* fh2JetPhiEta; //! jet phi eta FFF
169 TH2F* fh2LeadingJetPhiEta; //! leading jet phi eta FFF
170 TH2F* fh2JetEtaPt; //! leading jet eta FFF
171 TH2F* fh2LeadingJetEtaPt; //! leading jet eta FFF
172 TH2F* fh2TrackEtaPt; //! track eta for all tracks FFF
173 TH2F* fh2JetsLeadingPhiEta; //! jet delta phi delta eta w.r.t. leading jet FFF
174 TH2F* fh2JetsLeadingPhiPt; //! jet correlation with leading jet FFF
175 TH2F* fh2JetsLeadingPhiPtW; //! jet correlation with leading jet FFF
177 TList *fHistList; //!leading tracks to be skipped in the randomized event Output list
180 ClassDef(AliAnalysisTaskJetClusterKine, 1)