11 #include <framework/core/Module.h>
12 #include <framework/datastore/StoreObjPtr.h>
13 #include <framework/dataobjects/EventMetaData.h>
14 #include <framework/logging/LogConfig.h>
15 #include <analysis/dataobjects/Particle.h>
16 #include <analysis/dataobjects/ParticleList.h>
17 #include <analysis/VariableManager/Manager.h>
18 #include <analysis/VariableManager/Utility.h>
41 DetSurfCylBoundaries(
float rho,
float zfwd,
float zbwd,
float th_fwd,
float th_fwd_brl,
float th_bwd_brl,
float th_bwd)
93 void event()
override;
static const ParticleSet chargedStableSet
set of charged stable particles
static const ParticleType invalidParticle
Invalid particle, used internally.
Simple class to encapsulate a detector inner surface's boundaries in cylindrical coordinates.
DetSurfCylBoundaries()
Default constructor.
DetSurfCylBoundaries(float rho, float zfwd, float zbwd, float th_fwd, float th_fwd_brl, float th_bwd_brl, float th_bwd)
Constructor with parameters.
float m_zfwd
Inner surface z fwd [cm].
float m_th_fwd_brl
fwd/barrel separation theta [rad]
float m_th_fwd
Lower theta edge of fwd region [rad].
float m_th_bwd_brl
bwd/barrel separation theta [rad]
float m_zbwd
Inner surface z bwd [cm].
float m_rho
Inner surface radius [cm].
float m_th_bwd
Upper theta edge of bwd region [rad].
Class to store reconstructed particles.
Type-safe access to single objects in the data store.
Calculate track isolation variables on the input ParticleList.
std::unordered_map< std::string, DetSurfCylBoundaries > m_detSurfBoundaries
Map that associates to each detector its innermost layer's boundaries.
StoreObjPtr< EventMetaData > m_event_metadata
The event information.
~TrackIsoCalculatorModule() override
Destructor, use this to clean up anything you created in the constructor.
bool m_use2DRhoPhiDist
If true, will calculate the pair-wise track distance as the cord length on the (rho,...
void initialize() override
Use this to initialize resources or memory your module needs.
double get2DRhoPhiDistAsChordLength(Particle *iParticle, Particle *jParticle)
Calculate the 2D distance between the points where the two input extraplolated track helices cross th...
void event() override
Called once for each event.
std::string m_detInnerSurface
The name of the detector at whose innermost layer we extrapolate each track's polar and azimuthal ang...
void terminate() override
Module terminate().
double get3DDistAtDetSurface(Particle *iParticle, Particle *jParticle)
Calculate the 3D distance between the points where the two input extraplolated track helices cross th...
std::string m_pListName
The name of the input ParticleList.
void printDistancesArr(const std::vector< std::vector< double >> &arr, int size)
Print 2D array of pair-wise distances.
TrackIsoCalculatorModule()
Constructor: Sets the description, the properties and the parameters of the module.
std::string m_extraInfoName
The name of the distance variable to be added to each particle as extraInfo.
bool isStdChargedList()
Check whether input particle list is of a valid charged stable particle.
StoreObjPtr< ParticleList > m_pList
The input ParticleList object.
Abstract base class for different kinds of events.