class TH2F;
class TH3F;
class TList;
+class TClonesArray;
class THnSparse;
class TRandom3;
class TArrayI;
class AliAODExtension;
class AliAODEvent;
class AliGenPythiaEventHeader;
+class AliMCEvent; //FK//
+class AliMCEventHandler; //FK//
+class AliGenEventHeader; //FK//
#include "AliAnalysisTaskSE.h"
#include "AliVEvent.h"
virtual Bool_t Notify();
virtual void SetBranchName(const TString &name){ fJetBranchName = name; }
- virtual void SetBranchNameMC(const TString &name){
- fJetBranchNameMC = name;
- if(fJetBranchNameMC.Contains("MC2")){
- fJetBranchNameMCFull = fJetBranchNameMC;
- fJetBranchNameMCFull.ReplaceAll("MC2","MC");
- }
- }
+ virtual void SetBranchNameChargMC(const TString &name){ fJetBranchNameChargMC = name; }
+ virtual void SetBranchNameKine(const TString &name){ fJetBranchNameKine = name; }
+ virtual void SetBranchNameFullMC(const TString &name){ fJetBranchNameFullMC = name; }
+ virtual void SetBranchNameBg(const TString &name){ fJetBranchNameBg = name; }
+ virtual void SetBranchNameBgChargMC(const TString &name){ fJetBranchNameBgChargMC = name; }
+ virtual void SetBranchNameBgKine(const TString &name){ fJetBranchNameBgKine = name; }
virtual void SetNonStdFile(char* c){fNonStdFile = c;}
virtual void SetSystem(Int_t sys) { fSystem = sys; }
virtual void SetJetR(Float_t jR) { fJetParamR = jR; }
+ virtual void SetBgJetR(Float_t bgjR) { fBgJetParamR = bgjR; }
+ virtual void SetBgMaxJetPt(Float_t mpt){ fBgMaxJetPt = mpt;}
+ virtual void SetRndTrials(Int_t nt){ fnTrials = nt;}
+ virtual void SetFreeAreaFrac(Float_t frac){ fJetFreeAreaFrac = frac;}
+ virtual void SetBgConeR(Float_t cr){ fBgConeR = cr; }
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 SetEventNumberRangeHigh(Int_t rh){ fEventNumberRangeHigh=rh;}
virtual void SetTriggerPtRangeLow(Float_t tl){ fTriggerPtRangeLow=tl;}
virtual void SetTriggerPtRangeHigh(Float_t th){ fTriggerPtRangeHigh=th;}
-
+ virtual void SetFillResponseMatrix(Bool_t brm){ fFillRespMx = brm;}
+ virtual void SetBinning(Bool_t bbb) { fDoubleBinning = bbb; }
+ virtual void SetUseExchangeContainerInput(Bool_t b){ fUseExchContainer = b;}
Double_t RelativePhi(Double_t angle1, Double_t angle2);
private:
//private member functions
- Int_t GetListOfTracks(TList *list); //returns index of trig and track list
- //Double_t GetBackgroundInPerpCone(Float_t jetR, Double_t jetPhi, Double_t jetEta, TList* trkList); //sums pT in the cone perp in phi to jet
+ Int_t GetListOfTracks(TList *list); //returns index of trig and track list
+
Bool_t SelectMCGenTracks(AliVParticle *trk, TList *trkList, Double_t &ptLeading, Int_t &index, Int_t counter);
void FillEffHistos(TList *recList, TList *genList);
-
+
+ void EstimateBgRhoMedian(TList *listJet, TList* listPart, Double_t &rhoMedian, Int_t mode);//median method to estimate bg
+ void EstimateBgCone(TList *listJet, TList* listPart, Double_t &rhoPerpCone);//perp cone method to estimate bg
+ void ReadTClonesArray(TString bname, TList *list); //init jets lists
//private member objects
AliESDEvent *fESD; //! ESD object
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
+ AliMCEvent *fMcEvent; //! MC event
+ AliInputEventHandler *fMcHandler; //! MCEventHandler
+
// jets to compare
TString fJetBranchName; // name of jet branch
- TString fJetBranchNameMC; // name of jet branch
- TString fJetBranchNameMCFull; // name of jet branch
+ TString fJetBranchNameChargMC; // name of jet branch output AOD
+ TString fJetBranchNameKine; // name of jet branch kine
+ TString fJetBranchNameFullMC; // name of jet branch
+ TString fJetBranchNameBg; // name of bg (kt) jet branch
+ TString fJetBranchNameBgChargMC; // name of bg (kT) jet branch
+ TString fJetBranchNameBgKine; // name of bg (kT) jet branch
TList *fListJets; //! jet list reconstructed level
- TList *fListJetsGen; //! jet list generator level charged jet
+ TList *fListJetsGen; //! jet list generator level
TList *fListJetsGenFull; //! jet list generator level full jets
+ TList *fListJetsBg; //! jet list reconstructed level to be removed from bg
+ TList *fListJetsBgGen; //! jet list generator level to be removed from bg
+
TString fNonStdFile; // name of delta aod file to catch the extension
// event selection
Int_t fSystem; // collision system pp=0, pPb=1
Float_t fJetParamR; // jet cone resolution (radius) R
+ Float_t fBgJetParamR; // jet cone resolution (radius) R of jet to be removed from bg
+ Float_t fBgMaxJetPt; // max pt of jets accepted in bg
+ Float_t fBgConeR; //perp cone R used to assess bg
AliVEvent::EOfflineTriggerTypes fOfflineTrgMask; // mask of offline trigs
Int_t fMinContribVtx; // min numb of trk contrib for prim vertex
Float_t fVtxZMin; // lower bound on vertex z
Float_t fTriggerEtaCut; // lower bound on eta for trigger track
Float_t fTrackEtaCut; // upper bound on eta for trigger track
Float_t fTrackLowPtCut; // upper bound on eta for trigger track
-
+ Bool_t fUseExchContainer; //use exhange container
TList *fOutputList; //! output data container
TH1I *fHistEvtSelection; //! event selection statistic
TH2F *fh2Ntriggers; //trigger pT versus centrality
THnSparse *fHJetSpec; //Recoil jet spectrum
+ THnSparse *fHJetSpecSubUeMedian; //Recoil jet spectrum, jet pT corrected by kT median
+ THnSparse *fHJetSpecSubUeCone; //Recoil jet spectrum, jet pT corrected by perp cone rho
+ THnSparse *fHJetPhiCorr; // Dphi distribution jet-triger
+ THnSparse *fHJetPhiCorrSubUeMedian; // Dphi distribution jet-triger
+ THnSparse *fHJetPhiCorrSubUeCone; // Dphi distribution jet-triger
+
//Diagnostics
- THnSparse *fHJetDensity; //density of jet with A>0.07 //fk
- THnSparse *fHJetDensityA4; //density of jets with A>0.4 //fk
+ THnSparse *fHJetUeMedian; //UE background from kT median
+ THnSparse *fHJetUeCone; //UE background from perp cone
+ THnSparse *fHRhoUeMedianVsCone; //EBE UE from perp cone
+ //THnSparse *fHJetDensity; //density of jet with A>0.07 //fk
+ //THnSparse *fHJetDensityA4; //density of jets with A>0.4 //fk
TH2D *fhJetPhi; //Azimuthal distribution of jets
TH2D *fhTriggerPhi; //Azimuthal distribution of trigger hadron
TH2D *fhJetEta; //Pseudorapidity distribution of jets
TH1D *fhCentrality; //Deltaphi between trigger and jet
TH1D *fhCentralityAccept; //Deltaphi between trigger and jet after cut
- THnSparse *fHJetPtRaw; //bg unsubtr. vs bg subtr. pT spectrum of jets vs jet area
- THnSparse *fHLeadingJetPtRaw; //bg unsubtr. vs bg. subtr. leading jet pT vs area
- THnSparse *fHDphiVsJetPtAll; //Dphitrigger-jet versus jet pt for all jets given pTtrigg
+ //THnSparse *fHJetPtRaw; //bg unsubtr. vs bg subtr. pT spectrum of jets vs jet area
+ //THnSparse *fHLeadingJetPtRaw; //bg unsubtr. vs bg. subtr. leading jet pT vs area
+ //THnSparse *fHDphiVsJetPtAll; //Dphitrigger-jet versus jet pt for all jets given pTtrigg
//MC generator level
TH2D *fhJetPtGenVsJetPtRec; //jet respose matrix
- TH1D *fhJetPtGen; //generated pT spectrum of charged jets
+ TH2D *fhJetPtGenVsJetPtRecSubUeMedian; //jet respose matrix both pT with subtracted kT median bg
+ TH2D *fhJetPtGenVsJetPtRecSubUeCone; //jet respose matrix both pT with subtracted weighted kT median bg
+ TH1D *fhJetPtGen; //generated pT spectrum of jets
+ TH1D *fhJetPtSubUeMedianGen; //generated pT spectrum of jets with subtracted kT median
+ TH1D *fhJetPtSubUeConeGen; //generated pT spectrum of jets with perp cone
TH2D *fhJetPtGenChargVsJetPtGenFull; //generated pT spectrum of full jets
TH1D *fhJetPtGenFull; // generated pT spectrum of full jets
TH2F *fh2NtriggersGen; //trigger pT versus centrality in generator level
- THnSparse *fHJetSpecGen; //Recoil jet spectrum in generator level
+ THnSparse *fHJetSpecGen; //Recoil jet spectrum at generator level
+ THnSparse *fHJetSpecSubUeMedianGen; //Recoil jet spectrum at gen level, jet pT corrected by kT median
+ THnSparse *fHJetSpecSubUeConeGen; //Recoil jet spectrum at gen level, jet pT corrected with rho from cone
+ THnSparse *fHJetPhiCorrGen; // Dphi distribution jet-triger
+ THnSparse *fHJetPhiCorrSubUeMedianGen; // Dphi distribution jet-triger
+ THnSparse *fHJetPhiCorrSubUeConeGen; // Dphi distribution jet-triger
+ THnSparse *fHJetUeMedianGen; //UE background from kT median
+ THnSparse *fHJetUeConeGen; //UE background from Perp Cone
TH2D *fhPtTrkTruePrimRec; // pt spectrum of true reconstructed primary tracks
TH2D *fhPtTrkTruePrimGen; // pt spectrum of true generated primary track
TH2D *fhPtTrkSecOrFakeRec; // pt spectrum of reconstructed fake or secondary tracks
-
- Bool_t fIsMC; //flag analysis on MC data with true and on the real data false
+ THnSparse *fHRhoUeMedianVsConeGen; //EBE UE from Median vs Perp Cone generator level
+
+ TH1D *fhEntriesToMedian; //how many entries were used to calculate
+ TH1D *fhEntriesToMedianGen; //how many entries were used to calculate in MC
+ TH1D *fhCellAreaToMedian; //how many entries were used to calculate
+ TH1D *fhCellAreaToMedianGen; //how many entries were used to calculate in MC
+
+
+ Bool_t fIsChargedMC; //flag analysis on MC data with true and on the real+kine data false
+ Bool_t fIsKine; //flag analysis on kine data with true and on the real+MC data false
+ Bool_t fIsFullMC; //flag analysis on MC data with true and on the real+kine data false
TArrayI faGenIndex; // labels of particles on MC generator level
TArrayI faRecIndex; // labels of particles on reconstructed track level
const Double_t fkAcceptance; //eta times phi Alice coverage
Float_t fTriggerPtRangeLow; // lower range of selected trigger pt
Float_t fTriggerPtRangeHigh; // upper range of selected trigger pt
- TRandom3* fRandom; // TRandom3
+ Bool_t fFillRespMx; //fill response matrix files
- ClassDef(AliAnalysisTaskJetCorePP, 7); //has to end with number larger than 0
+
+ TRandom3* fRandom; // TRandom3
+ Int_t fnTrials; //number of random trials to measure cell area
+ Float_t fJetFreeAreaFrac; //fraction of area in cell free of jets
+ const Int_t fnPhi; //number of cells in phi
+ const Int_t fnEta; //number of cells in eta
+ const Double_t fEtaSize; //cell size in eta
+ const Double_t fPhiSize; //cell size in phi
+ const Double_t fCellArea; //cell area
+ Double_t fSafetyMargin; //enlarge a bit the jet size to avoid contamination of UE
+
+ Bool_t fDoubleBinning; //0=use 2 GeV/c bins ; 1= use 1 GeV/c bins
+
+ ClassDef(AliAnalysisTaskJetCorePP, 12); //has to end with number larger than 0
};
#endif