class TList;
class AliAODMCParticle;
class AliAODTrack;
+class TRandom3;
#include "AliAnalysisTaskFragmentationFunction.h"
#include "AliPID.h"
ClassDef(AliFragFuncHistosInvMass, 1);
};
-
- //----------------------------------------
- class AliFragFuncHistosPhiCorrInvMass : public TObject
- {
-
- public:
-
- AliFragFuncHistosPhiCorrInvMass(const char* name = "FFPhiCorrIMhistos",
- Int_t nPt = 0, Float_t ptMin = 0, Float_t ptMax = 0,
- Int_t nPhi = 0, Float_t phiMin = 0, Float_t phiMax = 0,
- Int_t nInvMass = 0, Float_t invMassMin=0, Float_t invMassMax=0);
-
- AliFragFuncHistosPhiCorrInvMass(const AliFragFuncHistosPhiCorrInvMass& copy);
- AliFragFuncHistosPhiCorrInvMass& operator=(const AliFragFuncHistosPhiCorrInvMass &o);
- virtual ~AliFragFuncHistosPhiCorrInvMass();
-
- virtual void DefineHistos();
- virtual void FillPhiCorr(Float_t pt, Float_t phi, Float_t invM);
- virtual void AddToOutput(TList* list) const;
-
-
-
- private:
-
- Int_t fNBinsPt; // FF histos bins
- Float_t fPtMin; // FF histos limits
- Float_t fPtMax; // FF histos limits
-
- Int_t fNBinsPhi; // FF histos bins
- Float_t fPhiMin; // FF histos limits
- Float_t fPhiMax; // FF histos limits
-
- Int_t fNBinsInvMass; // FF histos bins
- Float_t fInvMassMin; // FF histos limits
- Float_t fInvMassMax; // FF histos limits
-
- TH3F* fh3PhiCorr; //! FF: phi correlation histo
-
- TString fNamePhiCorr; // histo names prefix
-
- ClassDef(AliFragFuncHistosPhiCorrInvMass, 1);
- };
//----------------------------------------
Int_t GetListOfMCParticles(TList *outputlist, Int_t particletype, AliAODEvent* mcaodevent);
void GetTracksInCone(TList* inputlist, TList* outputlist, const AliAODJet* jet, Double_t radius, Double_t& sumPt, Double_t minPt, Double_t maxPt, Bool_t& isBadPt);
void GetTracksInPerpCone(TList* inputlist, TList* outputlist, const AliAODJet* jet, Double_t radius, Double_t& sumPerpPt);
- Bool_t MCLabelCheck(AliAODv0* v0, Int_t particletype, const AliAODTrack* trackNeg, const AliAODTrack* trackPos, TList *listmc, Int_t& negDaughterpdg, Int_t& posDaughterpdg, Int_t& motherType, Int_t& v0Label, Double_t& MCPt, Bool_t& fPhysicalPrimary, Int_t& MCv0PDGCode);
+ Bool_t MCLabelCheck(AliAODv0* v0, Int_t particletype, const AliAODTrack* trackNeg, const AliAODTrack* trackPos, TList *listmc, Int_t& negDaughterpdg, Int_t& posDaughterpdg, Int_t& motherType, Int_t& v0Label, Double_t& MCPt, Bool_t& fPhysicalPrimary, Int_t& MCv0PDGCode, TString& generatorName, Bool_t& isinjected);
Bool_t IsParticleMatching(const AliAODMCParticle* mcp0, Int_t v0Label);
Bool_t DaughterTrackCheck(AliAODv0* v0, Int_t& nnum, Int_t& pnum);
- Int_t IsTrackInjected(AliAODv0 *v0, AliAODMCHeader *header, TClonesArray *arrayMC);
+ //Int_t SplitCocktail(AliAODMCParticle *mcv0, Int_t v0Label, AliAODMCHeader *header, TClonesArray *arrayMC);
TString GetGenerator(Int_t label, AliAODMCHeader* header);
+ void GetTrackPrimaryGenerator(Int_t lab, AliAODMCHeader *header,TClonesArray *arrayMC,TString &nameGen);
+ Bool_t IsTrackInjected(Int_t lab, AliAODMCHeader *header,TClonesArray *arrayMC, TString &nameGen);
Double_t SmearJetPt(Double_t jetPt, Int_t cl, Double_t jetRadius, Double_t ptmintrack, Double_t& jetPtSmear);
+ Bool_t IsParticleInCone(const AliVParticle* part1, const AliVParticle* part2, Double_t dRMax) const;
+ Bool_t IsRCJCOverlap(TList* recjetlist, const AliVParticle* part, Double_t dDistance) const;
+ AliAODJet* GetRandomCone(TList* jetlist, Double_t dEtaConeMax, Double_t dDistance) const;
+
AliAODJet* GetMedianCluster();
-
+ Double_t AreaCircSegment(Double_t dRadius, Double_t dDistance) const;
+
+
virtual void SetK0Type(Int_t i){ fK0Type = i; }
virtual void SetFilterMaskK0(UInt_t i) {fFilterMaskK0 = i;}
//-- K0s
- void SetFFInvMassHistoBins(Int_t nJetPt = 39, Float_t jetPtMin = 5., Float_t jetPtMax = 200., //previous 19, 5.,100.
+ void SetFFInvMassHistoBins(Int_t nJetPt = 19, Float_t jetPtMin = 5., Float_t jetPtMax = 100., //previous 19, 5.,100.
Int_t nInvM = 400, Float_t invMMin = 0.3, Float_t invMMax = 0.7, //previous 0.4 to 0.6
Int_t nPt = 200, Float_t ptMin = 0., Float_t ptMax = 20., //previous 0. to 10.
Int_t nXi = 35, Float_t xiMin = 0., Float_t xiMax = 7.,
fFFIMNBinsXi = nXi; fFFIMXiMin = xiMin; fFFIMXiMax = xiMax; fFFIMNBinsZ = nZ; fFFIMZMin = zMin; fFFIMZMax = zMax; }
- void SetPhiCorrInvMassHistoBins(Int_t nPt = 40, Float_t ptMin = 0., Float_t ptMax = 20.,
- Int_t nPhi = 20, Float_t phiMin = 0., Float_t phiMax = 2*TMath::Pi(),
- Int_t nInvM = 240, Float_t invMMin = 0.4, Float_t invMMax = 0.6)
-
- { fPhiCorrIMNBinsPt = nPt; fPhiCorrIMPtMin = ptMin; fPhiCorrIMPtMax = ptMax;
- fPhiCorrIMNBinsPhi = nPhi; fPhiCorrIMPhiMin = phiMin; fPhiCorrIMPhiMax = phiMax;
- fPhiCorrIMNBinsInvM = nInvM; fPhiCorrIMInvMMin = invMMin; fPhiCorrIMInvMMax = invMMax;
- }
// --La and ALa
- void SetFFInvMassLaHistoBins(Int_t nJetPt = 39, Float_t jetPtMin = 5., Float_t jetPtMax = 200., //La
+ void SetFFInvMassLaHistoBins(Int_t nJetPt = 19, Float_t jetPtMin = 5., Float_t jetPtMax = 100., //La
//Int_t nInvM = 140, Float_t invMMin = 1.06, Float_t invMMax = 1.2,//original inv. mass range, now I shifted to Vits slightly larger mass window
Int_t nInvM = 200, Float_t invMMin = 1.05, Float_t invMMax = 1.25,
Int_t nPt = 200, Float_t ptMin = 0., Float_t ptMax = 20.,
fFFIMLaNBinsXi = nXi; fFFIMLaXiMin = xiMin; fFFIMLaXiMax = xiMax; fFFIMLaNBinsZ = nZ; fFFIMLaZMin = zMin; fFFIMLaZMax = zMax; }
- void SetPhiCorrInvMassLaHistoBins(Int_t nPt = 40, Float_t ptMin = 0., Float_t ptMax = 20., //La
- Int_t nPhi = 20, Float_t phiMin = 0., Float_t phiMax = 2*TMath::Pi(),
- Int_t nInvM = 50, Float_t invMMin = 1.06, Float_t invMMax = 1.2)
-
- { fPhiCorrIMLaNBinsPt = nPt; fPhiCorrIMLaPtMin = ptMin; fPhiCorrIMLaPtMax = ptMax;
- fPhiCorrIMLaNBinsPhi = nPhi; fPhiCorrIMLaPhiMin = phiMin; fPhiCorrIMLaPhiMax = phiMax;
- fPhiCorrIMLaNBinsInvM = nInvM; fPhiCorrIMLaInvMMin = invMMin; fPhiCorrIMLaInvMMax = invMMax;
- }
-
+ //TRandom3* nRandom; //random number for UE estimation
-
// consts
//--
+ TRandom3* fRandom; // TRandom3 for background estimation
Bool_t fAnalysisMC;
Double_t fDeltaVertexZ;
Double_t fCutjetEta;
Double_t fCutPostrackEta;
Double_t fCutNegtrackEta;
Double_t fCutEta;
-
Double_t fCutV0cosPointAngle;
- Double_t fCutChi2PosDaughter;
- Double_t fCutChi2NegDaughter;
Bool_t fKinkDaughters;
Bool_t fRequireTPCRefit;
Double_t fCutArmenteros;
void SetCutV0Eta(Double_t v0Eta){fCutEta=v0Eta; Printf("AliAnalysisTaskJetChem:: SetCutV0Eta %f",v0Eta);}
void SetCutJetEta(Double_t jetEta){fCutjetEta=jetEta; Printf("AliAnalysisTaskJetChem:: SetCutjetEta %f",jetEta);}
void SetCosOfPointingAngle(Double_t cospointAng){fCutV0cosPointAngle=cospointAng; Printf("AliAnalysisTaskJetChem:: SetCosOfPointingAngle %f",cospointAng);}
- void SetChi2CutPosDaughter(Double_t chi2PosDaughter){fCutChi2PosDaughter=chi2PosDaughter; Printf("AliAnalysisTaskJetChem:: SetChi2CutPosDaughter %f",chi2PosDaughter);}
- void SetChi2CutNegDaughter(Double_t chi2NegDaughter){fCutChi2NegDaughter=chi2NegDaughter; Printf("AliAnalysisTaskJetChem:: SetChi2CutNegDaughter %f",chi2NegDaughter);}
void SetAcceptKinkDaughters(Bool_t isKinkDaughtersAccepted){fKinkDaughters=isKinkDaughtersAccepted; Printf("AliAnalysisTaskJetChem:: SetAcceptKinkDaughters %i", isKinkDaughtersAccepted);}
void SetRequireTPCRefit(Bool_t isTPCRefit){fRequireTPCRefit=isTPCRefit; Printf("AliAnalysisTaskJetChem:: SetRequireTPCRefit %i", isTPCRefit);}
void SetCutArmenteros(Double_t armenteros){fCutArmenteros=armenteros; Printf("AliAnalysisTaskJetChem:: SetCutArmenteros %f", armenteros);}
private:
+
+
+
+
Int_t fK0Type; // K0 cuts
- UInt_t fFilterMaskK0; //! K0 legs cuts
+ UInt_t fFilterMaskK0;
+ TList* jettracklist;
+ TList* jetConeK0list;
+ TList* jetConeLalist;
+ TList* jetConeALalist;
+ TList* jetPerpConeK0list;
+ TList* jetPerpConeLalist;
+ TList* jetPerpConeALalist;
+ TList* jetMedianConeK0list;
+ TList* jetMedianConeLalist;
+ TList* jetMedianConeALalist;
+ TList* fListK0sRC;
+ TList* fListLaRC;
+ TList* fListALaRC;
+
+ //! K0 legs cuts
TList* fListK0s; //! K0 list
AliPIDResponse *fPIDResponse; // PID
AliFragFuncQATrackHistos* fV0QAK0; //! track QA: V0s in K0 inv mass range
AliFragFuncHistos* fFFHistosRecCutsK0Evt; //! inclusive FF for K0 evt
- AliFragFuncHistosInvMass* fFFHistosIMK0AllEvt; //! K0 pt spec for all events
- AliFragFuncHistosInvMass* fFFHistosIMK0Jet; //! K0 FF all dPhi
- AliFragFuncHistosInvMass* fFFHistosIMK0Cone; //! K0 FF jet cone
- AliFragFuncHistosPhiCorrInvMass* fFFHistosPhiCorrIMK0; //! K0 correlation to jet axis
+ //AliFragFuncHistosInvMass* fFFHistosIMK0AllEvt; //! K0 pt spec for all events
+ //AliFragFuncHistosInvMass* fFFHistosIMK0Jet; //! K0 FF all dPhi
+ //AliFragFuncHistosInvMass* fFFHistosIMK0Cone; //! K0 FF jet cone
Int_t fLaType; // La cuts
UInt_t fFilterMaskLa; //! La legs cuts
TList* fListLa; //! La list
- AliFragFuncHistosInvMass* fFFHistosIMLaAllEvt; //! La pt spec for all events
- AliFragFuncHistosInvMass* fFFHistosIMLaJet; //! La FF all dPhi
- AliFragFuncHistosInvMass* fFFHistosIMLaCone; //! La FF jet cone
- AliFragFuncHistosPhiCorrInvMass* fFFHistosPhiCorrIMLa; //! La correlation to jet axis
+ //AliFragFuncHistosInvMass* fFFHistosIMLaAllEvt; //! La pt spec for all events
+ //AliFragFuncHistosInvMass* fFFHistosIMLaJet; //! La FF all dPhi
+ //AliFragFuncHistosInvMass* fFFHistosIMLaCone; //! La FF jet cone
Int_t fALaType; // ALa cuts
Bool_t IsArmenterosSelected; //Armenteros-Podolanski Cut (is/isn't) applied
- AliFragFuncHistosInvMass* fFFHistosIMALaAllEvt; //! ALa pt spec for all events
- AliFragFuncHistosInvMass* fFFHistosIMALaJet; //! ALa FF all dPhi
- AliFragFuncHistosInvMass* fFFHistosIMALaCone; //! ALa FF jet cone
- AliFragFuncHistosPhiCorrInvMass* fFFHistosPhiCorrIMALa; //! ALa corelation to jet axis
+ //AliFragFuncHistosInvMass* fFFHistosIMALaAllEvt; //! ALa pt spec for all events
+ //AliFragFuncHistosInvMass* fFFHistosIMALaJet; //! ALa FF all dPhi
+ // AliFragFuncHistosInvMass* fFFHistosIMALaCone; //! ALa FF jet cone
// histogram bins
-
+
//--K0s
Float_t fFFIMLaZMax; // FF histos limits
- //--K0s
-
- Int_t fPhiCorrIMNBinsPt; // FF histos bins
- Float_t fPhiCorrIMPtMin; // FF histos limits
- Float_t fPhiCorrIMPtMax; // FF histos limits
-
- Int_t fPhiCorrIMNBinsPhi; // FF histos bins
- Float_t fPhiCorrIMPhiMin; // FF histos limits
- Float_t fPhiCorrIMPhiMax; // FF histos limits
-
- Int_t fPhiCorrIMNBinsInvM; // FF histos bins
- Float_t fPhiCorrIMInvMMin; // FF histos limits
- Float_t fPhiCorrIMInvMMax; // FF histos limits
-
- //--La
-
- Int_t fPhiCorrIMLaNBinsPt; // FF histos bins
- Float_t fPhiCorrIMLaPtMin; // FF histos limits
- Float_t fPhiCorrIMLaPtMax; // FF histos limits
-
- Int_t fPhiCorrIMLaNBinsPhi; // FF histos bins
- Float_t fPhiCorrIMLaPhiMin; // FF histos limits
- Float_t fPhiCorrIMLaPhiMax; // FF histos limits
-
- Int_t fPhiCorrIMLaNBinsInvM; // FF histos bins
- Float_t fPhiCorrIMLaInvMMin; // FF histos limits
- Float_t fPhiCorrIMLaInvMMax; // FF histos limits
-
-
+
// Histograms
TH1F* fh1EvtAllCent;
TH1F* fh1JetEta;
TH1F* fh1JetPhi;
TH2F* fh2JetEtaPhi;
- TH1F* fh1V0JetPt;
+ // TH1F* fh1V0JetPt;
+ TH1F* fh1IMK0Cone; //jet pt distribution for normalisation by number of jets
+ TH1F* fh1IMLaCone;
+ TH1F* fh1IMALaCone;
TH2F* fh2FFJetTrackEta; //charged jet track eta distribution
- TH1F* fh1trackPosNCls;
- TH1F* fh1trackNegNCls;
+ // TH1F* fh1trackPosNCls;
+ // TH1F* fh1trackNegNCls;
TH1F* fh1trackPosRap;
TH1F* fh1trackNegRap;
- TH1F* fh1V0Rap;
+ // TH1F* fh1V0Rap;
TH1F* fh1trackPosEta;
TH1F* fh1trackNegEta;
TH1F* fh1V0Eta;
- TH1F* fh1V0totMom;
+ // TH1F* fh1V0totMom;
TH1F* fh1CosPointAngle;
- TH1F* fh1Chi2Pos;
- TH1F* fh1Chi2Neg;
TH1F* fh1DecayLengthV0;
TH2F* fh2ProperLifetimeK0sVsPtBeforeCut;
TH2F* fh2ProperLifetimeK0sVsPtAfterCut;
- TH1F* fh1ProperLifetimeV0BeforeCut;
- TH1F* fh1ProperLifetimeV0AfterCut;
TH1F* fh1V0Radius;
TH1F* fh1DcaV0Daughters;
TH1F* fh1DcaPosToPrimVertex;
TH1F* fh1PtMCALa;
TH1F* fh1EtaK0s;
TH1F* fh1EtaLa;
- TH1F* fh1EtaALa;
- TH3F* fh3InvMassEtaTrackPtK0s;
- TH3F* fh3InvMassEtaTrackPtLa;
- TH3F* fh3InvMassEtaTrackPtALa;
+ TH1F* fh1EtaALa;
+ TH1F* fh1RC;
+ TH1F* fh1RCBiasK0;
+ TH1F* fh1RCBiasLa;
+ TH1F* fh1RCBiasALa;
+ TH1F* fh1MCC;
+ TH1F* fh1OC;
+ TH1F* fh1NJ;
+ THnSparse* fhnInvMassEtaTrackPtK0s;
+ THnSparse* fhnInvMassEtaTrackPtLa;
+ THnSparse* fhnInvMassEtaTrackPtALa;
TH1F* fh1TrackMultCone;
TH2F* fh2TrackMultCone;
- TH2F* fh2MCgenK0Cone;
- TH2F* fh2MCgenLaCone;
- TH2F* fh2MCgenALaCone;
- TH2F* fh2MCEtagenK0Cone;
- TH2F* fh2MCEtagenLaCone;
- TH2F* fh2MCEtagenALaCone;
- TH1F* fh1FFIMK0ConeSmear;
- TH1F* fh1FFIMLaConeSmear;
- TH1F* fh1FFIMALaConeSmear;
- TH3F* fh3MCrecK0Cone;
- TH3F* fh3MCrecLaCone;
- TH3F* fh3MCrecALaCone;
- TH3F* fh3MCrecK0ConeSmear;
- TH3F* fh3MCrecLaConeSmear;
- TH3F* fh3MCrecALaConeSmear;
- TH3F* fh3SecContinCone;
- TH3F* fh3StrContinCone;
- TH3F* fh3IMK0PerpCone;
- TH3F* fh3IMLaPerpCone;
- TH3F* fh3IMALaPerpCone;
- TH3F* fh3IMK0MedianCone;
- TH3F* fh3IMLaMedianCone;
- TH3F* fh3IMALaMedianCone;
+ THnSparse* fhnNJK0;
+ THnSparse* fhnNJLa;
+ THnSparse* fhnNJALa;
+ // TH2F* fh2MCgenK0Cone;
+ // TH2F* fh2MCgenLaCone;
+ // TH2F* fh2MCgenALaCone;
+ // TH2F* fh2MCEtagenK0Cone;
+ // TH2F* fh2MCEtagenLaCone;
+ // TH2F* fh2MCEtagenALaCone;
+ TH2F* fh2CorrHijingLaProton;
+ TH2F* fh2CorrInjectLaProton;
+ TH2F* fh2CorrHijingALaAProton;
+ TH2F* fh2CorrInjectALaAProton;
+ TH1F* fh1IMK0ConeSmear; //histos for normalisation by number of smeared jets
+ TH1F* fh1IMLaConeSmear;
+ TH1F* fh1IMALaConeSmear;
+ TH2F* fh2MCEtaVsPtHijingLa;
+ TH2F* fh2MCEtaVsPtInjectLa;
+ TH2F* fh2MCEtaVsPtHijingALa;
+ TH2F* fh2MCEtaVsPtInjectALa;
+ THnSparse* fhnrecMCHijingLaIncl;
+ THnSparse* fhnrecMCHijingLaCone;
+ THnSparse* fhnrecMCHijingALaIncl;
+ THnSparse* fhnrecMCHijingALaCone;
+ THnSparse* fhnrecMCInjectLaIncl;
+ THnSparse* fhnrecMCInjectLaCone;
+ THnSparse* fhnrecMCInjectALaIncl;
+ THnSparse* fhnrecMCInjectALaCone;
+ THnSparse* fhnMCrecK0Cone;
+ THnSparse* fhnMCrecLaCone;
+ THnSparse* fhnMCrecALaCone;
+ THnSparse* fhnMCrecK0ConeSmear;
+ THnSparse* fhnMCrecLaConeSmear;
+ THnSparse* fhnMCrecALaConeSmear;
+ THnSparse* fhnK0sSecContinCone;
+ THnSparse* fhnLaSecContinCone;
+ THnSparse* fhnALaSecContinCone;
+ THnSparse* fhnK0sIncl;
+ THnSparse* fhnK0sCone;
+ THnSparse* fhnLaIncl;
+ THnSparse* fhnLaCone;
+ THnSparse* fhnALaIncl;
+ THnSparse* fhnALaCone;
+ THnSparse* fhnK0sPC;
+ THnSparse* fhnLaPC;
+ THnSparse* fhnALaPC;
+ THnSparse* fhnK0sMCC;
+ THnSparse* fhnLaMCC;
+ THnSparse* fhnALaMCC;
+ THnSparse* fhnK0sRC;
+ THnSparse* fhnLaRC;
+ THnSparse* fhnALaRC;
+ THnSparse* fhnK0sRCBias;
+ THnSparse* fhnLaRCBias;
+ THnSparse* fhnALaRCBias;
+ THnSparse* fhnK0sOC;
+ THnSparse* fhnLaOC;
+ THnSparse* fhnALaOC;
+ TH1F* fh1AreaExcluded;
TH1F* fh1MedianEta;
TH1F* fh1JetPtMedian; //for normalisation by total number of median cluster jets TH3F* fh3IMALaMedianCone;
TH1F* fh1MCMultiplicityPrimary;
TH1F* fh1MCMultiplicityTracks;
- TH1F* fh1MCmotherLa;
- TH1F* fh1MCmotherALa;
- TH3F* fh3FeedDownLa;
- TH3F* fh3FeedDownALa;
- TH3F* fh3FeedDownLaCone;
- TH3F* fh3FeedDownALaCone;
+ THnSparse* fhnFeedDownLa;
+ THnSparse* fhnFeedDownALa;
+ THnSparse* fhnFeedDownLaCone;
+ THnSparse* fhnFeedDownALaCone;
TH1F* fh1MCProdRadiusK0s;
TH1F* fh1MCProdRadiusLambda;
TH1F* fh1MCProdRadiusAntiLambda;
TH2F* fh2MCEtaVsPtK0s;
TH2F* fh2MCEtaVsPtLa;
TH2F* fh2MCEtaVsPtALa;
- TH1F* fh1MCRapK0s;
- TH1F* fh1MCRapLambda;
- TH1F* fh1MCRapAntiLambda;
+ // TH1F* fh1MCRapK0s;
+ //TH1F* fh1MCRapLambda;
+ //TH1F* fh1MCRapAntiLambda;
TH1F* fh1MCEtaAllK0s;
TH1F* fh1MCEtaK0s;
TH1F* fh1MCEtaLambda;
TH1F* fh1MCEtaAntiLambda;
-
ClassDef(AliAnalysisTaskJetChem, 3);
};