Belle II Software development
HitXPModule.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#include <mdst/dataobjects/MCParticle.h>
14#include <tracking/dataobjects/hitXP.h>
15#include <TTree.h>
16#include <TFile.h>
17
18#include <set>
19
20namespace Belle2 {
25
40
41 class HitXPModule : public Module {
42 public:
43
45
46 ~HitXPModule() override;
47
50 void initialize() override;
51
52
55 void event() override;
56
58 void endRun() override;
59
60
61 private:
62 TTree* m_tree = nullptr;
63 TFile* m_outputFile = nullptr;
64 std::vector<hitXP> m_hitXP;
65 std::set<hitXP, hitXP::timeCompare> m_hitXPSet;
66 bool c_addTree;
67
68 int m_trackNumber = 0;
69 int m_eventNumber = 0;
73
74 TTree* m_treeSel = nullptr;
75 TFile* m_outputFileSel = nullptr;
76 std::vector<hitXP> m_hitXPSel;
80
81 TTree* m_treeTiSel = nullptr;
82 TFile* m_outputFileTiSel = nullptr;
83 std::vector<hitXP> m_hitXPTiSel;
87
88 TFile* m_outputFileExt = nullptr;
89 TTree* m_treeExt = nullptr;
90 std::vector<double> m_EpositionEntryX;
91 std::vector<double> m_EpositionEntryY;
92 std::vector<double> m_EpositionEntryZ;
93 std::vector<double> m_EmomentumEntryX;
94 std::vector<double> m_EmomentumEntryY;
95 std::vector<double> m_EmomentumEntryZ;
96 std::vector<double> m_EpositionLocalEntryX;
97 std::vector<double> m_EpositionLocalEntryY;
98 std::vector<double> m_EpositionLocalEntryZ;
99 std::vector<int> m_EPDGID;
100 std::vector<double> m_Eposition0X;
101 std::vector<double> m_Eposition0Y;
102 std::vector<double> m_Eposition0Z;
103 std::vector<double> m_Emomentum0X;
104 std::vector<double> m_Emomentum0Y;
105 std::vector<double> m_Emomentum0Z;
106 std::vector<double> m_Etime;
107 std::vector<int> m_EsensorSensor;
108 std::vector<int> m_EsensorLayer;
109 std::vector<int> m_EsensorLadder;
110 std::vector<int> m_Ereconstructed;
111 std::vector<int> m_EclusterU;
112 std::vector<int> m_EclusterV;
113 std::vector<double> m_Echarge;
117 std::vector<double> m_EomegaEntry;
118 std::vector<double> m_Eomega0;
119 std::vector<double> m_Ed0Entry;
120 std::vector<double> m_Ed00;
121 std::vector<double> m_Ephi0Entry;
122 std::vector<double> m_Ephi00;
123 std::vector<double> m_Ez0Entry;
124 std::vector<double> m_Ez00;
125 std::vector<double> m_EtanlambdaEntry;
126 std::vector<double> m_Etanlambda0;
127 int m_Eprimary = 0;
128
130
131 protected:
132
133 };
134
135}
std::vector< double > m_EmomentumEntryX
external momentum at entry point, coordinate x
Definition HitXPModule.h:93
std::vector< int > m_EclusterV
external flag of v-cluster
TFile * m_outputFile
output file
Definition HitXPModule.h:63
std::vector< double > m_EomegaEntry
external omega parameter at entry point
std::vector< hitXP > m_hitXPSel
selected vector of hitXP
Definition HitXPModule.h:76
TTree * m_treeTiSel
tight selected output tree
Definition HitXPModule.h:81
TTree * m_tree
full output tree
Definition HitXPModule.h:62
std::vector< double > m_Etanlambda0
external tanlambda parameter at IP
std::vector< double > m_EtanlambdaEntry
external tanlambda parameter at entry point
TTree * m_treeExt
external output tree
Definition HitXPModule.h:89
std::vector< int > m_EPDGID
external PDGID
Definition HitXPModule.h:99
std::vector< int > m_EsensorLayer
external layer of the hit
int m_Eprimary
external flag for primary particles
std::vector< double > m_EmomentumEntryY
external momentum at entry point, coordinate x
Definition HitXPModule.h:94
void initialize() override
Initialize the Module.
int m_eventNumberTiSel
tight selected interative number of the event in the run
Definition HitXPModule.h:85
bool c_addTree
parameter to produce additional tree
Definition HitXPModule.h:66
void event() override
This method is the core of the module.
TFile * m_outputFileSel
selected output file
Definition HitXPModule.h:75
TTree * m_treeSel
selected output tree
Definition HitXPModule.h:74
std::vector< double > m_EpositionLocalEntryZ
external local position at entry point, coordinate z
Definition HitXPModule.h:98
std::vector< int > m_Ereconstructed
external flag of track-reconstruction or not
std::vector< double > m_EmomentumEntryZ
external momentum at entry point, coordinate x
Definition HitXPModule.h:95
std::vector< double > m_Etime
external time of the hit
void endRun() override
This method is called if the current run ends.
std::vector< double > m_Ephi0Entry
external phi0 parameter at entry point
std::vector< double > m_Ed00
external d0 parameter at IP
std::vector< int > m_EsensorSensor
external sensor of the hit
int m_trackNumberSel
selected iterative number of the track in the run
Definition HitXPModule.h:77
std::vector< double > m_Emomentum0X
external momentum at IP, coordinate x
std::vector< double > m_Eposition0X
external position at IP, coordinate x
std::vector< double > m_EpositionLocalEntryY
external local position at entry point, coordinate y
Definition HitXPModule.h:97
int m_trackIterator
iterator used to count track (m_trackNumber)
Definition HitXPModule.h:71
std::vector< int > m_EsensorLadder
external ladder of the hit
std::vector< double > m_EpositionLocalEntryX
external local position at entry point, coordinate x
Definition HitXPModule.h:96
std::vector< double > m_Emomentum0Y
external momentum at IP, coordinate y
std::vector< int > m_EclusterU
external flag of u-cluster
int m_EeventNumber
external iterator of event in the run
std::vector< double > m_EpositionEntryX
external position at entry point, coordinate x
Definition HitXPModule.h:90
int m_numberHitPerTrackTiSel
tight selected counter of the number of the hit for each track
Definition HitXPModule.h:86
std::vector< hitXP > m_hitXPTiSel
tight selected vector of hitXP
Definition HitXPModule.h:83
int m_eventNumber
interative number of the event in the run
Definition HitXPModule.h:69
int m_numberHitPerTrack
counter of the number of the hit for each track
Definition HitXPModule.h:70
TFile * m_outputFileTiSel
tight selected output file
Definition HitXPModule.h:82
int m_trackNumber
iterative number of the track in the run
Definition HitXPModule.h:68
std::set< hitXP, hitXP::timeCompare > m_hitXPSet
set of the hitXP, used to order tn time he hit
Definition HitXPModule.h:65
TFile * m_outputFileExt
external output file
Definition HitXPModule.h:88
std::vector< double > m_EpositionEntryZ
external position at entry point, coordinate z
Definition HitXPModule.h:92
int m_eventNumberSel
selected interative number of the event in the run
Definition HitXPModule.h:78
std::vector< double > m_Emomentum0Z
external momentum at IP, coordinate z
int m_trackNumberTiSel
tight selected iterative number of the track in the run
Definition HitXPModule.h:84
std::vector< double > m_Ephi00
external phi0 parameter at IP
std::vector< double > m_Echarge
external charge
int m_numberHitPerTrackSel
selected counter of the number of the hit for each track
Definition HitXPModule.h:79
std::vector< hitXP > m_hitXP
vector of the hitXP, used to fill the output tree
Definition HitXPModule.h:64
int m_EtrackNumber
external iterator of track in the run
std::vector< double > m_EpositionEntryY
external position at entry point, coordinate y
Definition HitXPModule.h:91
int m_eventIterator
iterator used to count event number (m_eventNumber)
Definition HitXPModule.h:72
std::vector< double > m_Ed0Entry
external d0 parameter at entry point
StoreArray< MCParticle > m_MCParticles
MCParticles StoreArray.
std::vector< double > m_Ez00
external z0 parameter at IP
std::vector< double > m_Eomega0
external omega parameter at IP
std::vector< double > m_Eposition0Z
external position at IP, coordinate z
int m_EnumberHitPerTrack
external number of the hit for each track
std::vector< double > m_Eposition0Y
external position at IP, coordinate y
std::vector< double > m_Ez0Entry
external z0 parameter at entry point
Module()
Constructor.
Definition Module.cc:30
Accessor to arrays stored in the data store.
Definition StoreArray.h:113
Abstract base class for different kinds of events.