17#include <TGeoVolume.h>
18#include <TGeoMaterial.h>
19#include <TGeoMedium.h>
31 for (
int i=0; i<3; ++i) {
66 for ( ; srs_itr != srs_end; ++srs_itr ) {
67 Double_t slo = srs_itr->first;
68 Double_t shi = srs_itr->second;
75 bool nonzerostep = ( step1.first != step1.second );
77 modifiedStepRangeSet.push_back(step1);
79 modifiedStepRangeSet.push_back(step2);
102 LOG(
"GeomVolSel",
pFATAL) <<
"no shape defined";
134 for (
int j = 0; j < 3; ++j ) {
147 for (
int j = 0; j < 3; ++j ) {
156 for (
int j = 0; j < 3; ++j ) {
167 double energy =
fP4.Energy();
168 double boxXYZMin[3], boxXYZMax[3];
169 for (
int j = 0; j < 3; ++j ) {
170 double dmin = 0, dmax = 0;
172 if ( dircos > 0 ) dmin = dircos*energy/
fDeDx;
173 else dmax = -dircos*energy/
fDeDx;
177 cout <<
"MakeRockBox [" << j <<
"] wall " <<
fMinimumWall
178 <<
" dm " << dmin <<
" " << dmax <<
" dircos " << dircos
179 <<
" e " << energy <<
" dedx " <<
fDeDx << endl;
204 static bool first =
true;
206 cout <<
"MakeRockBox first Minimal min ["
214 cout <<
"MakeRockBox first Inclusion min ["
224 cout <<
"MakeRockBox this ray using min ["
225 << boxXYZMin[0] <<
","
226 << boxXYZMin[1] <<
","
227 << boxXYZMin[2] <<
"]"
229 << boxXYZMax[0] <<
","
230 << boxXYZMax[1] <<
","
231 << boxXYZMax[2] <<
"]" << endl;
239 cout <<
"fid after: " << *
fShape << endl;
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE,...
void push_back(const PlaneParam &pln)
void TrimSegment(PathSegment &segment) const
const PathSegmentList * fCurrPathSegmentList
shape
GeomVolSelectorFiducial()
FidShape * fShape
select for "outside" fiducial?
virtual void ConvertShapeMaster2Top(const ROOTGeomAnalyzer *rgeom)
static Bool_t NewStepPairs(Bool_t selectReverse, Double_t raydist, Double_t slo, Double_t shi, const RayIntercept &intercept, Bool_t &split, StepRange &step1, StepRange &step2)
void SetReverseFiducial(Bool_t reverse=true)
void BeginPSList(const PathSegmentList *untrimmed) const
void MakeBox(Double_t *xyzmin, Double_t *xyzmax)
bool fRemoveEntries
whether selector should remove entries or set hi=lo
TLorentzVector fP4
current neutrino ray's momentum (global)
std::string fName
volume selector name
void SetRockBoxInclusion(Double_t *xyzmin, Double_t *xyzmax)
Double_t fMinimalXYZMin[3]
Bool_t fExpandInclusion
how to scale from energy to distance
RayIntercept fInterceptRock
FidShape * fRockBoxShape
expand from minimal or inclusion box?
Double_t fInclusionXYZMax[3]
box within which events are always
void SetMinimumWall(Double_t w)
Double_t fInclusionXYZMin[3]
minimum distance around (XYZmin,XYZmax)
Double_t fMinimalXYZMax[3]
interior box lower corner
Double_t fMinimumWall
interior box upper corner
virtual ~GeomVolSelectorRockBox()
void TrimSegment(PathSegment &segment) const
void BeginPSList(const PathSegmentList *untrimmed) const
virtual void ConvertShapeMaster2Top(const ROOTGeomAnalyzer *rgeom)
void SetRockBoxMinimal(Double_t *xyzmin, Double_t *xyzmax)
const ROOTGeomAnalyzer * fROOTGeom
shape changes for every nu ray
Object to be filled with the neutrino path-segments representing geometry volume steps (generally bou...
StepRangeSet fStepRangeSet
collection of {steplo,stephi} pairs
Double_t fRayDist
distance from start of ray
A ROOT/GEANT4 geometry driver.
std::pair< Double_t, Double_t > StepRange
std::vector< StepRange > StepRangeSet
THE MAIN GENIE PROJECT NAMESPACE