11 #ifndef DETINFO_DETECTORPROPERTIESSTD_H 12 #define DETINFO_DETECTORPROPERTIESSTD_H 47 Comment(
"electric field in front of each wire plane (the last one is " 48 "the big one!) [kV/cm]")};
51 Comment(
"electron lifetime in liquid argon [us]")};
54 Name(
"ElectronsToADC"),
55 Comment(
"conversion factor: (ADC counts)/(ionization electrons)")};
57 Name(
"NumberTimeSamples"),
58 Comment(
"number of TPC readout TDC clock ticks per event")};
60 Name(
"ReadOutWindowSize"),
61 Comment(
"number of TPC readout TDC clock ticks per readout window")};
67 Comment(
"tick offset subtracted to to convert spacepoint coordinates " 68 "to hit times on view U")};
71 Comment(
"tick offset subtracted to to convert spacepoint coordinates " 72 "to hit times on view V")};
75 Comment(
"tick offset subtracted to to convert spacepoint coordinates " 76 "to hit times on view Z")};
79 Comment(
"tick offset subtracted to to convert spacepoint coordinates " 80 "to hit times on view Y")};
83 Comment(
"tick offset subtracted to to convert spacepoint coordinates " 84 "to hit times on view X")};
88 Comment(
"parameter a of Sternheimer correction delta = 2log(10) x - " 89 "cbar + { a (x1-x)^k } theta(x1-x), x = log10(p/m)")};
92 Comment(
"parameter k of Sternheimer correction delta = 2log(10) x - " 93 "cbar + { a (x_1-x)^k } theta(x1-x), x = log10(p/m)")};
95 Name(
"SternheimerX0"),
96 Comment(
"minimum x = log10(p/m) for the application of Sternheimer " 99 Name(
"SternheimerX1"),
100 Comment(
"parameter x_1 of Sternheimer correction delta = 2log(10) x - " 101 "cbar + { a (x_1-x)^k } theta(x1-x), x = log10(p/m)")};
103 Name(
"SternheimerCbar"),
104 Comment(
"parameter cbar of Sternheimer correction delta = 2log(10) x - " 105 "cbar + { a (x_1-x)^k } theta(x1-x), x = log10(p/m)")};
107 Name(
"DriftVelFudgeFactor"),
108 Comment(
"Allows a scaling factor to fudge the drift velocity " 109 "calculation (as suggested by DriftVel Stancari")};
112 Name(
"UseIcarusMicrobooneDriftModel"),
113 Comment(
"Allows user to decide to use the ICARUS+MicroBooNE drift " 114 "model for velocity calculation as in arXiv:2008.09765"),
118 Name(
"IncludeInterPlanePitchInXTickOffsets"),
119 Comment(
"Historically, ConvertTicksToX has allowed for the drift time " 120 "between the wire planes. This is appropriate for " 121 "recob::RawDigits, and recob::Wires from the 1D unfolding, " 122 "but is not appropriate for recob::Wires from WireCell. " 123 "The default value is 'true', retaining the 'classic' behaviour"),
133 std::set<std::string>
const& ignore_params = {});
146 double Efield(
unsigned int planegap = 0)
const override;
149 double temperature = 0.)
const override;
173 double Density(
double temperature = 0.)
const override;
196 double Eloss(
double mom,
double mass,
double tcut)
const override;
206 double ElossVar(
double mom,
double mass)
const override;
263 std::set<std::string>
const& ignore_params);
319 #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
ChannelGroupService::Name Name
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)
Data structure containing constant pointers to classes.
double TimeOffsetZ() const override
fhicl::Atom< double > SternheimerX0
double cbar
parameter Cbar
fhicl::Atom< double > SternheimerX1
DetectorPropertiesData DataFor(detinfo::DetectorClocksData const &clock_data) const override
fhicl::Atom< double > Temperature
fhicl::Atom< double > DriftVelFudgeFactor
fhicl::OptionalAtom< double > TimeOffsetZ
fhicl::Atom< bool > SimpleBoundary
bool fIncludeInterPlanePitchInXTickOffsets
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
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) !
Access the description of detector geometry.
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
double ElectronsToADC() const override
LArSoft geometry interface.
fhicl::Sequence< double > Efield
fhicl::Atom< double > ElectronsToADC
const geo::GeometryCore * fGeo
pure virtual base interface for detector clocks
double Eloss(double mom, double mass, double tcut) const override
Restricted mean energy loss (dE/dx)
double fDriftVelFudgeFactor
bool fUseIcarusMicrobooneDriftModel