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 *
8 /// @file AliDxHFEParticleSelectionEl.h
9 /// @author Sedat Altinpinar, Hege Erdal, Matthias Richter
11 /// @brief Electron selection for D-HFE correlations
14 #ifndef ALIDXHFEPARTICLESELECTIONEL_H
15 #define ALIDXHFEPARTICLESELECTIONEL_H
17 #include "AliDxHFEParticleSelection.h"
20 // 2012-09-17: there has been a problem in the dictionary generation for par file
21 // compilation, so we have to include the header files indicated below
22 // Generating dictionary ...
23 // In file included from $ROOTSYS/include/TObject.h:230:0,
24 // from G__PWGHFcorrelationHF.h:32,
25 // from G__PWGHFcorrelationHF.cxx:17:
26 // $ROOTSYS/include/TBuffer.h: In function ‘TBuffer& operator>>(TBuffer&, Tmpl*&) [with Tmpl = AliHFEcuts]’:
27 // G__PWGHFcorrelationHF.cxx:1658:15: instantiated from here
28 // $ROOTSYS/include/TBuffer.h:373:47: error: invalid use of incomplete type ‘struct AliHFEcuts’
29 // correlationHF/AliDxHFEParticleSelectionEl.h:25:7: error: forward declaration of ‘struct AliHFEcuts’
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
35 class AliHFEvarManager;
43 * @class AliDxHFEParticleSelectionEl
44 * Electron selection for D-HFE correlations, implements the specific
47 class AliDxHFEParticleSelectionEl : public AliDxHFEParticleSelection {
50 AliDxHFEParticleSelectionEl(const char* opt="");
52 virtual ~AliDxHFEParticleSelectionEl();
71 ///overloaded from AliDxHFEParticleSelection: Init
74 /// overloaded from AliDxHFEParticleSelection: init the control objects
75 virtual int InitControlObjects();
76 virtual THnSparse* DefineTHnSparse() const;
78 /// overloaded from AliDxHFEParticleSelection: check particle
79 virtual int IsSelected(AliVParticle* p, const AliVEvent* pEvent);
81 virtual int HistogramParticleProperties(AliVParticle* p, int selected);
83 // TODO: function can be renamed to better describe what it's doing
84 virtual int DefineParticleProperties(AliVParticle* p, Double_t* date, int dimension) const;
86 /// set cuts object: a type cast check is implemented in the method
87 virtual void SetCuts(TObject* /*cuts*/, int /*level*/=0);
92 /// copy contructor prohibited
93 AliDxHFEParticleSelectionEl(const AliDxHFEParticleSelectionEl&);
94 /// assignment operator prohibited
95 AliDxHFEParticleSelectionEl& operator=(const AliDxHFEParticleSelectionEl&);
97 /// check cut of specified step, e.g.
98 bool ProcessCutStep(Int_t cutStep, AliVParticle *track);
100 AliHFEpid* fPID; //! the PID object
101 THnSparse* fElectronProperties; // the particle properties of selected particles
102 TH1* fWhichCut; // effective cut for a rejected particle
103 AliHFEcuts* fCuts; //! Cuts for HF electrons
104 AliCFManager* fCFM; //! Correction Framework Manager
106 static const char* fgkTrackControlBinNames[]; //! bin labels for track control histogram
107 static const char* fgkCutBinNames[]; //! bin labels for cuts histogram
109 ClassDef(AliDxHFEParticleSelectionEl, 2);