#include "AliAODEvent.h"
#include "AliPicoTrack.h"
#include "AliAnalysisTaskEmcalJet.h"
+#include "AliRhoParameter.h"
class TH3F;
class TParticle ;
class TClonesArray ;
+class THnSparse;
class AliMCParticle;
class AliAODMCParticle;
class AliRDHFCuts;
class AliAODRecoDecayHF;
class AliAODRecoCascadeHF;
class AliAODEvent;
+class AliParticleContainer;
+class AliClusterContainer;
+class AliJetContainer;
class AliAnalysisTaskFlavourJetCorrelations : public AliAnalysisTaskEmcalJet
{
void SetMassLimits(Double_t range, Int_t pdg);
void SetMassLimits(Double_t lowlimit, Double_t uplimit);
- //jet reconstruction algorithm
- void SetJetArrayName(TString jetArrName) {fJetArrName=jetArrName;};
- TString GetJetArrayName() const {return fJetArrName;};
+ //jet and track arrays
+ void SetJetArrayName(TString jetArrName) {fJetArrName=jetArrName;}
+ TString GetJetArrayName() const {return fJetArrName;}
+ void SetTrackArrayName(TString trackArrName) {fTrackArrName=trackArrName;}
+ TString GetTrackArrayName() const {return fTrackArrName;}
// trigger on jet events
void SetTriggerOnLeadingJet(Bool_t triggerOnLeadingJet) {fLeadingJetOnly=triggerOnLeadingJet;};
Bool_t GetTriggerOnLeadingJet() const {return fLeadingJetOnly;}
+ // resolution parameter used in this task
+ void SetRadius(Double_t r){fJetRadius=r;}
+ Double_t GetRadius() const {return fJetRadius;}
// Array of D0 width for the Dstar
Bool_t SetD0WidthForDStar(Int_t nptbins,Float_t* width);
//Bool_t FillMCDJetInfo(AliPicoTrack *jetTrk,AliEmcalJet* jet, TClonesArray *mcArray,Double_t ptjet);
void FillHistogramsRecoJetCorr(AliVParticle* candidate, AliEmcalJet *jet, AliAODEvent* aodEvent);
- void FillHistogramsD0JetCorr(AliAODRecoDecayHF* candidate, Double_t dPhi, Double_t phiD, Double_t z, Double_t ptD, Double_t ptj, AliAODEvent* aodEvent);
+ void FillHistogramsD0JetCorr(AliAODRecoDecayHF* candidate, Double_t dPhi, Double_t z, Double_t ptD, Double_t ptj, Bool_t bDInEMCalAcc, Bool_t bJetInEMCalAcc, AliAODEvent* aodEvent);
- void FillHistogramsDstarJetCorr(AliAODRecoCascadeHF* dstar, Double_t dPhi, Double_t phiD, Double_t z, Double_t ptD, Double_t ptj);
- void FillHistogramsMCGenDJetCorr(Double_t dPhi, Double_t phiD, Double_t z,Double_t ptD,Double_t ptjet);
+ void FillHistogramsDstarJetCorr(AliAODRecoCascadeHF* dstar, Double_t dPhi, Double_t z, Double_t ptD, Double_t ptj, Bool_t bDInEMCalAcc, Bool_t bJetInEMCalAcc);
+ void FillHistogramsMCGenDJetCorr(Double_t dPhi, Double_t z,Double_t ptD,Double_t ptjet, Bool_t bDInEMCalAcc, Bool_t bJetInEMCalAcc);
void SideBandBackground(AliAODRecoCascadeHF *candDstar, AliEmcalJet *jet);
- void MCBackground(AliAODRecoDecayHF *candbg);
+ void MCBackground(AliAODRecoDecayHF *candbg, AliEmcalJet *jet);
void FillMassHistograms(Double_t mass,Double_t ptD);
void FlagFlavour(AliEmcalJet* jet);
Int_t IsDzeroSideBand(AliAODRecoCascadeHF *candDstar);
+ Bool_t InEMCalAcceptance(AliVParticle *vpart);
+
+ void LightTHnSparse(){
+ fSwitchOnSB=0;
+ fSwitchOnPhiAxis=0;
+ fSwitchOnOutOfConeAxis=0;
+ }
+ void HeavyTHnSparse(){
+ fSwitchOnSB=1;
+ fSwitchOnPhiAxis=1;
+ fSwitchOnOutOfConeAxis=1;
+ }
+
+ void TurnOffTHnSparse() {fSwitchOnSparses=kFALSE;}
+
+ /*
+ void SwitchOnSB(){fSwitchOnSB=1;};
+ void SwitchOffSB(){fSwitchOnSB=0;};
+ void SwitchOnPhiAxis(){fSwitchOnPhiAxis=1;}
+ void SwitchOffPhiAxis(){fSwitchOffPhiAxis=0;}
+ void SwitchOnOutOfConeAxis(){fSwitchOnOutOfConeAxis=1;}
+ void SwitchOffOutOfConeAxis(){fSwitchOnOutOfConeAxis=0;}
+ */
private:
AliAnalysisTaskFlavourJetCorrelations(const AliAnalysisTaskFlavourJetCorrelations &source);
AliAnalysisTaskFlavourJetCorrelations& operator=(const AliAnalysisTaskFlavourJetCorrelations& source);
- Double_t Z(AliVParticle* part,AliEmcalJet* jet) const;
- Float_t DeltaR(AliVParticle *p1, AliVParticle *p2) const;
+ Double_t Z(AliVParticle* part,AliEmcalJet* jet, Bool_t transverse=kFALSE) const;
+ Double_t Z(Double_t* p, Double_t *pj) const;
+ Double_t ZT(Double_t* p, Double_t *pj) const;
+ Float_t DeltaR(AliEmcalJet *p1, AliVParticle *p2) const;
Bool_t AreDaughtersInJet(AliEmcalJet *thejet, AliAODRecoDecayHF* charm, Int_t*& daughOutOfJet, AliAODTrack**& dtrks, Bool_t fillH);
Bool_t IsDInJet(AliEmcalJet *thejet, AliAODRecoDecayHF* charm, Bool_t fillH=kFALSE);
void RecalculateMomentum(Double_t* pj, const Double_t* pmissing) const;
Double_t fMaxMass; // mass upper limit histogram
TString fJetArrName; // name of the jet array, taken from the task running the jet finder
+ TString fTrackArrName; // name of the array of tracks, default "PicoTracks"
TString fCandArrName; // string which correspond to the candidate type
Bool_t fLeadingJetOnly; // use only the leading jet in the event to make the correlations
Double_t fJetRadius; // jet radius (filled from the JetContainer)
Bool_t fIsDInJet; // flag D meson in jet
Int_t fTypeDInJet; // way of selecting D in jets (see IsDInJet in cxx)
TClonesArray *fTrackArr; //array of the tracks used in the jet finder
+ Bool_t fSwitchOnSB; // flag to switch off/on the SB analysis (default is off)
+ Bool_t fSwitchOnPhiAxis; // flag to switch off/on the DeltaPhi axis in THnSparse (to be used in combination with switch OutOfCone)
+ Bool_t fSwitchOnOutOfConeAxis; //flag to switch off/on the out of cone axis in THnSparse (to be switch on if DeltaPhi is on)
+ Bool_t fSwitchOnSparses; // turn on/off all THnSparse
+
+ Int_t fNAxesBigSparse; // number of axis
+ AliJetContainer *fJetCont; //! jets attachedto the task
+ AliParticleContainer *fTrackCont; //! tracks attached to the jet container
+ AliClusterContainer *fClusterCont; //! Clusters attached to the jet container
+
+
+ // Histograms
+ TH1I* fhstat; //!
+ //generic jet and jet track distributions
+ TH1F* fhPtJetTrks; //!
+ TH1F* fhPhiJetTrks; //!
+ TH1F* fhEtaJetTrks; //!
+ TH1F* fhEjetTrks; //!
+ TH1F* fhPtJet; //!
+ TH1F* fhPhiJet; //!
+ TH1F* fhEtaJet; //!
+ TH1F* fhEjet; //!
+ TH1F* fhNtrArr; //!
+ TH1F* fhNJetPerEv; //!
+ TH1F* fhdeltaRJetTracks; //!
+ THnSparse* fhsJet; //available in jet only mode
+ TH2F* fhImpPar; //!
+ //TH2F* fhImpParB; //!
+ // event characteristics;
+ TH1F* fhNDPerEvNoJet; //!
+ TH1F* fhptDPerEvNoJet; //!
+ TH1F* fhNJetPerEvNoD; //!
+ TH1F* fhPtJetPerEvNoD; //!
+ TH1F* fhVtxX; //!
+ TH1F* fhVtxY; //!
+ TH1F* fhVtxZ; //!
+ //D mesons
+ THnSparse* fhsDstandalone; //!
+ TH2F* fhInvMassptD; //!
+ TH2F* fhDiffSideBand; //!
+ TH2F* fhInvMassptDbg; //!
+ TH1F* fhPtPion; //!
+ //!
+ //histograms for checks
+ TH1F* fhztracksinjet; //!
+ TH1F* fhDiffPtTrPtJzNok; //!
+ TH1F* fhDiffPtTrPtJzok; //!
+ TH1F* fhDiffPzTrPtJzok; //!
+ TH1F* fhDiffPzTrPtJzNok; //!
+ TH1I* fhNtrkjzNok; //!
+ TH1F* fhztracksinjetT; //!
+ TH1I* fhControlDInJ; //!
+ TH1I* fhIDddaugh ; //!
+ TH1I* fhIDddaughOut; //!
+ TH1I* fhIDjetTracks; //!
+ TH1F* fhDRdaughOut ; //!
+ TH1F* fhzDinjet; //!
+ TH1F* fhmissingp; //!
+ TH1F**fhMissPi; //!
+ TH1F* fhDeltaPtJet; //!
+ TH1F* fhRelDeltaPtJet; //!
+ // D-jet correlation histograms
+ TH1F* fhzDT; //!
+ TH1F* fhDeltaRD; //!
+ TH3F* fhDeltaRptDptj; //!
+ TH3F* fhDeltaRptDptjB; //!
+ //main histograms
+ THnSparse* fhsDphiz; //!
- ClassDef(AliAnalysisTaskFlavourJetCorrelations,5); // class for charm-jet CorrelationsExch
+
+ ClassDef(AliAnalysisTaskFlavourJetCorrelations,7); // class for charm-jet CorrelationsExch
};
#endif