Belle II Software  release-05-02-19
TrackExtrapolateG4e.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010-2011 Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Leo Piilonen *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 /* Tracking headers. */
14 #include <tracking/dataobjects/ExtHit.h>
15 #include <tracking/dataobjects/RecoTrack.h>
16 #include <tracking/dataobjects/TrackClusterSeparation.h>
17 
18 /* Belle 2 headers. */
19 #include <framework/database/DBObjPtr.h>
20 #include <framework/datastore/StoreArray.h>
21 #include <framework/gearbox/Const.h>
22 #include <klm/dataobjects/bklm/BKLMElementNumbers.h>
23 #include <klm/dataobjects/bklm/BKLMHit2d.h>
24 #include <klm/dataobjects/KLMElementNumbers.h>
25 #include <klm/dbobjects/KLMChannelStatus.h>
26 #include <klm/dbobjects/KLMStripEfficiency.h>
27 #include <klm/dbobjects/KLMLikelihoodParameters.h>
28 #include <klm/dataobjects/eklm/EKLMHit2d.h>
29 #include <klm/eklm/geometry/TransformDataGlobalAligned.h>
30 
31 /* Geant4 headers. */
32 #include <G4ErrorTrajErr.hh>
33 #include <G4ThreeVector.hh>
34 #include <G4TouchableHandle.hh>
35 
36 /* C++ headers. */
37 #include <map>
38 #include <string>
39 #include <vector>
40 
41 class G4ErrorSymMatrix;
42 class G4VPhysicalVolume;
43 class G4ErrorFreeTrajState;
44 class G4StepPoint;
45 
46 namespace Belle2 {
52  class ECLCluster;
53  class KLMCluster;
54  class KLMMuidHit;
55  class KLMMuidLikelihood;
56  class MuidBuilder;
57  class Track;
58 
59  namespace Simulation {
60  class ExtCylSurfaceTarget;
61  class ExtManager;
62  }
63 
65  enum VolTypes {
88  };
89 
91  struct ExtState {
93  const Track* track;
95  int pdgCode;
97  bool isCosmic;
99  double tof;
101  double length;
103  G4ThreeVector directionAtIP;
105  double chi2;
107  int nPoint;
125  bool escaped;
126  };
127 
129  struct Intersection {
131  int hit;
133  bool inBarrel;
135  bool isForward;
137  int sector;
139  int layer;
141  G4ThreeVector position;
143  G4ThreeVector momentum;
145  G4ErrorSymMatrix covariance;
147  G4ThreeVector positionAtHitPlane;
149  double time;
151  double chi2;
152  };
153 
169 
170  public:
171 
174 
177 
182  void initialize(double minPt, double minKE,
183  std::vector<Const::ChargedStable>& hypotheses);
184 
194  void initialize(double meanDt, double maxDt, double maxSeparation,
195  double maxKLMTrackClusterDistance, double maxECLTrackClusterDistance,
196  double minPt, double minKE, bool addHitsToRecoTrack, std::vector<Const::ChargedStable>& hypotheses);
197 
200  void beginRun(bool flag);
201 
204  void event(bool flag);
205 
208  void endRun(bool flag);
209 
212  void terminate(bool flag);
213 
220  void extrapolate(int pdgCode,
221  double tof,
222  const G4ThreeVector& position,
223  const G4ThreeVector& momentum,
224  const G4ErrorSymMatrix& covariance);
225 
233  void identifyMuon(int pdgCode,
234  double tof,
235  bool isCosmic,
236  const G4ThreeVector& position,
237  const G4ThreeVector& momentum,
238  const G4ErrorSymMatrix& covariance);
239 
240  private:
241 
244 
247 
249  void swim(ExtState&, G4ErrorFreeTrajState&,
250  const std::vector<std::pair<ECLCluster*, G4ThreeVector> >*,
251  const std::vector<std::pair<KLMCluster*, G4ThreeVector> >*,
252  std::vector<std::map<const Track*, double> >*);
253 
255  void swim(ExtState&, G4ErrorFreeTrajState&);
256 
259  void registerVolumes();
260 
262  void getVolumeID(const G4TouchableHandle&, Const::EDetector&, int&);
263 
265  void fromG4eToPhasespace(const G4ErrorFreeTrajState&, G4ErrorSymMatrix&);
266 
268  void fromPhasespaceToG4e(const G4ThreeVector&, const G4ErrorSymMatrix&, G4ErrorTrajErr&);
269 
271  void fromPhasespaceToG4e(const TVector3&, const TMatrixDSym&, G4ErrorTrajErr&);
272 
274  ExtState getStartPoint(const Track&, int, G4ErrorFreeTrajState&);
275 
277  void createExtHit(ExtHitStatus, const ExtState&, const G4ErrorFreeTrajState&, const G4StepPoint*, const G4TouchableHandle&);
278 
280  void createECLHit(const ExtState&, const G4ErrorFreeTrajState&, const G4StepPoint*, const G4StepPoint*, const G4TouchableHandle&,
281  const std::pair<ECLCluster*, G4ThreeVector>&, double, double);
282 
284  bool createMuidHit(ExtState&, G4ErrorFreeTrajState&, KLMMuidLikelihood*, std::vector<std::map<const Track*, double> >*);
285 
287  bool findBarrelIntersection(ExtState&, const G4ThreeVector&, Intersection&);
288 
290  bool findEndcapIntersection(ExtState&, const G4ThreeVector&, Intersection&);
291 
294 
297 
299  void adjustIntersection(Intersection&, const double*, const G4ThreeVector&, const G4ThreeVector&);
300 
302  void finishTrack(const ExtState&, KLMMuidLikelihood*, bool);
303 
306 
309 
312 
314  double m_MeanDt;
315 
317  double m_MaxDt;
318 
321 
324 
327 
330 
332  double m_MinPt;
333 
335  double m_MinKE;
336 
339 
341  const std::vector<Const::ChargedStable>* m_HypothesesExt;
342 
344  const std::vector<Const::ChargedStable>* m_HypothesesMuid;
345 
347  std::vector<Const::ChargedStable>* m_DefaultHypotheses;
348 
350  std::map<G4VPhysicalVolume*, enum VolTypes>* m_EnterExit;
351 
353  std::vector<G4VPhysicalVolume*>* m_BKLMVolumes;
354 
357 
360 
363 
365  double m_OffsetZ;
366 
369 
371  double m_BarrelMaxR;
372 
374  double m_BarrelMinR;
375 
378 
381 
384 
387 
390 
394 
397 
400 
402  double m_EndcapMaxR;
403 
405  double m_EndcapMinR;
406 
409 
412 
415 
418 
421 
424 
426  bool m_addHitsToRecoTrack = false;
427 
429  std::map<int, MuidBuilder*> m_MuidBuilderMap;
430 
433 
436 
439 
442 
445 
448 
451 
454 
457 
460 
463 
466 
469 
472 
475 
476  };
477 
479 } // end of namespace Belle2
Belle2::TrackExtrapolateG4e::m_BarrelScintVariance
double m_BarrelScintVariance
BKLM scintillator strip position variance (cm^2)
Definition: TrackExtrapolateG4e.h:389
Belle2::Intersection::layer
int layer
layer number (0..14 for barrel, 0..13 for endcap) of this point
Definition: TrackExtrapolateG4e.h:139
Belle2::ExtState::firstBarrelLayer
int firstBarrelLayer
MUID: outermost barrel layer encountered by the extrapolated track in the prior steps.
Definition: TrackExtrapolateG4e.h:109
Belle2::TrackExtrapolateG4e::m_BarrelSectorPhi
G4ThreeVector m_BarrelSectorPhi[BKLMElementNumbers::getMaximalSectorNumber()+1]
azimuthal unit vector of each barrel sector
Definition: TrackExtrapolateG4e.h:399
Belle2::VOLTYPE_EKLM
@ VOLTYPE_EKLM
EKLM.
Definition: TrackExtrapolateG4e.h:87
Belle2::TrackExtrapolateG4e::m_MeanDt
double m_MeanDt
Mean hit - trigger time (ns)
Definition: TrackExtrapolateG4e.h:314
Belle2::TrackExtrapolateG4e::getStartPoint
ExtState getStartPoint(const Track &, int, G4ErrorFreeTrajState &)
Get the start point for a new reconstructed track with specific PDG hypothesis.
Definition: TrackExtrapolateG4e.cc:952
Belle2::TrackExtrapolateG4e::createExtHit
void createExtHit(ExtHitStatus, const ExtState &, const G4ErrorFreeTrajState &, const G4StepPoint *, const G4TouchableHandle &)
Create another EXT extrapolation hit for a track candidate.
Definition: TrackExtrapolateG4e.cc:1190
Belle2::TrackExtrapolateG4e::m_EndcapMinR
double m_EndcapMinR
minimum radius (cm) of the endcaps
Definition: TrackExtrapolateG4e.h:405
Belle2::ExtState::extLayerPattern
int extLayerPattern
MUID: accumulated bit pattern of layers crossed by the extrapolated track.
Definition: TrackExtrapolateG4e.h:121
Belle2::ExtState::lastEndcapExtLayer
int lastEndcapExtLayer
MUID: outermost endcap layer crossed by the extrapolated track.
Definition: TrackExtrapolateG4e.h:117
Belle2::TrackExtrapolateG4e::m_TargetExt
Simulation::ExtCylSurfaceTarget * m_TargetExt
virtual "target" cylinder for EXT (boundary beyond which extrapolation ends)
Definition: TrackExtrapolateG4e.h:356
Belle2::Intersection::chi2
double chi2
chi-squared value of transverse deviation between extrapolated and measured hit positions
Definition: TrackExtrapolateG4e.h:151
Belle2::TrackExtrapolateG4e::m_ExtMgr
Simulation::ExtManager * m_ExtMgr
Pointer to the ExtManager singleton.
Definition: TrackExtrapolateG4e.h:338
Belle2::VOLTYPE_TOP3
@ VOLTYPE_TOP3
TOP glue.
Definition: TrackExtrapolateG4e.h:73
Belle2::TrackExtrapolateG4e::m_EndcapMaxR
double m_EndcapMaxR
maximum radius (cm) of the endcaps
Definition: TrackExtrapolateG4e.h:402
Belle2::TrackExtrapolateG4e::m_HypothesesMuid
const std::vector< Const::ChargedStable > * m_HypothesesMuid
ChargedStable hypotheses for MUID.
Definition: TrackExtrapolateG4e.h:344
Belle2::VOLTYPE_BKLM1
@ VOLTYPE_BKLM1
BKLM RPC.
Definition: TrackExtrapolateG4e.h:83
Belle2::TrackExtrapolateG4e::m_MaxDt
double m_MaxDt
Coincidence window half-width for in-time KLM hits (ns)
Definition: TrackExtrapolateG4e.h:317
Belle2::ExtState::hitLayerPattern
int hitLayerPattern
MUID: accumulated bit pattern of layers with matching hits.
Definition: TrackExtrapolateG4e.h:123
Belle2::TrackExtrapolateG4e::m_EndcapScintVariance
double m_EndcapScintVariance
EKLM scintillator strip position variance (cm^2)
Definition: TrackExtrapolateG4e.h:420
Belle2::TrackExtrapolateG4e::m_bklmHit2ds
StoreArray< BKLMHit2d > m_bklmHit2ds
BKLM 2d hits.
Definition: TrackExtrapolateG4e.h:453
Belle2::TrackExtrapolateG4e::m_klmMuidHits
StoreArray< KLMMuidHit > m_klmMuidHits
KLM muid hits.
Definition: TrackExtrapolateG4e.h:462
Belle2::TrackExtrapolateG4e::findEndcapIntersection
bool findEndcapIntersection(ExtState &, const G4ThreeVector &, Intersection &)
Find the intersection point of the track with the crossed EKLM plane.
Definition: TrackExtrapolateG4e.cc:1449
Belle2::VolTypes
VolTypes
Enumeration for G4VPhysicalVolume sensitive-volume categories.
Definition: TrackExtrapolateG4e.h:65
Belle2::TrackExtrapolateG4e::findBarrelIntersection
bool findBarrelIntersection(ExtState &, const G4ThreeVector &, Intersection &)
Find the intersection point of the track with the crossed BKLM plane.
Definition: TrackExtrapolateG4e.cc:1413
Belle2::Intersection::sector
int sector
sector number (0..7 for barrel, 0..3 for endcap) of this point
Definition: TrackExtrapolateG4e.h:137
Belle2::Simulation::ExtManager
It is the main interface for the user to define the setup and start the propagation.
Definition: ExtManager.h:53
Belle2::VOLTYPE_ARICH1
@ VOLTYPE_ARICH1
ARICH aerogel.
Definition: TrackExtrapolateG4e.h:75
Belle2::ExtState::lastBarrelHitLayer
int lastBarrelHitLayer
MUID: outermost barrel layer with a matching hit.
Definition: TrackExtrapolateG4e.h:115
Belle2::TrackExtrapolateG4e::m_tracks
StoreArray< Track > m_tracks
Tracks.
Definition: TrackExtrapolateG4e.h:471
Belle2::TrackExtrapolateG4e::findMatchingBarrelHit
bool findMatchingBarrelHit(Intersection &, const Track *)
Find the matching BKLM 2D hit nearest the intersection point of the track with the crossed BKLM plane...
Definition: TrackExtrapolateG4e.cc:1483
Belle2::TrackExtrapolateG4e::m_MinRadiusSq
double m_MinRadiusSq
Minimum squared radius (cm) outside of which extrapolation will continue.
Definition: TrackExtrapolateG4e.h:362
Belle2::TrackExtrapolateG4e::m_OffsetZ
double m_OffsetZ
offset (cm) along z axis of KLM midpoint from IP
Definition: TrackExtrapolateG4e.h:365
Belle2::TrackExtrapolateG4e::m_MinKE
double m_MinKE
Minimum kinetic energy in MeV for extrapolation to continue.
Definition: TrackExtrapolateG4e.h:335
Belle2::ExtState::pdgCode
int pdgCode
Particle hypothesis that is being extrapolated.
Definition: TrackExtrapolateG4e.h:95
Belle2::VOLTYPE_TOP1
@ VOLTYPE_TOP1
TOP container.
Definition: TrackExtrapolateG4e.h:69
Belle2::Const::EDetector
EDetector
Enum for identifying the detector components (detector and subdetector).
Definition: Const.h:44
Belle2::TrackExtrapolateG4e::m_OutermostActiveBarrelLayer
int m_OutermostActiveBarrelLayer
outermost barrel layer that is active for muon identification (user-defined)
Definition: TrackExtrapolateG4e.h:380
Belle2::TrackExtrapolateG4e
geant4e-based track extrapolation.
Definition: TrackExtrapolateG4e.h:168
Belle2::TrackExtrapolateG4e::m_TargetMuid
Simulation::ExtCylSurfaceTarget * m_TargetMuid
virtual "target" cylinder for MUID (boundary beyond which extrapolation ends)
Definition: TrackExtrapolateG4e.h:359
Belle2::BKLMElementNumbers::getMaximalSectorNumber
static constexpr int getMaximalSectorNumber()
Get maximal sector number (1-based).
Definition: BKLMElementNumbers.h:243
Belle2::TrackExtrapolateG4e::~TrackExtrapolateG4e
~TrackExtrapolateG4e()
destructor
Definition: TrackExtrapolateG4e.cc:133
Belle2::ExtHitStatus
ExtHitStatus
Define state of extrapolation for each recorded hit.
Definition: ExtHit.h:35
Belle2::ExtState
Data structure to define extrapolation state.
Definition: TrackExtrapolateG4e.h:91
Belle2::TrackExtrapolateG4e::registerVolumes
void registerVolumes()
Register the list of geant4 physical volumes whose entry/exit points will be saved during extrapolati...
Definition: TrackExtrapolateG4e.cc:798
Belle2::TrackExtrapolateG4e::m_MuidInitialized
bool m_MuidInitialized
Flag to indicate that MUID initialize() has been called.
Definition: TrackExtrapolateG4e.h:311
Belle2::TrackExtrapolateG4e::beginRun
void beginRun(bool flag)
Perform beginning-of-run actions.
Definition: TrackExtrapolateG4e.cc:317
Belle2::ExtState::lastEndcapHitLayer
int lastEndcapHitLayer
MUID: outermost endcap layer with a matching hit.
Definition: TrackExtrapolateG4e.h:119
Belle2::DBObjPtr
Class for accessing objects in the database.
Definition: DBObjPtr.h:31
Belle2::TrackExtrapolateG4e::terminate
void terminate(bool flag)
Terminates this singleton.
Definition: TrackExtrapolateG4e.cc:400
Belle2::TrackExtrapolateG4e::event
void event(bool flag)
Performs track extrapolation for all tracks in one event.
Definition: TrackExtrapolateG4e.cc:341
Belle2::TrackExtrapolateG4e::m_BarrelPhiStripVariance
double m_BarrelPhiStripVariance[BKLMElementNumbers::getMaximalLayerNumber()+1]
BKLM RPC phi-measuring strip position variance (cm^2) by layer.
Definition: TrackExtrapolateG4e.h:383
Belle2::Intersection::time
double time
time (ns) of matching BKLMHit2d
Definition: TrackExtrapolateG4e.h:149
Belle2::TrackExtrapolateG4e::m_ExtInitialized
bool m_ExtInitialized
Flag to indicate that EXT initialize() has been called.
Definition: TrackExtrapolateG4e.h:308
Belle2::TrackExtrapolateG4e::m_MagneticField
double m_MagneticField
Magnetic field z component (gauss) at origin.
Definition: TrackExtrapolateG4e.h:320
Belle2::TrackExtrapolateG4e::m_HypothesesExt
const std::vector< Const::ChargedStable > * m_HypothesesExt
ChargedStable hypotheses for EXT.
Definition: TrackExtrapolateG4e.h:341
Belle2::TrackExtrapolateG4e::m_BarrelModuleMiddleRadius
double m_BarrelModuleMiddleRadius[2][BKLMElementNumbers::getMaximalSectorNumber()+1][BKLMElementNumbers::getMaximalLayerNumber()+1]
hit-plane radius (cm) at closest distance to IP of each barrel end | sector | layer
Definition: TrackExtrapolateG4e.h:393
Belle2::TrackExtrapolateG4e::m_klmClusters
StoreArray< KLMCluster > m_klmClusters
KLM clusters.
Definition: TrackExtrapolateG4e.h:459
Belle2::TrackExtrapolateG4e::m_klmElementNumbers
const KLMElementNumbers * m_klmElementNumbers
KLM element numbers.
Definition: TrackExtrapolateG4e.h:432
Belle2::TrackExtrapolateG4e::m_klmChannelStatus
DBObjPtr< KLMChannelStatus > m_klmChannelStatus
Conditions-database object for KLM channel status.
Definition: TrackExtrapolateG4e.h:438
Belle2::Intersection::momentum
G4ThreeVector momentum
extrapolated-track momentum (GeV/c) at this intersection
Definition: TrackExtrapolateG4e.h:143
Belle2::TrackExtrapolateG4e::m_trackClusterSeparations
StoreArray< TrackClusterSeparation > m_trackClusterSeparations
Track cluster sepration.
Definition: TrackExtrapolateG4e.h:474
Belle2::BKLMElementNumbers::getMaximalLayerNumber
static constexpr int getMaximalLayerNumber()
Get maximal layer number (1-based).
Definition: BKLMElementNumbers.h:251
Belle2::TrackExtrapolateG4e::m_MaxECLTrackClusterDistance
double m_MaxECLTrackClusterDistance
user-defined maximum distance (mm) between ECLCluster and associated track (for EID)
Definition: TrackExtrapolateG4e.h:329
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TrackExtrapolateG4e::m_addHitsToRecoTrack
bool m_addHitsToRecoTrack
Parameter to add the found hits also to the reco tracks or not. Is turned off by default.
Definition: TrackExtrapolateG4e.h:426
Belle2::TrackExtrapolateG4e::extrapolate
void extrapolate(int pdgCode, double tof, const G4ThreeVector &position, const G4ThreeVector &momentum, const G4ErrorSymMatrix &covariance)
Performs track extrapolation for a single track (specified in genfit2 units).
Definition: TrackExtrapolateG4e.cc:421
Belle2::TrackExtrapolateG4e::createMuidHit
bool createMuidHit(ExtState &, G4ErrorFreeTrajState &, KLMMuidLikelihood *, std::vector< std::map< const Track *, double > > *)
Create another MUID extrapolation hit for a track candidate.
Definition: TrackExtrapolateG4e.cc:1214
Belle2::TrackExtrapolateG4e::m_klmStripEfficiency
DBObjPtr< KLMStripEfficiency > m_klmStripEfficiency
Conditions-database object for KLM strip efficiency.
Definition: TrackExtrapolateG4e.h:441
Belle2::TrackExtrapolateG4e::m_recoTracks
StoreArray< RecoTrack > m_recoTracks
Reco tracks.
Definition: TrackExtrapolateG4e.h:468
Belle2::TrackExtrapolateG4e::m_BarrelMaxR
double m_BarrelMaxR
maximum radius (cm) of the barrel
Definition: TrackExtrapolateG4e.h:371
Belle2::TrackExtrapolateG4e::getVolumeID
void getVolumeID(const G4TouchableHandle &, Const::EDetector &, int &)
Get the physical volume information for a geant4 physical volume.
Definition: TrackExtrapolateG4e.cc:870
Belle2::TrackExtrapolateG4e::m_Singleton
static TrackExtrapolateG4e * m_Singleton
Stores pointer to the singleton class.
Definition: TrackExtrapolateG4e.h:305
Belle2::TrackExtrapolateG4e::m_MinPt
double m_MinPt
Minimum transverse momentum in MeV/c for extrapolation to be started.
Definition: TrackExtrapolateG4e.h:332
Belle2::ExtState::isCosmic
bool isCosmic
True for back-propagation of a cosmic ray.
Definition: TrackExtrapolateG4e.h:97
Belle2::TrackExtrapolateG4e::m_BarrelNSector
int m_BarrelNSector
Number of barrel sectors.
Definition: TrackExtrapolateG4e.h:368
Belle2::TrackExtrapolateG4e::m_OutermostActiveBackwardEndcapLayer
int m_OutermostActiveBackwardEndcapLayer
outermost backward-endcap layer that is active for muon identification (user-defined)
Definition: TrackExtrapolateG4e.h:417
Belle2::VOLTYPE_TOP2
@ VOLTYPE_TOP2
TOP quartz.
Definition: TrackExtrapolateG4e.h:71
Belle2::ExtState::escaped
bool escaped
MUID: flag to indicate that the extrapolated track escaped from the KLM.
Definition: TrackExtrapolateG4e.h:125
Belle2::TrackExtrapolateG4e::m_MuidBuilderMap
std::map< int, MuidBuilder * > m_MuidBuilderMap
PDF for the charged final state particle hypotheses.
Definition: TrackExtrapolateG4e.h:429
Belle2::TrackExtrapolateG4e::m_eklmTransformData
const EKLM::TransformDataGlobalAligned * m_eklmTransformData
EKLM transformation data.
Definition: TrackExtrapolateG4e.h:435
Belle2::TrackExtrapolateG4e::identifyMuon
void identifyMuon(int pdgCode, double tof, bool isCosmic, const G4ThreeVector &position, const G4ThreeVector &momentum, const G4ErrorSymMatrix &covariance)
Performs muon identification for a single track (specified in genfit2 units).
Definition: TrackExtrapolateG4e.cc:469
Belle2::ExtState::firstEndcapLayer
int firstEndcapLayer
MUID: outermost barrel layer encountered by the extrapolated track in the prior steps.
Definition: TrackExtrapolateG4e.h:111
Belle2::TrackExtrapolateG4e::m_EnterExit
std::map< G4VPhysicalVolume *, enum VolTypes > * m_EnterExit
Pointers to geant4 physical volumes whose entry/exit points will be saved.
Definition: TrackExtrapolateG4e.h:350
Belle2::Intersection::position
G4ThreeVector position
extrapolated-track global position (cm) of this intersection
Definition: TrackExtrapolateG4e.h:141
Belle2::TrackExtrapolateG4e::m_EndcapModuleMiddleZ
double m_EndcapModuleMiddleZ[BKLMElementNumbers::getMaximalLayerNumber()+1]
hit-plane z (cm) of each IP layer relative to KLM midpoint
Definition: TrackExtrapolateG4e.h:423
Belle2::TrackExtrapolateG4e::swim
void swim(ExtState &, G4ErrorFreeTrajState &, const std::vector< std::pair< ECLCluster *, G4ThreeVector > > *, const std::vector< std::pair< KLMCluster *, G4ThreeVector > > *, std::vector< std::map< const Track *, double > > *)
Swim a single track (MUID) until it stops or leaves the target cylinder.
Definition: TrackExtrapolateG4e.cc:517
Belle2::Intersection::covariance
G4ErrorSymMatrix covariance
extrapolated-track phase-space covariance matrix at this intersection
Definition: TrackExtrapolateG4e.h:145
Belle2::TrackExtrapolateG4e::TrackExtrapolateG4e
TrackExtrapolateG4e()
constructor is hidden; user calls TrackExtrapolateG4e::getInstance() instead
Definition: TrackExtrapolateG4e.cc:80
Belle2::ExtState::length
double length
Length from start of extrapolation (rad lengths), updated during extrapolation.
Definition: TrackExtrapolateG4e.h:101
Belle2::TrackExtrapolateG4e::findMatchingEndcapHit
bool findMatchingEndcapHit(Intersection &, const Track *)
Find the matching EKLM 2D hit nearest the intersection point of the track with the crossed EKLM plane...
Definition: TrackExtrapolateG4e.cc:1571
Belle2::TrackExtrapolateG4e::m_eclClusters
StoreArray< ECLCluster > m_eclClusters
ECL clusters.
Definition: TrackExtrapolateG4e.h:447
Belle2::TrackExtrapolateG4e::m_klmLikelihoodParameters
DBObjPtr< KLMLikelihoodParameters > m_klmLikelihoodParameters
Conditions-database object for KLM likelihood parameters.
Definition: TrackExtrapolateG4e.h:444
Belle2::Simulation::ExtCylSurfaceTarget
Defines a closed cylinder for the geant4e "target", the surface that encloses the volume within which...
Definition: ExtCylSurfaceTarget.h:38
Belle2::TrackExtrapolateG4e::fromG4eToPhasespace
void fromG4eToPhasespace(const G4ErrorFreeTrajState &, G4ErrorSymMatrix &)
Convert the geant4e 5x5 covariance to phasespace 6x6 covariance.
Definition: TrackExtrapolateG4e.cc:1039
Belle2::TrackExtrapolateG4e::m_eklmHit2ds
StoreArray< EKLMHit2d > m_eklmHit2ds
EKLM 2d hits.
Definition: TrackExtrapolateG4e.h:456
Belle2::VOLTYPE_ECL
@ VOLTYPE_ECL
ECL.
Definition: TrackExtrapolateG4e.h:81
Belle2::VOLTYPE_CDC
@ VOLTYPE_CDC
CDC.
Definition: TrackExtrapolateG4e.h:67
Belle2::ExtState::chi2
double chi2
MUID: accumulated chi-squared of all in-plane transverse deviations between extrapolation and matchin...
Definition: TrackExtrapolateG4e.h:105
Belle2::ExtState::tof
double tof
Time of flight from IP (ns), updated during extrapolation.
Definition: TrackExtrapolateG4e.h:99
Belle2::TrackExtrapolateG4e::m_MaxDistSqInVariances
double m_MaxDistSqInVariances
user-defined maximum squared-distance (#variances) for matching hit to extrapolation
Definition: TrackExtrapolateG4e.h:323
Belle2::ExtState::track
const Track * track
Pointer to the reconstructed track.
Definition: TrackExtrapolateG4e.h:93
Belle2::VOLTYPE_ARICH2
@ VOLTYPE_ARICH2
ARICH Img plate.
Definition: TrackExtrapolateG4e.h:77
Belle2::Intersection
intersection of muid-extrapolated track with a KLM layer
Definition: TrackExtrapolateG4e.h:129
Belle2::ExtState::nPoint
int nPoint
MUID: accumulated number of points with matching 2D hits.
Definition: TrackExtrapolateG4e.h:107
Belle2::ExtState::lastBarrelExtLayer
int lastBarrelExtLayer
MUID: outermost barrel layer crossed by the extrapolated track.
Definition: TrackExtrapolateG4e.h:113
Belle2::ExtState::directionAtIP
G4ThreeVector directionAtIP
MUID: initial direction of track, used for KLID.
Definition: TrackExtrapolateG4e.h:103
Belle2::Track
Class that bundles various TrackFitResults.
Definition: Track.h:35
Belle2::KLMElementNumbers
KLM element numbers.
Definition: KLMElementNumbers.h:37
Belle2::Intersection::inBarrel
bool inBarrel
flag to indicate if this point is in the barrel (true) or endcap (false)
Definition: TrackExtrapolateG4e.h:133
Belle2::StoreArray
Accessor to arrays stored in the data store.
Definition: ECLMatchingPerformanceExpertModule.h:33
Belle2::TrackExtrapolateG4e::createECLHit
void createECLHit(const ExtState &, const G4ErrorFreeTrajState &, const G4StepPoint *, const G4StepPoint *, const G4TouchableHandle &, const std::pair< ECLCluster *, G4ThreeVector > &, double, double)
Create another EXT ECL-crystal-crossing hit for a track candidate.
Belle2::VOLTYPE_BKLM2
@ VOLTYPE_BKLM2
BKLM scintillator.
Definition: TrackExtrapolateG4e.h:85
Belle2::KLMMuidLikelihood
Class to store the likelihoods from KLM with additional informations related to the extrapolation.
Definition: KLMMuidLikelihood.h:38
Belle2::TrackExtrapolateG4e::m_OutermostActiveForwardEndcapLayer
int m_OutermostActiveForwardEndcapLayer
outermost forward-endcap layer that is active for muon identification (user-defined)
Definition: TrackExtrapolateG4e.h:414
Belle2::TrackExtrapolateG4e::m_EndcapHalfLength
double m_EndcapHalfLength
half-length (cm) of either endcap
Definition: TrackExtrapolateG4e.h:411
Belle2::TrackExtrapolateG4e::m_BKLMVolumes
std::vector< G4VPhysicalVolume * > * m_BKLMVolumes
Pointers to BKLM geant4 sensitive (physical) volumes.
Definition: TrackExtrapolateG4e.h:353
Belle2::TrackExtrapolateG4e::m_klmMuidLikelihoods
StoreArray< KLMMuidLikelihood > m_klmMuidLikelihoods
KLM muid likelihoods.
Definition: TrackExtrapolateG4e.h:465
Belle2::TrackExtrapolateG4e::m_extHits
StoreArray< ExtHit > m_extHits
Ext hits.
Definition: TrackExtrapolateG4e.h:450
Belle2::TrackExtrapolateG4e::getInstance
static TrackExtrapolateG4e * getInstance()
Get the singleton's address.
Definition: TrackExtrapolateG4e.cc:74
Belle2::TrackExtrapolateG4e::endRun
void endRun(bool flag)
Perform end-of-run actions.
Definition: TrackExtrapolateG4e.cc:396
Belle2::TrackExtrapolateG4e::m_BarrelZStripVariance
double m_BarrelZStripVariance[BKLMElementNumbers::getMaximalLayerNumber()+1]
BKLM RPC z-measuring strip position variance (cm^2) by layer.
Definition: TrackExtrapolateG4e.h:386
Belle2::TrackExtrapolateG4e::adjustIntersection
void adjustIntersection(Intersection &, const double *, const G4ThreeVector &, const G4ThreeVector &)
Nudge the track using the matching hit.
Definition: TrackExtrapolateG4e.cc:1625
Belle2::TrackExtrapolateG4e::m_BarrelSectorPerp
G4ThreeVector m_BarrelSectorPerp[BKLMElementNumbers::getMaximalSectorNumber()+1]
normal unit vector of each barrel sector
Definition: TrackExtrapolateG4e.h:396
Belle2::TrackExtrapolateG4e::m_BarrelHalfLength
double m_BarrelHalfLength
half-length (cm) of the barrel
Definition: TrackExtrapolateG4e.h:377
Belle2::Intersection::positionAtHitPlane
G4ThreeVector positionAtHitPlane
extrapolated-track position (cm) projected to the 2D hit's midplane
Definition: TrackExtrapolateG4e.h:147
Belle2::TrackExtrapolateG4e::m_DefaultHypotheses
std::vector< Const::ChargedStable > * m_DefaultHypotheses
Default ChargedStable hypotheses (needed as call argument but not used)
Definition: TrackExtrapolateG4e.h:347
Belle2::Intersection::isForward
bool isForward
flag to indicate if this point is in the forward (true) or backward (false) end
Definition: TrackExtrapolateG4e.h:135
Belle2::VOLTYPE_ARICH3
@ VOLTYPE_ARICH3
ARICH HAPD window.
Definition: TrackExtrapolateG4e.h:79
Belle2::TrackExtrapolateG4e::m_EndcapMiddleZ
double m_EndcapMiddleZ
midpoint along z (cm) of the forward endcap from the KLM midpoint
Definition: TrackExtrapolateG4e.h:408
Belle2::TrackExtrapolateG4e::m_BarrelMinR
double m_BarrelMinR
minimum radius (cm) of the barrel
Definition: TrackExtrapolateG4e.h:374
Belle2::Intersection::hit
int hit
index in {B,E}KLMHit2ds of matching hit
Definition: TrackExtrapolateG4e.h:131
Belle2::TrackExtrapolateG4e::initialize
void initialize(double minPt, double minKE, std::vector< Const::ChargedStable > &hypotheses)
Initialize for track extrapolation by the EXT module.
Definition: TrackExtrapolateG4e.cc:138
Belle2::TrackExtrapolateG4e::fromPhasespaceToG4e
void fromPhasespaceToG4e(const G4ThreeVector &, const G4ErrorSymMatrix &, G4ErrorTrajErr &)
Convert the phasespace covariance to geant4e covariance.
Definition: TrackExtrapolateG4e.cc:1141
Belle2::TrackExtrapolateG4e::finishTrack
void finishTrack(const ExtState &, KLMMuidLikelihood *, bool)
Complete muon identification after end of track extrapolation.
Definition: TrackExtrapolateG4e.cc:1774
Belle2::EKLM::TransformDataGlobalAligned
Transformation data (global, aligned): singleton version.
Definition: TransformDataGlobalAligned.h:35
Belle2::TrackExtrapolateG4e::m_MaxKLMTrackClusterDistance
double m_MaxKLMTrackClusterDistance
user-defined maximum distance (mm) between KLMCluster and associated track (for KLID)
Definition: TrackExtrapolateG4e.h:326