11 #ifndef DETINFO_DETECTORPROPERTIESSTD_H 12 #define DETINFO_DETECTORPROPERTIESSTD_H 15 #include "Geometry/GeometryCore.h" 16 #include "CoreUtils/ProviderPack.h" 19 #include "DetectorInfo/DetectorClocks.h" 20 #include "DetectorInfo/DetectorProperties.h" 50 Comment(
"electric field in front of each wire plane (the last one is the big one!) [kV/cm]")
54 Name (
"Electronlifetime"),
55 Comment(
"electron lifetime in gaseous argon [us]")
59 Comment(
"argon temperature [K]")
62 Name (
"DriftVelocity"),
63 Comment(
"electron drift velocity in cm/us")
66 Name (
"ElectronsToADC"),
67 Comment(
"conversion factor: (ADC counts)/(ionization electrons)")
70 Name (
"NumberTimeSamples"),
71 Comment(
"number of TPC readout TDC clock ticks per event (= readout window)")
75 Name (
"SternheimerA"),
76 Comment(
"parameter a of Sternheimer correction delta = 2log(10) x - cbar + { a (x1-x)^k } theta(x1-x), x = log10(p/m)")
79 Name (
"SternheimerK"),
80 Comment(
"parameter k of Sternheimer correction delta = 2log(10) x - cbar + { a (x_1-x)^k } theta(x1-x), x = log10(p/m)")
83 Name (
"SternheimerX0"),
84 Comment(
"minimum x = log10(p/m) for the application of Sternheimer correction")
87 Name (
"SternheimerX1"),
88 Comment(
"parameter x_1 of Sternheimer correction delta = 2log(10) x - cbar + { a (x_1-x)^k } theta(x1-x), x = log10(p/m)")
91 Name (
"SternheimerCbar"),
92 Comment(
"parameter cbar of Sternheimer correction delta = 2log(10) x - cbar + { a (x_1-x)^k } theta(x1-x), x = log10(p/m)")
99 const geo::GeometryCore *
geo,
100 const detinfo::GArProperties*
gp,
101 const detinfo::ECALProperties* ecalp,
103 std::set<std::string>
const& ignore_params = {});
113 std::set<std::string>
const& ignore_params = {});
127 std::set<std::string>
const& ignore_params = {});
145 std::set<std::string>
const& ignore_params = {});
173 virtual double Efield(
unsigned int planegap=0)
const override;
176 double temperature=0.,
177 bool cmPerns=
true)
const override;
193 virtual double Density(
double temperature)
const override;
215 virtual double Eloss(
double mom,
double mass,
double tcut)
const override;
224 virtual double ElossVar(
double mom,
double mass)
const override;
269 const detinfo::GArProperties*
fGP;
291 #endif // DETINFO_DETECTOR_PROPERTIES_H bool UpdateClocks(const detinfo::DetectorClocks *clks)
fhicl::Atom< double > SternheimerA
fhicl::Atom< double > ElectronsToADC
void Setup(providers_type providers)
Sets all the providers at once.
fhicl::Atom< double > DriftVelocity
virtual unsigned int NumberTimeSamples() const override
virtual double LightYield() const override
SternheimerParameters_t fSternheimerParameters
Sternheimer parameters.
double fSamplingRate
in ns
static constexpr double g
fhicl::Atom< double > SternheimerX1
virtual double IntercalibrationFactor() const override
void SetDetectorClocks(const detinfo::DetectorClocks *clks)
fhicl::Atom< double > SternheimerK
virtual double ADCSaturation() const =0
void SetGeometry(const geo::GeometryCore *g)
virtual double ConvertTDCToTicks(double tdc) const override
ChannelGroupService::Name Name
void SetNumberTimeSamples(unsigned int nsamp)
const detinfo::DetectorClocks * fClocks
Description of geometry of one entire detector.
virtual double MeVtoMIP() const =0
virtual double Temperature() const override
In kelvin.
void ValidateAndConfigure(fhicl::ParameterSet const &p, std::set< std::string > const &ignore_params={})
Configures the provider, first validating the configuration.
tick ticks
Alias for common language habits.
virtual double ADCSaturation() const override
double fXTicksCoefficient
Parameters for x<–>ticks.
virtual double SiPMGain() const =0
virtual double TimeResolution() const =0
double cbar
parameter Cbar
virtual double TimeResolution() const override
Parameters for Sternheimer density effect corrections.
virtual double ConvertXToTicks(double X) const override
fhicl::Atom< double > SternheimerCbar
double TickPeriod() const
A single tick period in nano-second, frequency is in MHz.
virtual ~DetectorPropertiesStandard()=default
Container for a list of pointers to providers.
virtual double ElossVar(double mom, double mass) const override
Energy loss fluctuation ( )
DetectorPropertiesStandard()
virtual double ElectronsToADC() const override
virtual int TriggerOffset() const override
const detinfo::GArProperties * fGP
virtual double ConvertTicksToX(double ticks) const override
double fTemperature
kelvin
virtual double Density() const override
Returns argon density at the temperature from Temperature()
fhicl::Sequence< double > Efield
void SetGArProperties(const detinfo::GArProperties *gp)
General LArSoft Utilities.
fhicl::Atom< unsigned int > NumberTimeSamples
virtual double LightYield() const =0
void CheckIfConfigured() const
virtual double NoisePx() const override
virtual double ElectronLifetime() const override
dQ/dX in electrons/cm, returns dE/dX in MeV/cm.
virtual double NoisePx() const =0
virtual double ConvertTicksToTDC(double ticks) const override
const geo::GeometryCore * fGeo
General GArSoft Utilities.
fhicl::Atom< double > Electronlifetime
virtual double EffectivePixel() const =0
virtual double SiPMGain() const override
void CalculateXTicksParams()
const detinfo::ECALProperties * fECALP
double fElectronsToADC
conversion factor for # of ionization electrons to 1 ADC count
fhicl::Atom< double > Temperature
double fElectronlifetime
microseconds
Configuration_t ValidateConfiguration(fhicl::ParameterSet const &p, std::set< std::string > const &ignore_params={})
Validates the specified configuration.
Structure for configuration parameters.
void SetECALProperties(const detinfo::ECALProperties *ecalp)
fhicl::Atom< double > SternheimerX0
virtual double IntercalibrationFactor() const =0
std::vector< double > fEfield
kV/cm (per inter-plane volume)
virtual double EffectivePixel() const override
virtual double SamplingRate() const override
virtual double MeVtoMIP() const override
LArSoft geometry interface.
unsigned int fNumberTimeSamples
number of clock ticks per event (= readout window)
void Configure(Configuration_t const &config)
Extracts the relevant configuration from the specified object.
double fDriftVelocity
centimeters / microsecond
detinfo::ElecClock fTPCClock
TPC electronics clock.
virtual double Eloss(double mom, double mass, double tcut) const override
Restricted mean energy loss (dE/dx)