]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/hfe/AliHFEdisplacedElectrons.h
Fixing conding violations (Matthieu)
[u/mrichter/AliRoot.git] / PWG3 / hfe / AliHFEdisplacedElectrons.h
CommitLineData
70da6c5a 1/**************************************************************************
2* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3* *
4* Author: The ALICE Off-line Project. *
5* Contributors are mentioned in the code where appropriate. *
6* *
7* Permission to use, copy, modify and distribute this software and its *
8* documentation strictly for non-commercial purposes is hereby granted *
9* without fee, provided that the above copyright notice appears in all *
10* copies and that both the copyright notice and this permission notice *
11* appear in the supporting documentation. The authors make no claims *
12* about the suitability of this software for any purpose. It is *
13* provided "as is" without express or implied warranty. *
14**************************************************************************/
15//
16// Class for electrons from beauty study
17// Counting electrons from beauty
18// by DCA cuts, background subtraction
19//
20// Authors:
21// Hongyan Yang <hongyan@physi.uni-heidelberg.de>
22//
23
24#ifndef ALIHFEDISPLACEDELECTRONS_H
25#define ALIHFEDISPLACEDELECTRONS_H
26
27#ifndef ROOT_TObject
28#include <TObject.h>
29#endif
30
31#ifndef ROOT_TPDGCode
32#include <TPDGCode.h>
33#endif
34
35class TChain;
36class TTree;
37class TFile;
38
39class TPDGCode;
40
41class TString;
42class TList;
43
44class AliLog;
45
46class THnSparse;
47
48class TObjArray;
49class AliStack;
50class AliMCEvent;
51class AliESDEvent;
52
53class AliESDtrack;
54class AliESDVertex;
55
56class AliHFEdisplacedElectrons : public TObject{
57
58 public:
59
60 enum{
61 kPDGelectron = kElectron,
62 kPDGgamma = kGamma,
63 kPDGpi0 = kPi0,
64 kPDGpion = kPiPlus,
65 kPDGeta = 221,
66 kPDGcharm = kCharm,
67 kPDGbeauty = kBottom
68 }; // PDG codes to be used
69
91c7e1ec 70 AliHFEdisplacedElectrons(); // default constructor
70da6c5a 71 AliHFEdisplacedElectrons(const AliHFEdisplacedElectrons &p); // copy constructor
91c7e1ec 72 AliHFEdisplacedElectrons &operator=(const AliHFEdisplacedElectrons &ref); // assignment operator
70da6c5a 73
74 virtual ~AliHFEdisplacedElectrons();
75
76 void InitAnalysis();
77 void CreateOutputs(TList* const displacedList);
78
79 void FillMCOutput(AliESDEvent* fESDEvent, AliESDtrack *track, AliStack *stack);
80 void FillESDOutput(AliESDEvent* fESDEvent, AliESDtrack *track);
81
82 Int_t GetMCpid(AliStack* stack, Int_t label) const;
83
84 Bool_t HasMCData() const { return TestBit(kHasMCData); };
85 void SetHasMCData(Bool_t hasMCdata = kTRUE) { SetBit(kHasMCData,hasMCdata); };
86 void SetDebugLevel(Int_t debugLevel){ fDebugLevel = debugLevel; };
87
88 void PostAnalysis() const;
89
90
91 private:
92
93 enum{
94 kHasMCData = BIT(15), // bitset for mc data usage
95 kHasESDData = BIT(16)
96 };
97
98
99
100 enum{
101 kElePhotonConv = 0,
102 kEleDirectPhotonConv = 1,
103 kElePi0 = 2,
104 kEleEta = 3,
105 kEleB = 4,
106 kEleC = 5,
107 kEleBC = 6
108 }; // electron source index
109
110 enum{
111 kMCpion = 0,
112 kMCelectron = 1,
113 kData = 2
114 }; // MC or Data
115
116 enum{
117 kNDcaMin = 21,
118 kNPtIntv = 14,
119 kNKineVar = 3
120 }; // several constant to be used
121
122 UInt_t fDebugLevel; // debug level
70da6c5a 123
124 Int_t ElectronFromSource(AliStack *stack, Int_t eleLabel) const;
125 Int_t ElePhotonDirect(AliStack *stack, Int_t label) const;
126 Int_t ElectronFromCharm(AliStack *stack, Int_t eleLabel) const;
127 Int_t CharmFromBeauty(AliStack *stack, Int_t charmLabel) const;
128
129 Int_t GetMotherLabel(AliStack *stack, Int_t label) const;
130 Float_t GetRapidity(TParticle *part) const;
131 Float_t GetTrackRapidity(AliESDtrack *track) const;
132
133 static const Float_t fgkDcaMinIntv[kNDcaMin]; // DCA cut min limit
134 static const Float_t fgkDcaMinPtIntv[kNPtIntv-1]; // DCA cut min limit in different pT bins
135 static const Float_t fgkPtIntv[kNPtIntv]; // all pt bins
136
137 static const Char_t *fgkKineVar[kNKineVar]; // particle names
138 static const Char_t *fgkKineVarTitle[kNKineVar]; // particle names
139
91c7e1ec 140 THnSparseF *fTHnSparseDcaMcPionInfo; //! container for MC pion part
141 THnSparseF *fTHnSparseDcaMcEleInfo; //! container for MC electron part
142 THnSparseF *fTHnSparseDcaDataEleInfo; //! container for Data electron part
70da6c5a 143
144 TList *fOutputList; //! output container
145 ClassDef(AliHFEdisplacedElectrons, 0);
146};
147
148#endif