]>
Commit | Line | Data |
---|---|---|
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 | ||
35 | //Overload Init function from electron selection class | |
36 | virtual int Init(); | |
37 | ||
38 | // Setting up control objects: overloaded from AliDxHFEParticleSelection | |
39 | virtual THnSparse* DefineTHnSparse(); | |
40 | ||
41 | virtual int FillParticleProperties(AliVParticle* p, Double_t* date, int dimension) const; | |
42 | virtual AliVParticle* CreateParticle(AliVParticle* track); | |
43 | ||
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 | ||
62 | int ParseArguments(const char* arguments); | |
63 | /// TODO: check if the label definitions can be used from the ToolsMC | |
64 | static const char* fgkPDGMotherBinLabels[]; | |
65 | static const char* fgkPDGBinLabels[]; | |
66 | ||
67 | AliDxHFEToolsMC fMCTools; // MC selection tools | |
68 | TH1* fPDGnotMCElectron; //! PDG of track not MC truth electron | |
69 | TH1* fPDGNotHFMother; //! PDG of mother not HF | |
70 | int fOriginMother; // Holds the origin motherquark (process) | |
71 | int fResultMC; // Holds information on check on MC | |
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 | |
76 | Bool_t fStoreCutStepInfo; // Whether to store which cut step is the effective one | |
77 | ||
78 | ||
79 | ClassDef(AliDxHFEParticleSelectionMCEl, 4); | |
80 | }; | |
81 | ||
82 | #endif |