AliPhysics  80ccde44 (80ccde44)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliAnalysisTaskSEDmesonsFilterCJ.h
Go to the documentation of this file.
1 #ifndef ALIANALYSISTASKSEDMESONSFILTERCJ_H
2 #define ALIANALYSISTASKSEDMESONSFILTERCJ_H
3 /**************************************************************************
4  * Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
5  * *
6  * Author: The ALICE Off-line Project. *
7  * Contributors are mentioned in the code where appropriate. *
8  * *
9  * Permission to use, copy, modify and distribute this software and its *
10  * documentation strictly for non-commercial purposes is hereby granted *
11  * without fee, provided that the above copyright notice appears in all *
12  * copies and that both the copyright notice and this permission notice *
13  * appear in the supporting documentation. The authors make no claims *
14  * about the suitability of this software for any purpose. It is *
15  * provided "as is" without express or implied warranty. *
16  **************************************************************************/
17 
18 //-----------------------------------------------------------------------
19 // Author : A. Grelli, Utrecht University
20 // C. Bianchin, Utrecht University
21 // X. Zhang, LBNL
22 // S. Aiola, Yale University
23 // B. Trzeciak, Utrecht University
24 //-----------------------------------------------------------------------
25 
26 
27 #include "AliAnalysisTaskEmcal.h"
28 
29 class TH2;
30 class TString;
31 class TClonesArray;
32 class AliAODMCHeader;
33 class AliRDHFCuts;
36 class AliAODRecoDecay;
37 class AliStack;
38 
40 {
41 
42  public:
43 
47 
51 
53  Bool_t Run();
54  void Init();
55  void LocalInit() { Init(); }
56 
57  // inizializations
59 
60  // set MC usage
61  void SetMC(Bool_t theMCon) { fUseMCInfo = theMCon ; }
62  Bool_t GetMC() const { return fUseMCInfo ; }
63 
64  // set MC RM or eff
65  void SetBuildRMEff(Bool_t theRM) { fBuildRMEff = theRM ; }
66  Bool_t GetBuildRMEff() const { return fBuildRMEff ; }
67 
68  void SetUsePythia(Bool_t theUsePythia) { fUsePythia = theUsePythia; }
69  Bool_t GetUsePythia() const { return fUsePythia; }
70 
71  // set usage of generated or reconstucted quantities (relevant for MC)
72  void SetUseReco(Bool_t useReco=kTRUE) { fUseReco = useReco ; }
73  Bool_t GetUseReco() const { return fUseReco ; }
74 
77 
79  Bool_t GetMultipleCandidates() const { return fMultCand ; }
80 
83 
86 
88  Bool_t GetRejectDfromB() const { return fRejectDfromB ; }
89 
92 
93  void SetMassLimits(Double_t range, Int_t pdg);
94  void SetMassLimits(Double_t lowlimit, Double_t uplimit);
95 
96  // Array of D0 width for the Dstar
98 
99  Float_t DeltaR(AliVParticle *p1, AliVParticle *p2) const;
100 
101  static Double_t AddDaughters(AliAODRecoDecay* cand, TObjArray& daughters);
102  static Double_t AddMCDaughters(AliAODMCParticle* mcDmeson, TObjArray& mcdaughters, TClonesArray* mcArray);
103 
104  static Int_t CheckOrigin(AliAODRecoDecay* cand, TClonesArray* mcArray); // AOD
105  static Int_t CheckOrigin(AliAODMCParticle* part, TClonesArray* mcArray); // AOD
106  static Int_t CheckOrigin(AliAODRecoDecay* cand, AliStack* stack); // ESD
107  static Int_t CheckOrigin(Int_t ipart, AliStack* stack); // ESD
108 
109  static Int_t CheckDecayChannel(AliAODMCParticle* part, TClonesArray* mcArray); // AOD
110  static Int_t CheckDecayChannel(Int_t ipart, AliStack* stack); // ESD
111 
112  void GetTrackPrimaryGenerator(AliAODTrack *track,AliAODMCHeader *header,TClonesArray *arrayMC,TString &nameGen);
113  void GetMCTrackPrimaryGenerator(AliAODMCParticle *track,AliAODMCHeader *header,TClonesArray *arrayMC,TString &nameGen);
114  Bool_t IsTrackInjected(AliAODTrack *track,AliAODMCHeader *header,TClonesArray *arrayMC);
115  Bool_t IsMCTrackInjected(AliAODMCParticle *track,AliAODMCHeader *header,TClonesArray *arrayMC);
116 
117 
118  protected:
119  void ExecOnce();
120  void ProcessD0(AliAODRecoDecayHF2Prong* charmCand, Int_t isSelected);
121  void ProcessDstar(AliAODRecoCascadeHF* dstar, Int_t isSelected);
122  void FillD0MCTruthKinHistos(AliAODRecoDecayHF2Prong* charmCand, Int_t isSelected, Int_t isD0);
123  void FillDStarMCTruthKinHistos(AliAODRecoCascadeHF* dstar, Int_t isSelected, Int_t isDstar);
125  void AddEventTracks(TClonesArray* coll, AliParticleContainer* tracks);
126  void AddMCEventTracks(TClonesArray* coll, AliParticleContainer* mctracks);
127 
128 
129  Bool_t fUseMCInfo; // Use MC info
130  Bool_t fBuildRMEff; // MC RM or efficiency studies
131  Bool_t fUsePythia; // Use Pythia info only for MC
132  Bool_t fUseReco; // use reconstructed tracks when running on MC
133  UInt_t fCandidateType; // Dstar or D0
134  TString fCandidateName; // Dstar or D0
135  Int_t fPDGmother; // PDG code of D meson
136  Int_t fNProngs; // number of prong of the decay channel
137  Int_t fPDGdaughters[4]; // PDG codes of daughters
138  Float_t fSigmaD0[30]; // D0 sigma for Dstar
139  TString fBranchName; // AOD branch name
140  AliRDHFCuts *fCuts; // cuts
141  Double_t fMinMass; // mass lower limit histogram
142  Double_t fMaxMass; // mass upper limit histogram
144  Bool_t fCombineDmesons; // create an additional collection with D meson candidates and the rest of the tracks (for jet finding)
145  Bool_t fMultCand; // In case of multiple candidates per event
146  Int_t fAnalyseCand; // Number of the candidate to be analysed
147  Bool_t fRejectQuarkNotFound; // reject D mesons for which the original charm or bottom quark could not be found (MC)
148  Bool_t fRejectDfromB; // reject D mesons coming from a B meson decay (MC)
149  Bool_t fKeepOnlyDfromB; // only accept D mesons coming from a B meson decay (MC)
151  AliAODMCHeader *fMCHeader;
152  TClonesArray *fArrayDStartoD0pi;
153  TClonesArray *fMCarray;
154  TClonesArray *fCandidateArray;
155  TClonesArray *fSideBandArray;
156  TClonesArray *fCombinedDmesons;
157  TClonesArray *fCombinedDmesonsBkg;
158  TClonesArray *fMCCombinedDmesons;
190 
191 
192  private:
193 
196 
197  ClassDef(AliAnalysisTaskSEDmesonsFilterCJ, 7); // task for selecting D mesons to be used as an input for D-Jet correlations
198 };
199 
200 #endif
void ProcessDstar(AliAODRecoCascadeHF *dstar, Int_t isSelected)
Int_t pdg
static Int_t CheckOrigin(AliAODRecoDecay *cand, TClonesArray *mcArray)
double Double_t
Definition: External.C:58
TClonesArray * fCombinedDmesonsBkg
contains candidates selected by AliRDHFCuts and the rest of the event tracks
void ProcessD0(AliAODRecoDecayHF2Prong *charmCand, Int_t isSelected)
Base task in the EMCAL framework.
char Char_t
Definition: External.C:18
void FillD0MCTruthKinHistos(AliAODRecoDecayHF2Prong *charmCand, Int_t isSelected, Int_t isD0)
static Double_t AddDaughters(AliAODRecoDecay *cand, TObjArray &daughters)
void AddEventTracks(TClonesArray *coll, AliParticleContainer *tracks)
TCanvas * c
Definition: TestFitELoss.C:172
AliStack * stack
void GetMCTrackPrimaryGenerator(AliAODMCParticle *track, AliAODMCHeader *header, TClonesArray *arrayMC, TString &nameGen)
void FillDStarMCTruthKinHistos(AliAODRecoCascadeHF *dstar, Int_t isSelected, Int_t isDstar)
static Double_t AddMCDaughters(AliAODMCParticle *mcDmeson, TObjArray &mcdaughters, TClonesArray *mcArray)
Container for particles within the EMCAL framework.
Bool_t Run()
Run function. This is the core function of the analysis and contains the user code. Therefore users have to implement this function.
Int_t fNCand
contains MC D0 and MC event particles
Bool_t IsTrackInjected(AliAODTrack *track, AliAODMCHeader *header, TClonesArray *arrayMC)
void FillDstarSideBands(AliAODRecoCascadeHF *dstar)
TClonesArray * fSideBandArray
contains candidates selected by AliRDHFCuts
AliAnalysisTaskSEDmesonsFilterCJ & operator=(const AliAnalysisTaskSEDmesonsFilterCJ &source)
int Int_t
Definition: External.C:63
unsigned int UInt_t
Definition: External.C:33
static Int_t CheckDecayChannel(AliAODMCParticle *part, TClonesArray *mcArray)
float Float_t
Definition: External.C:68
TClonesArray * fMCCombinedDmesons
contains bkg candidates selected by AliRDHFCuts and the rest of the event tracks
Bool_t SetD0WidthForDStar(Int_t nptbins, Float_t *width)
void ExecOnce()
Perform steps needed to initialize the analysis.
Definition: External.C:220
Int_t fNSBCand
number of selected D candidates already added to fCandidateArray
Bool_t IsMCTrackInjected(AliAODMCParticle *track, AliAODMCHeader *header, TClonesArray *arrayMC)
TH1 * fHistStat
number of selected side-band D candidates already added to fSideBandArray
Float_t DeltaR(AliVParticle *p1, AliVParticle *p2) const
bool Bool_t
Definition: External.C:53
void AddMCEventTracks(TClonesArray *coll, AliParticleContainer *mctracks)
Int_t nptbins
void GetTrackPrimaryGenerator(AliAODTrack *track, AliAODMCHeader *header, TClonesArray *arrayMC, TString &nameGen)
Definition: External.C:196
TClonesArray * fCombinedDmesons
contains candidates selected by AliRDHFCuts::IsSelected(kTracks), to be used for side bands (DStar ca...