AliPhysics  3f43add (3f43add)
 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 
49 #include <list>
50 #include <vector>
51 #include <map>
52 
53 #include "AliTLorentzVector.h"
54 #include "THistManager.h"
55 
57 #include "AliJetContainer.h"
58 
60 {
61  public:
62 
67 
72  kUnknownQuark = BIT(0),
73  kFromBottom = BIT(1),
74  kFromCharm = BIT(2)
75  };
76 
78  kDecayOther = BIT(0),
79  kDecayD0toKpi = BIT(1),
82  };
83 
84  enum EAxis_t {
85  kPositionD = BIT(0) , // Add the D meson eta/phi axis in the THnSparse
86  kInvMass = BIT(1) , // Add the invariant mass axis in the THnSparse
87  k2ProngInvMass = BIT(2) , // Add the 2 prong invariant mass axis in the THnSparse (for D* this is the inv mass of the D0)
88  kSoftPionPt = BIT(3) , // Add the soft pion pt axis in the THnSparse (for D*)
89  kDeltaR = BIT(4) , // Add the delta R axis in the THnSparse
90  kDeltaEta = BIT(5) , // Add the delta eta axis in the THnSparse
91  kDeltaPhi = BIT(6) , // Add the delta phi axis in the THnSparse
92  kPositionJet = BIT(7) , // Add the jet eta/phi axis in the THnSparse
93  kJetConstituents = BIT(8) // Add the jet constituent axis in the THnSparse
94  };
95 
101  class AliJetInfo {
102  public:
104 
105  virtual ~AliJetInfo() {;}
106 
107  Double_t Pt() const { return fMomentum.Pt() ; }
108  Double_t Eta() const { return fMomentum.Eta() ; }
109  Double_t Phi() const { return fMomentum.Phi() ; }
110  Double_t Phi_0_2pi() const { return fMomentum.Phi_0_2pi(); }
111 
113  Int_t fNConstituents ;
114  Double_t fNEF ;
115  Double_t fMaxChargedPt ;
116  Double_t fMaxNeutralPt ;
117 
119  ClassDef(AliJetInfo, 1);
121  };
122 
129  public:
131 
132  virtual ~AliDmesonJetInfo() {;}
133 
134  AliVParticle *fDmesonParticle ;
136  Double_t fSoftPionPt ;
137  Double_t fInvMass2Prong ;
138  std::map<std::string, AliJetInfo>
139  fJets ;
140  Int_t fMCLabel ;
141  Bool_t fReconstructed ;
142 
143  const AliJetInfo* GetJet(std::string n) const;
144  AliJetInfo* GetJet(std::string n);
145  void Reset();
146  Double_t GetZ(std::string n) const;
147  Double_t GetDistance(std::string n, Double_t& deta, Double_t& dphi) const;
148  Double_t GetDistance(std::string n) const;
149  void Print() const;
150 
152  ClassDef(AliDmesonJetInfo, 1);
154  };
155 
162  public:
163  AliJetInfoSummary() : fPt(0), fEta(0), fPhi(0), fR(0), fZ(0) {;}
164  AliJetInfoSummary(const AliDmesonJetInfo& source, std::string n);
165  virtual ~AliJetInfoSummary() {};
166 
167  virtual void Reset();
168  virtual void Set(const AliDmesonJetInfo& source, std::string n);
169 
171  Double32_t fPt ; //[0,500,13]
173  Double32_t fEta ; //[-2,2,10]
175  Double32_t fPhi ; //[0,2*pi,10]
177  Double32_t fR ; //[0,2,7]
179  Double32_t fZ ; //[0,1,10]
180 
182  ClassDef(AliJetInfoSummary, 2);
184  };
185 
192  public:
193  AliDmesonInfoSummary() : fPt(0), fEta(0), fPhi(0) {;}
194  AliDmesonInfoSummary(const AliDmesonJetInfo& source);
196 
197  virtual void Reset();
198  virtual void Set(const AliDmesonJetInfo& source);
199 
201  Double32_t fPt ; //[0,200,12]
203  Double32_t fEta ; //[-2,2,9]
205  Double32_t fPhi ; //[0,2*pi,9]
206 
208  ClassDef(AliDmesonInfoSummary, 1);
210  };
211 
218  public:
220  AliD0InfoSummary(const AliDmesonJetInfo& source);
221 
222  virtual void Reset();
223  virtual void Set(const AliDmesonJetInfo& source);
224 
226  Double32_t fInvMass ; //[0,5,12]
227 
229  ClassDef(AliD0InfoSummary, 1);
231  };
232 
239  public:
241  AliDStarInfoSummary(const AliDmesonJetInfo& source);
242 
243  virtual void Reset();
244  virtual void Set(const AliDmesonJetInfo& source);
245 
247  Double32_t f2ProngInvMass ; //[0,5,12]
249  Double32_t fDeltaInvMass ; //[0,1,12]
250 
252  ClassDef(AliDStarInfoSummary, 1);
254  };
255 
256  class AliHFJetDefinition : public TObject {
257  public:
259  AliHFJetDefinition(EJetType_t type, Double_t r, EJetAlgo_t algo, ERecoScheme_t reco);
260  AliHFJetDefinition(const AliHFJetDefinition &source);
261 
263 
264  const char* GetName() const;
265 
266  void SetJetPhiRange(Double_t min, Double_t max) { fMinJetPhi = min; fMaxJetPhi = max; }
267  void SetJetEtaRange(Double_t min, Double_t max) { fMinJetEta = min; fMaxJetEta = max; }
268  void SetJetPtRange(Double_t min, Double_t max) { fMinJetPt = min; fMaxJetPt = max; }
269  void SetChargedPtRange(Double_t min, Double_t max) { fMinChargedPt = min; fMaxChargedPt = max; }
270  void SetNeutralPtRange(Double_t min, Double_t max) { fMinNeutralPt = min; fMaxNeutralPt = max; }
272 
273  Bool_t IsJetInAcceptance(const AliJetInfo& jet) const;
274  Bool_t IsJetInAcceptance(const AliDmesonJetInfo& dMesonJet, std::string n) const;
275 
276  friend bool operator< (const AliHFJetDefinition& lhs, const AliHFJetDefinition& rhs);
277  friend inline bool operator> (const AliHFJetDefinition& lhs, const AliHFJetDefinition& rhs){ return rhs < lhs ; }
278  friend inline bool operator<=(const AliHFJetDefinition& lhs, const AliHFJetDefinition& rhs){ return !(lhs > rhs) ; }
279  friend inline bool operator>=(const AliHFJetDefinition& lhs, const AliHFJetDefinition& rhs){ return !(lhs < rhs) ; }
280 
281  friend bool operator==(const AliHFJetDefinition& lhs, const AliHFJetDefinition& rhs);
282  friend inline bool operator!=(const AliHFJetDefinition& lhs, const AliHFJetDefinition& rhs){ return !(lhs == rhs); }
283 
284  protected:
286  friend class AnalysisEngine;
287 
288  void SetDetectorJetEtaPhiRange(const AliEMCALGeometry* const geom, Int_t run);
289 
291  Double_t fRadius ;
295  Double_t fMinJetPt ;
296  Double_t fMaxJetPt ;
297  Double_t fMinJetPhi ;
298  Double_t fMaxJetPhi ;
299  Double_t fMinJetEta ;
300  Double_t fMaxJetEta ;
301  Double_t fMinChargedPt ;
302  Double_t fMaxChargedPt ;
303  Double_t fMinNeutralPt ;
304  Double_t fMaxNeutralPt ;
305 
306  private:
308  ClassDef(AliHFJetDefinition, 3);
310  };
311 
317  class AnalysisEngine : public TObject {
318  public:
319  static EMesonOrigin_t CheckOrigin(const AliAODMCParticle* part, TClonesArray* mcArray);
320  static EMesonDecayChannel_t CheckDecayChannel(const AliAODMCParticle* part, TClonesArray* mcArray);
321 
322  AnalysisEngine();
323  AnalysisEngine(ECandidateType_t type, EMCMode_t MCmode, AliRDHFCuts* cuts = 0, Int_t nBins=80, Double_t range = 0.50);
324  AnalysisEngine(const AnalysisEngine &source);
325  AnalysisEngine& operator=(const AnalysisEngine& source);
326 
327  virtual ~AnalysisEngine();
328 
330  void SetMCMode(EMCMode_t m) { fMCMode = m ; }
331  void SetNMassBins(Int_t n) { fNMassBins = n ; }
332  void SetMassRange(Double_t min, Double_t max) { fMinMass = min ; fMaxMass = max ; }
333  void AdoptRDHFCuts(AliRDHFCuts* cuts);
334  void SetRDHFCuts(AliRDHFCuts* cuts);
335  void SetRejectedOriginMap(UInt_t m) { fRejectedOrigin = m ; }
336  void SetAcceptedDecayMap(UInt_t m) { fAcceptedDecay = m ; }
337 
338  const char* GetCandidateName() const { return fCandidateName.Data(); }
339  const char* GetName() const;
340  const char* GetName(const AliHFJetDefinition& jetDef) const;
341 
342  EMCMode_t GetMCMode() const { return fMCMode ; }
344 
347  std::vector<AliHFJetDefinition>::iterator FindJetDefinition(const AliHFJetDefinition& eng);
348  std::vector<AliAnalysisTaskDmesonJets::AliHFJetDefinition>& GetJetDefinitions() { return fJetDefinitions; }
349  Bool_t IsAnyJetInAcceptance(const AliDmesonJetInfo& dMesonJet) const;
350 
351 #if !(defined(__CINT__) || defined(__MAKECINT__))
352  std::map<int, AliDmesonJetInfo>& GetDmesons() { return fDmesonJets; }
353 #endif
354 
355  void Init(const AliEMCALGeometry* const geom, Int_t runNumber);
356 
357  TTree* BuildTree(const char* taskName);
358  TTree* GetTree() const { return fTree; }
359  Bool_t FillTree(Bool_t applyKinCuts);
360 
361  void AssignDataSlot(Int_t n) { fDataSlotNumber = n; }
362  Int_t GetDataSlotNumber() const { return fDataSlotNumber; }
363 
364  void BuildHnSparse(UInt_t enabledAxis);
365  Bool_t FillHnSparse(Bool_t applyKinCuts);
366  Bool_t FillHnSparse(THnSparse* h, const AliDmesonJetInfo& DmesonJet, std::string n);
367 
368  Bool_t FillQA(Bool_t applyKinCuts);
369 
370  Bool_t IsInhibit() const { return fInhibit; }
371 
372  friend bool operator< (const AnalysisEngine& lhs, const AnalysisEngine& rhs);
373  friend inline bool operator> (const AnalysisEngine& lhs, const AnalysisEngine& rhs){ return rhs < lhs ; }
374  friend inline bool operator<=(const AnalysisEngine& lhs, const AnalysisEngine& rhs){ return !(lhs > rhs) ; }
375  friend inline bool operator>=(const AnalysisEngine& lhs, const AnalysisEngine& rhs){ return !(lhs < rhs) ; }
376 
377  friend bool operator==(const AnalysisEngine& lhs, const AnalysisEngine& rhs);
378  friend inline bool operator!=(const AnalysisEngine& lhs, const AnalysisEngine& rhs){ return !(lhs == rhs); }
379 
380  protected:
381  void RunAnalysis();
382 
384  TString fCandidateName ;
385  UInt_t fCandidatePDG ;
386  UChar_t fNDaughters ;
387  TArrayI fPDGdaughters ;
388  TString fBranchName ;
390  Int_t fNMassBins ;
391  Double_t fMinMass ;
392  Double_t fMaxMass ;
394  UInt_t fRejectedOrigin ;
395  UInt_t fAcceptedDecay ;
396  Bool_t fInhibit ;
397  std::vector<AliHFJetDefinition> fJetDefinitions ;
398  Float_t fPtBinWidth ;
399  Float_t fMaxPt ;
401  TTree *fTree ;
404  std::map<int, AliDmesonJetInfo> fDmesonJets ;
405  TClonesArray *fCandidateArray ;
409  AliAODEvent *fAodEvent ;
412 
414 
415  private:
416 
417  void AddInputVectors(AliEmcalContainer* cont, Int_t offset, TH2* rejectHist);
418  void SetCandidateProperties(Double_t range);
419  AliAODMCParticle* MatchToMC() const;
422 
423  Bool_t ExtractParticleLevelHFAttributes(const AliAODMCParticle* part, AliDmesonJetInfo& DmesonJet);
424  Bool_t ExtractRecoDecayAttributes(const AliAODRecoDecayHF2Prong* Dcand, AliDmesonJetInfo& DmesonJet, UInt_t i);
425  Bool_t ExtractD0Attributes(const AliAODRecoDecayHF2Prong* Dcand, AliDmesonJetInfo& DmesonJet, UInt_t i);
426  Bool_t ExtractDstarAttributes(const AliAODRecoCascadeHF* DstarCand, AliDmesonJetInfo& DmesonJet, UInt_t i);
427  Bool_t FindJet(AliAODRecoDecayHF2Prong* Dcand, AliDmesonJetInfo& DmesonJet, AliHFJetDefinition& jetDef);
428 
430  ClassDef(AnalysisEngine, 2);
432  };
433 
435  AliAnalysisTaskDmesonJets(const char* name, Int_t nOutputTrees=2);
436  virtual ~AliAnalysisTaskDmesonJets();
437 
438  AnalysisEngine* AddAnalysisEngine(ECandidateType_t type, EMCMode_t bkgMode, EJetType_t jettype, Double_t jetradius, TString cutfname = "");
439  AnalysisEngine* AddAnalysisEngine(ECandidateType_t type, EMCMode_t bkgMode, const AliHFJetDefinition& jetDef, TString cutfname = "");
440  std::list<AnalysisEngine>::iterator FindAnalysisEngine(const AnalysisEngine& eng);
441 
443  void SetShowInvMass(Bool_t b = kTRUE) { fEnabledAxis = b ? fEnabledAxis | kInvMass : fEnabledAxis & ~kInvMass ; }
446  void SetShowDeltaR(Bool_t b = kTRUE) { fEnabledAxis = b ? fEnabledAxis | kDeltaR : fEnabledAxis & ~kDeltaR ; }
447  void SetShowDeltaEta(Bool_t b = kTRUE) { fEnabledAxis = b ? fEnabledAxis | kDeltaEta : fEnabledAxis & ~kDeltaEta ; }
448  void SetShowDeltaPhi(Bool_t b = kTRUE) { fEnabledAxis = b ? fEnabledAxis | kDeltaPhi : fEnabledAxis & ~kDeltaPhi ; }
451 
454 
455  virtual void UserCreateOutputObjects();
456  virtual void ExecOnce();
457  virtual Bool_t Run();
458  virtual Bool_t FillHistograms();
459 
460  protected:
461 
463 
464  AliRDHFCuts* LoadDMesonCutsFromFile(TString cutfname, TString cutsname);
465 
466  static const char* GetHFEventRejectionReasonLabel(UInt_t& bitmap);
467  static void CalculateMassLimits(Double_t range, Int_t pdg, Int_t nbins, Double_t& minMass, Double_t& maxMass);
468 
469  Int_t PostDataFromAnalysisEngine(const AnalysisEngine& eng);
470 
471  std::list<AnalysisEngine>
473  UInt_t fEnabledAxis ;
477  Int_t fNOutputTrees ;
478  AliAODEvent *fAodEvent ;
480 
481  private:
482 
485 
487  ClassDef(AliAnalysisTaskDmesonJets, 6);
489 };
490 
491 #endif
friend bool operator<=(const AnalysisEngine &lhs, const AnalysisEngine &rhs)
Int_t pdg
void Print() const
Prints the content of this object in the standard output.
AliDmesonInfoSummary * fCurrentDmesonJetInfo
! Current D meson jet info
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.
virtual void Set(const AliDmesonJetInfo &source)
Invariant mass of the D0 meson candidate in GeV/c2.
Bool_t IsJetInAcceptance(const AliJetInfo &jet) const
Double_t fSoftPionPt
! Transverse momentum of the soft pion of the D* candidate
AliRDHFCuts * fRDHFCuts
D meson candidates cuts.
Lightweight class that encapsulates D meson jets.
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.
friend bool operator<(const AnalysisEngine &lhs, const AnalysisEngine &rhs)
Declaration of class AliTLorentzVector.
virtual void UserCreateOutputObjects()
Creates the output containers.
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.
std::vector< AliAnalysisTaskDmesonJets::AliHFJetDefinition > & GetJetDefinitions()
EMCMode_t fMCMode
MC mode: No MC (data and MC detector level), background-only (MC), signal-only (MC), MC truth (particle level)
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.
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)
EJetType_t fJetType
Jet type (charged, full, neutral)
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
AliAnalysisTaskDmesonJets()
This is the default constructor, used for ROOT I/O purposes.
AliClusterContainer * fClusterContainer
! Cluster container
virtual void Reset()
Reset the current object.
AnalysisEngine & operator=(const AnalysisEngine &source)
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
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)
EJetAcceptanceType_t fAcceptance
Jet acceptance.
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)
Bool_t ExtractDstarAttributes(const AliAODRecoCascadeHF *DstarCand, AliDmesonJetInfo &DmesonJet, UInt_t i)
const AliJetInfo * GetJet(std::string n) const
Double_t fNEF
Neutral Energy Fraction of the jet.
TClonesArray * fCandidateArray
! D meson candidate array
AliJetContainer::JetAcceptanceType EJetAcceptanceType_t
AliAODMCParticle * MatchToMC() const
virtual ~AliAnalysisTaskDmesonJets()
This is the standard destructor.
Bool_t ExtractD0Attributes(const AliAODRecoDecayHF2Prong *Dcand, AliDmesonJetInfo &DmesonJet, UInt_t i)
Bool_t ExtractParticleLevelHFAttributes(const AliAODMCParticle *part, AliDmesonJetInfo &DmesonJet)
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)
Double_t fMaxChargedPt
Transverse momentum of the leading charged particle (or track)
friend bool operator>=(const AliHFJetDefinition &lhs, const AliHFJetDefinition &rhs)
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
Double32_t fDeltaInvMass
< Difference between the Kpipi and the Kpi invariant masses in GeV/c2
Double_t minMass
void RunParticleLevelAnalysis()
Run a particle level analysis.
std::map< int, AliDmesonJetInfo > & GetDmesons()
std::map< int, AliDmesonJetInfo > fDmesonJets
! Array containing the D meson jets
Bool_t fApplyKinematicCuts
Apply jet kinematic cuts.
const char * GetName() const
Generate a name for this jet definition.
Container class for histograms for the high- charged particle analysis.
Definition: THistManager.h:43
UInt_t fAcceptedDecay
Bit mask with D meson decays that are accepted.
void SetDetectorJetEtaPhiRange(const AliEMCALGeometry *const geom, Int_t run)
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.
EOutputType_t fOutputType
Output type: none, TTree or THnSparse.
AnalysisEngine * AddAnalysisEngine(ECandidateType_t type, EMCMode_t bkgMode, EJetType_t jettype, Double_t jetradius, TString cutfname="")
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.
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
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 AddInputVectors(AliEmcalContainer *cont, Int_t offset, TH2 *rejectHist)
Container structure for EMCAL clusters.
Lightweight class that encapsulates D0.
AliHFTrackContainer * fTrackContainer
! Track container
void SetShowPositionJet(Bool_t b=kTRUE)
Bool_t IsAnyJetInAcceptance(const AliDmesonJetInfo &dMesonJet) const
Int_t PostDataFromAnalysisEngine(const AnalysisEngine &eng)
static EMesonOrigin_t CheckOrigin(const AliAODMCParticle *part, TClonesArray *mcArray)
AliFJWrapper * fFastJetWrapper
! Fastjet wrapper
THistManager fHistManager
Histogram manager.
void Reset()
Reset all fields to their default values.
virtual void Set(const AliDmesonJetInfo &source, std::string n)
Double_t fMinMass
Min mass in histogram axis.