]>
Commit | Line | Data |
---|---|---|
72c0a987 | 1 | //-*- Mode: C++ -*- |
b4779749 | 2 | // // $Id$ |
72c0a987 | 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 AliDxHFEParticleSelectionEl.h | |
9 | /// @author Sedat Altinpinar, Hege Erdal, Matthias Richter | |
10 | /// @date 2012-03-19 | |
11 | /// @brief Electron selection for D-HFE correlations | |
12 | /// | |
13 | ||
14 | #ifndef ALIDXHFEPARTICLESELECTIONEL_H | |
15 | #define ALIDXHFEPARTICLESELECTIONEL_H | |
16 | ||
17 | #include "AliDxHFEParticleSelection.h" | |
7de5d5a3 | 18 | |
7de5d5a3 | 19 | // 2012-09-17: there has been a problem in the dictionary generation for par file |
20 | // compilation, so we have to include the header files indicated below | |
21 | // Generating dictionary ... | |
22 | // In file included from $ROOTSYS/include/TObject.h:230:0, | |
23 | // from G__PWGHFcorrelationHF.h:32, | |
24 | // from G__PWGHFcorrelationHF.cxx:17: | |
25 | // $ROOTSYS/include/TBuffer.h: In function ‘TBuffer& operator>>(TBuffer&, Tmpl*&) [with Tmpl = AliHFEcuts]’: | |
26 | // G__PWGHFcorrelationHF.cxx:1658:15: instantiated from here | |
27 | // $ROOTSYS/include/TBuffer.h:373:47: error: invalid use of incomplete type ‘struct AliHFEcuts’ | |
28 | // correlationHF/AliDxHFEParticleSelectionEl.h:25:7: error: forward declaration of ‘struct AliHFEcuts’ | |
b86451e1 | 29 | |
7de5d5a3 | 30 | #include "AliHFEcuts.h" // need to directly include to avoid compilation error in the dictionary |
31 | #include "AliHFEpid.h" // need to directly include to avoid compilation error in the dictionary | |
32 | ||
9535cec9 | 33 | class AliPID; |
34 | class AliPIDResponse; | |
9535cec9 | 35 | class AliHFEvarManager; |
9535cec9 | 36 | class AliHFEpidBase; |
37 | class AliHFEtools; | |
38 | class AliVEvent; | |
39 | class AliCFManager; | |
2229ac91 | 40 | class TList; |
41 | ||
72c0a987 | 42 | /** |
43 | * @class AliDxHFEParticleSelectionEl | |
44 | * Electron selection for D-HFE correlations, implements the specific | |
45 | * selection criteria. | |
46 | */ | |
47 | class AliDxHFEParticleSelectionEl : public AliDxHFEParticleSelection { | |
48 | public: | |
49 | /// constructor | |
50 | AliDxHFEParticleSelectionEl(const char* opt=""); | |
51 | /// destructor | |
52 | virtual ~AliDxHFEParticleSelectionEl(); | |
b86451e1 | 53 | |
9535cec9 | 54 | enum { |
55 | kCutHFE = 0, | |
b4779749 | 56 | kCutPIDTOFTPC = 1, |
b86451e1 | 57 | kCutPIDTOF = 2, |
2229ac91 | 58 | kCutList=3, |
9535cec9 | 59 | kNCuts |
60 | }; | |
61 | ||
d731501a | 62 | enum { |
b4779749 | 63 | kNoCuts=-1, |
d731501a | 64 | kRecKineITSTPC=0, |
65 | kRecPrim, | |
66 | kHFEcutsITS, | |
67 | kHFEcutsTOF, | |
68 | kHFEcutsTPC, | |
b86451e1 | 69 | kPIDTOF, |
b4779749 | 70 | kPIDTOFTPC, |
d731501a | 71 | kSelected, |
72 | kNCutLabels | |
73 | }; | |
74 | ||
75 | ///overloaded from AliDxHFEParticleSelection: Init | |
76 | virtual int Init(); | |
77 | ||
9535cec9 | 78 | /// overloaded from AliDxHFEParticleSelection: init the control objects |
79 | virtual int InitControlObjects(); | |
dcf83226 | 80 | virtual THnSparse* DefineTHnSparse(); |
9535cec9 | 81 | |
72c0a987 | 82 | /// overloaded from AliDxHFEParticleSelection: check particle |
b4779749 | 83 | virtual TObjArray* Select(const AliVEvent* pEvent); |
84 | using AliDxHFEParticleSelection::Select; | |
85 | ||
b32d523b | 86 | virtual int IsSelected(AliVParticle* p, const AliVEvent* pEvent); |
9535cec9 | 87 | |
88 | virtual int HistogramParticleProperties(AliVParticle* p, int selected); | |
89 | ||
dcf83226 | 90 | virtual int FillParticleProperties(AliVParticle* p, Double_t* date, int dimension) const; |
9535cec9 | 91 | |
92 | /// set cuts object: a type cast check is implemented in the method | |
93 | virtual void SetCuts(TObject* /*cuts*/, int /*level*/=0); | |
b4779749 | 94 | virtual void SetFinalCutStep(int cutstep){fFinalCutStep=cutstep;} |
b86451e1 | 95 | |
96 | virtual void SetPIDResponse(const AliPIDResponse* const pidresp){fPIDResponse=(AliPIDResponse*)(pidresp);} | |
72c0a987 | 97 | |
98 | protected: | |
99 | ||
100 | private: | |
b86451e1 | 101 | |
72c0a987 | 102 | /// copy contructor prohibited |
103 | AliDxHFEParticleSelectionEl(const AliDxHFEParticleSelectionEl&); | |
104 | /// assignment operator prohibited | |
105 | AliDxHFEParticleSelectionEl& operator=(const AliDxHFEParticleSelectionEl&); | |
b86451e1 | 106 | |
9535cec9 | 107 | /// check cut of specified step, e.g. |
108 | bool ProcessCutStep(Int_t cutStep, AliVParticle *track); | |
b4779749 | 109 | int ParseArguments(const char* arguments); |
110 | ||
111 | virtual void InvMassFilter(TList* elList, Bool_t* selIndx); | |
9535cec9 | 112 | |
b4779749 | 113 | AliHFEpid* fPIDTOFTPC; //! the PID object |
b86451e1 | 114 | AliHFEpid* fPIDTOF; //! the PID TOF object |
9535cec9 | 115 | THnSparse* fElectronProperties; // the particle properties of selected particles |
2229ac91 | 116 | TList* fHistoList; // list of histograms |
117 | TList* fCutPidList; // list for pid and cut objects | |
b86451e1 | 118 | AliPIDResponse* fPIDResponse; // fPIDResponse |
9535cec9 | 119 | AliHFEcuts* fCuts; //! Cuts for HF electrons |
120 | AliCFManager* fCFM; //! Correction Framework Manager | |
b4779749 | 121 | Int_t fFinalCutStep; // Holds the final cutstep |
122 | Double_t fInvMassLow; // lower inv-mass cut | |
123 | Bool_t fUseInvMassCut; // whether to use inv mass cut | |
9535cec9 | 124 | |
d731501a | 125 | static const char* fgkCutBinNames[]; //! bin labels for cuts histogram |
9535cec9 | 126 | |
b4779749 | 127 | ClassDef(AliDxHFEParticleSelectionEl, 5); |
72c0a987 | 128 | }; |
129 | ||
130 | #endif |