11 #ifndef DETINFO_DETECTORPROPERTIESSTD_H 12 #define DETINFO_DETECTORPROPERTIESSTD_H 48 Comment(
"electric field in front of each wire plane (the last one is " 49 "the big one!) [kV/cm]")};
52 Comment(
"electron lifetime in liquid argon [us]")};
55 Name(
"ElectronsToADC"),
56 Comment(
"conversion factor: (ADC counts)/(ionization electrons)")};
58 Name(
"NumberTimeSamples"),
59 Comment(
"number of TPC readout TDC clock ticks per event")};
61 Name(
"ReadOutWindowSize"),
62 Comment(
"number of TPC readout TDC clock ticks per readout window")};
68 Comment(
"tick offset subtracted to to convert spacepoint coordinates " 69 "to hit times on view U")};
72 Comment(
"tick offset subtracted to to convert spacepoint coordinates " 73 "to hit times on view V")};
76 Comment(
"tick offset subtracted to to convert spacepoint coordinates " 77 "to hit times on view Z")};
80 Comment(
"tick offset subtracted to to convert spacepoint coordinates " 81 "to hit times on view Y")};
84 Comment(
"tick offset subtracted to to convert spacepoint coordinates " 85 "to hit times on view X")};
89 Comment(
"parameter a of Sternheimer correction delta = 2log(10) x - " 90 "cbar + { a (x1-x)^k } theta(x1-x), x = log10(p/m)")};
93 Comment(
"parameter k of Sternheimer correction delta = 2log(10) x - " 94 "cbar + { a (x_1-x)^k } theta(x1-x), x = log10(p/m)")};
96 Name(
"SternheimerX0"),
97 Comment(
"minimum x = log10(p/m) for the application of Sternheimer " 100 Name(
"SternheimerX1"),
101 Comment(
"parameter x_1 of Sternheimer correction delta = 2log(10) x - " 102 "cbar + { a (x_1-x)^k } theta(x1-x), x = log10(p/m)")};
104 Name(
"SternheimerCbar"),
105 Comment(
"parameter cbar of Sternheimer correction delta = 2log(10) x - " 106 "cbar + { a (x_1-x)^k } theta(x1-x), x = log10(p/m)")};
108 Name(
"DriftVelFudgeFactor"),
109 Comment(
"Allows a scaling factor to fudge the drift velocity " 110 "calculation (as suggested by DriftVel Stancari")};
113 Name(
"UseIcarusMicrobooneDriftModel"),
114 Comment(
"Allows user to decide to use the ICARUS+MicroBooNE drift " 115 "model for velocity calculation as in arXiv:2008.09765"),
119 Name(
"IncludeInterPlanePitchInXTickOffsets"),
120 Comment(
"Historically, ConvertTicksToX has allowed for the drift time " 121 "between the wire planes. This is appropriate for " 122 "recob::RawDigits, and recob::Wires from the 1D unfolding, " 123 "but is not appropriate for recob::Wires from WireCell. " 124 "When disabled, the conversion propagates to the last plane, " 125 "rather than the first plane and assumes a standard drift velocity. " 126 "The default value is 'true', retaining the 'classic' behaviour"),
133 Comment(
"alpha parameter in the Modified Box recombination model."),
138 Comment(
"beta parameter in the Modified Box recombination model."),
146 std::set<std::string>
const& ignore_params = {});
155 double Efield(
unsigned int planegap = 0)
const override;
158 double temperature = 0.)
const override;
181 double Density(
double temperature = 0.)
const override;
200 double Eloss(
double mom,
double mass,
double tcut)
const override;
210 double ElossVar(
double mom,
double mass)
const override;
235 std::set<std::string>
const& ignore_params);
237 std::string
CheckTimeOffsets(std::set<geo::View_t>
const& requested_views)
const;
294 #endif // DETINFO_DETECTOR_PROPERTIES_H unsigned int ReadOutWindowSize() const override
DetectorPropertiesStandard(fhicl::ParameterSet const &pset, const geo::GeometryCore *geo, const detinfo::LArProperties *lp, std::set< std::string > const &ignore_params={})
const detinfo::LArProperties * fLP
double TimeOffsetU() const override
fhicl::Atom< double > SternheimerK
unsigned int NumberTimeSamples() const override
fhicl::Atom< double > SternheimerA
fhicl::OptionalAtom< double > TimeOffsetY
fhicl::Atom< bool > IncludeInterPlanePitchInXTickOffsets
double fTemperature
kelvin
virtual ~DetectorPropertiesStandard()=default
fhicl::OptionalAtom< double > TimeOffsetV
void ValidateAndConfigure(fhicl::ParameterSet const &p, std::set< std::string > const &ignore_params)
Configures the provider, first validating the configuration.
double ElossVar(double mom, double mass) const override
Energy loss fluctuation ( )
double BirksCorrection(double dQdX) const override
dQ/dX in electrons/cm, returns dE/dX in MeV/cm.
unsigned int fNumberTimeSamples
number of clock ticks per event
std::vector< std::vector< double > > fDriftDirection
fhicl::Atom< double > SternheimerCbar
fhicl::Atom< double > Electronlifetime
double Temperature() const override
In kelvin.
virtual double Density() const
Returns argon density at the temperature from Temperature()
void SetNumberTimeSamples(unsigned int nsamp)
double TimeOffsetZ() const override
fhicl::Atom< double > SternheimerX0
double cbar
parameter Cbar
fhicl::Atom< double > SternheimerX1
fhicl::Atom< double > ModBoxBeta
DetectorPropertiesData DataFor(detinfo::DetectorClocksData const &clock_data) const override
pure virtual base interface for detector clocks
Access the description of detector geometry.
fhicl::Atom< double > Temperature
fhicl::Atom< double > DriftVelFudgeFactor
fhicl::OptionalAtom< double > TimeOffsetZ
fhicl::Atom< bool > SimpleBoundary
bool fIncludeInterPlanePitchInXTickOffsets
constexpr double kModBoxB
Modified Box Beta in g/(MeV cm²)*kV/cm.
SternheimerParameters_t fSternheimerParameters
Sternheimer parameters.
double TimeOffsetY() const override
std::string CheckTimeOffsets(std::set< geo::View_t > const &requested_views) const
fhicl::Atom< unsigned int > NumberTimeSamples
General LArSoft Utilities.
Description of geometry of one entire detector.
Parameters for Sternheimer density effect corrections.
double TimeOffsetV() const override
fhicl::OptionalAtom< double > TimeOffsetX
fhicl::Atom< double > ModBoxAlpha
double ModBoxCorrection(double dQdX) const override
fhicl::Atom< bool > UseIcarusMicrobooneDriftModel
double ElectronLifetime() const override
Returns the attenuation constant for ionization electrons.
double fElectronlifetime
microseconds
Contains all timing reference information for the detector.
Structure for configuration parameters.
unsigned int fReadOutWindowSize
number of clock ticks per readout window
Container for a list of pointers to providers.
std::vector< double > fEfield
kV/cm (per inter-plane volume) !
Data structure containing constant pointers to classes.
fhicl::Atom< unsigned int > ReadOutWindowSize
fhicl::OptionalAtom< double > TimeOffsetU
double DriftVelocity(double efield=0., double temperature=0.) const override
cm/us
bool SimpleBoundary() const override
constexpr double kModBoxA
Modified Box Alpha.
Collection of Physical constants used in LArSoft.
double ElectronsToADC() const override
Namespace collecting geometry-related classes utilities.
fhicl::Sequence< double > Efield
fhicl::Atom< double > ElectronsToADC
const geo::GeometryCore * fGeo
double Eloss(double mom, double mass, double tcut) const override
Restricted mean energy loss (dE/dx)
double fDriftVelFudgeFactor
bool fUseIcarusMicrobooneDriftModel