Belle II Software development
CDCMCHitLookUp.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#pragma once
9
10#include <tracking/trackFindingCDC/mclookup/ITrackType.h>
11#include <tracking/trackingUtilities/numerics/ERightLeft.h>
12#include <tracking/trackingUtilities/numerics/Index.h>
13
14namespace Belle2 {
19 class MCParticle;
20 class CDCSimHit;
21 class CDCHit;
22
23 namespace TrackingUtilities {
24 class Vector3D;
25 class Vector2D;
26 }
27 namespace TrackFindingCDC {
28
30
33
34 public:
36 static const CDCMCHitLookUp& getInstance();
37
39 CDCMCHitLookUp() = default;
40
43
46
48 void fill() const;
49
50 public:
52 const Belle2::CDCSimHit* getSimHit(const CDCHit* ptrHit) const;
53
55 const Belle2::MCParticle* getMCParticle(const CDCHit* ptrHit) const;
56
57
59 const TrackingUtilities::Vector2D getRefPos2D(const CDCHit* ptrHit) const;
60
62 float getRefDriftLength(const CDCHit* ptrHit) const;
63
65 const TrackingUtilities::Vector3D getRecoPos3D(const CDCHit* ptrHit) const;
66
69
70 public:
72 bool isReassignedSecondary(const CDCHit* ptrHit) const;
73
75 const CDCSimHit* getClosestPrimarySimHit(const CDCHit* ptrHit) const;
76
78 ITrackType getMCTrackId(const CDCHit* ptrHit) const;
79
81 bool isBackground(const CDCHit* ptrHit) const;
82
84 TrackingUtilities::Index getInTrackId(const CDCHit* ptrHit) const;
85
87 TrackingUtilities::Index getInTrackSegmentId(const CDCHit* ptrHit) const;
88
90 TrackingUtilities::Index getNPassedSuperLayers(const CDCHit* ptrHit) const;
91
93 TrackingUtilities::Index getNLoops(const CDCHit* ptrHit) const;
94
96 TrackingUtilities::ERightLeft getRLInfo(const CDCHit* ptrHit) const;
97 };
98 }
100}
Class containing the result of the unpacker in raw data and the result of the digitizer in simulation...
Definition CDCHit.h:40
Example Detector.
Definition CDCSimHit.h:21
A Class to store the Monte Carlo particle information.
Definition MCParticle.h:32
TrackingUtilities::Index getNPassedSuperLayers(const CDCHit *ptrHit) const
Returns the number of superlayers the track traversed until this hit.
const TrackingUtilities::Vector3D getClosestPrimaryRecoPos3D(const CDCHit *ptrHit) const
Getter for the three dimensional position of the ionisation of the primary simulated hit for the hit.
void fill() const
Method for forwarding a request to fill the Monte Carlo lookup tables from Python.
bool isReassignedSecondary(const CDCHit *ptrHit) const
Indicates if the hit was reassigned to a different mc particle because it was caused by a secondary.
float getRefDriftLength(const CDCHit *ptrHit) const
Getter for the reference drift length in the two dimensional projection.
CDCMCHitLookUp()=default
Default constructor, needs to be public for initialization in CDCMCManager.
const CDCSimHit * getClosestPrimarySimHit(const CDCHit *ptrHit) const
Getter for the closest simulated hit of a primary particle to the given hit - may return nullptr of n...
CDCMCHitLookUp & operator=(const CDCMCHitLookUp &)=delete
Operator =.
bool isBackground(const CDCHit *ptrHit) const
Returns if this hit is considered background.
TrackingUtilities::Index getInTrackSegmentId(const CDCHit *ptrHit) const
Returns the id of the segment in the track.
TrackingUtilities::Index getNLoops(const CDCHit *ptrHit) const
Returns the number of loops the track traversed until this hit.
const TrackingUtilities::Vector2D getRefPos2D(const CDCHit *ptrHit) const
Getter for the two dimensional reference position of the wire the given hit is located on - mainly fo...
ITrackType getMCTrackId(const CDCHit *ptrHit) const
Returns the track id for the hit.
const Belle2::MCParticle * getMCParticle(const CDCHit *ptrHit) const
Getter for the MCParticle which is related to the CDCHit contained in the given wire hit.
const Belle2::CDCSimHit * getSimHit(const CDCHit *ptrHit) const
Getter for the CDCSimHit which is related to the CDCHit contained in the given wire hit.
TrackingUtilities::Index getInTrackId(const CDCHit *ptrHit) const
Returns the position of the wire hit in the track along the travel direction.
CDCMCHitLookUp(CDCMCHitLookUp &)=delete
Singleton: Delete copy constructor and assignment operator.
static const CDCMCHitLookUp & getInstance()
Getter for the singletone instance.
TrackingUtilities::ERightLeft getRLInfo(const CDCHit *ptrHit) const
Returns the true right left passage information.
const TrackingUtilities::Vector3D getRecoPos3D(const CDCHit *ptrHit) const
Getter for the three dimensional position of the primary ionisation for the hit.
A two dimensional vector which is equipped with functions for correct handling of orientation relate...
Definition Vector2D.h:36
A three dimensional vector.
Definition Vector3D.h:34
Abstract base class for different kinds of events.