]>
Commit | Line | Data |
---|---|---|
d731501a | 1 | //-*- Mode: C++ -*- |
2 | // $Id$ | |
3 | ||
4 | //* This file is property of and copyright by the ALICE Project * | |
5 | //* ALICE Experiment at CERN, All rights reserved. * | |
6 | //* See cxx source for full Copyright notice * | |
7 | ||
8 | /// @file AliDxHFEParticleSelectionMCEl.h | |
9 | /// @author Hege Erdal, Matthias Richter | |
10 | /// @date 2012-07-19 | |
11 | /// @brief El MC selection for D-HFE correlations | |
12 | /// | |
13 | ||
14 | #ifndef ALIDXHFEPARTICLESELECTIONMCEL_H | |
15 | #define ALIDXHFEPARTICLESELECTIONMCEL_H | |
16 | ||
17 | #include "AliDxHFEParticleSelectionEl.h" | |
18 | #include "AliDxHFEToolsMC.h" | |
19 | ||
20 | class THnSparse; | |
21 | class TH1; | |
22 | ||
23 | /** | |
24 | * @class AliDxHFEParticleSelectionMCEl | |
25 | * Monte Carlo electron selection for D-HFE correlations, implements the specific | |
26 | * selection criteria. | |
27 | */ | |
28 | class AliDxHFEParticleSelectionMCEl : public AliDxHFEParticleSelectionEl { | |
29 | public: | |
30 | /// constructor | |
31 | AliDxHFEParticleSelectionMCEl(const char* opt=""); | |
32 | /// destructor | |
33 | virtual ~AliDxHFEParticleSelectionMCEl(); | |
34 | ||
dfe96b90 | 35 | //Overload Init function from electron selection class |
36 | virtual int Init(); | |
37 | ||
d731501a | 38 | // Setting up control objects: overloaded from AliDxHFEParticleSelection |
dcf83226 | 39 | virtual THnSparse* DefineTHnSparse(); |
d731501a | 40 | |
dcf83226 | 41 | virtual int FillParticleProperties(AliVParticle* p, Double_t* date, int dimension) const; |
dfe96b90 | 42 | virtual AliVParticle* CreateParticle(AliVParticle* track); |
43 | ||
d731501a | 44 | |
45 | /// overloaded from AliDxHFEParticleSelection: check particle | |
46 | virtual int IsSelected(AliVParticle* p, const AliVEvent *pEvent=NULL); | |
47 | ||
48 | /// check MC criteria | |
49 | int CheckMC(AliVParticle* p, const AliVEvent* pEvent); | |
50 | ||
51 | /// clear internal memory | |
52 | virtual void Clear(const char* option=""); | |
53 | ||
54 | protected: | |
55 | ||
56 | private: | |
57 | /// copy contructor prohibited | |
58 | AliDxHFEParticleSelectionMCEl(const AliDxHFEParticleSelectionMCEl&); | |
59 | /// assignment operator prohibited | |
60 | AliDxHFEParticleSelectionMCEl& operator=(const AliDxHFEParticleSelectionMCEl&); | |
61 | ||
b4779749 | 62 | int ParseArguments(const char* arguments); |
d731501a | 63 | /// TODO: check if the label definitions can be used from the ToolsMC |
64 | static const char* fgkPDGMotherBinLabels[]; | |
dfe96b90 | 65 | static const char* fgkPDGBinLabels[]; |
66 | ||
d731501a | 67 | AliDxHFEToolsMC fMCTools; // MC selection tools |
dfe96b90 | 68 | TH1* fPDGnotMCElectron; //! PDG of track not MC truth electron |
fad30eb8 | 69 | TH1* fPDGNotHFMother; //! PDG of mother not HF |
d731501a | 70 | int fOriginMother; // Holds the origin motherquark (process) |
71 | int fResultMC; // Holds information on check on MC | |
b4779749 | 72 | Bool_t fUseKine; // Run over MC stack |
73 | vector<int> fMotherPDGs; // list off mothers counted as background | |
74 | Bool_t fUseMCReco; // Run over all MC reconstructed tracks | |
75 | Int_t fSelectionStep; // Where to stop track selection | |
fad30eb8 | 76 | Bool_t fStoreCutStepInfo; // Whether to store which cut step is the effective one |
d731501a | 77 | |
fad30eb8 | 78 | |
79 | ClassDef(AliDxHFEParticleSelectionMCEl, 4); | |
d731501a | 80 | }; |
81 | ||
82 | #endif |