31 #ifndef DETECTORINFO_LARPROPERTIESSTANDARD_H
32 #define DETECTORINFO_LARPROPERTIESSTANDARD_H
38 #define DETECTORINFO_LARPROPERTIESSTANDARD_HASOPTIONALATOM 0
44 #include "fhiclcpp/types/Atom.h"
45 #if DETECTORINFO_LARPROPERTIESSTANDARD_HASOPTIONALATOM
46 # include "fhiclcpp/types/OptionalAtom.h"
48 #include "fhiclcpp/types/Sequence.h"
50 namespace fhicl {
class ParameterSet; }
76 (fhicl::ParameterSet
const& pset, std::set<std::string> ignore_params = {});
90 (fhicl::ParameterSet
const& pset, std::set<std::string> ignore_params = {});
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
process_name opflash particleana ie ie ie z
void SetAlphaScintYieldRatio(double r)
fhicl::Sequence< double > FastScintSpectrum
void SetElectronScintYieldRatio(double r)
virtual double ScintFastTimeConst() const override
virtual std::map< double, double > RayleighSpectrum() const override
double fScintResolutionScale
void SetScintYieldRatio(double r)
void SetTpbTimeConstant(double y)
virtual double ElectronScintYieldRatio() 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 double KaonScintYield(bool prescale=false) const override
fhicl::Sequence< std::string > ReflectiveSurfaceNames
double fElectronScintYield
fhicl::Atom< double > KaonScintYieldRatio
fhicl::Atom< double > MuonScintYieldRatio
virtual std::map< double, double > AbsLengthSpectrum() const override
void SetScintSlowTimeConst(double t)
std::vector< double > fTpbAbsorptionSpectrum
void SetPionScintYieldRatio(double r)
virtual ~LArPropertiesStandard()=default
virtual std::map< double, double > RIndexSpectrum() const override
void SetScintFastTimeConst(double t)
virtual double TpbTimeConstant() const override
void SetElectronScintYield(double y)
fhicl::Atom< double > ScintSlowTimeConst
double fScintSlowTimeConst
virtual std::map< double, double > FastScintSpectrum() const override
void SetAtomicMass(double a)
virtual bool CerenkovLightEnabled() const override
fhicl::Atom< double > ScintBirksConstant
fhicl::Atom< double > RadiationLength
fhicl::Sequence< double > FastScintEnergies
fhicl::Atom< double > ScintPreScale
std::vector< double > fFastScintEnergies
virtual bool ScintByParticleType() const override
fhicl::Atom< double > ProtonScintYieldRatio
virtual double Argon39DecayRate() const override
double fZ
Ar atomic number.
void SetPionScintYield(double y)
virtual double AlphaScintYield(bool prescale=false) const override
fhicl::Atom< bool > ExtraMatProperties
fhicl::Atom< double > KaonScintYield
std::vector< double > fRayleighSpectrum
bool Update(uint64_t ts=0)
std::vector< double > fRIndexSpectrum
void SetProtonScintYieldRatio(double r)
void SetMuonScintYieldRatio(double r)
virtual double PionScintYieldRatio() const override
void SetMeanExcitationEnergy(double e)
fhicl::Atom< double > Argon39DecayRate
void SetProtonScintYield(double y)
fhicl::Sequence< double > RIndexSpectrum
void SetAbsLengthSpectrum(std::vector< double > s)
fhicl::Sequence< double > RayleighEnergies
fhicl::Atom< double > AtomicNumber
void SetTpbEmmisionSpectrum(std::vector< double > s)
fhicl::Sequence< double > ReflectiveSurfaceEnergies
virtual double KaonScintYieldRatio() const override
fhicl::Sequence< double > TpbEmmisionEnergies
virtual double ScintPreScale(bool prescale=true) const override
fhicl::Sequence< double > AbsLengthEnergies
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
fhicl::Atom< double > ProtonScintYield
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.
virtual double AtomicNumber() const override
Ar atomic number.
fhicl::Atom< double > PionScintYield
process_name opflash particleana ie ie y
virtual double ElectronScintYield(bool prescale=false) const override
void SetScintBirksConstant(double kb)
fhicl::Atom< double > TpbTimeConstant
fhicl::Atom< bool > EnableCerenkovLight
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)
fhicl::Sequence< double > RayleighSpectrum
std::vector< double > fAbsLengthEnergies
virtual double ProtonScintYield(bool prescale=false) const override
fhicl::Atom< double > ScintYield
void SetScintByParticleType(bool l)
fhicl::Atom< double > AtomicMass
virtual std::map< std::string, std::map< double, double > > SurfaceReflectances() const override
double fRadiationLength
g/cm^2
BEGIN_PROLOG vertical distance to the surface Name
void SetSlowScintEnergies(std::vector< double > s)
std::vector< double > fSlowScintEnergies
structure with all configuration parameters
std::vector< double > fTpbEmmisionEnergies
void SetFastScintSpectrum(std::vector< double > s)
fhicl::Atom< double > ElectronScintYield
void SetRayleighSpectrum(std::vector< double > s)
fhicl::Sequence< double > AbsLengthSpectrum
fhicl::Sequence< double > RIndexEnergies
fhicl::Atom< double > ScintFastTimeConst
void SetTpbEmmisionEnergies(std::vector< double > s)
fhicl::Atom< double > AlphaScintYield
double fMuonScintYieldRatio
virtual double PionScintYield(bool prescale=false) const override
bool fScintByParticleType
void SetAbsLengthEnergies(std::vector< double > s)
void SetFastScintEnergies(std::vector< double > s)
fhicl::Sequence< double > SlowScintSpectrum
void SetEnableCerenkovLight(bool f)
void SetRIndexEnergies(std::vector< double > s)
virtual double MuonScintYieldRatio() const override
void SetExtraMatProperties(bool l)
void SetReflectiveSurfaceDiffuseFractions(std::vector< std::vector< double > > f)
void SetTpbAbsorptionSpectrum(std::vector< double > s)
virtual double ScintResolutionScale() const override
virtual double AtomicMass() const override
Ar atomic mass (g/mol)
std::vector< std::vector< double > > fReflectiveSurfaceReflectances
virtual std::map< double, double > TpbAbs() const override
void SetScintPreScale(double s)
fhicl::Atom< bool > ScintByParticleType
virtual double ScintBirksConstant() const override
double fI
Ar mean excitation energy (eV)
double fElectronScintYieldRatio
virtual std::map< double, double > TpbEm() const override
virtual std::map< std::string, std::map< double, double > > SurfaceReflectanceDiffuseFractions() const override
then echo File list $list not found else cat $list while read file do echo $file sed s
double fProtonScintYieldRatio
Properties related to liquid argon environment in the detector.
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
fhicl::Atom< double > PionScintYieldRatio
void SetScintYield(double y)
std::vector< double > fTpbAbsorptionEnergies
fhicl::Sequence< fhicl::Sequence< double > > ReflectiveSurfaceReflectances
virtual double RadiationLength() const override
g/cm^2
fhicl::Sequence< double > TpbAbsorptionSpectrum
fhicl::Atom< double > ElectronScintYieldRatio
virtual double ExcitationEnergy() const override
Ar mean excitation energy (eV)
double fScintFastTimeConst
std::vector< double > fRayleighEnergies
void SetAlphaScintYield(double y)
virtual double ScintYieldRatio() const override
fhicl::Atom< double > AlphaScintYieldRatio
void SetScintResolutionScale(double r)
double fKaonScintYieldRatio
fhicl::Atom< double > MeanExcitationEnergy
virtual double ScintYield(bool prescale=false) const override
bool fEnableCerenkovLight
double fScintBirksConstant
fhicl::Atom< double > MuonScintYield
void SetReflectiveSurfaceNames(std::vector< std::string > n)
virtual double MuonScintYield(bool prescale=false) const override
virtual bool ExtraMatProperties() const override
virtual double AlphaScintYieldRatio() const override
virtual std::map< double, double > SlowScintSpectrum() const override
virtual double ScintSlowTimeConst() const override
void SetRIndexSpectrum(std::vector< double > s)
std::vector< std::vector< double > > fReflectiveSurfaceDiffuseFractions
fhicl::Sequence< fhicl::Sequence< double > > ReflectiveSurfaceDiffuseFractions
void SetRayleighEnergies(std::vector< double > s)
virtual double ProtonScintYieldRatio() const override