Belle II Software  release-05-01-25
hitXP.h
1 /***************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2017 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Valerio Bertacchi *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 #include <TObject.h>
14 #include <TVector3.h>
15 
16 namespace Belle2 {
34  class hitXP: public TObject {
35 
36  public:
37  TVector3 m_positionMid;
38  TVector3 m_positionEntry;
39  TVector3 m_positionExit;
40  TVector3 m_momentumMid;
41  TVector3 m_momentumEntry;
42  TVector3 m_momentumExit;
43  TVector3 m_positionLocalMid;
44  TVector3 m_positionLocalEntry;
46  TVector3 m_momentumLocalMid;
49  int m_PDGID = 0;
50  TVector3 m_position0;
51  TVector3 m_momentum0;
52  double m_time = 0;
53  int m_sensorSensor = 0;
54  int m_sensorLayer = 0;
55  int m_sensorLadder = 0;
56  double m_info_d0 = 0;
57  double m_info_z0 = 0;
58  double m_info_phi0 = 0;
59  double m_info_tanlambda = 0;
60  double m_info_omega = 0;
61  int m_clusterU = 0;
62  int m_clusterV = 0;
63  bool m_reconstructed = 0;
64  double m_charge = 0;
67  hitXP() {}
68 
70  TVector3 getPositionMid() const { return m_positionMid; }
71 
73  TVector3 getPositionEntry() const { return m_positionEntry; }
74 
76  TVector3 getPositionExit() const { return m_positionExit; }
77 
79  TVector3 getMomentumMid() const { return m_momentumMid; }
80 
82  TVector3 getMomentumEntry() const { return m_momentumEntry; }
83 
85  TVector3 getMomentumExit() const { return m_momentumExit; }
86 
88  TVector3 getPositionLocalMid() const { return m_positionLocalMid; }
89 
91  TVector3 getPositionLocalEntry() const { return m_positionLocalEntry; }
92 
94  TVector3 getPositionLocalExit() const { return m_positionLocalExit; }
95 
97  TVector3 getMomentumLocalMid() const { return m_momentumLocalMid; }
98 
100  TVector3 getMomentumLocalEntry() const { return m_momentumLocalEntry; }
101 
103  TVector3 getMomentumLocalExit() const { return m_momentumLocalExit; }
104 
106  int getPDGID() const { return m_PDGID; }
107 
109  TVector3 getPosition0() const { return m_position0; }
110 
112  TVector3 getMomentum0() const { return m_momentum0; }
113 
115  double getTime() const { return m_time; }
116 
118  int getSensorSensor() const { return m_sensorSensor; }
119 
121  int getSensorLadder() const { return m_sensorLadder; }
122 
124  int getSensorLayer() const { return m_sensorLayer; }
125 
127  int getClusterU() const { return m_clusterU; }
128 
130  int getClusterV() const { return m_clusterV; }
131 
133  bool isReconstructed() const { return m_reconstructed; }
134 
136  double getCharge() const { return m_charge; }
137 
139  void setPositionMid(TVector3 position)
140  {
141  m_positionMid.SetX(position.X());
142  m_positionMid.SetY(position.Y());
143  m_positionMid.SetZ(position.Z());
144  }
145 
147  void setPositionEntry(TVector3 position)
148  {
149  m_positionEntry.SetX(position.X());
150  m_positionEntry.SetY(position.Y());
151  m_positionEntry.SetZ(position.Z());
152  }
153 
155  void setPositionExit(TVector3 position)
156  {
157  m_positionExit.SetX(position.X());
158  m_positionExit.SetY(position.Y());
159  m_positionExit.SetZ(position.Z());
160  }
161 
163  void setMomentumMid(TVector3 momentum)
164  {
165  m_momentumMid.SetX(momentum.X());
166  m_momentumMid.SetY(momentum.Y());
167  m_momentumMid.SetZ(momentum.Z());
168  }
169 
171  void setMomentumEntry(TVector3 momentum)
172  {
173  m_momentumEntry.SetX(momentum.X());
174  m_momentumEntry.SetY(momentum.Y());
175  m_momentumEntry.SetZ(momentum.Z());
176  }
177 
179  void setMomentumExit(TVector3 momentum)
180  {
181  m_momentumExit.SetX(momentum.X());
182  m_momentumExit.SetY(momentum.Y());
183  m_momentumExit.SetZ(momentum.Z());
184  }
185 
187  void setPositionLocalMid(TVector3 position)
188  {
189  m_positionLocalMid.SetX(position.X());
190  m_positionLocalMid.SetY(position.Y());
191  m_positionLocalMid.SetZ(position.Z());
192  }
193 
195  void setPositionLocalEntry(TVector3 position)
196  {
197  m_positionLocalEntry.SetX(position.X());
198  m_positionLocalEntry.SetY(position.Y());
199  m_positionLocalEntry.SetZ(position.Z());
200  }
201 
203  void setPositionLocalExit(TVector3 position)
204  {
205  m_positionLocalExit.SetX(position.X());
206  m_positionLocalExit.SetY(position.Y());
207  m_positionLocalExit.SetZ(position.Z());
208  }
209 
211  void setMomentumLocalMid(TVector3 momentum)
212  {
213  m_momentumLocalMid.SetX(momentum.X());
214  m_momentumLocalMid.SetY(momentum.Y());
215  m_momentumLocalMid.SetZ(momentum.Z());
216  }
217 
219  void setMomentumLocalEntry(TVector3 momentum)
220  {
221  m_momentumLocalEntry.SetX(momentum.X());
222  m_momentumLocalEntry.SetY(momentum.Y());
223  m_momentumLocalEntry.SetZ(momentum.Z());
224  }
225 
227  void setMomentumLocalExit(TVector3 momentum)
228  {
229  m_momentumLocalExit.SetX(momentum.X());
230  m_momentumLocalExit.SetY(momentum.Y());
231  m_momentumLocalExit.SetZ(momentum.Z());
232  }
233 
235  void setPDGID(int pdgid) { m_PDGID = pdgid; }
236 
238  void setPosition0(TVector3 position)
239  {
240  m_position0.SetX(position.X());
241  m_position0.SetY(position.Y());
242  m_position0.SetZ(position.Z());
243  }
244 
246  void setMomentum0(TVector3 momentum)
247  {
248  m_momentum0.SetX(momentum.X());
249  m_momentum0.SetY(momentum.Y());
250  m_momentum0.SetZ(momentum.Z());
251  }
252 
254  void setTime(double Time) { m_time = Time; }
255 
257  void setSensorSensor(int sensor) { m_sensorSensor = sensor; }
258 
260  void setSensorLayer(int layer) { m_sensorLayer = layer; }
261 
263  void setSensorLadder(int ladder) { m_sensorLadder = ladder; }
264 
266  void setClusterU(int cluster)
267  {
268  m_clusterU = cluster;
269  }
270 
272  void setClusterV(int cluster)
273  {
274  m_clusterV = cluster;
275  }
276 
279 
281  void setCharge(double charge) { m_charge = charge; }
282 
288  double omega(TVector3 xx, TVector3 p, double charge) const;
289 
290 
296  double tanLambda(TVector3 xx, TVector3 p) const;
297 
298 
304  double d0(TVector3 xx, TVector3 p, double charge) const;
305 
306 
312  double phi0(const TVector3& xx, TVector3 p, double charge) const;
313 
314 
320  double z0(TVector3 xx, TVector3 p, double charge) const;
321 
322 
324  double getOmegaMid() const { return omega(m_positionMid, m_momentumMid, m_charge); }
325 
327  double getOmegaEntry() const { return omega(m_positionEntry, m_momentumEntry, m_charge); }
328 
330  double getOmegaExit() const { return omega(m_positionExit, m_momentumExit, m_charge); }
331 
333  double getOmega0() const { return omega(m_position0, m_momentum0, m_charge); }
334 
336  double getTanLambdaMid() const { return tanLambda(m_positionMid, m_momentumMid); }
337 
339  double getTanLambdaEntry() const { return tanLambda(m_positionEntry, m_momentumEntry); }
340 
342  double getTanLambdaExit() const { return tanLambda(m_positionExit, m_momentumExit); }
343 
345  double getTanLambda0() const { return tanLambda(m_position0, m_momentum0); }
346 
348  double getD0Mid() const { return d0(m_positionMid, m_momentumMid, m_charge); }
349 
351  double getD0Entry() const { return d0(m_positionEntry, m_momentumEntry, m_charge); }
352 
354  double getD0Exit() const { return d0(m_positionExit, m_momentumExit, m_charge); }
355 
357  double getD00() const { return d0(m_position0, m_momentum0, m_charge); }
358 
360  double getPhi0Mid() const { return phi0(m_positionMid, m_momentumMid, m_charge); }
361 
363  double getPhi0Entry() const { return phi0(m_positionEntry, m_momentumEntry, m_charge); }
364 
366  double getPhi0Exit() const { return phi0(m_positionExit, m_momentumExit, m_charge); }
367 
369  double getPhi00() const { return phi0(m_position0, m_momentum0, m_charge); }
370 
372  double getZ0Mid() const { return z0(m_positionMid, m_momentumMid, m_charge); }
373 
375  double getZ0Entry() const { return z0(m_positionEntry, m_momentumEntry, m_charge); }
376 
378  double getZ0Exit() const { return z0(m_positionExit, m_momentumExit, m_charge); }
379 
381  double getZ00() const { return z0(m_position0, m_momentum0, m_charge); }
382 
383 
388  struct timeCompare {
390  bool operator()(hitXP v, hitXP u) const
391  {return v.m_time < u.m_time;}
392  };
393 
395  ClassDef(hitXP, 1);
396  };
398 }
Belle2::hitXP::setPDGID
void setPDGID(int pdgid)
get the relative memeber
Definition: hitXP.h:243
Belle2::hitXP::getPhi00
double getPhi00() const
evaluate relative parameter using IP position and momentum
Definition: hitXP.h:377
Belle2::hitXP::getSensorSensor
int getSensorSensor() const
get the relative memeber
Definition: hitXP.h:126
Belle2::hitXP::getZ0Exit
double getZ0Exit() const
evaluate relative parameter using exitpoint position and momentum
Definition: hitXP.h:386
Belle2::hitXP::setTime
void setTime(double Time)
get the relative memeber
Definition: hitXP.h:262
Belle2::hitXP::setPositionEntry
void setPositionEntry(TVector3 position)
get the relative memeber
Definition: hitXP.h:155
Belle2::hitXP::m_info_omega
double m_info_omega
omega from MCParticle info evaluation.
Definition: hitXP.h:68
Belle2::hitXP::setSensorSensor
void setSensorSensor(int sensor)
get the relative memeber
Definition: hitXP.h:265
Belle2::hitXP::d0
double d0(TVector3 xx, TVector3 p, double charge) const
evaluates the parameter d0 (impact parameter) of a helicoidal track starting from position and moment...
Definition: hitXP.cc:33
Belle2::hitXP::getSensorLadder
int getSensorLadder() const
get the relative memeber
Definition: hitXP.h:129
Belle2::hitXP::getPositionExit
TVector3 getPositionExit() const
get the relative memeber
Definition: hitXP.h:84
Belle2::hitXP::setMomentumMid
void setMomentumMid(TVector3 momentum)
get the relative memeber
Definition: hitXP.h:171
Belle2::hitXP::m_positionLocalMid
TVector3 m_positionLocalMid
poition of hit at midpoint of layer, local coordinate
Definition: hitXP.h:51
Belle2::hitXP::getOmegaMid
double getOmegaMid() const
evaluate relative parameter using midpoint position and momentum
Definition: hitXP.h:332
Belle2::hitXP::setPositionMid
void setPositionMid(TVector3 position)
get the relative memeber
Definition: hitXP.h:147
Belle2::hitXP::m_positionLocalEntry
TVector3 m_positionLocalEntry
poition of hit at entrypoint of layer, local coordinate
Definition: hitXP.h:52
Belle2::hitXP::getTime
double getTime() const
get the relative memeber
Definition: hitXP.h:123
Belle2::hitXP::m_positionExit
TVector3 m_positionExit
poition of hit at exitpoint of layer
Definition: hitXP.h:47
Belle2::hitXP::setMomentumLocalExit
void setMomentumLocalExit(TVector3 momentum)
get the relative memeber
Definition: hitXP.h:235
Belle2::hitXP::m_info_phi0
double m_info_phi0
phi0 from MCParticle info evaluation.
Definition: hitXP.h:66
Belle2::hitXP::m_position0
TVector3 m_position0
position at IP
Definition: hitXP.h:58
Belle2::hitXP::m_positionMid
TVector3 m_positionMid
poition of hit at midpoint of layer
Definition: hitXP.h:45
Belle2::hitXP::getClusterV
int getClusterV() const
get the relative memeber
Definition: hitXP.h:138
Belle2::hitXP::m_momentumExit
TVector3 m_momentumExit
momentum of hit at exit of layer
Definition: hitXP.h:50
Belle2::hitXP::z0
double z0(TVector3 xx, TVector3 p, double charge) const
evaluates the parameter z0 (distance transverse plane-POCA) of a helicoidal track starting from posit...
Definition: hitXP.cc:63
Belle2::hitXP::setCharge
void setCharge(double charge)
get the relative memeber
Definition: hitXP.h:289
Belle2::hitXP::getOmegaExit
double getOmegaExit() const
evaluate relative parameter using exitpoint position and momentum
Definition: hitXP.h:338
Belle2::hitXP::getMomentumEntry
TVector3 getMomentumEntry() const
get the relative memeber
Definition: hitXP.h:90
Belle2::hitXP::getZ0Mid
double getZ0Mid() const
evaluate relative parameter using midpoint position and momentum
Definition: hitXP.h:380
Belle2::hitXP::m_clusterV
int m_clusterV
flag for v cluster
Definition: hitXP.h:70
Belle2::hitXP::getTanLambdaExit
double getTanLambdaExit() const
evaluate relative parameter using exitpoint position and momentum
Definition: hitXP.h:350
Belle2::hitXP::m_momentumLocalEntry
TVector3 m_momentumLocalEntry
momentum of hit at entrypoint of layer, local coordinate
Definition: hitXP.h:55
Belle2::hitXP::getOmegaEntry
double getOmegaEntry() const
evaluate relative parameter using entrypoint position and momentum
Definition: hitXP.h:335
Belle2::hitXP::m_info_d0
double m_info_d0
d0 from MCParticle info evaluation.
Definition: hitXP.h:64
Belle2::hitXP::m_sensorLayer
int m_sensorLayer
layer of the hit
Definition: hitXP.h:62
Belle2::hitXP::setSensorLayer
void setSensorLayer(int layer)
get the relative memeber
Definition: hitXP.h:268
Belle2::hitXP::m_charge
double m_charge
charge of the track
Definition: hitXP.h:72
Belle2::hitXP::getTanLambdaMid
double getTanLambdaMid() const
evaluate relative parameter using midpoint position and momentum
Definition: hitXP.h:344
Belle2::hitXP::setClusterV
void setClusterV(int cluster)
get the relative memeber
Definition: hitXP.h:280
Belle2::hitXP
This class collects some information of a TrueHit, using SVDCLuster and MCParticle information too.
Definition: hitXP.h:42
Belle2::hitXP::getPositionLocalEntry
TVector3 getPositionLocalEntry() const
get the relative memeber
Definition: hitXP.h:99
Belle2::hitXP::getPositionLocalExit
TVector3 getPositionLocalExit() const
get the relative memeber
Definition: hitXP.h:102
Belle2::hitXP::getMomentumMid
TVector3 getMomentumMid() const
get the relative memeber
Definition: hitXP.h:87
Belle2::hitXP::getMomentumLocalMid
TVector3 getMomentumLocalMid() const
get the relative memeber
Definition: hitXP.h:105
Belle2::hitXP::getZ0Entry
double getZ0Entry() const
evaluate relative parameter using entrypoint position and momentum
Definition: hitXP.h:383
Belle2::hitXP::m_sensorLadder
int m_sensorLadder
ladder of the hit
Definition: hitXP.h:63
Belle2::hitXP::isReconstructed
bool isReconstructed() const
get the relative memeber
Definition: hitXP.h:141
Belle2::hitXP::setPosition0
void setPosition0(TVector3 position)
get the relative memeber
Definition: hitXP.h:246
Belle2::hitXP::m_sensorSensor
int m_sensorSensor
sensor of the hit
Definition: hitXP.h:61
Belle2::hitXP::getOmega0
double getOmega0() const
evaluate relative parameter using IP position and momentum
Definition: hitXP.h:341
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::hitXP::m_momentumEntry
TVector3 m_momentumEntry
momentum of hit at entry of layer
Definition: hitXP.h:49
Belle2::hitXP::setMomentumExit
void setMomentumExit(TVector3 momentum)
get the relative memeber
Definition: hitXP.h:187
Belle2::hitXP::m_reconstructed
bool m_reconstructed
flag for reconstructed track
Definition: hitXP.h:71
Belle2::hitXP::setPositionExit
void setPositionExit(TVector3 position)
get the relative memeber
Definition: hitXP.h:163
Belle2::hitXP::m_positionEntry
TVector3 m_positionEntry
poition of hit at entrypoint of layer
Definition: hitXP.h:46
Belle2::hitXP::tanLambda
double tanLambda(TVector3 xx, TVector3 p) const
evaluates the parameter tanLambda (pz/pt) of a helicoidal track starting from position and momentum o...
Definition: hitXP.cc:25
Belle2::hitXP::setMomentumEntry
void setMomentumEntry(TVector3 momentum)
get the relative memeber
Definition: hitXP.h:179
Belle2::hitXP::timeCompare::operator()
bool operator()(hitXP v, hitXP u) const
Compare operator for time of two hits.
Definition: hitXP.h:398
Belle2::hitXP::phi0
double phi0(const TVector3 &xx, TVector3 p, double charge) const
evaluates the parameter phi0 (angle between pT and x) of a helicoidal track starting from position an...
Definition: hitXP.cc:47
Belle2::hitXP::m_momentum0
TVector3 m_momentum0
momentum at IP
Definition: hitXP.h:59
Belle2::hitXP::getD0Entry
double getD0Entry() const
evaluate relative parameter using entrypoint position and momentum
Definition: hitXP.h:359
Belle2::hitXP::getSensorLayer
int getSensorLayer() const
get the relative memeber
Definition: hitXP.h:132
Belle2::hitXP::getMomentumLocalEntry
TVector3 getMomentumLocalEntry() const
get the relative memeber
Definition: hitXP.h:108
Belle2::hitXP::setPositionLocalExit
void setPositionLocalExit(TVector3 position)
get the relative memeber
Definition: hitXP.h:211
Belle2::hitXP::m_clusterU
int m_clusterU
flag for u cluster
Definition: hitXP.h:69
Belle2::hitXP::getPDGID
int getPDGID() const
get the relative memeber
Definition: hitXP.h:114
Belle2::hitXP::getMomentumLocalExit
TVector3 getMomentumLocalExit() const
get the relative memeber
Definition: hitXP.h:111
Belle2::hitXP::setPositionLocalMid
void setPositionLocalMid(TVector3 position)
get the relative memeber
Definition: hitXP.h:195
Belle2::hitXP::getPositionLocalMid
TVector3 getPositionLocalMid() const
get the relative memeber
Definition: hitXP.h:96
Belle2::hitXP::setReconstructed
void setReconstructed(bool isReconstructed)
get the relative memeber
Definition: hitXP.h:286
Belle2::hitXP::getZ00
double getZ00() const
evaluate relative parameter using IP position and momentum
Definition: hitXP.h:389
Belle2::hitXP::getD0Exit
double getD0Exit() const
evaluate relative parameter using exitpoint position and momentum
Definition: hitXP.h:362
Belle2::hitXP::m_positionLocalExit
TVector3 m_positionLocalExit
poition of hit at exitpoint of layer, local coordinate
Definition: hitXP.h:53
Belle2::hitXP::setClusterU
void setClusterU(int cluster)
get the relative memeber
Definition: hitXP.h:274
Belle2::hitXP::getPositionMid
TVector3 getPositionMid() const
get the relative memeber
Definition: hitXP.h:78
Belle2::hitXP::getClusterU
int getClusterU() const
get the relative memeber
Definition: hitXP.h:135
Belle2::hitXP::m_momentumMid
TVector3 m_momentumMid
momentum of hit at midpoint of layer
Definition: hitXP.h:48
Belle2::hitXP::m_momentumLocalExit
TVector3 m_momentumLocalExit
momentum of hit at exitpoint of layer, local coordinate
Definition: hitXP.h:56
Belle2::hitXP::getD00
double getD00() const
evaluate relative parameter using IP position and momentum
Definition: hitXP.h:365
Belle2::hitXP::m_info_z0
double m_info_z0
z0 from MCParticle info evaluation.
Definition: hitXP.h:65
Belle2::hitXP::getPhi0Mid
double getPhi0Mid() const
evaluate relative parameter using midpoint position and momentum
Definition: hitXP.h:368
Belle2::hitXP::getD0Mid
double getD0Mid() const
evaluate relative parameter using midpoint position and momentum
Definition: hitXP.h:356
Belle2::hitXP::setPositionLocalEntry
void setPositionLocalEntry(TVector3 position)
get the relative memeber
Definition: hitXP.h:203
Belle2::hitXP::getTanLambdaEntry
double getTanLambdaEntry() const
evaluate relative parameter using entrypoint position and momentum
Definition: hitXP.h:347
Belle2::hitXP::setMomentum0
void setMomentum0(TVector3 momentum)
get the relative memeber
Definition: hitXP.h:254
Belle2::hitXP::m_info_tanlambda
double m_info_tanlambda
tanlambda from MCParticle info evaluation.
Definition: hitXP.h:67
Belle2::Time
Definition: Time.h:14
Belle2::hitXP::m_momentumLocalMid
TVector3 m_momentumLocalMid
momentum of hit at midpoint of layer, local coordinate
Definition: hitXP.h:54
Belle2::hitXP::setMomentumLocalEntry
void setMomentumLocalEntry(TVector3 momentum)
get the relative memeber
Definition: hitXP.h:227
Belle2::hitXP::setMomentumLocalMid
void setMomentumLocalMid(TVector3 momentum)
get the relative memeber
Definition: hitXP.h:219
Belle2::hitXP::getPhi0Exit
double getPhi0Exit() const
evaluate relative parameter using exitpoint position and momentum
Definition: hitXP.h:374
Belle2::hitXP::getMomentumExit
TVector3 getMomentumExit() const
get the relative memeber
Definition: hitXP.h:93
Belle2::hitXP::getPosition0
TVector3 getPosition0() const
get the relative memeber
Definition: hitXP.h:117
Belle2::hitXP::timeCompare
This structure allows to compare times of 2 hitXP point input (first hit, second hit) output (boolean...
Definition: hitXP.h:396
Belle2::hitXP::hitXP
hitXP()
empty constructor of the class
Definition: hitXP.h:75
Belle2::hitXP::omega
double omega(TVector3 xx, TVector3 p, double charge) const
evaluates the parameter omega (1/curvature radius) of a helicoidal track starting from position and m...
Definition: hitXP.cc:14
Belle2::hitXP::m_time
double m_time
time of the hit
Definition: hitXP.h:60
Belle2::hitXP::setSensorLadder
void setSensorLadder(int ladder)
get the relative memeber
Definition: hitXP.h:271
Belle2::hitXP::getPositionEntry
TVector3 getPositionEntry() const
get the relative memeber
Definition: hitXP.h:81
Belle2::hitXP::ClassDef
ClassDef(hitXP, 1)
needed by root
Belle2::hitXP::getPhi0Entry
double getPhi0Entry() const
evaluate relative parameter using entrypoint position and momentum
Definition: hitXP.h:371
Belle2::hitXP::getTanLambda0
double getTanLambda0() const
evaluate relative parameter using IP position and momentum
Definition: hitXP.h:353
Belle2::hitXP::getMomentum0
TVector3 getMomentum0() const
get the relative memeber
Definition: hitXP.h:120
Belle2::hitXP::getCharge
double getCharge() const
get the relative memeber
Definition: hitXP.h:144
Belle2::hitXP::m_PDGID
int m_PDGID
PDGID.
Definition: hitXP.h:57