LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
ScintTimeLAr.h
Go to the documentation of this file.
1 // Class: ScintTimeLAr
3 // Plugin Type: tool
4 // File: ScintTimeLAr_tool.cc ScintTimeLAr.h
5 // Description:
6 // Generate a random number for timing of LAr scintillation
7 // Oct. 8 by Mu Wei
9 #ifndef ScintTimeLAr_H
10 #define ScintTimeLAr_H
11 
12 // Random number engine
13 #include "CLHEP/Random/RandFlat.h"
14 
16 
17 #include <memory>
18 
19 namespace fhicl {
20  class ParameterSet;
21 }
22 
23 namespace phot {
24  class ScintTimeLAr : public ScintTime {
25  public:
26  explicit ScintTimeLAr(fhicl::ParameterSet const& pset);
27  void initRand(CLHEP::HepRandomEngine& engine);
28  void GenScintTime(bool is_fast, CLHEP::HepRandomEngine& engine);
29  double fastScintTime();
30  double slowScintTime();
31 
32  private:
33  int LogLevel;
34  std::unique_ptr<CLHEP::RandFlat> fUniformGen;
35  // parameters for the shape of argon scintillation light time distribution
36  const double SRTime; // PureLAr: rising time of slow LAr scintillation;
37  const double SDTime; // PureLAr: decay time of slow LAr scintillation;
38  const double FRTime; // PureLAr: rising time of fast LAr scintillation;
39  const double FDTime; // PureLAr: decay time of fast LAr scintillation;
40  const bool fNoFastRisingTime, fNoSlowRisingTime;
41 
42  // general functions
43  double single_exp(double t, double tau2) const;
44  double bi_exp(double t, double tau1, double tau2) const;
45  double with_rising_time(double tau1, double tau2);
46  };
47 }
48 #endif
const bool fNoSlowRisingTime
Definition: ScintTimeLAr.h:40
parameter set interface
std::unique_ptr< CLHEP::RandFlat > fUniformGen
Definition: ScintTimeLAr.h:34
const double SRTime
Definition: ScintTimeLAr.h:36
General LArSoft Utilities.
const double FDTime
Definition: ScintTimeLAr.h:39
const double FRTime
Definition: ScintTimeLAr.h:38
const double SDTime
Definition: ScintTimeLAr.h:37