13 #ifndef ALIANALYSISTASKDMESONJETS_H 14 #define ALIANALYSISTASKDMESONJETS_H 34 class AliAODRecoDecay;
38 class AliAODMCParticle;
47 class AliEMCALGeometry;
70 AliEventNotFound(
const std::string& class_name,
const std::string& method_name);
71 #if !(defined(__CINT__) || defined(__MAKECINT__)) 72 const char*
what()
const noexcept;
168 AliJetInfo() : fMomentum(), fNConstituents(0), fNEF(0), fMaxChargedPt(0), fMaxNeutralPt(0), fArea(0), fCorrPt(0) {}
170 fMomentum(px, py, pz, E), fNConstituents(nconst), fNEF(nef), fMaxChargedPt(cpt), fMaxNeutralPt(npt), fArea(0), fCorrPt(0) {}
212 std::map<std::string, AliJetInfo>
225 const AliJetInfo* GetJet(std::string n)
const;
229 Double_t GetCorrZ(std::string n)
const;
231 Double_t GetDistance(std::string n)
const;
252 virtual void Reset();
285 virtual void Reset();
314 virtual void Reset();
340 virtual void Reset();
366 virtual void Reset();
392 virtual void Reset();
430 virtual void Reset();
456 const char* GetName()
const;
558 virtual void BuildOutputObject(
const char* taskName);
588 virtual void BuildOutputObject(
const char* taskName);
652 template<
class EVENTTYPE,
class DMESONTYPE,
class JETTYPE>
661 virtual void BuildOutputObject(
const char* taskName);
687 static AliAODMCParticle* FindParticleOrigin(
const AliAODMCParticle* part, TClonesArray* mcArray,
EFindParticleOriginMode_t mode,
const std::set<UInt_t>& pdgSet);
689 static std::pair<AliAnalysisTaskDmesonJets::EMesonOrigin_t, AliAODMCParticle*> IsPromptCharm(
const AliAODMCParticle* part, TClonesArray* mcArray);
690 static EMesonDecayChannel_t CheckDecayChannel(
const AliAODMCParticle* part, TClonesArray* mcArray);
712 const char* GetName()
const;
722 std::vector<AliHFJetDefinition>::iterator FindJetDefinition(
const AliHFJetDefinition& eng);
723 std::vector<AliAnalysisTaskDmesonJets::AliHFJetDefinition>&
GetJetDefinitions() {
return fJetDefinitions; }
731 #if !(defined(__CINT__) || defined(__MAKECINT__)) 732 std::map<int, AliDmesonJetInfo>&
GetDmesons() {
return fDmesonJets; }
735 void Init(
const AliEMCALGeometry*
const geom,
Int_t runNumber);
792 void AddInputVectors(AliEmcalContainer* cont,
Int_t offset,
TH2* rejectHist=0,
Double_t eff=0.);
793 void SetCandidateProperties(
Double_t range);
794 AliAODMCParticle* MatchToMC()
const;
795 void RunDetectorLevelAnalysis();
796 void RunParticleLevelAnalysis();
855 std::list<AnalysisEngine>
Int_t GetNConstituents() const
friend bool operator<=(const AnalysisEngine &lhs, const AnalysisEngine &rhs)
AliD0ExtendedInfoSummary()
void SetTrackEfficiency(Double_t t)
Double32_t fCorrZ
Z of the D meson after subtracting average background.
Lightweight class that encapsulates D meson jets.
UChar_t fNDaughters
Number of daughters.
Double32_t fZ
Z of the D meson.
Double_t fMaxMass
! Max mass in histogram axis
AliAODMCParticle * fParton
! pointer to the parton in the shower tree of the D meson (only for particle level D mesons) ...
std::list< AnalysisEngine > fAnalysisEngines
Array of analysis parameters.
std::string fClassName
Class name where the event was not found.
void Print(std::ostream &o, const char *name, Double_t dT, Double_t dVM, Double_t alldT, Double_t alldVM)
AliJetContainer::EJetType_t EJetType_t
Analysis task for D meson jets.
UInt_t fRejectedOrigin
Bit mask with D meson origins that are rejected (used for MC analysis, i.e. signal-only, background-only and particle-level)
Bool_t fInhibit
!inhibit execution of the task
virtual ~OutputHandlerTHnSparse()
TTree * fTree
! Output tree
Double_t fPtHard
!event pt hard
AliJetInfo(Double_t px, Double_t py, Double_t pz, Double_t E, Int_t nconst, Double_t nef, Double_t cpt, Double_t npt)
Double_t fSoftPionPt
! Transverse momentum of the soft pion of the D* candidate
void SetShowPositionD(Bool_t b=kTRUE)
Int_t fDataSlotNumber
! Data slot where the tree output is posted
AliRDHFCuts * fRDHFCuts
D meson candidates cuts.
THistManager * fHistManager
! Histograms
void AssignDataSlot(Int_t n)
TString fRhoName
Name of the object that holds the average background value.
Lightweight class that encapsulates D meson jets.
std::vector< AliTrackContainer * > fTrackContainers
! Track containers
AnalysisEngine * AddAnalysisEngine(ECandidateType_t type, TString cutfname, TString cuttype, EMCMode_t bkgMode, EJetType_t jettype, Double_t jetradius, TString rhoName="")
AliJetInfoSummary ** fCurrentJetInfo
! Current jet info
Double_t fTrackEfficiency
Artificial tracking inefficiency (0...1)
Double_t GetRadius() const
std::vector< AliClusterContainer * > fClusterContainers
! Cluster containers
Double32_t fPhi
Phi of the D meson.
EMCMode_t fMCMode
! MC mode: No MC (data and MC detector level), background-only (MC), signal-only (MC), MC truth (particle level)
void SetRejectedOriginMap(UInt_t m)
AliHFAODMCParticleContainer * fMCContainer
! MC particle container
ERecoScheme_t fRecoScheme
Jet recombination scheme (pt scheme, E scheme, ...)
Double32_t fWeight
Centrality of the collision.
virtual void SetOutputTypeInternal(EOutputType_t b)
const char * what() const noexcept
void SetEnabledAxis(UInt_t axis)
Double_t fMaxNeutralPt
Transverse momentum of the leading neutral particle (or cluster)
virtual ~OutputHandlerTTree()
Class that encapsulates event properties in a very compact structure (useful for pp simulation analys...
Double32_t fPartonPt
Transverse momentum of the parton.
Double32_t fArea
Area of the jet.
Declaration of class AliTLorentzVector.
virtual void UserCreateOutputObjects()
Creates the output containers.
void FillPartonLevelHistograms()
Fill histograms with parton-level information.
Double32_t fInvMass
Invariant mass of the D0 meson candidate in GeV/c2.
Lightweight class that encapsulates D meson jets.
Double_t fMinMass
! Min mass in histogram axis
Output handler for D meson jet analysis.
Double_t fInvMass2Prong
! 2-prong mass of the D* candidate (w/o the soft pion)
TString fName
! Name of this object
Double_t fMinChargedPt
Minimum pt of the leading charged particle (or track)
UInt_t fEnabledAxis
! Use bit defined in EAxis_t to enable axis in the THnSparse
static void CalculateMassLimits(Double_t range, Int_t pdg, Int_t nbins, Double_t &minMass, Double_t &maxMass)
AliAODEvent * fAodEvent
! AOD event
AliJetContainer::EJetAlgo_t EJetAlgo_t
UInt_t fEnabledAxis
Use bit defined in EAxis_t to enable axis in the THnSparse.
Double32_t fPtK
Transverse momentum of the kaon.
void SetCandidateType(ECandidateType_t t)
TRandom * fRandomGen
! Random number generator
void SetOutputType(EOutputType_t b)
std::vector< AliAnalysisTaskDmesonJets::AliHFJetDefinition > & GetJetDefinitions()
Double32_t fCosPointing
Cosine of the pointing angle.
AliRhoParameter * fRho
Object that holds the average background value.
EMCMode_t fMCMode
MC mode: No MC (data and MC detector level), background-only (MC), signal-only (MC), MC truth (particle level)
Double_t fJetGhostArea
Area of the ghost particles.
void SetChargedPtRange(Double_t min, Double_t max)
Output handler for D meson jet analysis.
const char * GetCandidateName() const
void SetRejectISR(Bool_t b)
Int_t PostDataFromAnalysisEngine(OutputHandler const *handler)
THistManager * fHistManager
! Histograms
Output handler for D meson jet analysis.
EFindParticleOriginMode_t
Double32_t fPtPi
Transverse momentum of the pion.
void SetRejectISR(Bool_t b)
Int_t fDataSlotNumber
! Data slot where the tree output is posted
std::vector< AliHFJetDefinition > * fJetDefinitions
! Jet definitions
Int_t fNMassBins
! Mass number of bins
virtual ~AliEventInfoSummary()
virtual Int_t GetDataSlotNumber() const
AliVParticle * fDmesonParticle
! pointer to the particle object
Double32_t fd0d0
D0K * D0Pi.
TString GetRhoName() const
void SetRecombinationScheme(ERecoScheme_t reco)
Container for particles within the EMCAL framework.
Double_t fMinJetEta
Minimum jet eta.
std::vector< DMESONTYPE > fCurrentDmesonInfo
! Current D meson jet info
AliAODEvent * fAodEvent
! AOD event
Double32_t fN
Number of jet constituents.
Select tracks based on specific prescriptions of HF analysis.
OutputHandler * GetOutputHandler() const
Double32_t fPt
Transverse momentum of the jet in GeV/c.
ECandidateType_t fCandidateType
Candidate type.
Int_t fMCLabel
! MC label, i.e. index of the generator level D meson (only for detector level D meson candidates) ...
void SetApplyKinematicCuts(Bool_t b)
friend bool operator!=(const AliHFJetDefinition &lhs, const AliHFJetDefinition &rhs)
virtual ~AliD0InfoSummary()
Double32_t fR
Distance between D meson and jet axis.
EventInfo * fEventInfo
! Object conatining the event information (centrality, pt hard, weight, etc.)
EJetType_t fJetType
Jet type (charged, full, neutral)
Double32_t fEta
Eta of the D meson.
std::pair< AliJetInfo *, Double_t > jet_distance_pair
Double32_t fPt
Transverse momentum of the D meson in GeV/c.
AliTLorentzVector fD
! 4-momentum of the D meson candidate
void SetRhoName(TString n)
Lightweight class that encapsulates D0.
void SetJetEtaRange(Double_t min, Double_t max)
Double_t fMinJetPhi
Minimum jet phi.
UInt_t fCandidatePDG
Candidate PDG.
Float_t fMaxPt
! Histogram pt limit
AliAnalysisTaskDmesonJets()
This is the default constructor, used for ROOT I/O purposes.
Output handler for D meson jet analysis.
Lightweight class that encapsulates D meson jets for PbPb analysis.
Double_t fMaxJetPt
Maximum jet pT.
Struct that encapsulates analysis parameters.
Base task in the EMCAL framework (lighter version of AliAnalysisTaskEmcal)
void SetD0Extended(Bool_t b)
Double_t fMinNeutralPt
Minimum pt of the leading neutral particle (or cluster)
void SetShowSoftPionPt(Bool_t b=kTRUE)
Double32_t fPhi
Phi of the jet.
void AssignDataSlot(Int_t n)
Bool_t fD0D0bar
! kTRUE if selected both as D0 and D0bar
virtual Int_t GetDataSlotNumber() const
TTree * fTree
! Output tree
Double_t fRadius
Jet radius.
Double_t fMinJetPt
Minimum jet pT.
Bool_t IsD0Extended() const
TString fName
! Name of this object
Bool_t fD0Extended
! Store extended information in the tree (only for D0 mesons)
Bool_t fD0Extended
Store extended information in the tree (only for D0 mesons)
std::string fAccessMethodName
Access method name used to retrieve the event.
AliRDHFCuts * LoadDMesonCutsFromFile(TString cutfname, TString cutsname)
virtual ~AliDStarInfoSummary()
bool operator<(const AliAnalysisTaskDmesonJets::AliHFJetDefinition &lhs, const AliAnalysisTaskDmesonJets::AliHFJetDefinition &rhs)
std::list< AnalysisEngine >::iterator FindAnalysisEngine(const AnalysisEngine &eng)
std::vector< AliHFJetDefinition > fJetDefinitions
Jet definitions.
Double_t fMaxNeutralPt
Maximum pt of the leading neutral particle (or cluster)
Double_t fMaxJetPhi
Maximum jet phi.
Int_t fNMassBins
Mass number of bins.
void SetAcceptedDecayMap(UInt_t m)
Double_t fMaxMass
Max mass in histogram axis.
EJetAlgo_t fJetAlgo
Jet algorithm (kt, anti-kt,...)
void SetMCMode(EMCMode_t m)
static const char * GetHFEventRejectionReasonLabel(UInt_t &bitmap)
Lightweight class that encapsulates D*.
Bool_t fInhibit
Inhibit the task.
ECandidateType_t GetCandidateType() const
friend bool operator!=(const AnalysisEngine &lhs, const AnalysisEngine &rhs)
AliAnalysisTaskDmesonJets & operator=(const AliAnalysisTaskDmesonJets &source)
void SetMassRange(Double_t min, Double_t max)
virtual ~AliDmesonJetInfo()
Int_t fJetAreaType
Jet area type.
Float_t fPtBinWidth
Histogram pt bin width.
virtual ~AliDmesonMCInfoSummary()
Short_t fPartonType
! type of the parton in the shower tree (only for particle level D mesons)
Double_t fNEF
Neutral Energy Fraction of the jet.
TClonesArray * fCandidateArray
! D meson candidate array
virtual ~AliD0ExtendedInfoSummary()
virtual ~AliAnalysisTaskDmesonJets()
This is the standard destructor.
Byte_t fSelectionType
! for D0: 0=not selected, 1=D0, 2=D0bar
void SetJetPtRange(Double_t min, Double_t max)
std::vector< AliJetInfo > fJets
! Inclusive jets reconstructed in the current event (includes D meson candidate daughters, if any)
Double_t Phi_0_2pi() const
EventInfo(double cent, double ep, double w, double pt)
void SetShow2ProngInvMass(Bool_t b=kTRUE)
Select MC particles based on specific prescriptions of HF analysis.
Double32_t fCosThetaStar
Cosine of theta star.
std::map< int, AliDmesonJetInfo > * fDmesonJets
! Array containing the D meson jets
virtual TObject * GetOutputObject() const
Double_t fMaxChargedPt
Transverse momentum of the leading charged particle (or track)
friend bool operator>=(const AliHFJetDefinition &lhs, const AliHFJetDefinition &rhs)
Double32_t fCorrPt
Transverse momentum of the jet in GeV/c after subtracting average background.
EventInfo fEventInfo
! Event info (centrality, weight, pt hard etc.)
EMCMode_t GetMCMode() const
EVENTTYPE fCurrentEventInfo
! Current event info
UInt_t GetEnabledAxis() const
friend bool operator>=(const AnalysisEngine &lhs, const AnalysisEngine &rhs)
Double_t fMaxChargedPt
Maximum pt of the leading charged particle (or track)
Class that encapsulates jets.
ECandidateType_t fCandidateType
! Candidate type
std::map< std::string, AliJetInfo > fJets
! list of jets
AliAODMCParticle * fAncestor
! pointer to the ancestor particle in the shower tree of the D meson (only for particle level D meson...
Double32_t fDeltaInvMass
< Difference between the Kpipi and the Kpi invariant masses in GeV/c2
OutputHandler * fOutputHandler
! Output handler
virtual ~AliJetInfoPbPbSummary()
Bool_t fRejectISR
! Reject initial state radiation
virtual ~OutputHandlerTTreeExtended()
std::map< int, AliDmesonJetInfo > & GetDmesons()
virtual ~OutputHandlerTTreeExtendedBase()
std::map< int, AliDmesonJetInfo > fDmesonJets
! Array containing the D meson jets
std::string fWhat
Error message.
Double32_t f2ProngInvMass
Double_t fTrackEfficiency
! Artificial tracking inefficiency (0...1) -> set automatically at ExecOnce by AliAnalysisTaskDmesonJ...
Bool_t fApplyKinematicCuts
Apply jet kinematic cuts.
Double32_t fSelectionType
Selection type: D0, D0bar, both.
Byte_t GetSelectionTypeSummary() const
virtual ~AliDmesonInfoSummary()
void SetNeutralPtRange(Double_t min, Double_t max)
AliEventNotFound(const std::string &class_name, const std::string &method_name)
Container class for histograms.
UInt_t fAcceptedDecay
Bit mask with D meson decays that are accepted (only used for particle-level analysis) ...
Bool_t fReconstructed
! Whether this D meson was reconstructed (only for particle level D mesons)
Int_t fNConstituents
Number of constituents of the jet.
Double32_t fEta
Eta of the jet.
Bool_t fRejectISR
Reject initial state radiation.
AliDmesonInfoSummary * fCurrentDmesonJetInfo
! Current D meson jet info
EOutputType_t fOutputType
Output type: none, TTree or THnSparse.
bool operator==(const AliAnalysisTaskDmesonJets::AliHFJetDefinition &lhs, const AliAnalysisTaskDmesonJets::AliHFJetDefinition &rhs)
std::map< std::string, std::vector< JETTYPE > > fCurrentJetInfo
! Current jet info
void SetShowJetConstituents(Bool_t b=kTRUE)
void SetJetPhiRange(Double_t min, Double_t max)
const AliVEvent * fEvent
! pointer to the ESD/AOD event
TArrayI fPDGdaughters
List of the PDG code of the daughters.
friend bool operator<=(const AliHFJetDefinition &lhs, const AliHFJetDefinition &rhs)
Double32_t fMaxNormd0
max norm d0
AliJetContainer::ERecoScheme_t ERecoScheme_t
TString fBranchName
AOD branch where the D meson candidate are found.
Float_t fMaxPt
Histogram pt limit.
Int_t fNOutputTrees
Maximum number of output trees.
virtual Bool_t FillHistograms()
void SetShowDeltaPhi(Bool_t b=kTRUE)
void SetShowInvMass(Bool_t b=kTRUE)
Double_t fMaxJetEta
Maximum jet eta.
virtual ~AliJetInfoSummary()
AliTLorentzVector fMomentum
4-momentum of the jet
Double_t fCorrPt
Transverse momentum of the jet after subtracting the average background.
void SetShowDeltaR(Bool_t b=kTRUE)
AliHFAODMCParticleContainer * fMCContainer
! MC particle container
TString fCandidateName
Candidate name.
void SetTrackEfficiency(Double_t t)
AliFJWrapper * fFastJetWrapper
! Fastjet wrapper
void SetNMassBins(Int_t n)
Float_t fPtBinWidth
! Histogram pt bin width
void SetJetArea(Int_t type, Double_t garea=0.005)
Container structure for EMCAL clusters.
Lightweight class that encapsulates D0.
void SetShowPositionJet(Bool_t b=kTRUE)
Double_t fCent
!event centrality
virtual Int_t GetDataSlotNumber() const
Double32_t fPartonType
Parton type.
virtual TObject * GetOutputObject() const
virtual void BuildOutputObject(const char *taskName)
AliFJWrapper * fFastJetWrapper
! Fastjet wrapper
THistManager fHistManager
Histogram manager.
Output handler for D meson jet analysis.
virtual TObject * GetOutputObject() const
static AliAnalysisTaskDmesonJets * AddTaskDmesonJets(TString ntracks="usedefault", TString nclusters="usedefault", TString nMCpart="", Int_t nMaxTrees=2, TString suffix="")
void SetShowDeltaEta(Bool_t b=kTRUE)
Double_t fMinMass
Min mass in histogram axis.
Double32_t fDCA
Distance of closest approach.