ScintillatorLDFFinderKG/VLDF.h
Go to the documentation of this file.
1 #ifndef _ScintillatorLDFFinderKG_VLDF_h_
2 #define _ScintillatorLDFFinderKG_VLDF_h_
3 
4 #include <vector>
5 
6 
7 namespace ScintillatorLDFFinderKG {
8 
9  class LDF;
10 
11  class VLDF {
12 
13  public:
14  VLDF(const double refDistance, const unsigned int shapeSize, const unsigned int betaSize) :
15  fReferenceDistance(refDistance),
16  fShapeModelVector(shapeSize),
18  { }
19 
20  virtual ~VLDF() { }
21 
22  virtual double Value(const double r, const std::vector<double>& shape) const = 0;
23  virtual double FirstDerivative(const double r, const std::vector<double>& shape) const = 0;
24  virtual double SecondDerivative(const double r, const std::vector<double>& shape) const = 0;
25  virtual std::vector<double> ShapeModel(const double cosTheta, double showerSize) const = 0;
26  virtual double BetaUncertainty(const double showerSize) const = 0;
27  virtual unsigned int GetNShapeParameters() const = 0;
28 
29  protected:
30  const double fReferenceDistance;
31  std::vector<double> fShapeModelVector;
32  std::vector<double> fBetaUncertaintyModelVector;
33 
34  friend class LDF;
35 
36  };
37 
38 }
39 
40 
41 #endif
VLDF(const double refDistance, const unsigned int shapeSize, const unsigned int betaSize)
virtual std::vector< double > ShapeModel(const double cosTheta, double showerSize) const =0
virtual unsigned int GetNShapeParameters() const =0
virtual double BetaUncertainty(const double showerSize) const =0
virtual double FirstDerivative(const double r, const std::vector< double > &shape) const =0
std::vector< double > fBetaUncertaintyModelVector
virtual double Value(const double r, const std::vector< double > &shape) const =0
virtual double SecondDerivative(const double r, const std::vector< double > &shape) const =0

, generated on Tue Sep 26 2023.