11 #ifndef DETINFO_DETECTORPROPERTIESSTD_H 12 #define DETINFO_DETECTORPROPERTIESSTD_H 49 "electric field in front of each wire plane (the last one is the big one!) [kV/cm]")
53 Name(
"Electronlifetime" ),
54 Comment(
"electron lifetime in liquid argon [us]")
58 Comment(
"argon temperature [K]")
61 Name(
"ElectronsToADC" ),
62 Comment(
"conversion factor: (ADC counts)/(ionization electrons)")
65 Name(
"NumberTimeSamples" ),
66 Comment(
"number of TPC readout TDC clock ticks per event")
69 Name(
"ReadOutWindowSize" ),
70 Comment(
"number of TPC readout TDC clock ticks per readout window")
77 Comment(
"tick offset subtracted to to convert spacepoint coordinates to hit times on view U")
81 Comment(
"tick offset subtracted to to convert spacepoint coordinates to hit times on view V")
85 Comment(
"tick offset subtracted to to convert spacepoint coordinates to hit times on view Z")
89 Comment(
"tick offset subtracted to to convert spacepoint coordinates to hit times on view Y")
93 Comment(
"tick offset subtracted to to convert spacepoint coordinates to hit times on view X")
98 Comment(
"parameter a of Sternheimer correction delta = 2log(10) x - cbar + { a (x1-x)^k } theta(x1-x), x = log10(p/m)")
101 Name(
"SternheimerK"),
102 Comment(
"parameter k of Sternheimer correction delta = 2log(10) x - cbar + { a (x_1-x)^k } theta(x1-x), x = log10(p/m)")
105 Name(
"SternheimerX0"),
106 Comment(
"minimum x = log10(p/m) for the application of Sternheimer correction")
109 Name(
"SternheimerX1"),
110 Comment(
"parameter x_1 of Sternheimer correction delta = 2log(10) x - cbar + { a (x_1-x)^k } theta(x1-x), x = log10(p/m)")
113 Name(
"SternheimerCbar"),
114 Comment(
"parameter cbar of Sternheimer correction delta = 2log(10) x - cbar + { a (x_1-x)^k } theta(x1-x), x = log10(p/m)")
123 const geo::GeometryCore*
geo,
124 const detinfo::LArProperties* lp,
126 std::set<std::string>
const& ignore_params = {}
139 std::set<std::string>
const& ignore_params = {});
154 std::set<std::string>
const& ignore_params = {}
174 std::set<std::string>
const& ignore_params = {}
202 virtual double Efield(
unsigned int planegap=0)
const override;
204 virtual double DriftVelocity(
double efield=0.,
double temperature=0.)
const override;
223 virtual double Density(
double temperature)
const override;
245 virtual double Eloss(
double mom,
double mass,
double tcut)
const override;
255 virtual double ElossVar(
double mom,
double mass)
const override;
267 virtual double ConvertXToTicks(
double X,
int p,
int t,
int c)
const override;
270 virtual double ConvertTicksToX(
double ticks,
int p,
int t,
int c)
const override;
310 const detinfo::LArProperties*
fLP;
356 #endif // DETINFO_DETECTOR_PROPERTIES_H double fTimeOffsetZ
time offset to convert spacepoint coordinates to hit times on view Z
virtual double ConvertTicksToTDC(double ticks) const override
const detinfo::LArProperties * fLP
virtual double Temperature() const override
In kelvin.
virtual double GetXTicksCoefficient() const override
double fXTicksCoefficient
Parameters for x<–>ticks.
fhicl::OptionalAtom< double > TimeOffsetX
fhicl::Atom< double > SternheimerX1
fhicl::Atom< double > SternheimerA
fhicl::Atom< double > ElectronsToADC
virtual double GetXTicksCoefficient(geo::TPCID const &tpcid) const override
virtual double ConvertTDCToTicks(double tdc) const override
virtual double TimeOffsetY() const override
double fSamplingRate
in ns
virtual int TriggerOffset() const override
double fTemperature
kelvin
virtual ~DetectorPropertiesStandard()=default
double fElectronsToADC
conversion factor for # of ionization electrons to 1 ADC count
void DoUpdateClocks()
Time-independent implementation of clock updates.
void ValidateAndConfigure(fhicl::ParameterSet const &p, std::set< std::string > const &ignore_params={})
Configures the provider, first validating the configuration.
fhicl::OptionalAtom< double > TimeOffsetZ
virtual double ElossVar(double mom, double mass) const override
Energy loss fluctuation ( )
The data type to uniquely identify a Plane.
bool UpdateClocks(const detinfo::DetectorClocks *clks)
virtual 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
void SetDetectorClocks(const detinfo::DetectorClocks *clks)
std::vector< std::vector< double > > fDriftDirection
fhicl::Atom< double > SternheimerCbar
CryostatID_t Cryostat
Index of cryostat.
double fTimeOffsetU
time offset to convert spacepoint coordinates to hit times on view U
virtual double GetXTicksOffset(geo::PlaneID const &planeid) const override
void SetNumberTimeSamples(unsigned int nsamp)
double fHasTimeOffsetV
whether time offset was configured for view V
std::vector< std::vector< std::vector< double > > > fXTicksOffsets
double fTimeOffsetY
time offset to convert spacepoint coordinates to hit times on view Y
double cbar
parameter Cbar
DetectorPropertiesStandard()
pure virtual base interface for detector clocks
void SetGeometry(const geo::GeometryCore *g)
double fHasTimeOffsetX
whether time offset was configured for view X
void Configure(Configuration_t const &config)
Extracts the relevant configuration from the specified object.
fhicl::Atom< double > Electronlifetime
double fTimeOffsetV
time offset to convert spacepoint coordinates to hit times on view V
Access the description of detector geometry.
virtual double TimeOffsetU() const override
void SetLArProperties(const detinfo::LArProperties *lp)
fhicl::Atom< bool > SimpleBoundary
std::vector< double > fEfield
kV/cm (per inter-plane volume)
virtual double SamplingRate() const override
Returns the period of the TPC readout electronics clock.
virtual unsigned int ReadOutWindowSize() const override
fhicl::OptionalAtom< double > TimeOffsetU
SternheimerParameters_t fSternheimerParameters
Sternheimer parameters.
std::string CheckTimeOffsetConfigurationAfterSetup() const
Checks the configuration of time offsets.
double fHasTimeOffsetZ
whether time offset was configured for view Z
fhicl::Atom< unsigned int > NumberTimeSamples
virtual double GetXTicksOffset(int p, int t, int c) const override
General LArSoft Utilities.
The data type to uniquely identify a TPC.
PlaneID_t Plane
Index of the plane within its TPC.
Description of geometry of one entire detector.
fhicl::Atom< double > Temperature
double fHasTimeOffsetU
whether time offset was configured for view U
fhicl::OptionalAtom< double > TimeOffsetY
Parameters for Sternheimer density effect corrections.
virtual double TimeOffsetV() const override
fhicl::OptionalAtom< double > TimeOffsetV
Conversion of times between different formats and references.
void CheckConfigurationAfterSetup() const
::detinfo::ElecClock fTPCClock
TPC electronics clock.
virtual double ModBoxCorrection(double dQdX) const override
double fElectronlifetime
microseconds
virtual double ConvertXToTicks(double X, int p, int t, int c) const override
double TickPeriod() const
A single tick period in microseconds.
virtual unsigned int NumberTimeSamples() const override
fhicl::Atom< double > SternheimerX0
Structure for configuration parameters.
unsigned int fReadOutWindowSize
number of clock ticks per readout window
fhicl::Atom< double > SternheimerK
Container for a list of pointers to providers.
virtual double ConvertXToTicks(double X, geo::PlaneID const &planeid) const override
double fTimeOffsetX
time offset to convert spacepoint coordinates to hit times on view X
void CalculateXTicksParams()
virtual double ConvertTicksToX(double ticks, geo::PlaneID const &planeid) const override
const detinfo::DetectorClocks * fClocks
Data structure containing constant pointers to classes.
Configuration_t ValidateConfiguration(fhicl::ParameterSet const &p, std::set< std::string > const &ignore_params={})
Validates the specified configuration.
virtual double ElectronLifetime() const override
Returns the attenuation constant for ionization electrons.
virtual double ConvertTicksToX(double ticks, int p, int t, int c) const override
fhicl::Atom< unsigned int > ReadOutWindowSize
Class representing the time measured by an electronics clock.
virtual double DriftVelocity(double efield=0., double temperature=0.) const override
cm/us
virtual double ElectronsToADC() const override
TPCID_t TPC
Index of the TPC within its cryostat.
void CheckIfConfigured() const
virtual double TimeOffsetZ() const override
virtual double Density() const override
Returns argon density at the temperature from Temperature()
virtual bool SimpleBoundary() const override
Namespace collecting geometry-related classes utilities.
double fHasTimeOffsetY
whether time offset was configured for view Y
fhicl::Sequence< double > Efield
void Setup(providers_type providers)
Sets all the providers at once.
const geo::GeometryCore * fGeo
virtual double Eloss(double mom, double mass, double tcut) const override
Restricted mean energy loss (dE/dx)