8#include <tracking/trackFindingCDC/mclookup/CDCMCHitLookUp.h>
10#include <tracking/trackFindingCDC/mclookup/CDCSimHitLookUp.h>
11#include <tracking/trackFindingCDC/mclookup/CDCMCTrackStore.h>
12#include <tracking/trackFindingCDC/mclookup/CDCMCMap.h>
13#include <tracking/trackFindingCDC/mclookup/CDCMCManager.h>
15#include <tracking/trackFindingCDC/eventdata/hits/CDCWireHit.h>
17#include <tracking/trackFindingCDC/topology/CDCWire.h>
19#include <tracking/trackFindingCDC/geometry/Vector3D.h>
20#include <tracking/trackFindingCDC/geometry/Vector2D.h>
22#include <cdc/dataobjects/CDCHit.h>
23#include <cdc/dataobjects/CDCSimHit.h>
24#include <mdst/dataobjects/MCParticle.h>
27using namespace TrackFindingCDC;
57 const CDCHit& hit = *ptrHit;
62 B2WARNING(
"Encountered CDCHit with wire ids that do not correspond to a valid wire in the CDC)");
75 if (not ptrHit)
return NAN;
123 return ptrMCParticle ? ptrMCParticle->
getArrayIndex() : INVALID_ITRACK;
Class containing the result of the unpacker in raw data and the result of the digitizer in simulation...
A Class to store the Monte Carlo particle information.
int getArrayIndex() const
Get 0-based index of the particle in the corresponding MCParticle list.
virtual unsigned short getBackgroundTag() const
Get background tag.
Interface class to the Monte Carlo information for individual hits.
Index getNPassedSuperLayers(const CDCHit *ptrHit) const
Returns the number of superlayers the track traversed until this hit.
const 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.
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...
bool isBackground(const CDCHit *ptrHit) const
Returns if this hit is considered background.
Index getInTrackSegmentId(const CDCHit *ptrHit) const
Returns the id of the segment in the track.
Index getNLoops(const CDCHit *ptrHit) const
Returns the number of loops the track traversed until this hit.
const 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.
Index getInTrackId(const CDCHit *ptrHit) const
Returns the position of the wire hit in the track along the travel direction.
static const CDCMCHitLookUp & getInstance()
Getter for the singletone instance.
ERightLeft getRLInfo(const CDCHit *ptrHit) const
Returns the true right left passage information.
const Vector3D getRecoPos3D(const CDCHit *ptrHit) const
Getter for the three dimensional position of the primary ionisation for the hit.
static const CDCSimHitLookUp & getSimHitLookUp()
Getter for the singleton instance of the CDCSimHitLookUp.
static const CDCMCHitLookUp & getMCHitLookUp()
Getter for the singleton instance of the CDCMCHitLookUp.
static const CDCMCTrackStore & getMCTrackStore()
Getter for the singleton instance of the CDCMCTrackStore.
static const CDCMCMap & getMCMap()
Getter for the singleton instance of the CDCMCMap.
void fill()
Fill Monte Carlo look up maps from the DataStore.
static CDCMCManager & getInstance()
Getter for the singleton instance.
MayBePtr< const CDCSimHit > getSimHit(const CDCHit *hit) const
Seeks the CDCSimHit related to the CDCHit.
MayBePtr< const MCParticle > getMCParticle(const CDCHit *hit) const
Seeks the MCParticle related to the CDCHit.
bool isReassignedSecondary(const CDCSimHit *ptrSimHit) const
Indicates if the CDCSimHit has been reassigned to a primary MCParticle.
Index getNPassedSuperLayers(const CDCHit *ptrHit) const
Getter for the number of super layers traversed until this hit.
Index getInTrackSegmentId(const CDCHit *ptrHit) const
Getter for the index of the segment of the hit within its track.
Index getNLoops(const CDCHit *ptrHit) const
Getter for the number of traversed loops until this hit.
Index getInTrackId(const CDCHit *ptrHit) const
Getter for the index of the hit within its track.
Vector3D getRecoPos3D(const CDCHit *ptrHit) const
Look up the position of the primary ionisation from related simulated hit.
MayBePtr< const CDCSimHit > getClosestPrimarySimHit(const CDCSimHit *ptrSimHit) const
Helper function to find the closest primary hit for the given CDCSimHit from the same MCParticle - nu...
ERightLeft getRLInfo(const CDCHit *ptrHit) const
Look up the Monte Carlo right left passage information for the given hit.
Vector3D getClosestPrimaryRecoPos3D(const CDCHit *ptrHit) const
Look up the position of the primary ionisation from the closest primary simulated hit.
Class representing a hit wire in the central drift chamber.
double getRefDriftLength() const
Getter for the drift length at the reference position of the wire.
Class representing a sense wire in the central drift chamber.
static const CDCWire * getInstance(const WireID &wireID)
Getter from the wireID convenience object. Does not construct a new object.
const Vector2D & getRefPos2D() const
Getter for the wire reference position for 2D tracking Gives the wire's reference position projected ...
A two dimensional vector which is equipped with functions for correct handling of orientation relate...
A three dimensional vector.
ERightLeft
Enumeration to represent the distinct possibilities of the right left passage.
Abstract base class for different kinds of events.