Belle II Software  release-05-01-25
eclChargedPidSelector.h
1 //
2 // Contributors: Caitlin MacQueen, Marco Milesi
3 // Contact: cmq.centaurus@gmail.com
4 // Last Modified: June 2018
5 //
6 
7 #ifndef eclChargedPidSelector_h
8 #define eclChargedPidSelector_h
9 
10 #include <TROOT.h>
11 #include <TChain.h>
12 #include <TFile.h>
13 #include <TSelector.h>
14 
15 #include <TTree.h>
16 #include <TH1.h>
17 #include <TH2.h>
18 #include <TStyle.h>
19 #include <TLorentzVector.h>
20 #include <vector>
21 #include <string>
22 #include <iostream>
23 #include <stdio.h>
24 #include <TCut.h>
25 
26 // Fixed size dimensions of array or collections stored in the TTree if any.
27 
30 class eclChargedPidSelector : public TSelector {
31 public :
33  TTree* fChain;
34 
35  // Declaration of leaf types
36 
38  Int_t expNo;
40  Int_t runNo;
42  Int_t evtNo;
46  vector<double>* eclShowerEnergy;
48  vector<double>* eclShowerTheta;
50  vector<double>* eclShowerPhi;
52  vector<double>* eclShowerR;
54  vector<int>* eclShowerHypothesisId;
56  vector<double>* eclShowerAbsZernike40;
58  vector<double>* eclShowerAbsZernike51;
60  Int_t mcMultip;
62  vector<int>* mcPdg;
64  vector<int>* mcMothPdg;
66  vector<double>* mcEnergy;
68  vector<double>* mcP;
70  vector<double>* mcTheta;
72  vector<double>* mcPhi;
74  Int_t trkMultip;
76  vector<int>* trkPdg;
78  vector<int>* trkCharge;
80  vector<double>* trkP;
82  vector<double>* trkTheta;
84  vector<double>* trkPhi;
86  vector<double>* eclEoP;
87 
88  // List of branches
90  TBranch* b_expNo;
91 
92  TBranch* b_runNo;
93 
94  TBranch* b_evtNo;
95 
96  TBranch* b_eclShowerMultip;
97 
98  TBranch* b_eclShowerEnergy;
99 
100  TBranch* b_eclShowerTheta;
101 
102  TBranch* b_eclShowerPhi;
103 
104  TBranch* b_eclShowerR;
105 
107 
109 
111 
112  TBranch* b_mcMultip;
113 
114  TBranch* b_mcPdg;
115 
116  TBranch* b_mcMothPdg;
117 
118  TBranch* b_mcEnergy;
119 
120  TBranch* b_mcP;
121 
122  TBranch* b_mcTheta;
123 
124  TBranch* b_mcPhi;
125 
126  TBranch* b_trkMulti;
127 
128  TBranch* b_trkPdg;
129 
130  TBranch* b_trkCharge;
131 
132  TBranch* b_trkP;
133 
134  TBranch* b_trkTheta;
135 
136  TBranch* b_trkPhi;
137 
138  TBranch* b_eclEoP;
139 
141  string fOutfile;
142 
143  void SetOutputDir(const char* outpath);
146  explicit eclChargedPidSelector(TTree* tree = 0) :
147  fChain(0),
148  eclShowerEnergy(0),
149  eclShowerTheta(0),
150  eclShowerPhi(0),
151  eclShowerR(0),
155  mcPdg(0),
156  mcMothPdg(0),
157  mcEnergy(0),
158  mcP(0),
159  mcTheta(0),
160  mcPhi(0),
161  trkPdg(0),
162  trkCharge(0),
163  trkP(0),
164  trkTheta(0),
165  trkPhi(0),
166  eclEoP(0),
167  b_expNo(0),
168  b_runNo(0),
169  b_evtNo(0),
172  b_eclShowerTheta(0),
173  b_eclShowerPhi(0),
174  b_eclShowerR(0),
178  b_mcMultip(0),
179  b_mcPdg(0),
180  b_mcMothPdg(0),
181  b_mcEnergy(0),
182  b_mcP(0),
183  b_mcTheta(0),
184  b_mcPhi(0),
185  b_trkMulti(0),
186  b_trkPdg(0),
187  b_trkCharge(0),
188  b_trkP(0),
189  b_trkTheta(0),
190  b_trkPhi(0),
191  b_eclEoP(0),
192  fOutfile(string())
193  { };
194 
195  virtual ~eclChargedPidSelector() { };
198  virtual Int_t Version() const { return 2; };
199  virtual void Begin(TTree* tree);
200  virtual void SlaveBegin(TTree* tree);
201  virtual void Init(TTree* tree);
202  virtual Bool_t Notify();
203  virtual Bool_t Process(Long64_t entry);
205  virtual Int_t GetEntry(Long64_t entry, Int_t getall = 0) { return fChain ? fChain->GetTree()->GetEntry(entry, getall) : 0; };
207  virtual void SetOption(const char* option) { fOption = option; };
209  virtual void SetObject(TObject* obj) { fObject = obj; };
211  virtual void SetInputList(TList* input) { fInput = input; };
213  virtual TList* GetOutputList() const { return fOutput; };
214  virtual void SlaveTerminate();
215  virtual void Terminate();
218 };
219 
220 #endif
221 
222 #ifdef eclChargedPidSelector_cxx
223 void eclChargedPidSelector::Init(TTree* tree)
224 {
225  // The Init() function is called when the selector needs to initialize
226  // a new tree or chain. Typically here the branch addresses and branch
227  // pointers of the tree will be set.
228  // It is normally not necessary to make changes to the generated
229  // code, but the routine can be extended by the user if needed.
230  // Init() will be called many times when running on PROOF
231  // (once per file to be processed).
232 
233  // Set object pointer
234  eclShowerEnergy = 0;
235  eclShowerTheta = 0;
236  eclShowerPhi = 0;
237  eclShowerR = 0;
241  mcPdg = 0;
242  mcMothPdg = 0;
243  mcEnergy = 0;
244  mcP = 0;
245  mcTheta = 0;
246  mcPhi = 0;
247  trkPdg = 0;
248  trkCharge = 0;
249  trkP = 0;
250  trkTheta = 0;
251  trkPhi = 0;
252  eclEoP = 0;
253  // Set branch addresses and branch pointers
254  if (!tree) return;
255  fChain = tree;
256  fChain->SetMakeClass(1);
257 
258  fChain->SetBranchAddress("expNo", &expNo, &b_expNo);
259  fChain->SetBranchAddress("runNo", &runNo, &b_runNo);
260  fChain->SetBranchAddress("evtNo", &evtNo, &b_evtNo);
261  fChain->SetBranchAddress("eclShowerMultip", &eclShowerMultip, &b_eclShowerMultip);
262  fChain->SetBranchAddress("eclShowerEnergy", &eclShowerEnergy, &b_eclShowerEnergy);
263  fChain->SetBranchAddress("eclShowerTheta", &eclShowerTheta, &b_eclShowerTheta);
264  fChain->SetBranchAddress("eclShowerPhi", &eclShowerPhi, &b_eclShowerPhi);
265  fChain->SetBranchAddress("eclShowerR", &eclShowerR, &b_eclShowerR);
266  fChain->SetBranchAddress("eclShowerHypothesisId", &eclShowerHypothesisId, &b_eclShowerHypothesisId);
267  fChain->SetBranchAddress("eclShowerAbsZernike40", &eclShowerAbsZernike40, &b_eclShowerAbsZernike40);
268  fChain->SetBranchAddress("eclShowerAbsZernike51", &eclShowerAbsZernike51, &b_eclShowerAbsZernike51);
269  fChain->SetBranchAddress("mcMultip", &mcMultip, &b_mcMultip);
270  fChain->SetBranchAddress("mcPdg", &mcPdg, &b_mcPdg);
271  fChain->SetBranchAddress("mcMothPdg", &mcMothPdg, &b_mcMothPdg);
272  fChain->SetBranchAddress("mcEnergy", &mcEnergy, &b_mcEnergy);
273  fChain->SetBranchAddress("mcP", &mcP, &b_mcP);
274  fChain->SetBranchAddress("mcTheta", &mcTheta, &b_mcTheta);
275  fChain->SetBranchAddress("mcPhi", &mcPhi, &b_mcPhi);
276  fChain->SetBranchAddress("trkMultip", &trkMultip, &b_trkMulti);
277  fChain->SetBranchAddress("trkPdg", &trkPdg, &b_trkPdg);
278  fChain->SetBranchAddress("trkCharge", &trkCharge, &b_trkCharge);
279  fChain->SetBranchAddress("trkP", &trkP, &b_trkP);
280  fChain->SetBranchAddress("trkTheta", &trkTheta, &b_trkTheta);
281  fChain->SetBranchAddress("trkPhi", &trkPhi, &b_trkPhi);
282  fChain->SetBranchAddress("eclEoP", &eclEoP, &b_eclEoP);
283 }
284 
286 {
287  // The Notify() function is called when a new file is opened. This
288  // can be either for a new TTree in a TChain or when when a new TTree
289  // is started when using PROOF. It is normally not necessary to make changes
290  // to the generated code, but the routine can be extended by the
291  // user if needed. The return value is currently not used.
292 
293  return kTRUE;
294 }
295 
296 #endif // #ifdef eclChargedPidSelector_cxx
eclChargedPidSelector::mcMothPdg
vector< int > * mcMothPdg
mcMothPdg
Definition: eclChargedPidSelector.h:64
eclChargedPidSelector::eclShowerAbsZernike51
vector< double > * eclShowerAbsZernike51
eclShowerAbsZernike51
Definition: eclChargedPidSelector.h:58
eclChargedPidSelector::eclShowerPhi
vector< double > * eclShowerPhi
eclShowerPhi
Definition: eclChargedPidSelector.h:50
eclChargedPidSelector::b_mcPhi
TBranch * b_mcPhi
b_mcPhi
Definition: eclChargedPidSelector.h:124
eclChargedPidSelector::Begin
virtual void Begin(TTree *tree)
Begin.
eclChargedPidSelector::fChain
TTree * fChain
pointer to the analyzed TTree or TChain
Definition: eclChargedPidSelector.h:33
eclChargedPidSelector::fOutfile
string fOutfile
fOutfile
Definition: eclChargedPidSelector.h:141
eclChargedPidSelector::eclShowerTheta
vector< double > * eclShowerTheta
eclShowerTheta
Definition: eclChargedPidSelector.h:48
eclChargedPidSelector::b_mcEnergy
TBranch * b_mcEnergy
b_mcEnergy
Definition: eclChargedPidSelector.h:118
eclChargedPidSelector::runNo
Int_t runNo
runNo
Definition: eclChargedPidSelector.h:40
eclChargedPidSelector::eclShowerEnergy
vector< double > * eclShowerEnergy
eclShowerEnergy
Definition: eclChargedPidSelector.h:46
eclChargedPidSelector::mcP
vector< double > * mcP
mcP
Definition: eclChargedPidSelector.h:68
eclChargedPidSelector::b_eclEoP
TBranch * b_eclEoP
b_eclEoP
Definition: eclChargedPidSelector.h:138
eclChargedPidSelector
eclChargedPidSelector
Definition: eclChargedPidSelector.h:30
eclChargedPidSelector::b_eclShowerR
TBranch * b_eclShowerR
b_eclShowerR
Definition: eclChargedPidSelector.h:104
eclChargedPidSelector::eclShowerR
vector< double > * eclShowerR
eclShowerR
Definition: eclChargedPidSelector.h:52
eclChargedPidSelector::mcTheta
vector< double > * mcTheta
mcTheta
Definition: eclChargedPidSelector.h:70
eclChargedPidSelector::b_mcPdg
TBranch * b_mcPdg
b_mcPdg
Definition: eclChargedPidSelector.h:114
eclChargedPidSelector::b_mcTheta
TBranch * b_mcTheta
b_mcTheta
Definition: eclChargedPidSelector.h:122
eclChargedPidSelector::eclChargedPidSelector
eclChargedPidSelector(TTree *tree=0)
Constructor.
Definition: eclChargedPidSelector.h:146
eclChargedPidSelector::b_trkPhi
TBranch * b_trkPhi
b_trkPhi
Definition: eclChargedPidSelector.h:136
eclChargedPidSelector::SetOption
virtual void SetOption(const char *option)
SetOption.
Definition: eclChargedPidSelector.h:207
eclChargedPidSelector::Notify
virtual Bool_t Notify()
Notify.
eclChargedPidSelector::Process
virtual Bool_t Process(Long64_t entry)
Process.
eclChargedPidSelector::eclEoP
vector< double > * eclEoP
eclEoP
Definition: eclChargedPidSelector.h:86
eclChargedPidSelector::b_trkPdg
TBranch * b_trkPdg
b_trkPdg
Definition: eclChargedPidSelector.h:128
eclChargedPidSelector::SetInputList
virtual void SetInputList(TList *input)
SetInputList.
Definition: eclChargedPidSelector.h:211
eclChargedPidSelector::b_trkTheta
TBranch * b_trkTheta
b_trkTheta
Definition: eclChargedPidSelector.h:134
eclChargedPidSelector::eclShowerMultip
Int_t eclShowerMultip
eclShowerMultip
Definition: eclChargedPidSelector.h:44
eclChargedPidSelector::b_mcMothPdg
TBranch * b_mcMothPdg
b_mcMothPdg
Definition: eclChargedPidSelector.h:116
eclChargedPidSelector::trkPdg
vector< int > * trkPdg
trkPdg
Definition: eclChargedPidSelector.h:76
eclChargedPidSelector::b_runNo
TBranch * b_runNo
b_runNo
Definition: eclChargedPidSelector.h:92
eclChargedPidSelector::GetEntry
virtual Int_t GetEntry(Long64_t entry, Int_t getall=0)
GetEntry.
Definition: eclChargedPidSelector.h:205
eclChargedPidSelector::mcEnergy
vector< double > * mcEnergy
mcEnergy
Definition: eclChargedPidSelector.h:66
eclChargedPidSelector::b_trkMulti
TBranch * b_trkMulti
b_trkMulti
Definition: eclChargedPidSelector.h:126
eclChargedPidSelector::ClassDef
ClassDef(eclChargedPidSelector, 0)
ClassDef.
eclChargedPidSelector::Terminate
virtual void Terminate()
Terminate.
eclChargedPidSelector::SlaveBegin
virtual void SlaveBegin(TTree *tree)
SlaveBegin.
eclChargedPidSelector::expNo
Int_t expNo
expNo
Definition: eclChargedPidSelector.h:38
eclChargedPidSelector::b_eclShowerAbsZernike40
TBranch * b_eclShowerAbsZernike40
b_eclShowerAbsZernike40
Definition: eclChargedPidSelector.h:108
eclChargedPidSelector::b_mcMultip
TBranch * b_mcMultip
b_mcMultip
Definition: eclChargedPidSelector.h:112
eclChargedPidSelector::b_eclShowerEnergy
TBranch * b_eclShowerEnergy
b_eclShowerEnergy
Definition: eclChargedPidSelector.h:98
eclChargedPidSelector::b_trkCharge
TBranch * b_trkCharge
b_trkCharge
Definition: eclChargedPidSelector.h:130
eclChargedPidSelector::mcPdg
vector< int > * mcPdg
mcPdg
Definition: eclChargedPidSelector.h:62
eclChargedPidSelector::b_eclShowerPhi
TBranch * b_eclShowerPhi
b_eclShowerPhi
Definition: eclChargedPidSelector.h:102
eclChargedPidSelector::b_eclShowerHypothesisId
TBranch * b_eclShowerHypothesisId
b_eclShowerHypothesisId
Definition: eclChargedPidSelector.h:106
eclChargedPidSelector::eclShowerHypothesisId
vector< int > * eclShowerHypothesisId
eclShowerHypothesisId
Definition: eclChargedPidSelector.h:54
eclChargedPidSelector::GetOutputList
virtual TList * GetOutputList() const
GetOutputList.
Definition: eclChargedPidSelector.h:213
eclChargedPidSelector::trkPhi
vector< double > * trkPhi
trkPhi
Definition: eclChargedPidSelector.h:84
eclChargedPidSelector::Init
virtual void Init(TTree *tree)
Init.
eclChargedPidSelector::b_expNo
TBranch * b_expNo
b_expNo
Definition: eclChargedPidSelector.h:90
eclChargedPidSelector::trkP
vector< double > * trkP
trkP
Definition: eclChargedPidSelector.h:80
eclChargedPidSelector::eclShowerAbsZernike40
vector< double > * eclShowerAbsZernike40
eclShowerAbsZernike40
Definition: eclChargedPidSelector.h:56
eclChargedPidSelector::SetOutputDir
void SetOutputDir(const char *outpath)
Set output directory.
eclChargedPidSelector::trkMultip
Int_t trkMultip
trkMultip
Definition: eclChargedPidSelector.h:74
eclChargedPidSelector::b_eclShowerMultip
TBranch * b_eclShowerMultip
b_eclShowerMultip
Definition: eclChargedPidSelector.h:96
eclChargedPidSelector::Version
virtual Int_t Version() const
Destructor.
Definition: eclChargedPidSelector.h:198
eclChargedPidSelector::trkTheta
vector< double > * trkTheta
trkTheta
Definition: eclChargedPidSelector.h:82
eclChargedPidSelector::SlaveTerminate
virtual void SlaveTerminate()
SlaveTerminate.
eclChargedPidSelector::mcMultip
Int_t mcMultip
mcMultip
Definition: eclChargedPidSelector.h:60
eclChargedPidSelector::SetObject
virtual void SetObject(TObject *obj)
SetObject.
Definition: eclChargedPidSelector.h:209
eclChargedPidSelector::b_eclShowerTheta
TBranch * b_eclShowerTheta
b_eclShowerTheta
Definition: eclChargedPidSelector.h:100
eclChargedPidSelector::trkCharge
vector< int > * trkCharge
trkCharge
Definition: eclChargedPidSelector.h:78
eclChargedPidSelector::b_mcP
TBranch * b_mcP
b_mcP
Definition: eclChargedPidSelector.h:120
eclChargedPidSelector::evtNo
Int_t evtNo
evtNo
Definition: eclChargedPidSelector.h:42
eclChargedPidSelector::b_evtNo
TBranch * b_evtNo
b_evtNo
Definition: eclChargedPidSelector.h:94
eclChargedPidSelector::b_eclShowerAbsZernike51
TBranch * b_eclShowerAbsZernike51
b_eclShowerAbsZernike51
Definition: eclChargedPidSelector.h:110
eclChargedPidSelector::b_trkP
TBranch * b_trkP
b_trkP
Definition: eclChargedPidSelector.h:132
eclChargedPidSelector::mcPhi
vector< double > * mcPhi
mcPhi
Definition: eclChargedPidSelector.h:72