25 #ifndef _ROOT_GEOMETRY_ANALYZER_H_ 26 #define _ROOT_GEOMETRY_ANALYZER_H_ 31 #include <TGeoManager.h> 51 class PathSegmentList;
52 class GeomVolSelectorI;
68 const TLorentzVector &
p);
70 const TLorentzVector & p,
int tgtpdg);
105 virtual void Local2SI (TVector3 & v)
const;
106 virtual void SI2Local (TVector3 & v)
const;
122 virtual void Load (
string geometry_filename);
123 virtual void Load (TGeoManager * gm);
127 virtual int GetTargetPdgCode (
const TGeoMixture *
const m,
int ielement)
const;
128 virtual double GetWeight (
const TGeoMaterial * mat,
int pdgc);
129 virtual double GetWeight (
const TGeoMixture * mixt,
int pdgc);
130 virtual double GetWeight (
const TGeoMixture * mixt,
int ielement,
int pdgc);
134 virtual bool GenBoxRay (
int indx, TLorentzVector& x4, TLorentzVector& p4);
137 virtual void SwimOnce (
const TVector3 & r,
const TVector3 & udir);
142 virtual double Step (
void);
187 #endif // _ROOT_GEOMETRY_ANALYZER_H_ virtual int ScannerNParticles(void) const
virtual void SetMaxPlSafetyFactor(double sf)
TGeoManager * fGeometry
input detector geometry
virtual double StepUntilEntering(void)
virtual GeomVolSelectorI * AdoptGeomVolSelector(GeomVolSelectorI *selector)
configure processing to perform path segment trimming
virtual double GetWeight(const TGeoMaterial *mat, int pdgc)
virtual void MaxPathLengthsFluxMethod(void)
virtual bool WeightWithDensity(void) const
virtual const PathLengthList & ComputeMaxPathLengths(void)
THE MAIN GENIE PROJECT NAMESPACE
virtual void CleanUp(void)
virtual void SetDebugFlags(int flgs)
bool fDensWeight
if true pathlengths are weighted with density [def:true]
virtual const PathLengthList & GetMaxPathLengths(void) const
virtual double StepToNextBoundary(void)
GFluxI * fFlux
a flux objects that can be used to scan the max path lengths
virtual void Top2Master(TVector3 &v) const
double fLengthScale
conversion factor: input geometry length units -> meters
Object to be filled with the neutrino path-segments representing geometry volume steps (generally bou...
virtual int ScannerNPoints(void) const
retrieve geometry driver's configuration options
int fNRays
max path length scanner (box method): rays/point [def:200]
TVector3 * fCurrVertex
current generated vertex
double fMaxPlSafetyFactor
factor that can multiply the computed max path lengths
GENIE Interface for user-defined volume selector functors.
virtual void SetScannerNParticles(int np)
string fTopVolumeName
input top vol [other than TGeoManager::GetTopVolume()]
virtual void SetDensityUnits(double du)
virtual const PDGCodeList & ListOfTargetNuclei(void)
implement the GeomAnalyzerI interface
virtual bool FindMaterialInCurrentVol(int pdgc)
virtual double MixtureWeightsSum(void) const
virtual double Step(void)
virtual const PathLengthList & ComputePathLengths(const TLorentzVector &x, const TLorentzVector &p)
int fMaterial
input selected material for vertex generation
Object to be filled with the neutrino path-length, for all detector geometry materials, when starting from a position x and travelling along the direction of the neutrino 4-momentum.
virtual int GetTargetPdgCode(const TGeoMaterial *const m) const
double foz
top vol size/origin (top vol units)
double fDensityScale
conversion factor: input geometry density units -> kgr/meters^3
virtual void MaxPathLengthsBoxMethod(void)
int fNPoints
max path length scanner (box method): points/surface [def:200]
void swap(Handle< T > &a, Handle< T > &b)
virtual bool GenBoxRay(int indx, TLorentzVector &x4, TLorentzVector &p4)
virtual double LengthUnits(void) const
virtual void SetScannerNRays(int nr)
PDGCodeList * fCurrPDGCodeList
current list of target nuclei
virtual void SetWeightWithDensity(bool wt)
PathSegmentList * fCurrPathSegmentList
current list of path-segments
PathLengthList * fCurrMaxPathLengthList
current list of max path-lengths
A ROOT/GEANT4 geometry driver.
virtual void Load(string geometry_filename)
virtual double ComputePathLengthPDG(const TVector3 &r, const TVector3 &udir, int pdgc)
virtual void Local2SI(PathLengthList &pl) const
access to geometry coordinate/unit transforms for validation/test purposes
GeomVolSelectorI * fGeomVolSelector
optional path seg trimmer (owned)
double fmxdstep
max errors in pathsegmentlist
virtual double DensityUnits(void) const
virtual void Initialize(void)
virtual void Master2TopDir(TVector3 &v) const
virtual string TopVolName(void) const
virtual const TVector3 & GenerateVertex(const TLorentzVector &x, const TLorentzVector &p, int tgtpdg)
PathLengthList * fCurrPathLengthList
current list of path-lengths
virtual void SetTopVolName(string nm)
virtual bool GetKeepSegPath(void) const
TGeoHMatrix * fMasterToTop
matrix connecting master coordinates to top volume coordinates
bool fMasterToTopIsIdentity
is fMasterToTop matrix the identity matrix?
int fNParticles
max path length scanner (flux method): particles in [def:10000]
virtual void SetScannerNPoints(int np)
set geometry driver's configuration options
virtual void SetKeepSegPath(bool keep)
virtual void SetScannerFlux(GFluxI *f)
virtual void SetMixtureWeightsSum(double sum)
TGeoVolume * fTopVolume
top volume
virtual double MaxPlSafetyFactor(void) const
virtual void SetLengthUnits(double lu)
virtual void Top2MasterDir(TVector3 &v) const
double fMixtWghtSum
norm of relative weights (<0 if explicit summing required)
Defines the GENIE Geometry Analyzer Interface.
virtual void BuildListOfTargetNuclei(void)
virtual void SI2Local(TVector3 &v) const
bool fKeepSegPath
need to fill path segment "path"
virtual void SwimOnce(const TVector3 &r, const TVector3 &udir)
virtual void Master2Top(TVector3 &v) const
virtual TGeoManager * GetGeometry(void) const
virtual int ScannerNRays(void) const
virtual bool WillNeverEnter(double step)
GENIE Interface for user-defined flux classes.