1 #ifndef PROPAGATIONTIMEMODEL_H 2 #define PROPAGATIONTIMEMODEL_H 19 #include "CLHEP/Random/RandFlat.h" 35 CLHEP::HepRandomEngine& ScintTimeEngine,
36 bool doReflectedLight =
false,
37 bool GeoPropTimeOnly =
false);
43 bool Reflected =
false);
52 const double distance_in_cm,
53 const size_t angle_bin);
56 const double distance_in_cm);
59 const size_t angle_bin);
63 const TVector3 &ScintPoint,
64 const TVector3 &OpDetPoint);
69 double interpolate(
const std::vector<double>& xData,
70 const std::vector<double>& yData,
76 const std::vector<double>& xData,
77 const std::vector<double>& yData1,
78 const std::vector<double>& yData2,
79 const std::vector<double>& yData3,
83 static double finter_d(
const double* x,
const double* par);
85 static double model_close(
const double* x,
const double* par);
87 static double model_far(
const double* x,
const double* par);
127 std::vector<std::vector<std::vector<double>>>
ftau_pars;
Index OpChannel(Index detNum, Index channel)
double fangle_bin_timing_vuv
void propagationTime(std::vector< double > &arrival_time_dist, geo::Point_t const &x0, const size_t OpChannel, bool Reflected=false)
fhicl::ParameterSet fVISTimingParams
CLHEP::HepRandomEngine & fScintTimeEngine
void getVUVTimes(std::vector< double > &arrivalTimes, const double distance_in_cm, const size_t angle_bin)
double fangle_bin_timing_vis
std::vector< std::vector< double > > VUV_max
PropagationTimeModel(fhicl::ParameterSet VUVTimingParams, fhicl::ParameterSet VISTimingParams, CLHEP::HepRandomEngine &ScintTimeEngine, bool doReflectedLight=false, bool GeoPropTimeOnly=false)
static double model_close(const double *x, const double *par)
void getVISTimes(std::vector< double > &arrivalTimes, const TVector3 &ScintPoint, const TVector3 &OpDetPoint)
static double finter_d(const double *x, const double *par)
std::vector< geo::Point_t > fOpDetCenter
void interpolate3(std::array< double, 3 > &inter, const std::vector< double > &xData, const std::vector< double > &yData1, const std::vector< double > &yData2, const std::vector< double > &yData3, double x, bool extrapolate)
double interpolate(const std::vector< double > &xData, const std::vector< double > &yData, double x, bool extrapolate, size_t i=0) const
std::vector< std::vector< std::vector< double > > > ftau_pars
std::vector< double > fradial_distances_refl
static double model_far(const double *x, const double *par)
std::vector< geo::BoxBoundedGeo > fActiveVolumes
double finflexion_point_distance
double fast_acos(double x) const
std::vector< int > fOpDetOrientation
std::vector< std::vector< TF1 > > VUV_timing
fhicl::ParameterSet fVUVTimingParams
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space.
void getVUVTimesGeo(std::vector< double > &arrivalTimes, const double distance_in_cm)
std::vector< std::vector< double > > fparameters[7]
std::vector< std::vector< double > > VUV_min
std::vector< std::vector< std::vector< double > > > fcut_off_pars
std::vector< double > fdistances_refl
void generateParam(const size_t index, const size_t angle_bin)