LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
#include "DetectorPropertiesStandard.h"
Classes | |
struct | Configuration_t |
Structure for configuration parameters. More... | |
struct | SternheimerParameters_t |
Parameters for Sternheimer density effect corrections. More... | |
Public Types | |
using | providers_type = lar::ProviderPack< geo::GeometryCore, detinfo::LArProperties > |
List of service providers we depend on. More... | |
Public Member Functions | |
DetectorPropertiesStandard (fhicl::ParameterSet const &pset, const geo::GeometryCore *geo, const detinfo::LArProperties *lp, std::set< std::string > const &ignore_params={}) | |
DetectorPropertiesStandard (DetectorPropertiesStandard const &)=delete | |
virtual | ~DetectorPropertiesStandard ()=default |
void | SetNumberTimeSamples (unsigned int nsamp) |
double | Efield (unsigned int planegap=0) const override |
kV/cm More... | |
double | DriftVelocity (double efield=0., double temperature=0.) const override |
cm/us More... | |
double | BirksCorrection (double dQdX) const override |
dQ/dX in electrons/cm, returns dE/dX in MeV/cm. More... | |
double | BirksCorrection (double dQdX, double EField) const override |
double | ModBoxCorrection (double dQdX) const override |
double | ModBoxCorrection (double dQdX, double EField) const override |
double | ElectronLifetime () const override |
Returns the attenuation constant for ionization electrons. More... | |
double | Density (double temperature=0.) const override |
Returns argon density at a given temperature. More... | |
double | Temperature () const override |
In kelvin. More... | |
double | Eloss (double mom, double mass, double tcut) const override |
Restricted mean energy loss (dE/dx) More... | |
double | ElossVar (double mom, double mass) const override |
Energy loss fluctuation ( ) More... | |
double | ElectronsToADC () const override |
unsigned int | NumberTimeSamples () const override |
unsigned int | ReadOutWindowSize () const override |
double | TimeOffsetU () const override |
double | TimeOffsetV () const override |
double | TimeOffsetZ () const override |
double | TimeOffsetY () const override |
bool | SimpleBoundary () const override |
DetectorPropertiesData | DataFor (detinfo::DetectorClocksData const &clock_data) const override |
virtual double | Density () const |
Returns argon density at the temperature from Temperature() More... | |
Private Member Functions | |
void | ValidateAndConfigure (fhicl::ParameterSet const &p, std::set< std::string > const &ignore_params) |
Configures the provider, first validating the configuration. More... | |
std::string | CheckTimeOffsets (std::set< geo::View_t > const &requested_views) const |
Private Attributes | |
const detinfo::LArProperties * | fLP |
const geo::GeometryCore * | fGeo |
std::vector< double > | fEfield |
kV/cm (per inter-plane volume) ! More... | |
double | fElectronlifetime |
microseconds More... | |
double | fTemperature |
kelvin More... | |
double | fElectronsToADC |
unsigned int | fNumberTimeSamples |
number of clock ticks per event More... | |
unsigned int | fReadOutWindowSize |
number of clock ticks per readout window More... | |
double | fTimeOffsetU |
double | fTimeOffsetV |
double | fTimeOffsetZ |
double | fTimeOffsetY |
double | fTimeOffsetX |
double | fDriftVelFudgeFactor |
bool | fUseIcarusMicrobooneDriftModel |
bool | fIncludeInterPlanePitchInXTickOffsets |
SternheimerParameters_t | fSternheimerParameters |
Sternheimer parameters. More... | |
std::vector< std::vector< double > > | fDriftDirection |
bool | fSimpleBoundary |
double | fModBoxA |
double | fModBoxB |
Definition at line 36 of file DetectorPropertiesStandard.h.
using detinfo::DetectorPropertiesStandard::providers_type = lar::ProviderPack<geo::GeometryCore, detinfo::LArProperties> |
List of service providers we depend on.
Definition at line 39 of file DetectorPropertiesStandard.h.
detinfo::DetectorPropertiesStandard::DetectorPropertiesStandard | ( | fhicl::ParameterSet const & | pset, |
const geo::GeometryCore * | geo, | ||
const detinfo::LArProperties * | lp, | ||
std::set< std::string > const & | ignore_params = {} |
||
) |
Definition at line 29 of file DetectorPropertiesStandard.cxx.
References ValidateAndConfigure().
|
delete |
|
virtualdefault |
|
overridevirtual |
dQ/dX in electrons/cm, returns dE/dX in MeV/cm.
Implements detinfo::DetectorProperties.
Definition at line 298 of file DetectorPropertiesStandard.cxx.
References Efield().
Referenced by SetNumberTimeSamples().
|
overridevirtual |
Implements detinfo::DetectorProperties.
Definition at line 302 of file DetectorPropertiesStandard.cxx.
References tca::dEdx(), detinfo::DetectorProperties::Density(), util::kGeVToElectrons, util::kRecombA, and util::kRecombk.
|
private |
Definition at line 458 of file DetectorPropertiesStandard.cxx.
References fGeo, geo::kU, geo::kV, geo::kX, geo::kY, geo::kZ, and geo::GeometryCore::Views().
Referenced by SimpleBoundary(), and ValidateAndConfigure().
|
overridevirtual |
< special case for ArgoNeuT
Implements detinfo::DetectorProperties.
Definition at line 346 of file DetectorPropertiesStandard.cxx.
References geo::GeometryCore::Cryostat(), dir, geo::TPCGeo::DriftDirection(), DriftVelocity(), Efield(), fGeo, fIncludeInterPlanePitchInXTickOffsets, fTimeOffsetU, fTimeOffsetV, fTimeOffsetX, fTimeOffsetY, fTimeOffsetZ, geo::PlaneGeo::GetCenter(), geo::kNegX, geo::kU, geo::kV, geo::kX, geo::kY, geo::kZ, geo::GeometryCore::Ncryostats(), geo::TPCGeo::Nplanes(), geo::TPCGeo::Plane(), geo::TPCGeo::PlanePitch(), detinfo::sampling_rate(), Temperature(), detinfo::trigger_offset(), and geo::PlaneGeo::View().
Referenced by detinfo::DetectorPropertiesServiceStandard::getDataFor(), detinfo::DetectorPropertiesServiceStandard::getDataForJob(), and SimpleBoundary().
|
inlinevirtualinherited |
Returns argon density at the temperature from Temperature()
Definition at line 98 of file DetectorProperties.h.
References detinfo::DetectorProperties::Density(), detinfo::DetectorProperties::ElectronsToADC(), detinfo::DetectorProperties::NumberTimeSamples(), detinfo::DetectorProperties::ReadOutWindowSize(), detinfo::DetectorProperties::Temperature(), detinfo::DetectorProperties::TimeOffsetU(), detinfo::DetectorProperties::TimeOffsetV(), and detinfo::DetectorProperties::TimeOffsetZ().
Referenced by BirksCorrection(), detinfo::DetectorProperties::Density(), ElectronLifetime(), Eloss(), ElossVar(), and ModBoxCorrection().
|
overridevirtual |
Returns argon density at a given temperature.
temperature | the temperature in kelvin |
Density is nearly a linear function of temperature. See the NIST tables for details Slope is between -6.2 and -6.1, intercept is 1928 kg/m^3. This parameterization will be good to better than 0.5%.g/cm^3
Implements detinfo::DetectorProperties.
Definition at line 105 of file DetectorPropertiesStandard.cxx.
References Temperature().
|
overridevirtual |
cm/us
Implements detinfo::DetectorProperties.
Definition at line 185 of file DetectorPropertiesStandard.cxx.
References Efield(), fDriftVelFudgeFactor, fUseIcarusMicrobooneDriftModel, and Temperature().
Referenced by DataFor(), and SetNumberTimeSamples().
|
overridevirtual |
kV/cm
Implements detinfo::DetectorProperties.
Definition at line 95 of file DetectorPropertiesStandard.cxx.
References fEfield.
Referenced by BirksCorrection(), DataFor(), DriftVelocity(), and ModBoxCorrection().
|
inlineoverridevirtual |
Returns the attenuation constant for ionization electrons.
The returned constant τ can be used to know the attenuation the ionization charge undergoes after drifting for a certain time t: (t is measured in microseconds).
This is a uniform, constant value for the detector.
Implements detinfo::DetectorProperties.
Definition at line 166 of file DetectorPropertiesStandard.h.
References detinfo::DetectorProperties::Density(), and fElectronlifetime.
|
inlineoverridevirtual |
Implements detinfo::DetectorProperties.
Definition at line 212 of file DetectorPropertiesStandard.h.
References fElectronsToADC.
|
overridevirtual |
Restricted mean energy loss (dE/dx)
mom | momentum of incident particle [GeV/c] |
mass | mass of incident particle [GeV/c^2] |
tcut | maximum kinetic energy of delta rays [MeV]; 0 for unlimited |
Returned value is always positive. For unrestricted mean energy loss, set tcut = 0 (special case), or tcut large.
Based on Bethe-Bloch formula as contained in particle data book. Material parameters are from the configuration.
Implements detinfo::DetectorProperties.
Definition at line 130 of file DetectorPropertiesStandard.cxx.
References detinfo::DetectorPropertiesStandard::SternheimerParameters_t::a, detinfo::LArProperties::AtomicMass(), detinfo::LArProperties::AtomicNumber(), detinfo::DetectorPropertiesStandard::SternheimerParameters_t::cbar, detinfo::DetectorProperties::Density(), e, detinfo::LArProperties::ExcitationEnergy(), fLP, fSternheimerParameters, detinfo::DetectorPropertiesStandard::SternheimerParameters_t::k, x, detinfo::DetectorPropertiesStandard::SternheimerParameters_t::x0, and detinfo::DetectorPropertiesStandard::SternheimerParameters_t::x1.
Referenced by Temperature().
|
overridevirtual |
Energy loss fluctuation ( )
mom | momentum of incident particle in [GeV/c] |
mass | mass of incident particle [GeV/c^2] |
Based on Bichsel formula referred to but not given in PDG.
Implements detinfo::DetectorProperties.
Definition at line 170 of file DetectorPropertiesStandard.cxx.
References detinfo::LArProperties::AtomicMass(), detinfo::LArProperties::AtomicNumber(), detinfo::DetectorProperties::Density(), and fLP.
Referenced by Temperature().
|
overridevirtual |
Implements detinfo::DetectorProperties.
Definition at line 319 of file DetectorPropertiesStandard.cxx.
References Efield().
Referenced by SetNumberTimeSamples().
|
overridevirtual |
Implements detinfo::DetectorProperties.
Definition at line 323 of file DetectorPropertiesStandard.cxx.
References tca::dEdx(), detinfo::DetectorProperties::Density(), fModBoxA, fModBoxB, and util::kGeVToElectrons.
|
inlineoverridevirtual |
Implements detinfo::DetectorProperties.
Definition at line 213 of file DetectorPropertiesStandard.h.
References fNumberTimeSamples.
Referenced by detinfo::DetectorPropertiesServiceStandard::postOpenFile().
|
inlineoverridevirtual |
Implements detinfo::DetectorProperties.
Definition at line 214 of file DetectorPropertiesStandard.h.
References fReadOutWindowSize.
|
inline |
Definition at line 151 of file DetectorPropertiesStandard.h.
References BirksCorrection(), DriftVelocity(), detinfo::DetectorPropertiesStandard::Configuration_t::Efield, fNumberTimeSamples, and ModBoxCorrection().
Referenced by detinfo::DetectorPropertiesServiceStandard::postOpenFile().
|
inlineoverridevirtual |
Implements detinfo::DetectorProperties.
Definition at line 220 of file DetectorPropertiesStandard.h.
References CheckTimeOffsets(), DataFor(), fSimpleBoundary, and ValidateAndConfigure().
|
inlineoverridevirtual |
In kelvin.
Implements detinfo::DetectorProperties.
Definition at line 184 of file DetectorPropertiesStandard.h.
References Eloss(), ElossVar(), and fTemperature.
Referenced by DataFor(), Density(), and DriftVelocity().
|
inlineoverridevirtual |
Implements detinfo::DetectorProperties.
Definition at line 215 of file DetectorPropertiesStandard.h.
References fTimeOffsetU.
Referenced by ValidateAndConfigure().
|
inlineoverridevirtual |
Implements detinfo::DetectorProperties.
Definition at line 216 of file DetectorPropertiesStandard.h.
References fTimeOffsetV.
Referenced by ValidateAndConfigure().
|
inlineoverridevirtual |
Reimplemented from detinfo::DetectorProperties.
Definition at line 218 of file DetectorPropertiesStandard.h.
References fTimeOffsetY.
Referenced by ValidateAndConfigure().
|
inlineoverridevirtual |
Implements detinfo::DetectorProperties.
Definition at line 217 of file DetectorPropertiesStandard.h.
References fTimeOffsetZ.
Referenced by ValidateAndConfigure().
|
private |
Configures the provider, first validating the configuration.
p | configuration parameter set |
ignore_params | parameters to be ignored (optional) |
This method will validate the parameter set (except for the parameters it's explicitly told to ignore) and extract the useful information out of it.
Definition at line 39 of file DetectorPropertiesStandard.cxx.
References detinfo::DetectorPropertiesStandard::SternheimerParameters_t::a, detinfo::DetectorPropertiesStandard::SternheimerParameters_t::cbar, CheckTimeOffsets(), tca::debug, fDriftVelFudgeFactor, fEfield, fElectronlifetime, fElectronsToADC, fIncludeInterPlanePitchInXTickOffsets, fModBoxA, fModBoxB, fNumberTimeSamples, fReadOutWindowSize, fSimpleBoundary, fSternheimerParameters, fTemperature, fTimeOffsetU, fTimeOffsetV, fTimeOffsetX, fTimeOffsetY, fTimeOffsetZ, fUseIcarusMicrobooneDriftModel, lar::IgnorableProviderConfigKeys(), detinfo::DetectorPropertiesStandard::SternheimerParameters_t::k, geo::kU, geo::kV, geo::kX, geo::kY, geo::kZ, TimeOffsetU(), TimeOffsetV(), TimeOffsetY(), TimeOffsetZ(), detinfo::DetectorPropertiesStandard::SternheimerParameters_t::x0, and detinfo::DetectorPropertiesStandard::SternheimerParameters_t::x1.
Referenced by DetectorPropertiesStandard(), and SimpleBoundary().
|
private |
Definition at line 284 of file DetectorPropertiesStandard.h.
|
private |
Scaling factor to allow "fudging" of drift velocity
Definition at line 270 of file DetectorPropertiesStandard.h.
Referenced by DriftVelocity(), and ValidateAndConfigure().
|
private |
kV/cm (per inter-plane volume) !
Definition at line 253 of file DetectorPropertiesStandard.h.
Referenced by Efield(), and ValidateAndConfigure().
|
private |
microseconds
Definition at line 254 of file DetectorPropertiesStandard.h.
Referenced by ElectronLifetime(), and ValidateAndConfigure().
|
private |
conversion factor for # of ionization electrons to 1 ADC count
Definition at line 256 of file DetectorPropertiesStandard.h.
Referenced by ElectronsToADC(), and ValidateAndConfigure().
|
private |
Definition at line 251 of file DetectorPropertiesStandard.h.
Referenced by CheckTimeOffsets(), and DataFor().
|
private |
Historically, ConvertTicksToX has allowed for the drift time between the wire planes. This is appropriate for recob::RawDigits, and recob::Wires from the 1D unfolding, but is not appropriate for recob::Wires from WireCell.
Definition at line 280 of file DetectorPropertiesStandard.h.
Referenced by DataFor(), and ValidateAndConfigure().
|
private |
Definition at line 250 of file DetectorPropertiesStandard.h.
Referenced by Eloss(), and ElossVar().
|
private |
Definition at line 288 of file DetectorPropertiesStandard.h.
Referenced by ModBoxCorrection(), and ValidateAndConfigure().
|
private |
Definition at line 289 of file DetectorPropertiesStandard.h.
Referenced by ModBoxCorrection(), and ValidateAndConfigure().
|
private |
number of clock ticks per event
Definition at line 258 of file DetectorPropertiesStandard.h.
Referenced by NumberTimeSamples(), SetNumberTimeSamples(), and ValidateAndConfigure().
|
private |
number of clock ticks per readout window
Definition at line 259 of file DetectorPropertiesStandard.h.
Referenced by ReadOutWindowSize(), and ValidateAndConfigure().
|
private |
Definition at line 286 of file DetectorPropertiesStandard.h.
Referenced by SimpleBoundary(), and ValidateAndConfigure().
|
private |
Sternheimer parameters.
Definition at line 282 of file DetectorPropertiesStandard.h.
Referenced by Eloss(), and ValidateAndConfigure().
|
private |
kelvin
Definition at line 255 of file DetectorPropertiesStandard.h.
Referenced by Temperature(), and ValidateAndConfigure().
|
private |
time offset to convert spacepoint coordinates to hit times on view U
Definition at line 260 of file DetectorPropertiesStandard.h.
Referenced by DataFor(), TimeOffsetU(), and ValidateAndConfigure().
|
private |
time offset to convert spacepoint coordinates to hit times on view V
Definition at line 262 of file DetectorPropertiesStandard.h.
Referenced by DataFor(), TimeOffsetV(), and ValidateAndConfigure().
|
private |
time offset to convert spacepoint coordinates to hit times on view X
Definition at line 268 of file DetectorPropertiesStandard.h.
Referenced by DataFor(), and ValidateAndConfigure().
|
private |
time offset to convert spacepoint coordinates to hit times on view Y
Definition at line 266 of file DetectorPropertiesStandard.h.
Referenced by DataFor(), TimeOffsetY(), and ValidateAndConfigure().
|
private |
time offset to convert spacepoint coordinates to hit times on view Z
Definition at line 264 of file DetectorPropertiesStandard.h.
Referenced by DataFor(), TimeOffsetZ(), and ValidateAndConfigure().
|
private |
if true, use alternative ICARUS-MicroBooNE drift model instead of Walkowiak-based one
Definition at line 273 of file DetectorPropertiesStandard.h.
Referenced by DriftVelocity(), and ValidateAndConfigure().