#ifndef ALIANALYSISTASKJETCORE_H
#define ALIANALYSISTASKJETCORE_H
class TH1F;
class TH1I;
class TH2F;
class TH3F;
class THnSparse;
class TRandom3;
class AliESDEvent;
class AliAODExtension;
class AliAODEvent;
#include "AliAnalysisTaskSE.h"
#include "AliVEvent.h"
class AliAnalysisTaskJetCore : public AliAnalysisTaskSE {
public:
AliAnalysisTaskJetCore();
AliAnalysisTaskJetCore(const char *name);
virtual ~AliAnalysisTaskJetCore();
virtual void LocalInit() {Init();}
virtual void Init();
virtual void UserCreateOutputObjects();
virtual void UserExec(Option_t *option);
virtual void Terminate(const Option_t*);
virtual Int_t GetNInputTracks();
virtual void SetRunAzimuthalCorrelation(Bool_t run) {fRunAnaAzimuthalCorrelation=run;}
Double_t RelativePhi(Double_t angle1,Double_t angle2);
Int_t GetPhiBin(Double_t phi);
virtual THnSparse* NewTHnSparseF(const char* name, UInt_t entries);
virtual void GetDimParams(Int_t iEntry,TString &label, Int_t &nbins, Double_t &xmin, Double_t &xmax);
virtual AliVEvent::EOfflineTriggerTypes GetOfflineTrgMask() const { return fOfflineTrgMask; }
virtual void GetBranchNames(TString &branch1, TString &branch2) const { branch1 = fJetBranchName[0]; branch2 = fJetBranchName[1]; }
virtual Bool_t GetIsPbPb() const { return fIsPbPb; }
virtual Int_t GetMinContribVtx() const { return fMinContribVtx; };
virtual Float_t GetVtxZMin() const { return fVtxZMin; }
virtual Float_t GetVtxZMax() const { return fVtxZMax; }
virtual Int_t GetEvtClassMin() const { return fEvtClassMin; }
virtual Int_t GetEvtClassMax() const { return fEvtClassMax; }
virtual Float_t GetCentMin() const { return fCentMin; }
virtual Float_t GetCentMax() const { return fCentMax; }
virtual Int_t GetNInputTracksMin() const { return fNInputTracksMin; }
virtual Int_t GetNInputTracksMax() const { return fNInputTracksMax; }
virtual Float_t GetJetEtaMin() const { return fJetEtaMin; }
virtual Float_t GetJetEtaMax() const { return fJetEtaMax; }
virtual Float_t GetJetPtMin() const { return fJetPtMin; }
virtual Float_t GetJetPtFractionMin() const { return fJetPtFractionMin; }
virtual Int_t GetNMatchJets() const { return fNMatchJets; }
virtual void SetBranchNames(const TString &branch1, const TString &branch2);
virtual void SetBackgroundBranch(TString &branch) { fBackgroundBranch = branch;}
virtual void SetIsPbPb(Bool_t b=kTRUE) { fIsPbPb = b; }
virtual void SetOfflineTrgMask(AliVEvent::EOfflineTriggerTypes mask) { fOfflineTrgMask = mask; }
virtual void SetMinContribVtx(Int_t n) { fMinContribVtx = n; }
virtual void SetVtxZMin(Float_t z) { fVtxZMin = z; }
virtual void SetVtxZMax(Float_t z) { fVtxZMax = z; }
virtual void SetEvtClassMin(Int_t evtClass) { fEvtClassMin = evtClass; }
virtual void SetEvtClassMax(Int_t evtClass) { fEvtClassMax = evtClass; }
virtual void SetFilterMask(UInt_t i){fFilterMask = i;}
virtual void SetFilterMaskBestPt(UInt_t i){fFilterMaskBestPt = i;}
virtual void SetFilterType(Int_t iType){fFilterType=iType;}
virtual void SetRadioFrac(Float_t radiofrac) { fRadioFrac = radiofrac; }
virtual void SetMinDist(Float_t minDist) { fMinDist = minDist; }
virtual void SetCentMin(Float_t cent) { fCentMin = cent; }
virtual void SetCentMax(Float_t cent) { fCentMax = cent; }
virtual void SetNInputTracksMin(Int_t nTr) { fNInputTracksMin = nTr; }
virtual void SetNInputTracksMax(Int_t nTr) { fNInputTracksMax = nTr; }
virtual void SetRequireITSRefit(Int_t nref) {fRequireITSRefit=nref;}
virtual void SetSharedClusterCut(Int_t docut){fApplySharedClusterCut=docut;}
virtual void SetAngStructCloseTracks(Int_t yesno){fAngStructCloseTracks=yesno;}
virtual void SetCheckMethods(Int_t yesno){fCheckMethods=yesno;}
virtual void SetEventMixing(Int_t yesno){fDoEventMixing=yesno;}
virtual void SetFlagPhiBkg(Int_t yesno){fFlagPhiBkg=yesno;}
virtual void SetFlagEtaBkg(Int_t yesno){fFlagEtaBkg=yesno;}
virtual void SetFlagJetHadron(Int_t yesno){fFlagJetHadron=yesno;}
virtual void SetFlagDodiHadron(Int_t yesno){fDodiHadron=yesno;}
virtual void SetFlagFrac(Float_t fraction){fFrac=fraction;}
virtual void SetTTLowRef(Float_t ttlow){fTTLowRef=ttlow;}
virtual void SetTTUpRef(Float_t ttup){fTTUpRef=ttup;}
virtual void SetTTLowSig(Float_t ttlows){fTTLowSig=ttlows;}
virtual void SetTTUpSig(Float_t ttups){fTTUpSig=ttups;}
virtual void SetFlagHardest(Int_t yesno){fHardest=yesno;}
virtual void SetFlagRandom(Int_t yesno){fFlagRandom=yesno;}
virtual void SetFlagOnlyRecoil(Int_t yesno){fFlagOnlyRecoil=yesno;}
virtual void SetFlagOnlyHardest(Int_t yesno){fFlagOnlyHardest=yesno;}
virtual void SetNRPBins(Int_t bins){fNRPBins=bins;}
virtual void SetSemigoodCorrect(Int_t yesno){fSemigoodCorrect=yesno;}
virtual void SetHolePos(Float_t poshole) { fHolePos = poshole; }
virtual void SetHoleWidth(Float_t holewidth) { fHoleWidth = holewidth; }
virtual void SetTrackTypeRec(Int_t i){fTrackTypeRec = i;}
virtual void SetJetEtaMin(Float_t eta) { fJetEtaMin = eta; }
virtual void SetJetEtaMax(Float_t eta) { fJetEtaMax = eta; }
virtual void SetJetPtMin(Float_t pt) { fJetPtMin = pt; }
virtual void SetJetTriggerExclude(UChar_t i) { fJetTriggerExcludeMask = i; }
virtual void SetJetPtFractionMin(Float_t frac) { fJetPtFractionMin = frac; }
virtual void SetNMatchJets(Int_t n) { fNMatchJets = n; }
virtual void SetFillEvent(Bool_t b) { fbEvent = b; }
virtual void SetKeepJets(Bool_t b = kTRUE) { fKeepJets = b; }
virtual void SetNonStdFile(char* c){fNonStdFile = c;}
enum {kTrackUndef = 0, kTrackAOD, kTrackKineAll,kTrackKineCharged, kTrackAODMCAll, kTrackAODMCCharged, kTrackAODMCChargedAcceptance};
private:
AliESDEvent *fESD;
AliAODEvent *fAODIn;
AliAODEvent *fAODOut;
AliAODExtension *fAODExtension;
Int_t GetListOfTracks(TList *list);
Int_t SelectTrigger(TList *list,Double_t minT,Double_t maxT,Int_t &number);
Int_t GetHardestTrackBackToJet(AliAODJet *jet);
Int_t GetListOfTracksCloseToJet(TList *list,AliAODJet *jet);
TString fJetBranchName[2];
TList *fListJets[2];
TString fBackgroundBranch;
TString fNonStdFile;
Bool_t fIsPbPb;
AliVEvent::EOfflineTriggerTypes fOfflineTrgMask;
Int_t fMinContribVtx;
Float_t fVtxZMin;
Float_t fVtxZMax;
Int_t fEvtClassMin;
Int_t fEvtClassMax;
UInt_t fFilterMask;
UInt_t fFilterMaskBestPt;
UInt_t fFilterType;
Float_t fRadioFrac;
Float_t fMinDist;
Float_t fCentMin;
Float_t fCentMax;
Int_t fNInputTracksMin;
Int_t fNInputTracksMax;
Int_t fRequireITSRefit;
Int_t fApplySharedClusterCut;
Int_t fAngStructCloseTracks;
Int_t fCheckMethods;
Int_t fDoEventMixing;
Int_t fFlagPhiBkg;
Int_t fFlagEtaBkg;
Int_t fFlagJetHadron;
Int_t fDodiHadron;
Float_t fFrac;
Float_t fTTLowRef;
Float_t fTTUpRef;
Float_t fTTLowSig;
Float_t fTTUpSig;
Int_t fHardest;
Int_t fFlagRandom;
Int_t fFlagOnlyRecoil;
Int_t fFlagOnlyHardest;
Int_t fTrackTypeRec;
Float_t fRPAngle;
Int_t fNRPBins;
Int_t fSemigoodCorrect;
Float_t fHolePos;
Float_t fHoleWidth;
Float_t fJetEtaMin;
Float_t fJetEtaMax;
Int_t fNevents;
Int_t fTindex;
Int_t fTrigBufferIndex;
Int_t fCountAgain;
Float_t fJetPtMin;
UChar_t fJetTriggerExcludeMask;
Float_t fJetPtFractionMin;
Int_t fNMatchJets;
Double_t fMatchMaxDist;
Bool_t fKeepJets;
Bool_t fRunAnaAzimuthalCorrelation;
const Int_t fkNbranches;
const Int_t fkEvtClasses;
TList *fOutputList;
Bool_t fbEvent;
TH1I *fHistEvtSelection;
THnSparse *fhnDeltaR;
THnSparse *fhnMixedEvents;
TH2F *fh2JetCoreMethod1C10;
TH2F *fh2JetCoreMethod2C10;
TH2F *fh2JetCoreMethod1C20;
TH2F *fh2JetCoreMethod2C20;
TH2F *fh2JetCoreMethod1C30;
TH2F *fh2JetCoreMethod2C30;
TH2F *fh2JetCoreMethod1C60;
TH2F *fh2JetCoreMethod2C60;
TH3F* fh3JetTrackC3060;
TH3F* fh3JetTrackC20;
TH2F* fh2AngStructpt1C10;
TH2F* fh2AngStructpt2C10;
TH2F* fh2AngStructpt3C10;
TH2F* fh2AngStructpt4C10;
TH2F* fh2AngStructpt1C20;
TH2F* fh2AngStructpt2C20;
TH2F* fh2AngStructpt3C20;
TH2F* fh2AngStructpt4C20;
TH2F* fh2AngStructpt1C30;
TH2F* fh2AngStructpt2C30;
TH2F* fh2AngStructpt3C30;
TH2F* fh2AngStructpt4C30;
TH2F* fh2AngStructpt1C60;
TH2F* fh2AngStructpt2C60;
TH2F* fh2AngStructpt3C60;
TH2F* fh2AngStructpt4C60;
TH1D* fh1TrigRef;
TH1D* fh1TrigSig;
TH1D* fh1TrackPhiDistance;
TH1D* fh1TrackRDistance;
TH2F* fh2Ntriggers;
TH2F* fh2Ntriggers2C10;
TH2F* fh2Ntriggers2C20;
TH3F* fh3JetDensity;
TH3F* fh3JetDensityA4;
TH2F* fh2RPJetsC10;
TH2F* fh2RPJetsC20;
TH2F* fh2RPTC10;
TH2F* fh2RPTC20;
THnSparse *fHJetSpec;
Double_t fTrigBuffer[10][7];
TH2F *fhTTPt;
THnSparse *fHJetPhiCorr;
TRandom3* fRandom;
AliAnalysisTaskJetCore(const AliAnalysisTaskJetCore&);
AliAnalysisTaskJetCore& operator=(const AliAnalysisTaskJetCore&);
ClassDef(AliAnalysisTaskJetCore, 6);
};
#endif
AliAnalysisTaskJetCore.h:1 AliAnalysisTaskJetCore.h:2 AliAnalysisTaskJetCore.h:3 AliAnalysisTaskJetCore.h:4 AliAnalysisTaskJetCore.h:5 AliAnalysisTaskJetCore.h:6 AliAnalysisTaskJetCore.h:7 AliAnalysisTaskJetCore.h:8 AliAnalysisTaskJetCore.h:9 AliAnalysisTaskJetCore.h:10 AliAnalysisTaskJetCore.h:11 AliAnalysisTaskJetCore.h:12 AliAnalysisTaskJetCore.h:13 AliAnalysisTaskJetCore.h:14 AliAnalysisTaskJetCore.h:15 AliAnalysisTaskJetCore.h:16 AliAnalysisTaskJetCore.h:17 AliAnalysisTaskJetCore.h:18 AliAnalysisTaskJetCore.h:19 AliAnalysisTaskJetCore.h:20 AliAnalysisTaskJetCore.h:21 AliAnalysisTaskJetCore.h:22 AliAnalysisTaskJetCore.h:23 AliAnalysisTaskJetCore.h:24 AliAnalysisTaskJetCore.h:25 AliAnalysisTaskJetCore.h:26 AliAnalysisTaskJetCore.h:27 AliAnalysisTaskJetCore.h:28 AliAnalysisTaskJetCore.h:29 AliAnalysisTaskJetCore.h:30 AliAnalysisTaskJetCore.h:31 AliAnalysisTaskJetCore.h:32 AliAnalysisTaskJetCore.h:33 AliAnalysisTaskJetCore.h:34 AliAnalysisTaskJetCore.h:35 AliAnalysisTaskJetCore.h:36 AliAnalysisTaskJetCore.h:37 AliAnalysisTaskJetCore.h:38 AliAnalysisTaskJetCore.h:39 AliAnalysisTaskJetCore.h:40 AliAnalysisTaskJetCore.h:41 AliAnalysisTaskJetCore.h:42 AliAnalysisTaskJetCore.h:43 AliAnalysisTaskJetCore.h:44 AliAnalysisTaskJetCore.h:45 AliAnalysisTaskJetCore.h:46 AliAnalysisTaskJetCore.h:47 AliAnalysisTaskJetCore.h:48 AliAnalysisTaskJetCore.h:49 AliAnalysisTaskJetCore.h:50 AliAnalysisTaskJetCore.h:51 AliAnalysisTaskJetCore.h:52 AliAnalysisTaskJetCore.h:53 AliAnalysisTaskJetCore.h:54 AliAnalysisTaskJetCore.h:55 AliAnalysisTaskJetCore.h:56 AliAnalysisTaskJetCore.h:57 AliAnalysisTaskJetCore.h:58 AliAnalysisTaskJetCore.h:59 AliAnalysisTaskJetCore.h:60 AliAnalysisTaskJetCore.h:61 AliAnalysisTaskJetCore.h:62 AliAnalysisTaskJetCore.h:63 AliAnalysisTaskJetCore.h:64 AliAnalysisTaskJetCore.h:65 AliAnalysisTaskJetCore.h:66 AliAnalysisTaskJetCore.h:67 AliAnalysisTaskJetCore.h:68 AliAnalysisTaskJetCore.h:69 AliAnalysisTaskJetCore.h:70 AliAnalysisTaskJetCore.h:71 AliAnalysisTaskJetCore.h:72 AliAnalysisTaskJetCore.h:73 AliAnalysisTaskJetCore.h:74 AliAnalysisTaskJetCore.h:75 AliAnalysisTaskJetCore.h:76 AliAnalysisTaskJetCore.h:77 AliAnalysisTaskJetCore.h:78 AliAnalysisTaskJetCore.h:79 AliAnalysisTaskJetCore.h:80 AliAnalysisTaskJetCore.h:81 AliAnalysisTaskJetCore.h:82 AliAnalysisTaskJetCore.h:83 AliAnalysisTaskJetCore.h:84 AliAnalysisTaskJetCore.h:85 AliAnalysisTaskJetCore.h:86 AliAnalysisTaskJetCore.h:87 AliAnalysisTaskJetCore.h:88 AliAnalysisTaskJetCore.h:89 AliAnalysisTaskJetCore.h:90 AliAnalysisTaskJetCore.h:91 AliAnalysisTaskJetCore.h:92 AliAnalysisTaskJetCore.h:93 AliAnalysisTaskJetCore.h:94 AliAnalysisTaskJetCore.h:95 AliAnalysisTaskJetCore.h:96 AliAnalysisTaskJetCore.h:97 AliAnalysisTaskJetCore.h:98 AliAnalysisTaskJetCore.h:99 AliAnalysisTaskJetCore.h:100 AliAnalysisTaskJetCore.h:101 AliAnalysisTaskJetCore.h:102 AliAnalysisTaskJetCore.h:103 AliAnalysisTaskJetCore.h:104 AliAnalysisTaskJetCore.h:105 AliAnalysisTaskJetCore.h:106 AliAnalysisTaskJetCore.h:107 AliAnalysisTaskJetCore.h:108 AliAnalysisTaskJetCore.h:109 AliAnalysisTaskJetCore.h:110 AliAnalysisTaskJetCore.h:111 AliAnalysisTaskJetCore.h:112 AliAnalysisTaskJetCore.h:113 AliAnalysisTaskJetCore.h:114 AliAnalysisTaskJetCore.h:115 AliAnalysisTaskJetCore.h:116 AliAnalysisTaskJetCore.h:117 AliAnalysisTaskJetCore.h:118 AliAnalysisTaskJetCore.h:119 AliAnalysisTaskJetCore.h:120 AliAnalysisTaskJetCore.h:121 AliAnalysisTaskJetCore.h:122 AliAnalysisTaskJetCore.h:123 AliAnalysisTaskJetCore.h:124 AliAnalysisTaskJetCore.h:125 AliAnalysisTaskJetCore.h:126 AliAnalysisTaskJetCore.h:127 AliAnalysisTaskJetCore.h:128 AliAnalysisTaskJetCore.h:129 AliAnalysisTaskJetCore.h:130 AliAnalysisTaskJetCore.h:131 AliAnalysisTaskJetCore.h:132 AliAnalysisTaskJetCore.h:133 AliAnalysisTaskJetCore.h:134 AliAnalysisTaskJetCore.h:135 AliAnalysisTaskJetCore.h:136 AliAnalysisTaskJetCore.h:137 AliAnalysisTaskJetCore.h:138 AliAnalysisTaskJetCore.h:139 AliAnalysisTaskJetCore.h:140 AliAnalysisTaskJetCore.h:141 AliAnalysisTaskJetCore.h:142 AliAnalysisTaskJetCore.h:143 AliAnalysisTaskJetCore.h:144 AliAnalysisTaskJetCore.h:145 AliAnalysisTaskJetCore.h:146 AliAnalysisTaskJetCore.h:147 AliAnalysisTaskJetCore.h:148 AliAnalysisTaskJetCore.h:149 AliAnalysisTaskJetCore.h:150 AliAnalysisTaskJetCore.h:151 AliAnalysisTaskJetCore.h:152 AliAnalysisTaskJetCore.h:153 AliAnalysisTaskJetCore.h:154 AliAnalysisTaskJetCore.h:155 AliAnalysisTaskJetCore.h:156 AliAnalysisTaskJetCore.h:157 AliAnalysisTaskJetCore.h:158 AliAnalysisTaskJetCore.h:159 AliAnalysisTaskJetCore.h:160 AliAnalysisTaskJetCore.h:161 AliAnalysisTaskJetCore.h:162 AliAnalysisTaskJetCore.h:163 AliAnalysisTaskJetCore.h:164 AliAnalysisTaskJetCore.h:165 AliAnalysisTaskJetCore.h:166 AliAnalysisTaskJetCore.h:167 AliAnalysisTaskJetCore.h:168 AliAnalysisTaskJetCore.h:169 AliAnalysisTaskJetCore.h:170 AliAnalysisTaskJetCore.h:171 AliAnalysisTaskJetCore.h:172 AliAnalysisTaskJetCore.h:173 AliAnalysisTaskJetCore.h:174 AliAnalysisTaskJetCore.h:175 AliAnalysisTaskJetCore.h:176 AliAnalysisTaskJetCore.h:177 AliAnalysisTaskJetCore.h:178 AliAnalysisTaskJetCore.h:179 AliAnalysisTaskJetCore.h:180 AliAnalysisTaskJetCore.h:181 AliAnalysisTaskJetCore.h:182 AliAnalysisTaskJetCore.h:183 AliAnalysisTaskJetCore.h:184 AliAnalysisTaskJetCore.h:185 AliAnalysisTaskJetCore.h:186 AliAnalysisTaskJetCore.h:187 AliAnalysisTaskJetCore.h:188 AliAnalysisTaskJetCore.h:189 AliAnalysisTaskJetCore.h:190 AliAnalysisTaskJetCore.h:191 AliAnalysisTaskJetCore.h:192 AliAnalysisTaskJetCore.h:193 AliAnalysisTaskJetCore.h:194 AliAnalysisTaskJetCore.h:195 AliAnalysisTaskJetCore.h:196 AliAnalysisTaskJetCore.h:197 AliAnalysisTaskJetCore.h:198 AliAnalysisTaskJetCore.h:199 AliAnalysisTaskJetCore.h:200 AliAnalysisTaskJetCore.h:201 AliAnalysisTaskJetCore.h:202 AliAnalysisTaskJetCore.h:203 AliAnalysisTaskJetCore.h:204 AliAnalysisTaskJetCore.h:205 AliAnalysisTaskJetCore.h:206 AliAnalysisTaskJetCore.h:207 AliAnalysisTaskJetCore.h:208 AliAnalysisTaskJetCore.h:209 AliAnalysisTaskJetCore.h:210 AliAnalysisTaskJetCore.h:211 AliAnalysisTaskJetCore.h:212 AliAnalysisTaskJetCore.h:213 AliAnalysisTaskJetCore.h:214 AliAnalysisTaskJetCore.h:215 AliAnalysisTaskJetCore.h:216 AliAnalysisTaskJetCore.h:217 AliAnalysisTaskJetCore.h:218 AliAnalysisTaskJetCore.h:219 AliAnalysisTaskJetCore.h:220 AliAnalysisTaskJetCore.h:221 AliAnalysisTaskJetCore.h:222 AliAnalysisTaskJetCore.h:223 AliAnalysisTaskJetCore.h:224 AliAnalysisTaskJetCore.h:225 AliAnalysisTaskJetCore.h:226 AliAnalysisTaskJetCore.h:227 AliAnalysisTaskJetCore.h:228 AliAnalysisTaskJetCore.h:229 AliAnalysisTaskJetCore.h:230 AliAnalysisTaskJetCore.h:231 AliAnalysisTaskJetCore.h:232 AliAnalysisTaskJetCore.h:233 AliAnalysisTaskJetCore.h:234 AliAnalysisTaskJetCore.h:235 AliAnalysisTaskJetCore.h:236 AliAnalysisTaskJetCore.h:237 AliAnalysisTaskJetCore.h:238 AliAnalysisTaskJetCore.h:239 AliAnalysisTaskJetCore.h:240 AliAnalysisTaskJetCore.h:241 AliAnalysisTaskJetCore.h:242 AliAnalysisTaskJetCore.h:243 AliAnalysisTaskJetCore.h:244 AliAnalysisTaskJetCore.h:245 AliAnalysisTaskJetCore.h:246 AliAnalysisTaskJetCore.h:247 AliAnalysisTaskJetCore.h:248 AliAnalysisTaskJetCore.h:249 AliAnalysisTaskJetCore.h:250 AliAnalysisTaskJetCore.h:251