]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGHF/correlationHF/AliDxHFEParticleSelectionEl.h
macro used to update OADB file for energy recalibration factors
[u/mrichter/AliRoot.git] / PWGHF / correlationHF / AliDxHFEParticleSelectionEl.h
CommitLineData
72c0a987 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 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
19
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’
b86451e1 30
7de5d5a3 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
33
9535cec9 34class AliPID;
35class AliPIDResponse;
9535cec9 36class AliHFEvarManager;
9535cec9 37class AliHFEpidBase;
38class AliHFEtools;
39class AliVEvent;
40class AliCFManager;
2229ac91 41class TList;
42
72c0a987 43/**
44 * @class AliDxHFEParticleSelectionEl
45 * Electron selection for D-HFE correlations, implements the specific
46 * selection criteria.
47 */
48class AliDxHFEParticleSelectionEl : public AliDxHFEParticleSelection {
49 public:
50 /// constructor
51 AliDxHFEParticleSelectionEl(const char* opt="");
52 /// destructor
53 virtual ~AliDxHFEParticleSelectionEl();
b86451e1 54
9535cec9 55 enum {
56 kCutHFE = 0,
57 kCutPID = 1,
b86451e1 58 kCutPIDTOF = 2,
2229ac91 59 kCutList=3,
9535cec9 60 kNCuts
61 };
62
d731501a 63 enum {
64 kRecKineITSTPC=0,
65 kRecPrim,
66 kHFEcutsITS,
67 kHFEcutsTOF,
68 kHFEcutsTPC,
b86451e1 69 kPIDTOF,
d731501a 70 kPID,
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
b32d523b 83 virtual int IsSelected(AliVParticle* p, const AliVEvent* pEvent);
9535cec9 84
85 virtual int HistogramParticleProperties(AliVParticle* p, int selected);
86
dcf83226 87 virtual int FillParticleProperties(AliVParticle* p, Double_t* date, int dimension) const;
9535cec9 88
89 /// set cuts object: a type cast check is implemented in the method
90 virtual void SetCuts(TObject* /*cuts*/, int /*level*/=0);
b86451e1 91
92 virtual void SetPIDResponse(const AliPIDResponse* const pidresp){fPIDResponse=(AliPIDResponse*)(pidresp);}
72c0a987 93
94 protected:
95
96 private:
b86451e1 97
72c0a987 98 /// copy contructor prohibited
99 AliDxHFEParticleSelectionEl(const AliDxHFEParticleSelectionEl&);
100 /// assignment operator prohibited
101 AliDxHFEParticleSelectionEl& operator=(const AliDxHFEParticleSelectionEl&);
b86451e1 102
9535cec9 103 /// check cut of specified step, e.g.
104 bool ProcessCutStep(Int_t cutStep, AliVParticle *track);
105
106 AliHFEpid* fPID; //! the PID object
b86451e1 107 AliHFEpid* fPIDTOF; //! the PID TOF object
9535cec9 108 THnSparse* fElectronProperties; // the particle properties of selected particles
2229ac91 109 TList* fHistoList; // list of histograms
110 TList* fCutPidList; // list for pid and cut objects
b86451e1 111 AliPIDResponse* fPIDResponse; // fPIDResponse
9535cec9 112 AliHFEcuts* fCuts; //! Cuts for HF electrons
113 AliCFManager* fCFM; //! Correction Framework Manager
114
d731501a 115 static const char* fgkCutBinNames[]; //! bin labels for cuts histogram
9535cec9 116
2229ac91 117 ClassDef(AliDxHFEParticleSelectionEl, 4);
72c0a987 118};
119
120#endif