Belle II Software  release-05-02-19
ECLChargedPIDDataAnalysisModule.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2018 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Cate MacQueen *
7  * Contact: cmq.centaurus@gmail.com *
8  * Last Updated: June 2018 *
9  * *
10  * This software is provided "as is" without any warranty. *
11  *************************************************************************/
12 
13 #pragma once
14 
15 #include <framework/core/Module.h>
16 #include <string>
17 #include <TTree.h>
18 #include <TFile.h>
19 
20 // ECL
21 #include <ecl/dataobjects/ECLShower.h>
22 #include <mdst/dataobjects/MCParticle.h>
23 
24 // FRAMEWORK
25 #include <framework/datastore/StoreArray.h>
26 
27 namespace Belle2 {
39  class ECLChargedPIDDataAnalysisModule : public Module {
40 
41  public:
42 
51  virtual void initialize() override;
54  virtual void beginRun() override;
57  virtual void event() override;
60  virtual void endRun() override;
63  virtual void terminate() override;
64 
65  private:
66 
68  TFile* m_rootFilePtr;
69  std::string m_rootFileName;
70  bool m_writeToRoot;
73  StoreArray<ECLShower> m_eclShowers;
74 
76  virtual const char* eclShowerArrayName() const
77  { return "ECLShowers" ; }
78 
81  // N1 Hypo
82  TTree* n1_tree;
84  // variables
85  int n1_iExperiment;
86  int n1_iRun;
87  int n1_iEvent;
90  std::vector<double>* n1_eclShowerEnergy;
91  std::vector<double>* n1_eclShowerTheta;
92  std::vector<double>* n1_eclShowerPhi;
93  std::vector<double>* n1_eclShowerR;
94  std::vector<int>* n1_eclShowerHypothesisId;
95  std::vector<double>* n1_eclShowerAbsZernike40;
96  std::vector<double>* n1_eclShowerAbsZernike51;
98  int n1_mcMultip;
99  std::vector<int>* n1_mcPdg;
100  std::vector<int>* n1_mcMothPdg;
101  std::vector<double>* n1_mcEnergy;
102  std::vector<double>* n1_mcP;
103  std::vector<double>* n1_mcTheta;
104  std::vector<double>* n1_mcPhi;
107  std::vector<int>* n1_trkPdg;
108  std::vector<int>* n1_trkCharge;
109  std::vector<double>* n1_trkP;
110  std::vector<double>* n1_trkTheta;
111  std::vector<double>* n1_trkPhi;
113  std::vector<double>* n1_eclEoP;
115  // N2 Hypo
116  TTree* n2_tree;
118  // variables
120  int n2_iRun;
121  int n2_iEvent;
124  std::vector<double>* n2_eclShowerEnergy;
125  std::vector<double>* n2_eclShowerTheta;
126  std::vector<double>* n2_eclShowerPhi;
127  std::vector<double>* n2_eclShowerR;
128  std::vector<int>* n2_eclShowerHypothesisId;
129  std::vector<double>* n2_eclShowerAbsZernike40;
130  std::vector<double>* n2_eclShowerAbsZernike51;
132  int n2_mcMultip;
133  std::vector<int>* n2_mcPdg;
134  std::vector<int>* n2_mcMothPdg;
135  std::vector<double>* n2_mcEnergy;
136  std::vector<double>* n2_mcP;
137  std::vector<double>* n2_mcTheta;
138  std::vector<double>* n2_mcPhi;
141  std::vector<int>* n2_trkPdg;
142  std::vector<int>* n2_trkCharge;
143  std::vector<double>* n2_trkP;
144  std::vector<double>* n2_trkTheta;
145  std::vector<double>* n2_trkPhi;
147  std::vector<double>* n2_eclEoP;
149  };
151 }
152 
Belle2::ECLChargedPIDDataAnalysisModule::n1_eclShowerTheta
std::vector< double > * n1_eclShowerTheta
Shower Theta.
Definition: ECLChargedPIDDataAnalysisModule.h:101
Belle2::ECLChargedPIDDataAnalysisModule::n2_eclEoP
std::vector< double > * n2_eclEoP
ECL Shower Energy on Track Momentum.
Definition: ECLChargedPIDDataAnalysisModule.h:157
Belle2::ECLChargedPIDDataAnalysisModule::n2_trkPdg
std::vector< int > * n2_trkPdg
Track PDG code.
Definition: ECLChargedPIDDataAnalysisModule.h:151
Belle2::ECLChargedPIDDataAnalysisModule::ECLChargedPIDDataAnalysisModule
ECLChargedPIDDataAnalysisModule()
Constructor of the module.
Definition: ECLChargedPIDDataAnalysisModule.cc:39
Belle2::ECLChargedPIDDataAnalysisModule::n1_trkPdg
std::vector< int > * n1_trkPdg
Track PDG code.
Definition: ECLChargedPIDDataAnalysisModule.h:117
Belle2::ECLChargedPIDDataAnalysisModule::beginRun
virtual void beginRun() override
Called once before a new run begins.
Definition: ECLChargedPIDDataAnalysisModule.cc:213
Belle2::ECLChargedPIDDataAnalysisModule::m_eclShowers
StoreArray< ECLShower > m_eclShowers
Store array: ECLShower.
Definition: ECLChargedPIDDataAnalysisModule.h:83
Belle2::ECLChargedPIDDataAnalysisModule::n2_mcMothPdg
std::vector< int > * n2_mcMothPdg
MCParticle mother particle PDG code.
Definition: ECLChargedPIDDataAnalysisModule.h:144
Belle2::ECLChargedPIDDataAnalysisModule::n2_iExperiment
int n2_iExperiment
Experiment number.
Definition: ECLChargedPIDDataAnalysisModule.h:129
Belle2::ECLChargedPIDDataAnalysisModule::n1_trkP
std::vector< double > * n1_trkP
Track momentum.
Definition: ECLChargedPIDDataAnalysisModule.h:119
Belle2::ECLChargedPIDDataAnalysisModule::n1_mcMultip
int n1_mcMultip
Multiplicity of MCParticles.
Definition: ECLChargedPIDDataAnalysisModule.h:108
Belle2::ECLChargedPIDDataAnalysisModule::initialize
virtual void initialize() override
Initializes the Module.
Definition: ECLChargedPIDDataAnalysisModule.cc:129
Belle2::ECLChargedPIDDataAnalysisModule::n2_eclShowerPhi
std::vector< double > * n2_eclShowerPhi
Shower Phi.
Definition: ECLChargedPIDDataAnalysisModule.h:136
Belle2::ECLChargedPIDDataAnalysisModule::n2_mcP
std::vector< double > * n2_mcP
MCParticle momentum.
Definition: ECLChargedPIDDataAnalysisModule.h:146
Belle2::ECLChargedPIDDataAnalysisModule::n1_mcP
std::vector< double > * n1_mcP
MCParticle momentum.
Definition: ECLChargedPIDDataAnalysisModule.h:112
Belle2::ECLChargedPIDDataAnalysisModule::n1_eclShowerPhi
std::vector< double > * n1_eclShowerPhi
Shower Phi.
Definition: ECLChargedPIDDataAnalysisModule.h:102
Belle2::ECLChargedPIDDataAnalysisModule::event
virtual void event() override
Called once for each event.
Definition: ECLChargedPIDDataAnalysisModule.cc:217
Belle2::ECLChargedPIDDataAnalysisModule::n1_mcTheta
std::vector< double > * n1_mcTheta
MCParticle Theta.
Definition: ECLChargedPIDDataAnalysisModule.h:113
Belle2::ECLChargedPIDDataAnalysisModule::n1_tree
TTree * n1_tree
Root tree and file for saving the output.
Definition: ECLChargedPIDDataAnalysisModule.h:92
Belle2::ECLChargedPIDDataAnalysisModule::n1_trkCharge
std::vector< int > * n1_trkCharge
Track charge.
Definition: ECLChargedPIDDataAnalysisModule.h:118
Belle2::ECLChargedPIDDataAnalysisModule::n2_eclShowerMultip
int n2_eclShowerMultip
Number of ECLShowers per event.
Definition: ECLChargedPIDDataAnalysisModule.h:133
Belle2::ECLChargedPIDDataAnalysisModule::n2_trkPhi
std::vector< double > * n2_trkPhi
Track azimuthal direction.
Definition: ECLChargedPIDDataAnalysisModule.h:155
Belle2::ECLChargedPIDDataAnalysisModule::n2_tree
TTree * n2_tree
Root tree and file for saving the output.
Definition: ECLChargedPIDDataAnalysisModule.h:126
Belle2::ECLChargedPIDDataAnalysisModule::m_rootFilePtr
TFile * m_rootFilePtr
members of ECLReconstructor Module
Definition: ECLChargedPIDDataAnalysisModule.h:78
Belle2::ECLChargedPIDDataAnalysisModule::n2_eclShowerHypothesisId
std::vector< int > * n2_eclShowerHypothesisId
Shower Particle Hypothesis ID.
Definition: ECLChargedPIDDataAnalysisModule.h:138
Belle2::ECLChargedPIDDataAnalysisModule::n1_eclShowerEnergy
std::vector< double > * n1_eclShowerEnergy
Shower Energy.
Definition: ECLChargedPIDDataAnalysisModule.h:100
Belle2::ECLChargedPIDDataAnalysisModule::n2_mcTheta
std::vector< double > * n2_mcTheta
MCParticle Theta.
Definition: ECLChargedPIDDataAnalysisModule.h:147
Belle2::ECLChargedPIDDataAnalysisModule::n1_trkPhi
std::vector< double > * n1_trkPhi
Track azimuthal direction.
Definition: ECLChargedPIDDataAnalysisModule.h:121
Belle2::ECLChargedPIDDataAnalysisModule::n1_eclShowerAbsZernike40
std::vector< double > * n1_eclShowerAbsZernike40
Shower Zernike40 Moment.
Definition: ECLChargedPIDDataAnalysisModule.h:105
Belle2::ECLChargedPIDDataAnalysisModule::n1_mcPdg
std::vector< int > * n1_mcPdg
MCParticle PDG code.
Definition: ECLChargedPIDDataAnalysisModule.h:109
Belle2::ECLChargedPIDDataAnalysisModule::n1_eclShowerR
std::vector< double > * n1_eclShowerR
Shower R.
Definition: ECLChargedPIDDataAnalysisModule.h:103
Belle2::ECLChargedPIDDataAnalysisModule::n1_eclEoP
std::vector< double > * n1_eclEoP
ECL Shower Energy on Track Momentum.
Definition: ECLChargedPIDDataAnalysisModule.h:123
Belle2::ECLChargedPIDDataAnalysisModule::n2_trkTheta
std::vector< double > * n2_trkTheta
Track polar direction.
Definition: ECLChargedPIDDataAnalysisModule.h:154
Belle2::ECLChargedPIDDataAnalysisModule::m_writeToRoot
bool m_writeToRoot
if true, a rootFile named by m_rootFileName will be filled with info
Definition: ECLChargedPIDDataAnalysisModule.h:80
Belle2::ECLChargedPIDDataAnalysisModule::n2_eclShowerEnergy
std::vector< double > * n2_eclShowerEnergy
Shower Energy.
Definition: ECLChargedPIDDataAnalysisModule.h:134
Belle2::ECLChargedPIDDataAnalysisModule::endRun
virtual void endRun() override
Called once when a run ends.
Definition: ECLChargedPIDDataAnalysisModule.cc:430
Belle2::ECLChargedPIDDataAnalysisModule::n2_mcMultip
int n2_mcMultip
Multiplicity of MCParticles.
Definition: ECLChargedPIDDataAnalysisModule.h:142
Belle2::ECLChargedPIDDataAnalysisModule::eclShowerArrayName
virtual const char * eclShowerArrayName() const
Default name ECLShower.
Definition: ECLChargedPIDDataAnalysisModule.h:86
Belle2::ECLChargedPIDDataAnalysisModule::~ECLChargedPIDDataAnalysisModule
virtual ~ECLChargedPIDDataAnalysisModule()
Destructor of the module.
Definition: ECLChargedPIDDataAnalysisModule.cc:125
Belle2::ECLChargedPIDDataAnalysisModule::n2_trkP
std::vector< double > * n2_trkP
Track momentum.
Definition: ECLChargedPIDDataAnalysisModule.h:153
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::ECLChargedPIDDataAnalysisModule::n1_mcEnergy
std::vector< double > * n1_mcEnergy
MCParticle energyx.
Definition: ECLChargedPIDDataAnalysisModule.h:111
Belle2::ECLChargedPIDDataAnalysisModule::n1_iRun
int n1_iRun
Run number.
Definition: ECLChargedPIDDataAnalysisModule.h:96
Belle2::ECLChargedPIDDataAnalysisModule::m_mcParticles
StoreArray< MCParticle > m_mcParticles
MCParticles StoreArray.
Definition: ECLChargedPIDDataAnalysisModule.h:89
Belle2::ECLChargedPIDDataAnalysisModule::m_rootFileName
std::string m_rootFileName
name of the root file
Definition: ECLChargedPIDDataAnalysisModule.h:79
Belle2::ECLChargedPIDDataAnalysisModule::n2_eclShowerR
std::vector< double > * n2_eclShowerR
Shower R.
Definition: ECLChargedPIDDataAnalysisModule.h:137
Belle2::ECLChargedPIDDataAnalysisModule::n2_mcPhi
std::vector< double > * n2_mcPhi
MCParticle Phi.
Definition: ECLChargedPIDDataAnalysisModule.h:148
Belle2::ECLChargedPIDDataAnalysisModule::n2_mcPdg
std::vector< int > * n2_mcPdg
MCParticle PDG code.
Definition: ECLChargedPIDDataAnalysisModule.h:143
Belle2::ECLChargedPIDDataAnalysisModule::n1_trkTheta
std::vector< double > * n1_trkTheta
Track polar direction.
Definition: ECLChargedPIDDataAnalysisModule.h:120
Belle2::ECLChargedPIDDataAnalysisModule::n2_iRun
int n2_iRun
Run number.
Definition: ECLChargedPIDDataAnalysisModule.h:130
Belle2::ECLChargedPIDDataAnalysisModule::n2_eclShowerAbsZernike51
std::vector< double > * n2_eclShowerAbsZernike51
Shower Zernike51 Moment.
Definition: ECLChargedPIDDataAnalysisModule.h:140
Belle2::ECLChargedPIDDataAnalysisModule::n2_iEvent
int n2_iEvent
Event number.
Definition: ECLChargedPIDDataAnalysisModule.h:131
Belle2::ECLChargedPIDDataAnalysisModule::n1_mcPhi
std::vector< double > * n1_mcPhi
MCParticle Phi.
Definition: ECLChargedPIDDataAnalysisModule.h:114
Belle2::ECLChargedPIDDataAnalysisModule::n1_mcMothPdg
std::vector< int > * n1_mcMothPdg
MCParticle mother particle PDG code.
Definition: ECLChargedPIDDataAnalysisModule.h:110
Belle2::ECLChargedPIDDataAnalysisModule::n2_eclShowerAbsZernike40
std::vector< double > * n2_eclShowerAbsZernike40
Shower Zernike40 Moment.
Definition: ECLChargedPIDDataAnalysisModule.h:139
Belle2::StoreArray< MCParticle >
Belle2::ECLChargedPIDDataAnalysisModule::n2_trkCharge
std::vector< int > * n2_trkCharge
Track charge.
Definition: ECLChargedPIDDataAnalysisModule.h:152
Belle2::ECLChargedPIDDataAnalysisModule::n2_trkMultip
int n2_trkMultip
Track Multiplicity.
Definition: ECLChargedPIDDataAnalysisModule.h:150
Belle2::ECLChargedPIDDataAnalysisModule::n1_trkMultip
int n1_trkMultip
Track Multiplicity.
Definition: ECLChargedPIDDataAnalysisModule.h:116
Belle2::ECLChargedPIDDataAnalysisModule::terminate
virtual void terminate() override
Termination action.
Definition: ECLChargedPIDDataAnalysisModule.cc:434
Belle2::ECLChargedPIDDataAnalysisModule::n1_iExperiment
int n1_iExperiment
Experiment number.
Definition: ECLChargedPIDDataAnalysisModule.h:95
Belle2::ECLChargedPIDDataAnalysisModule::n2_mcEnergy
std::vector< double > * n2_mcEnergy
MCParticle energyx.
Definition: ECLChargedPIDDataAnalysisModule.h:145
Belle2::ECLChargedPIDDataAnalysisModule::n1_eclShowerAbsZernike51
std::vector< double > * n1_eclShowerAbsZernike51
Shower Zernike51 Moment.
Definition: ECLChargedPIDDataAnalysisModule.h:106
Belle2::ECLChargedPIDDataAnalysisModule::n2_eclShowerTheta
std::vector< double > * n2_eclShowerTheta
Shower Theta.
Definition: ECLChargedPIDDataAnalysisModule.h:135
Belle2::ECLChargedPIDDataAnalysisModule::n1_eclShowerHypothesisId
std::vector< int > * n1_eclShowerHypothesisId
Shower Particle Hypothesis ID.
Definition: ECLChargedPIDDataAnalysisModule.h:104
Belle2::ECLChargedPIDDataAnalysisModule::n1_eclShowerMultip
int n1_eclShowerMultip
Number of ECLShowers per event.
Definition: ECLChargedPIDDataAnalysisModule.h:99
Belle2::ECLChargedPIDDataAnalysisModule::n1_iEvent
int n1_iEvent
Event number.
Definition: ECLChargedPIDDataAnalysisModule.h:97