31 #ifndef DETECTORINFO_LARPROPERTIESSTANDARD_H 32 #define DETECTORINFO_LARPROPERTIESSTANDARD_H 38 #define DETECTORINFO_LARPROPERTIESSTANDARD_HASOPTIONALATOM 0 46 #if DETECTORINFO_LARPROPERTIESSTANDARD_HASOPTIONALATOM 91 bool Update(uint64_t ts=0);
136 virtual std::map<std::string, std::map<double, double> >
SurfaceReflectances()
const override;
188 virtual std::map<double, double>
TpbAbs()
const override;
189 virtual std::map<double, double>
TpbEm()
const override;
208 {
Name(
"RadiationLength" ),
Comment(
"radiation length [g/cm^2]") };
210 {
Name(
"AtomicNumber" ),
Comment(
"atomic number (yes, yes, it's 18...)") };
214 {
Name(
"ExcitationEnergy"),
Comment(
"mean excitation energy [eV]") };
249 #if DETECTORINFO_LARPROPERTIESSTANDARD_HASOPTIONALATOM 251 {
Name(
"ProtonScintYield" ),
Comment(
"(only if ScintByParticleType is true)") };
253 {
Name(
"ProtonScintYieldRatio" ),
Comment(
"(only if ScintByParticleType is true)") };
255 {
Name(
"MuonScintYield" ),
Comment(
"(only if ScintByParticleType is true)") };
257 {
Name(
"MuonScintYieldRatio" ),
Comment(
"(only if ScintByParticleType is true)") };
259 {
Name(
"PionScintYield" ),
Comment(
"(only if ScintByParticleType is true)") };
261 {
Name(
"PionScintYieldRatio" ),
Comment(
"(only if ScintByParticleType is true)") };
263 {
Name(
"KaonScintYield" ),
Comment(
"(only if ScintByParticleType is true)") };
265 {
Name(
"KaonScintYieldRatio" ),
Comment(
"(only if ScintByParticleType is true)") };
267 {
Name(
"ElectronScintYield" ),
Comment(
"(only if ScintByParticleType is true)") };
269 {
Name(
"ElectronScintYieldRatio"),
Comment(
"(only if ScintByParticleType is true)") };
271 {
Name(
"AlphaScintYield" ),
Comment(
"(only if ScintByParticleType is true)") };
273 {
Name(
"AlphaScintYieldRatio" ),
Comment(
"(only if ScintByParticleType is true)") };
274 #endif // DETECTORINFO_LARPROPERTIESSTANDARD_HASOPTIONALATOM? 289 #if !DETECTORINFO_LARPROPERTIESSTANDARD_HASOPTIONALATOM 294 {
Name(
"ProtonScintYield" ),
Comment(
"(only if ScintByParticleType is true)") };
296 {
Name(
"ProtonScintYieldRatio" ),
Comment(
"(only if ScintByParticleType is true)") };
298 {
Name(
"MuonScintYield" ),
Comment(
"(only if ScintByParticleType is true)") };
300 {
Name(
"MuonScintYieldRatio" ),
Comment(
"(only if ScintByParticleType is true)") };
302 {
Name(
"PionScintYield" ),
Comment(
"(only if ScintByParticleType is true)") };
304 {
Name(
"PionScintYieldRatio" ),
Comment(
"(only if ScintByParticleType is true)") };
306 {
Name(
"KaonScintYield" ),
Comment(
"(only if ScintByParticleType is true)") };
308 {
Name(
"KaonScintYieldRatio" ),
Comment(
"(only if ScintByParticleType is true)") };
310 {
Name(
"ElectronScintYield" ),
Comment(
"(only if ScintByParticleType is true)") };
312 {
Name(
"ElectronScintYieldRatio"),
Comment(
"(only if ScintByParticleType is true)") };
314 {
Name(
"AlphaScintYield" ),
Comment(
"(only if ScintByParticleType is true)") };
316 {
Name(
"AlphaScintYieldRatio" ),
Comment(
"(only if ScintByParticleType is true)") };
319 #endif // !DETECTORINFO_LARPROPERTIESSTANDARD_HASOPTIONALATOM? 397 #if DETECTORINFO_LARPROPERTIESSTANDARD_HASOPTIONALATOM 399 #else // !DETECTORINFO_LARPROPERTIESSTANDARD_HASOPTIONALATOM? 401 #endif // !DETECTORINFO_LARPROPERTIESSTANDARD_HASOPTIONALATOM? 405 #endif // LARPROPERTIES_H
std::vector< double > fTpbEmmisionSpectrum
fhicl::Sequence< double > TpbAbsorptionEnergies
void SetAlphaScintYieldRatio(double r)
void SetElectronScintYieldRatio(double r)
double fScintResolutionScale
void SetScintYieldRatio(double r)
void SetTpbTimeConstant(double y)
virtual bool CerenkovLightEnabled() const override
double fArgon39DecayRate
decays per cm^3 per second
std::vector< double > fRIndexEnergies
void SetKaonScintYieldRatio(double r)
double fA
Ar atomic mass (g/mol)
virtual bool ScintByParticleType() const override
virtual double AtomicMass() const override
Ar atomic mass (g/mol)
fhicl::Sequence< std::string > ReflectiveSurfaceNames
virtual std::map< double, double > SlowScintSpectrum() const override
double fElectronScintYield
void SetScintSlowTimeConst(double t)
virtual double Argon39DecayRate() const override
virtual std::map< double, double > TpbAbs() const override
virtual double MuonScintYieldRatio() const override
std::vector< double > fTpbAbsorptionSpectrum
void SetPionScintYieldRatio(double r)
virtual ~LArPropertiesStandard()=default
void SetScintFastTimeConst(double t)
virtual double ExcitationEnergy() const override
Ar mean excitation energy (eV)
void SetElectronScintYield(double y)
fhicl::Atom< double > ScintSlowTimeConst
virtual double ScintYieldRatio() const override
virtual double ScintYield(bool prescale=false) const override
double fScintSlowTimeConst
void SetAtomicMass(double a)
fhicl::Atom< double > ScintBirksConstant
fhicl::Atom< double > RadiationLength
fhicl::Sequence< double > FastScintEnergies
fhicl::Atom< double > ScintPreScale
std::vector< double > fFastScintEnergies
double fZ
Ar atomic number.
void SetPionScintYield(double y)
fhicl::Atom< bool > ExtraMatProperties
std::vector< double > fRayleighSpectrum
bool Update(uint64_t ts=0)
std::vector< double > fRIndexSpectrum
void SetProtonScintYieldRatio(double r)
void SetMuonScintYieldRatio(double r)
void SetMeanExcitationEnergy(double e)
fhicl::Atom< double > Argon39DecayRate
void SetProtonScintYield(double y)
void SetAbsLengthSpectrum(std::vector< double > s)
virtual double RadiationLength() const override
g/cm^2
virtual std::map< double, double > TpbEm() const override
virtual double MuonScintYield(bool prescale=false) const override
fhicl::Sequence< double > RayleighEnergies
fhicl::Atom< double > AtomicNumber
virtual double AlphaScintYieldRatio() const override
virtual double PionScintYieldRatio() const override
void SetTpbEmmisionSpectrum(std::vector< double > s)
fhicl::Sequence< double > ReflectiveSurfaceEnergies
fhicl::Sequence< double > TpbEmmisionEnergies
fhicl::Sequence< double > AbsLengthEnergies
virtual double ScintPreScale(bool prescale=true) const override
void SetRadiationLength(double rl)
fhicl::Atom< double > ScintResolutionScale
double fPionScintYieldRatio
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
fhicl::Sequence< double > SlowScintEnergies
virtual std::map< std::string, std::map< double, double > > SurfaceReflectanceDiffuseFractions() const override
virtual double AlphaScintYield(bool prescale=false) const override
fhicl::Sequence< double > TpbEmmisionSpectrum
std::vector< std::string > fReflectiveSurfaceNames
void SetArgon39DecayRate(double r)
bool Configure(fhicl::ParameterSet const &pset, std::set< std::string > ignore_params={})
Configures the provider.
void SetScintBirksConstant(double kb)
fhicl::Atom< double > TpbTimeConstant
fhicl::Atom< bool > EnableCerenkovLight
virtual double ScintResolutionScale() const override
virtual std::map< double, double > AbsLengthSpectrum() const override
structure with all configuration parameters
void SetReflectiveSurfaceEnergies(std::vector< double > e)
void SetMuonScintYield(double y)
std::vector< double > fFastScintSpectrum
void SetReflectiveSurfaceReflectances(std::vector< std::vector< double > > r)
std::vector< double > fAbsLengthEnergies
fhicl::Atom< double > ScintYield
void SetScintByParticleType(bool l)
fhicl::Atom< double > AtomicMass
double fRadiationLength
g/cm^2
virtual double KaonScintYieldRatio() const override
void SetSlowScintEnergies(std::vector< double > s)
std::vector< double > fSlowScintEnergies
structure with all configuration parameters
std::vector< double > fTpbEmmisionEnergies
General LArSoft Utilities.
void SetFastScintSpectrum(std::vector< double > s)
void SetRayleighSpectrum(std::vector< double > s)
fhicl::Sequence< double > RIndexEnergies
fhicl::Atom< double > ScintFastTimeConst
void SetTpbEmmisionEnergies(std::vector< double > s)
double fMuonScintYieldRatio
bool fScintByParticleType
virtual double ElectronScintYieldRatio() const override
void SetAbsLengthEnergies(std::vector< double > s)
virtual double KaonScintYield(bool prescale=false) const override
void SetFastScintEnergies(std::vector< double > s)
void SetEnableCerenkovLight(bool f)
void SetRIndexEnergies(std::vector< double > s)
virtual double ScintFastTimeConst() const override
void SetExtraMatProperties(bool l)
virtual double ElectronScintYield(bool prescale=false) const override
void SetReflectiveSurfaceDiffuseFractions(std::vector< std::vector< double > > f)
void SetTpbAbsorptionSpectrum(std::vector< double > s)
std::vector< std::vector< double > > fReflectiveSurfaceReflectances
void SetScintPreScale(double s)
fhicl::Atom< bool > ScintByParticleType
double fI
Ar mean excitation energy (eV)
double fElectronScintYieldRatio
double fProtonScintYieldRatio
Properties related to liquid argon environment in the detector.
virtual double PionScintYield(bool prescale=false) const override
std::vector< double > fAbsLengthSpectrum
void SetTpbAbsorptionEnergies(std::vector< double > s)
void SetKaonScintYield(double y)
std::vector< double > fReflectiveSurfaceEnergies
std::vector< double > fSlowScintSpectrum
void SetAtomicNumber(double z)
fhicl::Atom< double > ScintYieldRatio
void SetSlowScintSpectrum(std::vector< double > s)
double fAlphaScintYieldRatio
virtual double ProtonScintYield(bool prescale=false) const override
void SetScintYield(double y)
virtual std::map< double, double > RIndexSpectrum() const override
std::vector< double > fTpbAbsorptionEnergies
virtual std::map< double, double > FastScintSpectrum() const override
virtual std::map< double, double > RayleighSpectrum() const override
fhicl::Sequence< fhicl::Sequence< double > > ReflectiveSurfaceReflectances
fhicl::Sequence< double > TpbAbsorptionSpectrum
virtual double ScintBirksConstant() const override
double fScintFastTimeConst
std::vector< double > fRayleighEnergies
void SetAlphaScintYield(double y)
virtual bool ExtraMatProperties() const override
void SetScintResolutionScale(double r)
double fKaonScintYieldRatio
virtual std::map< std::string, std::map< double, double > > SurfaceReflectances() const override
fhicl::Atom< double > MeanExcitationEnergy
bool fEnableCerenkovLight
double fScintBirksConstant
void SetReflectiveSurfaceNames(std::vector< std::string > n)
virtual double ScintSlowTimeConst() const override
virtual double TpbTimeConstant() const override
void SetRIndexSpectrum(std::vector< double > s)
virtual double AtomicNumber() const override
Ar atomic number.
std::vector< std::vector< double > > fReflectiveSurfaceDiffuseFractions
virtual double ProtonScintYieldRatio() const override
fhicl::Sequence< fhicl::Sequence< double > > ReflectiveSurfaceDiffuseFractions
void SetRayleighEnergies(std::vector< double > s)