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’
31 #include "AliHFEcuts.h" // need to directly include to avoid compilation error in the dictionary
32 #include "AliHFEpid.h" // need to directly include to avoid compilation error in the dictionary
36 class AliHFEvarManager;
44 * @class AliDxHFEParticleSelectionEl
45 * Electron selection for D-HFE correlations, implements the specific
48 class AliDxHFEParticleSelectionEl : public AliDxHFEParticleSelection {
51 AliDxHFEParticleSelectionEl(const char* opt="");
53 virtual ~AliDxHFEParticleSelectionEl();
75 ///overloaded from AliDxHFEParticleSelection: Init
78 /// overloaded from AliDxHFEParticleSelection: init the control objects
79 virtual int InitControlObjects();
80 virtual THnSparse* DefineTHnSparse();
82 /// overloaded from AliDxHFEParticleSelection: check particle
83 virtual int IsSelected(AliVParticle* p, const AliVEvent* pEvent);
85 virtual int HistogramParticleProperties(AliVParticle* p, int selected);
87 virtual int FillParticleProperties(AliVParticle* p, Double_t* date, int dimension) const;
89 /// set cuts object: a type cast check is implemented in the method
90 virtual void SetCuts(TObject* /*cuts*/, int /*level*/=0);
92 virtual void SetPIDResponse(const AliPIDResponse* const pidresp){fPIDResponse=(AliPIDResponse*)(pidresp);}
98 /// copy contructor prohibited
99 AliDxHFEParticleSelectionEl(const AliDxHFEParticleSelectionEl&);
100 /// assignment operator prohibited
101 AliDxHFEParticleSelectionEl& operator=(const AliDxHFEParticleSelectionEl&);
103 /// check cut of specified step, e.g.
104 bool ProcessCutStep(Int_t cutStep, AliVParticle *track);
106 AliHFEpid* fPID; //! the PID object
107 AliHFEpid* fPIDTOF; //! the PID TOF object
108 THnSparse* fElectronProperties; // the particle properties of selected particles
109 TList* fHistoList; // list of histograms
110 TList* fCutPidList; // list for pid and cut objects
111 AliPIDResponse* fPIDResponse; // fPIDResponse
112 AliHFEcuts* fCuts; //! Cuts for HF electrons
113 AliCFManager* fCFM; //! Correction Framework Manager
115 static const char* fgkCutBinNames[]; //! bin labels for cuts histogram
117 ClassDef(AliDxHFEParticleSelectionEl, 4);