// *******************************************
class TH1F;
+class TH1I;
class TH2F;
class TH3F;
class THnSparse;
+class TRandom3;
class AliESDEvent;
class AliAODExtension;
class AliAODEvent;
virtual void Terminate(const Option_t*);
virtual Int_t GetNInputTracks();
-
+ // Rongrong
+ 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 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 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 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 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;}
-
+ virtual void SetNonStdFile(char* c){fNonStdFile = c;}
+ enum {kTrackUndef = 0, kTrackAOD, kTrackKineAll,kTrackKineCharged, kTrackAODMCAll, kTrackAODMCCharged, kTrackAODMCChargedAcceptance};
private:
// ESD/AOD events
AliESDEvent *fESD; //! ESD object
- AliAODEvent *fAOD; //! AOD event
+ AliAODEvent *fAODIn; //! AOD event for AOD input tracks
+ AliAODEvent *fAODOut; //! AOD event
AliAODExtension *fAODExtension; //! where we take the jets from can be input or output AOD
- Int_t GetListOfTracks(TList *list);
+ 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);
// jets to compare
TString fJetBranchName[2]; // name of jet branches to compare
Float_t fVtxZMax; // upper bound on vertex z
Int_t fEvtClassMin; // lower bound on event class
Int_t fEvtClassMax; // upper bound on event class
+ UInt_t fFilterMask; // filter bit for slecected tracks
+ UInt_t fFilterMaskBestPt; // filter bit for selected hig pt tracks (best quality)
+ UInt_t fFilterType; // type of slected tracks parrallel to filtermask
Float_t fRadioFrac; //!size of the concentric cone
Float_t fMinDist;
Float_t fCentMin; // lower bound on centrality
Float_t fCentMax; // upper bound on centrality
Int_t fNInputTracksMin; // lower bound of nb. of input tracks
Int_t fNInputTracksMax; // upper bound of nb. of input tracks
+ Int_t fRequireITSRefit;
Int_t fAngStructCloseTracks;//only constituents or all tracks with R<0.8 for the angular structure
- Float_t fJetEtaMin; // lower bound on eta for found jets
- Float_t fJetEtaMax; // upper bound on eta for found jets
- Float_t fJetPtMin; // minimum jet pT
+ Int_t fCheckMethods; //to look into more detail into the core
+ Int_t fDoEventMixing;
+ Int_t fFlagPhiBkg;
+ Int_t fFlagEtaBkg;
+ Int_t fFlagJetHadron;
+ Float_t fFrac; //fraction of events to evaluate signal
+ 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; // lower bound on eta for found jets
+ Float_t fJetEtaMax; // upper bound on eta for found jets
+ Int_t fNevents; // number of events
+ Int_t fTindex; // index reference
+ Int_t fTrigBufferIndex; //index for the buffering
+ Int_t fCountAgain; //index for the buffering
+ Float_t fJetPtMin; // minimum jet pT
UChar_t fJetTriggerExcludeMask; // mask for jet triggeres to exclude
Float_t fJetPtFractionMin; // minimum fraction for positiv match of jets
Int_t fNMatchJets; // maximal nb. of jets taken for matching
Double_t fMatchMaxDist; // maximal distance of matching jets
Bool_t fKeepJets; // keep jets with negative pt after background subtraction
-
+ Bool_t fRunAnaAzimuthalCorrelation; // Flag to run azimuthal correlation between trigger track and recoil jets (Rongrong)
// output objects
const Int_t fkNbranches; //! number of branches to be read
TList *fOutputList; //! output data container
Bool_t fbEvent; // fill fhnEvent
TH1I *fHistEvtSelection; //! event selection statistic
- TH1I *fHistJetSelection; //! jet selection statistic
- TH2F *fh2JetSelection; //! jet selection statistic, with
-
+ THnSparse *fhnDeltaR; //! variables per jet
+ THnSparse *fhnMixedEvents; //!mixed events matrix
+
TH2F *fh2JetCoreMethod1C10; //Energy fraction in the core C10 method 1
TH2F *fh2JetCoreMethod2C10; //Energy fraction in the core C10 method 2
- TH2F *fh2JetCoreMethod3C10; //Energy fraction in the core C10 method 3
TH2F *fh2JetCoreMethod1C20; //Energy fraction in the core C20 method 1
TH2F *fh2JetCoreMethod2C20; //Energy fraction in the core C20 method 2
- TH2F *fh2JetCoreMethod3C20; //Energy fraction in the core C20 method 3
TH2F *fh2JetCoreMethod1C30; //Energy fraction in the core C30 method 1
TH2F *fh2JetCoreMethod2C30; //Energy fraction in the core C30 method 2
- TH2F *fh2JetCoreMethod3C30; //Energy fraction in the core C30 method 3
TH2F *fh2JetCoreMethod1C60; //Energy fraction in the core C60 method 1
TH2F *fh2JetCoreMethod2C60; //Energy fraction in the core C60 method 2
- TH2F *fh2JetCoreMethod3C60; //Energy fraction in the core C60 method 3
- TH2F *fh2SumPtInC10; //energy fraction in inner corona C10
- TH2F *fh2SumPtInC20; //energy fraction in inner corona C20
- TH2F *fh2SumPtInC30; //energy fraction in inner corona C30
- TH2F *fh2SumPtInC60; //energy fraction in inner corona C60
- TH2F *fh2SumPtOutC10; //energy fraction in outer corona C10
- TH2F *fh2SumPtOutC10b; //energy fraction in outer corona C10b
- TH2F *fh2SumPtOutC20; //energy fraction in outer corona C20
- TH2F *fh2SumPtOutC30; //energy fraction in outer corona C30
- TH2F *fh2SumPtOutC60; //energy fraction in outer corona C60
- TH2F *fh2SumPtInC10bkg; //expected from background inner C10
- TH2F *fh2SumPtInC20bkg; //expected from background inner C20
- TH2F *fh2SumPtInC30bkg; //expected from background inner C30
- TH2F *fh2SumPtInC60bkg; //expected from background inner C60
- TH2F *fh2SumPtOutC10bkg; //expected from background outer C10
- TH2F *fh2SumPtOutC20bkg; //expected from background outer C10
- TH2F *fh2SumPtOutC30bkg; //expected from background outer C10
- TH2F *fh2SumPtOutC60bkg; //expected from background outer C10
-
-
-
- TH2F* fh2DeltaRC10pt1; //Jet track R distance:C10 pt1
- TH2F* fh2DeltaRC20pt1; //C20 pt1
- TH2F* fh2DeltaRC30pt1; //C30 pt1
- TH2F* fh2DeltaRC60pt1; //C60 pt1
- TH2F* fh2DeltaRC10pt2; //C10 pt2
- TH2F* fh2DeltaRC20pt2; //C20 pt2
- TH2F* fh2DeltaRC30pt2; //C30 pt2
- TH2F* fh2DeltaRC60pt2; //C60 pt2
- TH2F* fh2DeltaRC10pt3; //C10 pt3
- TH2F* fh2DeltaRC20pt3; //C20 pt3
- TH2F* fh2DeltaRC30pt3; //C30 pt3
- TH2F* fh2DeltaRC60pt3; //C60 pt3
- TH2F* fh2DeltaRC10pt4; //C10 pt4
- TH2F* fh2DeltaRC20pt4; //C20 pt4
- TH2F* fh2DeltaRC30pt4; //C30 pt4
- TH2F* fh2DeltaRC60pt4; //C60 pt4
- TH2F* fh2DeltaEtaC10pt1; //The same but eta distance:C10 pt1
- TH2F* fh2DeltaEtaC20pt1; //C20 pt1
- TH2F* fh2DeltaEtaC30pt1; //C30 pt1
- TH2F* fh2DeltaEtaC60pt1; //C60 pt1
- TH2F* fh2DeltaEtaC10pt2; //C10 pt2
- TH2F* fh2DeltaEtaC20pt2; //C20 pt2
- TH2F* fh2DeltaEtaC30pt2; //C30 pt2
- TH2F* fh2DeltaEtaC60pt2; //C60 pt2
- TH2F* fh2DeltaEtaC10pt3; //C10 pt3
- TH2F* fh2DeltaEtaC20pt3; //C20 pt3
- TH2F* fh2DeltaEtaC30pt3; //C30 pt3
- TH2F* fh2DeltaEtaC60pt3; //C60 pt3
- TH2F* fh2DeltaEtaC10pt4; //C10 pt4
- TH2F* fh2DeltaEtaC20pt4; //C20 pt4
- TH2F* fh2DeltaEtaC30pt4; //C30 pt4
- TH2F* fh2DeltaEtaC60pt4; //C60 pt4
- TH2F* fh2DeltaPhiC10pt1; //The same but phi distance:C10 pt1
- TH2F* fh2DeltaPhiC20pt1; //C20 pt1
- TH2F* fh2DeltaPhiC30pt1; //C30 pt1
- TH2F* fh2DeltaPhiC60pt1; //C60 pt1
- TH2F* fh2DeltaPhiC10pt2; //C10 pt2
- TH2F* fh2DeltaPhiC20pt2; //C20 pt2
- TH2F* fh2DeltaPhiC30pt2; //C30 pt2
- TH2F* fh2DeltaPhiC60pt2; //C60 pt2
- TH2F* fh2DeltaPhiC10pt3; //C10 pt3
- TH2F* fh2DeltaPhiC20pt3; //C20 pt3
- TH2F* fh2DeltaPhiC30pt3; //C30 pt3
- TH2F* fh2DeltaPhiC60pt3; //C60 pt3
- TH2F* fh2DeltaPhiC10pt4; //C10 pt4
- TH2F* fh2DeltaPhiC20pt4; //C20 pt4
- TH2F* fh2DeltaPhiC30pt4; //C30 pt4
- TH2F* fh2DeltaPhiC60pt4; //C60 pt4
- TH2F* fh2AngStructpt1C10; //Average two particle correlation function:C10 pt1
+ TH3F* fh3JetTrackC3060; //C3060 pt2
+ TH3F* fh3JetTrackC20; //C10 pt2
+ TH2F* fh2AngStructpt1C10; //Average
TH2F* fh2AngStructpt2C10; //C10 pt2
TH2F* fh2AngStructpt3C10; //C10 pt3
TH2F* fh2AngStructpt4C10; //C10 pt4
TH2F* fh2AngStructpt2C60; //C60 pt2
TH2F* fh2AngStructpt3C60; //C60 pt3
TH2F* fh2AngStructpt4C60; //C60 pt4
-
-
-
+
+ TH1D* fh1TrigRef; //ref multiple triggers
+ TH1D* fh1TrigSig; //sig multiple triggers
+ TH2F* fh2Ntriggers; //triggers
+ TH2F* fh2Ntriggers2C10; //centrality bias of triggers
+ TH2F* fh2Ntriggers2C20; //centrality bias of triggers
+ TH3F* fh3JetDensity; //jet density
+ TH3F* fh3JetDensityA4; //jet density
+ TH2F* fh2RPJetsC10; //reaction plane Jets
+ TH2F* fh2RPJetsC20;
+ TH2F* fh2RPTC10; //reaction plane TT
+ TH2F* fh2RPTC20;
+ THnSparse *fHJetSpec; //Recoil jet spectrum
+
+ Double_t fTrigBuffer[10][7]; //!buffer for triggers
+ TH2F *fhTTPt; //! Trigger track pt for normalization (Rongrong)
+ THnSparse *fHJetPhiCorr; //! Azimuthal correlation between trigger track and recoil jets (Rongrong)
+ TRandom3* fRandom; // TRandom3
AliAnalysisTaskJetCore(const AliAnalysisTaskJetCore&); // not implemented
AliAnalysisTaskJetCore& operator=(const AliAnalysisTaskJetCore&); // not implemented
- ClassDef(AliAnalysisTaskJetCore, 4);
+ ClassDef(AliAnalysisTaskJetCore, 6);
};
#endif