LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
DetectorPropertiesData.h
Go to the documentation of this file.
1 #ifndef DETINFO_DETECTORPROPERTIESDATA_H
2 #define DETINFO_DETECTORPROPERTIESDATA_H
3 
5 
6 #include <vector>
7 
8 namespace detinfo {
9  class DetectorProperties;
10 
12  public:
13  explicit DetectorPropertiesData(DetectorProperties const& properties,
14  double x_ticks_coefficient,
15  std::vector<std::vector<std::vector<double>>>&& x_ticks_offsets,
16  std::vector<std::vector<double>>&& drift_direction);
17 
18  double Efield(unsigned int planegap = 0) const;
19 
20  double DriftVelocity(double efield = 0.,
21  double temperature = 0.) const;
22 
24  double BirksCorrection(double dQdX) const;
25  double BirksCorrection(double dQdX, double EField) const;
26  double ModBoxCorrection(double dQdX) const;
27  double ModBoxCorrection(double dQdX, double EField) const;
28 
29  double ElectronLifetime() const;
30 
41  double Density(double temperature = 0.) const;
42 
44  double Temperature() const;
45 
60  double Eloss(double mom, double mass, double tcut) const;
61 
70  double ElossVar(double mom, double mass) const;
71 
72  double ElectronsToADC() const;
73  unsigned int NumberTimeSamples() const;
74  unsigned int ReadOutWindowSize() const;
75  double TimeOffsetU() const;
76  double TimeOffsetV() const;
77  double TimeOffsetZ() const;
78  double TimeOffsetY() const;
79 
80  double ConvertXToTicks(double X, int p, int t, int c) const;
81  double ConvertXToTicks(double X, geo::PlaneID const& planeid) const;
82 
83  double ConvertTicksToX(double ticks, int p, int t, int c) const;
84  double ConvertTicksToX(double ticks, geo::PlaneID const& planeid) const;
85 
86  double GetXTicksOffset(int p, int t, int c) const;
87  double GetXTicksOffset(geo::PlaneID const& planeid) const;
88 
89  double GetXTicksCoefficient(int t, int c) const;
90  double GetXTicksCoefficient(geo::TPCID const& tpcid) const;
91  double GetXTicksCoefficient() const;
92 
93  bool SimpleBoundary() const;
94 
95  private:
97  double const fXTicksCoefficient;
98  std::vector<std::vector<std::vector<double>>> const fXTicksOffsets;
99  std::vector<std::vector<double>> const fDriftDirection;
100  }; // class DetectorPropertiesStandard
101 } // namespace detinfo
102 
103 #endif // DETINFO_DETECTOR_PROPERTIES_H
double ElossVar(double mom, double mass) const
Energy loss fluctuation ( )
std::vector< std::vector< std::vector< double > > > const fXTicksOffsets
double GetXTicksOffset(int p, int t, int c) const
The data type to uniquely identify a Plane.
Definition: geo_types.h:463
double Temperature() const
In kelvin.
double ModBoxCorrection(double dQdX) const
tick ticks
Alias for common language habits.
Definition: electronics.h:76
double Efield(unsigned int planegap=0) const
kV/cm
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
Definition: DumpUtils.h:289
double ConvertXToTicks(double X, int p, int t, int c) const
double Density(double temperature=0.) const
Returns argon density at a given temperature.
detinfo::DetectorProperties const & fProperties
General LArSoft Utilities.
double DriftVelocity(double efield=0., double temperature=0.) const
cm/us
The data type to uniquely identify a TPC.
Definition: geo_types.h:381
Definition of data types for geometry description.
double Eloss(double mom, double mass, double tcut) const
Restricted mean energy loss (dE/dx)
double ConvertTicksToX(double ticks, int p, int t, int c) const
double BirksCorrection(double dQdX) const
dQ/dX in electrons/cm, returns dE/dX in MeV/cm.
DetectorPropertiesData(DetectorProperties const &properties, double x_ticks_coefficient, std::vector< std::vector< std::vector< double >>> &&x_ticks_offsets, std::vector< std::vector< double >> &&drift_direction)
std::vector< std::vector< double > > const fDriftDirection
Float_t X
Definition: plot.C:37