Belle II Software  release-08-01-10
DataWriterModule.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 
9 #pragma once
10 
11 #include <framework/core/Module.h>
12 #include <framework/datastore/StoreArray.h>
13 
14 #include <mdst/dataobjects/MCParticle.h>
15 #include <mdst/dataobjects/KLMCluster.h>
16 #include <mdst/dataobjects/ECLCluster.h>
17 
18 #include <TTree.h>
19 #include <TFile.h>
20 #include <string>
21 
22 namespace Belle2 {
29  class DataWriterModule : public Module {
30 
31  public:
32 
35 
37  virtual ~DataWriterModule();
38 
40  virtual void initialize() override;
41 
43  virtual void beginRun() override;
44 
46  virtual void event() override;
47 
49  virtual void endRun() override;
50 
52  virtual void terminate() override;
53 
54  protected:
55 
56  private:
57 
59  std::string m_outPath = "KlIdBKGClassifierTrainingTuples.root";
60 
62  // KLM cluster variables for pure KLM and KLM+ECL Klongs
64  Float_t m_KLMnCluster;
66  Float_t m_KLMnLayer;
70  Float_t m_KLMglobalZ;
72  Float_t m_KLMtime;
76  Float_t m_KLMhitDepth;
78  Float_t m_KLMenergy;
80  Float_t m_KLMinvM;
82  Float_t m_KLMTruth;
89 
97  Float_t m_KLMAngleToMC;
98 
99 
100  // variables of closest ECL cluster with respect to KLM cluster
102  Float_t m_KLMECLDist;
104  Float_t m_KLMECLE;
106  Float_t m_KLMECLdeltaL; // new
108  Float_t m_KLMECLminTrackDist; //new
110  Float_t m_KLMECLE9oE25;
112  Float_t m_KLMECLTiming;
114  Float_t m_KLMECLTerror;
116  Float_t m_KLMECLEerror;
120  Float_t m_KLMKLid;
122  Float_t m_KLMMCMom;
124  Float_t m_KLMMCPhi;
126  Float_t m_KLMMCTheta;
128  Float_t m_KLMMom;
130  Float_t m_KLMPhi;
132  Float_t m_KLMTheta;
133 
135  Float_t m_KLMMCStatus ;
139  Float_t m_KLMMCPDG ;
143  Float_t m_KLMECLHypo;
145  Float_t m_KLMECLZMVA;
147  Float_t m_KLMECLZ40;
149  Float_t m_KLMECLZ51;
155  Float_t m_KLMMCWeight;
157  Float_t m_KLMtrackFlag;
159  Float_t m_KLMeclFlag;
160 
161 
162  // ECL cluster variables for pure ECL Klongs
164  Float_t m_ECLE;
166  Float_t m_ECLE9oE25;
168  Float_t m_ECLTiming;
170  Float_t m_ECLR;
172  Float_t m_ECLEerror;
174  Float_t m_ECLminTrkDistance; // new
176  Float_t m_ECLdeltaL; // new
177 
178 
180  Float_t m_ECLZ51;
182  Float_t m_ECLZ40;
184  Float_t m_ECLE1oE9;
186  Float_t m_ECL2ndMom;
190  Float_t m_ECLLAT;
192  Float_t m_ECLZMVA;
194  Float_t m_ECLKLid;
196  Float_t m_ECLMCStatus ;
200  Float_t m_ECLMCPDG ;
205  Float_t m_ECLDeltaTime ;
213  Float_t m_ECLMCMom;
215  Float_t m_ECLMCPhi;
217  Float_t m_ECLMCTheta;
219  Float_t m_ECLMom;
221  Float_t m_ECLPhi;
223  Float_t m_ECLTheta;
225  Float_t m_ECLZ;
227  Float_t m_ECLTruth;
229  Float_t m_isBeamBKG;
231  Float_t m_ECLMCWeight;
232 
234  Float_t m_isSignal;
235 
236 
243 
245  TFile* m_f = nullptr; //
247  TTree* m_treeKLM = nullptr;
249  TTree* m_treeECLhadron = nullptr;
251  TTree* m_treeECLgamma = nullptr;
252 
254  bool m_useKLM;
255 
257  bool m_useECL;
258 
259 
260  }; // end class
262 } // end namespace Belle2
Module to write Ntuples for KlId BKG classifier training.
Float_t m_KLMnLayer
number of layers hit in KLM cluster
bool m_useKLM
write out KLM data
Float_t m_ECLnumChrystals
number of crystals in the cluster
Float_t m_KLMInitialTrackSepAngle
angular distance from track to cluster at track starting point
Float_t m_KLMTrackSepDist
distance from track separation object
Float_t m_KLMnCluster
varibales to write out.
Float_t m_KLMMCPhi
phi of matched mc particle
Float_t m_ECLMCLifetime
MC particles lifetime.
Float_t m_ECLE1oE9
central crystal devided by 3x3 area with it in its center
Float_t m_KLMTheta
measured theta
Float_t m_KLMECLdeltaL
distance between track entry point and cluster center, might be removed
Float_t m_KLMTrackSepAngle
angular distance from track separation object
Float_t m_ECLMCPrimaryPDG
pdg code of higher order MC particle, a cluster related to a photon that originates from a pi0 decay ...
StoreArray< KLMCluster > m_klmClusters
Store array
Float_t m_KLMECLminTrackDist
track distance between associated ECL cluster and track extrapolated into ECL
Float_t m_ECLE9oE25
energy of 9/25 chrystall rings (E dispersion shape)
virtual void initialize() override
init
Float_t m_KLMMCLifetime
MC partilces life time.
std::string m_outPath
Output path variable.
Float_t m_ECLLAT
lateral shower shape
virtual void event() override
process event
Float_t m_KLMMom
measured momentum
Float_t m_KLMECLZ51
zernike moment 5,1 of closest ECL cluster
Float_t m_ECLdeltaL
distance between track entrace into cluster and cluster center
Float_t m_KLMMCPDG
pdg code of matched MCparticle
Float_t m_ECLminTrkDistance
more sophisticated distaqnce to track in ECL
Float_t m_ECLMCPDG
pdg code of the MCparticle directly related to the cluster
Float_t m_ECLMCWeight
mc weight
Float_t m_ECLKLid
classifier output
Float_t m_KLMTrackRotationAngle
angle between track at poca and trackbeginning
Float_t m_ECLEerror
uncertainty on E measurement in ECL
Float_t m_ECLR
distance of cluster to IP
Float_t m_ECLMom
measured momentum
Float_t m_ECLMCPhi
MC particle phi; -999 if not MCparticle
virtual void endRun() override
end run
Float_t m_KLMTruth
target variable for KLM classification
Float_t m_KLMAngleToMC
angle between KLMcluster and Mcparticle
Float_t m_KLMECLE9oE25
E in surrounding 9 crystals divided by surrounding 25 crydtalls.
Float_t m_ECLMCStatus
mc status, seen in detector etc.
Float_t m_ECLE
measured energy
Float_t m_KLMECLZMVA
zernike mva output for closest ECL cluster (based on around 10 z-moments)
virtual void terminate() override
terminate
TTree * m_treeECLhadron
tree containing ntuples for ECL cluster with N2 (hadron hypothesis)
Float_t m_KLMtrackToECL
primitive distance cluster <-> track for associated ECL cluster
Float_t m_ECLZ40
Zernike moment 4,0 see Belle2 note on that.
Float_t m_ECLZ
measured Z-coordinate
Float_t m_ECLUncertaintyPhi
measured uncertainty of phi
Float_t m_ECL2ndMom
second moment, shower shape
Float_t m_KLMECLUncertaintyTheta
theta uncertainty of closest ECL cluster
Float_t m_ECLZMVA
output of a BDT that was fitted on some Zernike Moments on a connected region
TTree * m_treeECLgamma
tree containing ntuples for ECL cluster with N1 (photon hypothesis)
bool m_useECL
write out KLM data
Float_t m_KLMMCStatus
MC particles status.
virtual void beginRun() override
beginn run
Float_t m_isBeamBKG
is beam bkg
Float_t m_KLMMCTheta
theta of matched mc particle
Float_t m_ECLTiming
timing of ECL
Float_t m_KLMMCWeight
mc weight
Float_t m_KLMECLTiming
timing of associated ECL cluster
Float_t m_KLMECLDist
distance associated ECL <-> KLM cluster
Float_t m_KLMglobalZ
global Z position in KLM
StoreArray< ECLCluster > m_eclClusters
Store array
Float_t m_isSignal
isSignal for the classifier
Float_t m_KLMnInnermostLayer
number of innermost layers hit
Float_t m_ECLTruth
ECL trarget variable.
Float_t m_KLMtime
timing of KLM Cluster
Float_t m_KLMECLTerror
uncertainty on time in associated ECL cluster
Float_t m_KLMinvM
invariant mass calculated from root vector
Float_t m_KLMnextCluster
distance to next KLM cluster
Float_t m_ECLUncertaintyEnergy
measured energy uncertainty
Float_t m_ECLTheta
measured theta
Float_t m_ECLUncertaintyTheta
measured uncertainty on theta
Float_t m_KLMECLHypo
hypotheis id of closest ecl cluster 5: gamma, 6:hadron
StoreArray< MCParticle > m_mcParticles
Store array
TTree * m_treeKLM
tree for klm data
Float_t m_ECLDeltaTime
KlId for that object.
Float_t m_ECLPhi
measured phi
Float_t m_KLMhitDepth
hit depth in KLM, distance to IP
Float_t m_ECLZ51
Zernike moment 5,1 see Belle2 note on that.
Float_t m_KLMTrackClusterSepAngle
angle between trach momentum and cluster (measured from ip)
Float_t m_KLMPhi
measured phi
virtual ~DataWriterModule()
Destructor.
Float_t m_ECLMCMom
MC particle momentum; -999 if not MCparticle.
Float_t m_KLMavInterClusterDist
average distance between all KLM clusters
Float_t m_KLMECLEerror
uncertainty on E in associated ECL cluster
Float_t m_KLMMCMom
momentum of matched mc particle
Float_t m_KLMKLid
KlId for that object.
Float_t m_KLMenergy
Energy deposit in KLM (0.2 GeV * nHitCells)
Float_t m_KLMMCPrimaryPDG
pdg code of MCparticles mother, for example pi0 for some gammas
Float_t m_KLMECLZ40
zernike moment 4,0 of closest ecl cluster
Float_t m_KLMeclFlag
ecl flag for belle comparision
Float_t m_KLMECLUncertaintyPhi
phi uncertainty oof closeest ecl cluster
Float_t m_KLMECLE
energy measured in associated ECL cluster
Float_t m_ECLMCTheta
MC particle momentum; -999 if not MCparticle.
Float_t m_KLMtrackFlag
track flag for belle comparision
Base class for Modules.
Definition: Module.h:72
Abstract base class for different kinds of events.