]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGHF/correlationHF/AliDxHFEParticleSelectionEl.h
update of DxHFE analysis (Hege, Per-Ivar)
[u/mrichter/AliRoot.git] / PWGHF / correlationHF / AliDxHFEParticleSelectionEl.h
CommitLineData
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 33class AliPID;
34class AliPIDResponse;
9535cec9 35class AliHFEvarManager;
9535cec9 36class AliHFEpidBase;
37class AliHFEtools;
38class AliVEvent;
39class AliCFManager;
2229ac91 40class TList;
41
72c0a987 42/**
43 * @class AliDxHFEParticleSelectionEl
44 * Electron selection for D-HFE correlations, implements the specific
45 * selection criteria.
46 */
47class 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