18 #ifndef _HNL_DECAY_VOLUME_H_
19 #define _HNL_DECAY_VOLUME_H_
26 #include <TGeoManager.h>
27 #include <TGeoVolume.h>
73 #ifdef __GENIE_GEOM_DRIVERS_ENABLED__
75 void ImportBoundingBox( TGeoBBox * box )
const;
76 #endif // #ifdef __GENIE_GEOM_DRIVERS_ENABLED__
85 void GetInterestingPoints( TVector3 & entryPoint, TVector3 & exitPoint, TVector3 & decayPoint )
const;
91 void EnforceUnits( std::string length_units, std::string angle_units, std::string time_units )
const;
97 TVector3
GetDecayPoint(
double travelLength, TVector3 & entryPoint, TVector3 & momentum )
const;
100 double GetMaxLength( TVector3 & entryPoint, TVector3 & exitPoint )
const;
109 TVector3 & entryPoint,
110 TVector3 & exitPoint )
const;
116 #ifdef __GENIE_GEOM_DRIVERS_ENABLED__
119 bool VolumeEntryAndExitPoints( TVector3 & startPoint, TVector3 & momentum,
120 TVector3 & entryPoint, TVector3 & exitPoint,
121 TGeoManager * gm, TGeoVolume * vol )
const;
122 #endif // #ifdef __GENIE_GEOM_DRIVERS_ENABLED__
125 TVector3
ApplyUserRotation( TVector3 vec, TVector3 oriVec, std::vector<double> rotVec,
bool doBackwards )
const;
127 std::string
CheckGeomPoint( Double_t x, Double_t y, Double_t z )
const;
177 #endif // #ifndef _HNL_DECAY_VOLUME_H_
bool SDVEntryAndExitPoints(TVector3 &startPoint, TVector3 momentum, TVector3 &entryPoint, TVector3 &exitPoint) const
static constexpr double rad
std::vector< double > fDetRotation
Heavy Neutral Lepton decay vertex generator given production vertex and momentum ***.
static constexpr double s
static constexpr double ns
TGeoManager * fGeoManager
std::string CheckGeomPoint(Double_t x, Double_t y, Double_t z) const
void Configure(const Registry &config)
Expands the EventRecordVisitorI interface to include public interfaces for the HNL VertexGenerator mo...
void ProcessEventRecord(GHepRecord *event_rec) const
std::vector< double > fDetTranslation
TVector3 ApplyUserRotation(TVector3 vec, bool doBackwards) const
double CalcTravelLength(double betaMag, double CoMLifetime, double maxLength) const
void SetStartingParameters(GHepRecord *event_rec) const
double GetMaxLength(TVector3 &entryPoint, TVector3 &exitPoint) const
std::vector< double > fB2URotation
A registry. Provides the container for algorithm configuration parameters.
std::vector< double > fB2UTranslation
static constexpr double mm
void GetInterestingPoints(TVector3 &entryPoint, TVector3 &exitPoint, TVector3 &decayPoint) const
void EnforceUnits(std::string length_units, std::string angle_units, std::string time_units) const
void SetGeomFile(std::string geomfile) const
static constexpr double kSpeedOfLight
GENIE's GHEP MC event record.
static constexpr double m
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils...
TVector3 GetDecayPoint(double travelLength, TVector3 &entryPoint, TVector3 &momentum) const