AliPhysics  80ccde44 (80ccde44)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliAnalysisTaskDmesonJets.h
Go to the documentation of this file.
1 
13 #ifndef ALIANALYSISTASKDMESONJETS_H
14 #define ALIANALYSISTASKDMESONJETS_H
15 
16 /**************************************************************************
17 * Copyright(c) 1998-2016, ALICE Experiment at CERN, All rights reserved. *
18 * *
19 * Author: The ALICE Off-line Project. *
20 * Contributors are mentioned in the code where appropriate. *
21 * *
22 * Permission to use, copy, modify and distribute this software and its *
23 * documentation strictly for non-commercial purposes is hereby granted *
24 * without fee, provided that the above copyright notice appears in all *
25 * copies and that both the copyright notice and this permission notice *
26 * appear in the supporting documentation. The authors make no claims *
27 * about the suitability of this software for any purpose. It is *
28 * provided "as is" without express or implied warranty. *
29 **************************************************************************/
30 
31 class TClonesArray;
32 class AliRDHFCuts;
33 class AliAODEvent;
34 class AliAODRecoDecay;
37 class AliVParticle;
38 class AliAODMCParticle;
43 class THnSparse;
44 class AliFJWrapper;
45 class THashList;
46 class TTree;
47 class AliEMCALGeometry;
48 class TRandom;
49 class AliRhoParameter;
50 
51 #include <list>
52 #include <vector>
53 #include <map>
54 
55 #include "AliTLorentzVector.h"
56 #include "THistManager.h"
57 
59 #include "AliJetContainer.h"
60 
62 {
63  public:
64 
68 
73  kUnknownQuark = BIT(0),
74  kFromDown = BIT(1),
75  kFromUp = BIT(2),
76  kFromStrange = BIT(3),
77  kFromCharm = BIT(4),
78  kFromBottom = BIT(5),
79  kFromTop = BIT(6),
80  kFromGluon = BIT(7),
82  };
83 
85  kAnyDecay = 0,
86  kUnknownDecay = BIT(0),
87  kDecayD0toKpi = BIT(1),
89  };
90 
91  enum EAxis_t {
92  kPositionD = BIT(0) , // Add the D meson eta/phi axis in the THnSparse
93  kInvMass = BIT(1) , // Add the invariant mass axis in the THnSparse
94  k2ProngInvMass = BIT(2) , // Add the 2 prong invariant mass axis in the THnSparse (for D* this is the inv mass of the D0)
95  kSoftPionPt = BIT(3) , // Add the soft pion pt axis in the THnSparse (for D*)
96  kDeltaR = BIT(4) , // Add the delta R axis in the THnSparse
97  kDeltaEta = BIT(5) , // Add the delta eta axis in the THnSparse
98  kDeltaPhi = BIT(6) , // Add the delta phi axis in the THnSparse
99  kPositionJet = BIT(7) , // Add the jet eta/phi axis in the THnSparse
100  kJetConstituents = BIT(8) // Add the jet constituent axis in the THnSparse
101  };
102 
108  class AliJetInfo {
109  public:
111  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) :
112  fMomentum(px, py, pz, E), fNConstituents(nconst), fNEF(nef), fMaxChargedPt(cpt), fMaxNeutralPt(npt), fArea(0), fCorrPt(0) {}
113 
114  virtual ~AliJetInfo() {;}
115 
116  Double_t Pt() const { return fMomentum.Pt() ; }
117  Double_t Eta() const { return fMomentum.Eta() ; }
118  Double_t Phi() const { return fMomentum.Phi() ; }
119  Double_t Phi_0_2pi() const { return fMomentum.Phi_0_2pi(); }
120  Double_t CorrPt() const { return fCorrPt ; }
122  Double_t GetDistance(const AliJetInfo& jet, Double_t& deta, Double_t& dphi) const;
123  Double_t GetDistance(const AliJetInfo& jet) const;
124 
132 
134  ClassDef(AliJetInfo, 2);
136  };
137 
144  public:
146  AliDmesonJetInfo(const AliDmesonJetInfo &source);
148  virtual ~AliDmesonJetInfo() {;}
149 
150  AliVParticle *fDmesonParticle ;
154  std::map<std::string, AliJetInfo>
155  fJets ;
158  AliAODMCParticle *fParton ;
160  AliAODMCParticle *fAncestor ;
161  Byte_t fSelectionType ;
162 
163  const AliJetInfo* GetJet(std::string n) const;
164  AliJetInfo* GetJet(std::string n);
165  void Reset();
166  Double_t GetZ(std::string n) const;
167  Double_t GetCorrZ(std::string n) const;
168  Double_t GetDistance(std::string n, Double_t& deta, Double_t& dphi) const;
169  Double_t GetDistance(std::string n) const;
170  Double_t GetDistance(const AliJetInfo& jet, Double_t& deta, Double_t& dphi) const;
171  Double_t GetDistance(const AliJetInfo& jet) const;
172  void Print() const;
173 
175  ClassDef(AliDmesonJetInfo, 2);
177  };
178 
185  public:
186  AliJetInfoSummary() : fPt(0), fEta(0), fPhi(0), fR(0), fZ(0), fN(0) {;}
187  AliJetInfoSummary(const AliDmesonJetInfo& source, std::string n);
188  virtual ~AliJetInfoSummary() {}
189 
190  virtual void Reset();
191  virtual void Set(const AliDmesonJetInfo& source, std::string n);
192  virtual void Set(const AliJetInfo& source);
193 
195  Double32_t fPt ; //[0,409.6,13]
197  Double32_t fEta ; //[-2.048,2.048,10]
199  Double32_t fPhi ; //[0,2*pi,10]
201  Double32_t fR ; //[0,2.56,7]
203  Double32_t fZ ; //[0,1.024,10]
205  Double32_t fN ; //[0, 64, 6]
206 
208  ClassDef(AliJetInfoSummary, 4);
210  };
211 
218  public:
220  AliJetInfoPbPbSummary(const AliDmesonJetInfo& source, std::string n);
222 
223  virtual void Reset();
224  virtual void Set(const AliDmesonJetInfo& source, std::string n);
225  virtual void Set(const AliJetInfo& source);
226 
228  Double32_t fCorrPt ; //[-409.6,409.6,14]
229 
231  Double32_t fCorrZ ; //[0,1.024,10]
232 
234  Double32_t fArea ; //[0,2.048,8]
235 
237  ClassDef(AliJetInfoPbPbSummary, 2);
239  };
240 
247  public:
248  AliDmesonInfoSummary() : fPt(0), fEta(0), fPhi(0) {;}
249  AliDmesonInfoSummary(const AliDmesonJetInfo& source);
251 
252  virtual void Reset();
253  virtual void Set(const AliDmesonJetInfo& source);
254 
256  Double32_t fPt ; //[0,204.8,12]
258  Double32_t fEta ; //[-2.048,2.048,10]
260  Double32_t fPhi ; //[0,2*pi,10]
261 
263  ClassDef(AliDmesonInfoSummary, 2);
265  };
266 
273  public:
277 
278  virtual void Reset();
279  virtual void Set(const AliDmesonJetInfo& source);
280 
282  Double32_t fPartonType ; //[0, 16, 4]
284  Double32_t fPartonPt ; //[0,819.2,14]
285 
287 
289  ClassDef(AliDmesonMCInfoSummary, 3);
291  };
292 
299  public:
301  AliD0InfoSummary(const AliDmesonJetInfo& source);
302  virtual ~AliD0InfoSummary() {}
303 
304  virtual void Reset();
305  virtual void Set(const AliDmesonJetInfo& source);
306 
308  Double32_t fInvMass ; //[0,6.5536,16]
309  Double32_t fSelectionType ; //[0,4,2]
310 
312  ClassDef(AliD0InfoSummary, 3);
314  };
315 
322  public:
324  AliDStarInfoSummary(const AliDmesonJetInfo& source);
325  virtual ~AliDStarInfoSummary() {}
326 
327  virtual void Reset();
328  virtual void Set(const AliDmesonJetInfo& source);
329 
331  Double32_t f2ProngInvMass ; //[0,8.192,14]
333  Double32_t fDeltaInvMass ; //[0,0.8192,16]
334 
336  ClassDef(AliDStarInfoSummary, 2);
338  };
339 
340  class AliHFJetDefinition : public TObject {
341  public:
345  AliHFJetDefinition(const AliHFJetDefinition &source);
346 
348 
349  const char* GetName() const;
350 
351  void SetJetPhiRange(Double_t min, Double_t max) { fMinJetPhi = min; fMaxJetPhi = max; }
352  void SetJetEtaRange(Double_t min, Double_t max) { fMinJetEta = min; fMaxJetEta = max; }
353  void SetJetPtRange(Double_t min, Double_t max) { fMinJetPt = min; fMaxJetPt = max; }
356  void SetRhoName(TString n) { fRhoName = n ; }
357  Double_t GetRadius() const { return fRadius; }
358  TString GetRhoName() const { return fRhoName; }
359 
360  Bool_t IsJetInAcceptance(const AliJetInfo& jet) const;
361  Bool_t IsJetInAcceptance(const AliDmesonJetInfo& dMesonJet, std::string n) const;
362 
363  friend bool operator< (const AliHFJetDefinition& lhs, const AliHFJetDefinition& rhs);
364  friend inline bool operator> (const AliHFJetDefinition& lhs, const AliHFJetDefinition& rhs){ return rhs < lhs ; }
365  friend inline bool operator<=(const AliHFJetDefinition& lhs, const AliHFJetDefinition& rhs){ return !(lhs > rhs) ; }
366  friend inline bool operator>=(const AliHFJetDefinition& lhs, const AliHFJetDefinition& rhs){ return !(lhs < rhs) ; }
367 
368  friend bool operator==(const AliHFJetDefinition& lhs, const AliHFJetDefinition& rhs);
369  friend inline bool operator!=(const AliHFJetDefinition& lhs, const AliHFJetDefinition& rhs){ return !(lhs == rhs); }
370 
371  protected:
373  friend class AnalysisEngine;
374 
391  std::vector<AliJetInfo> fJets ;
392 
393  private:
395  ClassDef(AliHFJetDefinition, 5);
397  };
398 
404  class AnalysisEngine : public TObject {
405  public:
406  typedef std::pair<AliJetInfo*, Double_t> jet_distance_pair;
407 
411  };
412 
413  static AliAODMCParticle* FindParticleOrigin(const AliAODMCParticle* part, TClonesArray* mcArray, EFindParticleOriginMode_t mode, const std::set<UInt_t>& pdgSet);
414  static AliAODMCParticle* FindParticleOrigin(const AliAODMCParticle* part, TClonesArray* mcArray, EFindParticleOriginMode_t mode);
415  static std::pair<AliAnalysisTaskDmesonJets::EMesonOrigin_t, AliAODMCParticle*> IsPromptCharm(const AliAODMCParticle* part, TClonesArray* mcArray);
416  static EMesonDecayChannel_t CheckDecayChannel(const AliAODMCParticle* part, TClonesArray* mcArray);
417 
418  AnalysisEngine();
419  AnalysisEngine(ECandidateType_t type, EMCMode_t MCmode, AliRDHFCuts* cuts = 0, Int_t nBins=80, Double_t range = 0.50);
420  AnalysisEngine(const AnalysisEngine &source);
421  AnalysisEngine& operator=(const AnalysisEngine& source);
422 
423  virtual ~AnalysisEngine();
424 
426  void SetMCMode(EMCMode_t m) { fMCMode = m ; }
427  void SetNMassBins(Int_t n) { fNMassBins = n ; }
428  void SetMassRange(Double_t min, Double_t max) { fMinMass = min ; fMaxMass = max ; }
429  void AdoptRDHFCuts(AliRDHFCuts* cuts);
430  void SetRDHFCuts(AliRDHFCuts* cuts);
433  void SetRejectISR(Bool_t b) { fRejectISR = b ; }
434 
435  const char* GetCandidateName() const { return fCandidateName.Data(); }
436  const char* GetName() const;
437  const char* GetName(const AliHFJetDefinition& jetDef) const;
438 
439  EMCMode_t GetMCMode() const { return fMCMode ; }
441 
444  std::vector<AliHFJetDefinition>::iterator FindJetDefinition(const AliHFJetDefinition& eng);
445  std::vector<AliAnalysisTaskDmesonJets::AliHFJetDefinition>& GetJetDefinitions() { return fJetDefinitions; }
446  Bool_t IsAnyJetInAcceptance(const AliDmesonJetInfo& dMesonJet) const;
447 
448 #if !(defined(__CINT__) || defined(__MAKECINT__))
449  std::map<int, AliDmesonJetInfo>& GetDmesons() { return fDmesonJets; }
450 #endif
451 
452  void Init(const AliEMCALGeometry* const geom, Int_t runNumber);
453 
454  TTree* BuildTree(const char* taskName);
455  TTree* GetTree() const { return fTree; }
456  Bool_t FillTree(Bool_t applyKinCuts);
457 
461 
462  void BuildHnSparse(UInt_t enabledAxis);
463  Bool_t FillHnSparse(Bool_t applyKinCuts);
464  Bool_t FillHnSparse(THnSparse* h, const AliDmesonJetInfo& DmesonJet, std::string n);
465 
466  Bool_t FillQA(Bool_t applyKinCuts);
467 
468  Bool_t IsInhibit() const { return fInhibit; }
469 
470  friend bool operator< (const AnalysisEngine& lhs, const AnalysisEngine& rhs);
471  friend inline bool operator> (const AnalysisEngine& lhs, const AnalysisEngine& rhs){ return rhs < lhs ; }
472  friend inline bool operator<=(const AnalysisEngine& lhs, const AnalysisEngine& rhs){ return !(lhs > rhs) ; }
473  friend inline bool operator>=(const AnalysisEngine& lhs, const AnalysisEngine& rhs){ return !(lhs < rhs) ; }
474 
475  friend bool operator==(const AnalysisEngine& lhs, const AnalysisEngine& rhs);
476  friend inline bool operator!=(const AnalysisEngine& lhs, const AnalysisEngine& rhs){ return !(lhs == rhs); }
477 
478  std::map<AliAODMCParticle*, Short_t> fPartons ;
479 
480  protected:
481  void RunAnalysis();
482 
486  UChar_t fNDaughters ;
497  std::vector<AliHFJetDefinition> fJetDefinitions ;
500  TRandom *fRandomGen ;
507  std::map<int, AliDmesonJetInfo> fDmesonJets ;
508  TClonesArray *fCandidateArray ;
510  std::vector<AliTrackContainer*> fTrackContainers ;
511  std::vector<AliClusterContainer*> fClusterContainers ;
516 
518 
519  private:
520 
521  void AddInputVectors(AliEmcalContainer* cont, Int_t offset, TH2* rejectHist=0, Double_t eff=0.);
522  void SetCandidateProperties(Double_t range);
523  AliAODMCParticle* MatchToMC() const;
526 
531 
533  ClassDef(AnalysisEngine, 2);
535  };
536 
538  AliAnalysisTaskDmesonJets(const char* name, Int_t nOutputTrees=2);
539  virtual ~AliAnalysisTaskDmesonJets();
540 
541  AnalysisEngine* AddAnalysisEngine(ECandidateType_t type, TString cutfname, EMCMode_t bkgMode, EJetType_t jettype, Double_t jetradius, TString rhoName = "");
542  AnalysisEngine* AddAnalysisEngine(ECandidateType_t type, TString cutfname, EMCMode_t bkgMode, const AliHFJetDefinition& jetDef, TString rhoName = "");
543  std::list<AnalysisEngine>::iterator FindAnalysisEngine(const AnalysisEngine& eng);
544 
554 
558  void SetRejectISR(Bool_t b) { fRejectISR = b ; }
559  void SetJetArea(Int_t type,
560  Double_t garea = 0.005) { fJetAreaType = type; fJetGhostArea = garea; }
561 
562  virtual void UserCreateOutputObjects();
563  virtual void ExecOnce();
564  virtual Bool_t Run();
565  virtual Bool_t FillHistograms();
566 
567  static AliAnalysisTaskDmesonJets* AddTaskDmesonJets(TString ntracks = "usedefault", TString nclusters = "usedefault", TString nMCpart = "", Int_t nMaxTrees = 2, TString suffix = "");
568 
569  protected:
570 
572 
573  AliRDHFCuts* LoadDMesonCutsFromFile(TString cutfname, TString cutsname);
574 
575  static const char* GetHFEventRejectionReasonLabel(UInt_t& bitmap);
577 
578  Int_t PostDataFromAnalysisEngine(const AnalysisEngine& eng);
579 
581 
582  std::list<AnalysisEngine>
596 
597  private:
598 
601 
603  ClassDef(AliAnalysisTaskDmesonJets, 9);
605 };
606 
607 #endif
friend bool operator<=(const AnalysisEngine &lhs, const AnalysisEngine &rhs)
Double32_t fCorrZ
Z of the D meson after subtracting average background.
Int_t pdg
void Print() const
Prints the content of this object in the standard output.
AliDmesonInfoSummary * fCurrentDmesonJetInfo
! Current D meson jet info
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.
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)
virtual void Set(const AliDmesonJetInfo &source)
Invariant mass of the D0 meson candidate in GeV/c2.
double Double_t
Definition: External.C:58
Bool_t IsJetInAcceptance(const AliJetInfo &jet) const
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
AliRDHFCuts * fRDHFCuts
D meson candidates cuts.
virtual void Set(const AliDmesonJetInfo &source)
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
Double_t fTrackEfficiency
Artificial tracking inefficiency (0...1)
std::vector< AliClusterContainer * > fClusterContainers
! Cluster containers
AliHFAODMCParticleContainer * fMCContainer
! MC particle container
ERecoScheme_t fRecoScheme
Jet recombination scheme (pt scheme, E scheme, ...)
virtual void SetOutputTypeInternal(EOutputType_t b)
Double_t fMaxNeutralPt
Transverse momentum of the leading neutral particle (or cluster)
void RunDetectorLevelAnalysis()
Run a detector level analysis.
Double32_t fPartonPt
Transverse momentum of the parton.
friend bool operator<(const AnalysisEngine &lhs, const AnalysisEngine &rhs)
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 fInvMass2Prong
! 2-prong mass of the D* candidate (w/o the soft pion)
friend bool operator==(const AnalysisEngine &lhs, const AnalysisEngine &rhs)
Double_t fMinChargedPt
Minimum pt of the leading charged particle (or track)
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
Bool_t FindJet(AliAODRecoDecayHF2Prong *Dcand, AliDmesonJetInfo &DmesonJet, AliHFJetDefinition &jetDef)
UInt_t fEnabledAxis
Use bit defined in EAxis_t to enable axis in the THnSparse.
TRandom * fRandomGen
! Random number generator
std::vector< AliAnalysisTaskDmesonJets::AliHFJetDefinition > & GetJetDefinitions()
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.
AnalysisEngine()
This is the default constructor, used for ROOT I/O purposes.
Int_t fDataSlotNumber
! Data slot where the tree output is posted
friend bool operator>(const AliHFJetDefinition &lhs, const AliHFJetDefinition &rhs)
void Init(const AliEMCALGeometry *const geom, Int_t runNumber)
Initialize the analysis engine.
AliVParticle * fDmesonParticle
! pointer to the particle object
Container for particles within the EMCAL framework.
static std::pair< AliAnalysisTaskDmesonJets::EMesonOrigin_t, AliAODMCParticle * > IsPromptCharm(const AliAODMCParticle *part, TClonesArray *mcArray)
Double32_t fN
Number of jet constituents.
Select tracks based on specific prescriptions of HF analysis.
Double32_t fPt
Transverse momentum of the jet in GeV/c.
ECandidateType_t fCandidateType
Candidate type.
Double_t GetDistance(std::string n, Double_t &deta, Double_t &dphi) const
Int_t fMCLabel
! MC label, i.e. index of the generator level D meson (only for detector level D meson candidates) ...
friend bool operator!=(const AliHFJetDefinition &lhs, const AliHFJetDefinition &rhs)
Double32_t fR
Distance between D meson and jet axis.
virtual void Set(const AliDmesonJetInfo &source)
void AddInputVectors(AliEmcalContainer *cont, Int_t offset, TH2 *rejectHist=0, Double_t eff=0.)
EJetType_t fJetType
Jet type (charged, full, neutral)
std::pair< AliJetInfo *, Double_t > jet_distance_pair
Double32_t fPt
Transverse momentum of the D meson in GeV/c.
virtual void Set(const AliDmesonJetInfo &source)
AliTLorentzVector fD
! 4-momentum of the D meson candidate
Double_t GetDistance(const AliJetInfo &jet, Double_t &deta, Double_t &dphi) const
int Int_t
Definition: External.C:63
unsigned int UInt_t
Definition: External.C:33
float Float_t
Definition: External.C:68
AliAnalysisTaskDmesonJets()
This is the default constructor, used for ROOT I/O purposes.
virtual void Reset()
Reset the current object.
AnalysisEngine & operator=(const AnalysisEngine &source)
Lightweight class that encapsulates D meson jets for PbPb analysis.
Struct that encapsulates analysis parameters.
std::vector< AliHFJetDefinition >::iterator FindJetDefinition(const AliHFJetDefinition &eng)
Base task in the EMCAL framework (lighter version of AliAnalysisTaskEmcal)
Double_t Phi_0_2pi() const
static AliAODMCParticle * FindParticleOrigin(const AliAODMCParticle *part, TClonesArray *mcArray, EFindParticleOriginMode_t mode, const std::set< UInt_t > &pdgSet)
Double_t fMinNeutralPt
Minimum pt of the leading neutral particle (or cluster)
void SetShowSoftPionPt(Bool_t b=kTRUE)
AliRDHFCuts * LoadDMesonCutsFromFile(TString cutfname, TString cutsname)
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 fMaxMass
Max mass in histogram axis.
EJetAlgo_t fJetAlgo
Jet algorithm (kt, anti-kt,...)
static const char * GetHFEventRejectionReasonLabel(UInt_t &bitmap)
Lightweight class that encapsulates D*.
friend bool operator!=(const AnalysisEngine &lhs, const AnalysisEngine &rhs)
friend bool operator<(const AliHFJetDefinition &lhs, const AliHFJetDefinition &rhs)
AliAnalysisTaskDmesonJets & operator=(const AliAnalysisTaskDmesonJets &source)
Int_t mode
Definition: anaM.C:41
Bool_t ExtractDstarAttributes(const AliAODRecoCascadeHF *DstarCand, AliDmesonJetInfo &DmesonJet, UInt_t i)
const AliJetInfo * GetJet(std::string n) const
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
short Short_t
Definition: External.C:23
AliAODMCParticle * MatchToMC() const
virtual ~AliAnalysisTaskDmesonJets()
This is the standard destructor.
Byte_t fSelectionType
! for D0: 0=not selected, 1=D0, 2=D0bar, 3=both
Bool_t ExtractD0Attributes(const AliAODRecoDecayHF2Prong *Dcand, AliDmesonJetInfo &DmesonJet, UInt_t i)
std::vector< AliJetInfo > fJets
! Inclusive jets reconstructed in the current event (includes D meson candidate daughters, if any)
void SetShow2ProngInvMass(Bool_t b=kTRUE)
Select MC particles based on specific prescriptions of HF analysis.
static EMesonDecayChannel_t CheckDecayChannel(const AliAODMCParticle *part, TClonesArray *mcArray)
AliDmesonJetInfo & operator=(const AliDmesonJetInfo &source)
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.
friend bool operator==(const AliHFJetDefinition &lhs, const AliHFJetDefinition &rhs)
friend bool operator>=(const AnalysisEngine &lhs, const AnalysisEngine &rhs)
Double_t fMaxChargedPt
Maximum pt of the leading charged particle (or track)
std::map< std::string, AliJetInfo > fJets
! list of jets
Look for the very first particle in the fragmentation tree.
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
std::map< AliAODMCParticle *, Short_t > fPartons
! set of the partons in the shower that produced each D meson
Definition: External.C:220
Double_t minMass
Bool_t fRejectISR
! Reject initial state radiation
void RunParticleLevelAnalysis()
Run a particle level analysis.
std::map< int, AliDmesonJetInfo > & GetDmesons()
std::map< int, AliDmesonJetInfo > fDmesonJets
! Array containing the D meson jets
Double_t fTrackEfficiency
! Artificial tracking inefficiency (0...1) -> set automatically at ExecOnce by AliAnalysisTaskDmesonJ...
Bool_t fApplyKinematicCuts
Apply jet kinematic cuts.
AnalysisEngine * AddAnalysisEngine(ECandidateType_t type, TString cutfname, EMCMode_t bkgMode, EJetType_t jettype, Double_t jetradius, TString rhoName="")
const char * GetName() const
Generate a name for this jet definition.
Container class for histograms.
Definition: THistManager.h:99
UInt_t fAcceptedDecay
Bit mask with D meson decays that are accepted (only used for particle-level analysis) ...
virtual void Set(const AliDmesonJetInfo &source, std::string n)
unsigned short UShort_t
Definition: External.C:28
Bool_t fReconstructed
! Whether this D meson was reconstructed (only for particle level D mesons)
Bool_t ExtractRecoDecayAttributes(const AliAODRecoDecayHF2Prong *Dcand, AliDmesonJetInfo &DmesonJet, UInt_t i)
Int_t fNConstituents
Number of constituents of the jet.
Bool_t fRejectISR
Reject initial state radiation.
EOutputType_t fOutputType
Output type: none, TTree or THnSparse.
void SetShowJetConstituents(Bool_t b=kTRUE)
TArrayI fPDGdaughters
List of the PDG code of the daughters.
friend bool operator<=(const AliHFJetDefinition &lhs, const AliHFJetDefinition &rhs)
const Int_t nbins
Double_t maxMass
AliJetContainer::ERecoScheme_t ERecoScheme_t
TString fBranchName
AOD branch where the D meson candidate are found.
bool Bool_t
Definition: External.C:53
Int_t fNOutputTrees
Maximum number of output trees.
AliHFJetDefinition()
This is the default constructor, used for ROOT I/O purposes.
AliHFJetDefinition & operator=(const AliHFJetDefinition &source)
friend bool operator>(const AnalysisEngine &lhs, const AnalysisEngine &rhs)
AliTLorentzVector fMomentum
4-momentum of the jet
Double_t fCorrPt
Transverse momentum of the jet after subtracting the average background.
AliHFAODMCParticleContainer * fMCContainer
! MC particle container
AliJetInfoSummary ** fCurrentJetInfo
! Current jet info
AliFJWrapper * fFastJetWrapper
! Fastjet wrapper
AliHFJetDefinition * AddJetDefinition(EJetType_t type, Double_t r, EJetAlgo_t algo, ERecoScheme_t reco)
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)
Bool_t IsAnyJetInAcceptance(const AliDmesonJetInfo &dMesonJet) const
Int_t PostDataFromAnalysisEngine(const AnalysisEngine &eng)
AliFJWrapper * fFastJetWrapper
! Fastjet wrapper
THistManager fHistManager
Histogram manager.
void Reset()
Reset all fields to their default values.
static AliAnalysisTaskDmesonJets * AddTaskDmesonJets(TString ntracks="usedefault", TString nclusters="usedefault", TString nMCpart="", Int_t nMaxTrees=2, TString suffix="")
virtual void Set(const AliDmesonJetInfo &source, std::string n)
Double_t fMinMass
Min mass in histogram axis.