![]() |
LArSoft
v10_04_05
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, geo::WireReadoutGeom, detinfo::LArProperties > |
List of service providers we depend on. More... | |
Public Member Functions | |
DetectorPropertiesStandard (fhicl::ParameterSet const &pset, geo::GeometryCore const *geo, geo::WireReadoutGeom const *wireReadoutGeom, detinfo::LArProperties const *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 ( ![]() | |
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... | |
Private Attributes | |
detinfo::LArProperties const * | fLP |
geo::GeometryCore const * | fGeo |
geo::WireReadoutGeom const * | fChannelMap |
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, geo::WireReadoutGeom, detinfo::LArProperties> |
List of service providers we depend on.
Definition at line 40 of file DetectorPropertiesStandard.h.
detinfo::DetectorPropertiesStandard::DetectorPropertiesStandard | ( | fhicl::ParameterSet const & | pset, |
geo::GeometryCore const * | geo, | ||
geo::WireReadoutGeom const * | wireReadoutGeom, | ||
detinfo::LArProperties const * | lp, | ||
std::set< std::string > const & | ignore_params = {} |
||
) |
Definition at line 54 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 323 of file DetectorPropertiesStandard.cxx.
References Efield().
Referenced by SetNumberTimeSamples().
|
overridevirtual |
Implements detinfo::DetectorProperties.
Definition at line 327 of file DetectorPropertiesStandard.cxx.
References tca::dEdx(), detinfo::DetectorProperties::Density(), util::kGeVToElectrons, util::kRecombA, and util::kRecombk.
|
overridevirtual |
< special case for ArgoNeuT
Implements detinfo::DetectorProperties.
Definition at line 371 of file DetectorPropertiesStandard.cxx.
References geo::GeometryCore::Cryostat(), dir, geo::TPCGeo::DriftSign(), DriftVelocity(), Efield(), fChannelMap, fGeo, fIncludeInterPlanePitchInXTickOffsets, fTimeOffsetU, fTimeOffsetV, fTimeOffsetX, fTimeOffsetY, fTimeOffsetZ, geo::TPCGeo::ID(), geo::PlaneGeo::ID(), geo::Iterable< IterationPolicy, Transform >::Iterate(), geo::kU, geo::kV, geo::kX, geo::kY, geo::kZ, geo::GeometryCore::Ncryostats(), geo::WireReadoutGeom::Nplanes(), geo::WireReadoutGeom::Plane(), geo::PlaneID::Plane, geo::WireReadoutGeom::PlanePitch(), detinfo::sampling_rate(), Temperature(), geo::to_int(), and detinfo::trigger_offset().
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 132 of file DetectorPropertiesStandard.cxx.
References Temperature().
|
overridevirtual |
cm/us
Implements detinfo::DetectorProperties.
Definition at line 212 of file DetectorPropertiesStandard.cxx.
References Efield(), fDriftVelFudgeFactor, fUseIcarusMicrobooneDriftModel, and Temperature().
Referenced by DataFor(), and SetNumberTimeSamples().
|
overridevirtual |
kV/cm
Implements detinfo::DetectorProperties.
Definition at line 122 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 168 of file DetectorPropertiesStandard.h.
References detinfo::DetectorProperties::Density(), and fElectronlifetime.
|
inlineoverridevirtual |
Implements detinfo::DetectorProperties.
Definition at line 214 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 157 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 197 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 344 of file DetectorPropertiesStandard.cxx.
References Efield().
Referenced by SetNumberTimeSamples().
|
overridevirtual |
Implements detinfo::DetectorProperties.
Definition at line 348 of file DetectorPropertiesStandard.cxx.
References tca::dEdx(), detinfo::DetectorProperties::Density(), fModBoxA, fModBoxB, and util::kGeVToElectrons.
|
inlineoverridevirtual |
Implements detinfo::DetectorProperties.
Definition at line 215 of file DetectorPropertiesStandard.h.
References fNumberTimeSamples.
Referenced by detinfo::DetectorPropertiesServiceStandard::postOpenFile().
|
inlineoverridevirtual |
Implements detinfo::DetectorProperties.
Definition at line 216 of file DetectorPropertiesStandard.h.
References fReadOutWindowSize.
|
inline |
Definition at line 153 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 222 of file DetectorPropertiesStandard.h.
References DataFor(), fSimpleBoundary, and ValidateAndConfigure().
|
inlineoverridevirtual |
In kelvin.
Implements detinfo::DetectorProperties.
Definition at line 186 of file DetectorPropertiesStandard.h.
References Eloss(), ElossVar(), and fTemperature.
Referenced by DataFor(), Density(), and DriftVelocity().
|
inlineoverridevirtual |
Implements detinfo::DetectorProperties.
Definition at line 217 of file DetectorPropertiesStandard.h.
References fTimeOffsetU.
Referenced by ValidateAndConfigure().
|
inlineoverridevirtual |
Implements detinfo::DetectorProperties.
Definition at line 218 of file DetectorPropertiesStandard.h.
References fTimeOffsetV.
Referenced by ValidateAndConfigure().
|
inlineoverridevirtual |
Reimplemented from detinfo::DetectorProperties.
Definition at line 220 of file DetectorPropertiesStandard.h.
References fTimeOffsetY.
Referenced by ValidateAndConfigure().
|
inlineoverridevirtual |
Implements detinfo::DetectorProperties.
Definition at line 219 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 66 of file DetectorPropertiesStandard.cxx.
References detinfo::DetectorPropertiesStandard::SternheimerParameters_t::a, detinfo::DetectorPropertiesStandard::SternheimerParameters_t::cbar, tca::debug, fChannelMap, 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 252 of file DetectorPropertiesStandard.h.
Referenced by DataFor(), and ValidateAndConfigure().
|
private |
Definition at line 285 of file DetectorPropertiesStandard.h.
|
private |
Scaling factor to allow "fudging" of drift velocity
Definition at line 271 of file DetectorPropertiesStandard.h.
Referenced by DriftVelocity(), and ValidateAndConfigure().
|
private |
kV/cm (per inter-plane volume) !
Definition at line 254 of file DetectorPropertiesStandard.h.
Referenced by Efield(), and ValidateAndConfigure().
|
private |
microseconds
Definition at line 255 of file DetectorPropertiesStandard.h.
Referenced by ElectronLifetime(), and ValidateAndConfigure().
|
private |
conversion factor for # of ionization electrons to 1 ADC count
Definition at line 257 of file DetectorPropertiesStandard.h.
Referenced by ElectronsToADC(), and ValidateAndConfigure().
|
private |
Definition at line 251 of file DetectorPropertiesStandard.h.
Referenced by 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 281 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 289 of file DetectorPropertiesStandard.h.
Referenced by ModBoxCorrection(), and ValidateAndConfigure().
|
private |
Definition at line 290 of file DetectorPropertiesStandard.h.
Referenced by ModBoxCorrection(), and ValidateAndConfigure().
|
private |
number of clock ticks per event
Definition at line 259 of file DetectorPropertiesStandard.h.
Referenced by NumberTimeSamples(), SetNumberTimeSamples(), and ValidateAndConfigure().
|
private |
number of clock ticks per readout window
Definition at line 260 of file DetectorPropertiesStandard.h.
Referenced by ReadOutWindowSize(), and ValidateAndConfigure().
|
private |
Definition at line 287 of file DetectorPropertiesStandard.h.
Referenced by SimpleBoundary(), and ValidateAndConfigure().
|
private |
Sternheimer parameters.
Definition at line 283 of file DetectorPropertiesStandard.h.
Referenced by Eloss(), and ValidateAndConfigure().
|
private |
kelvin
Definition at line 256 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 261 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 263 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 269 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 267 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 265 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 274 of file DetectorPropertiesStandard.h.
Referenced by DriftVelocity(), and ValidateAndConfigure().