LArSoft  v06_85_00
Liquid Argon Software toolkit - http://larsoft.org/
detinfo::LArPropertiesStandard Class Reference

Properties related to liquid argon environment in the detector. More...

#include "LArPropertiesStandard.h"

Inheritance diagram for detinfo::LArPropertiesStandard:
detinfo::LArProperties

Classes

struct  Configuration_t
 structure with all configuration parameters More...
 
struct  ConfigWithScintByType_t
 structure with all configuration parameters More...
 

Public Types

using ConfigurationParameters_t = ConfigWithScintByType_t
 

Public Member Functions

 LArPropertiesStandard ()
 
 LArPropertiesStandard (fhicl::ParameterSet const &pset, std::set< std::string > ignore_params={})
 
 LArPropertiesStandard (LArPropertiesStandard const &)=delete
 
virtual ~LArPropertiesStandard ()=default
 
bool Configure (fhicl::ParameterSet const &pset, std::set< std::string > ignore_params={})
 Configures the provider. More...
 
bool Update (uint64_t ts=0)
 
virtual double RadiationLength () const override
 g/cm^2 More...
 
virtual double Argon39DecayRate () const override
 
virtual double AtomicNumber () const override
 Ar atomic number. More...
 
virtual double AtomicMass () const override
 Ar atomic mass (g/mol) More...
 
virtual double ExcitationEnergy () const override
 Ar mean excitation energy (eV) More...
 
virtual double ScintResolutionScale () const override
 
virtual double ScintFastTimeConst () const override
 
virtual double ScintSlowTimeConst () const override
 
virtual double ScintBirksConstant () const override
 
virtual bool ScintByParticleType () const override
 
virtual double ScintYield (bool prescale=false) const override
 
virtual double ScintPreScale (bool prescale=true) const override
 
virtual double ScintYieldRatio () const override
 
virtual double ProtonScintYield (bool prescale=false) const override
 
virtual double ProtonScintYieldRatio () const override
 
virtual double MuonScintYield (bool prescale=false) const override
 
virtual double MuonScintYieldRatio () const override
 
virtual double KaonScintYield (bool prescale=false) const override
 
virtual double KaonScintYieldRatio () const override
 
virtual double PionScintYield (bool prescale=false) const override
 
virtual double PionScintYieldRatio () const override
 
virtual double ElectronScintYield (bool prescale=false) const override
 
virtual double ElectronScintYieldRatio () const override
 
virtual double AlphaScintYield (bool prescale=false) const override
 
virtual double AlphaScintYieldRatio () const override
 
virtual bool CerenkovLightEnabled () const override
 
virtual std::map< double, double > SlowScintSpectrum () const override
 
virtual std::map< double, double > FastScintSpectrum () const override
 
virtual std::map< double, double > RIndexSpectrum () const override
 
virtual std::map< double, double > AbsLengthSpectrum () const override
 
virtual std::map< double, double > RayleighSpectrum () const override
 
virtual std::map< std::string, std::map< double, double > > SurfaceReflectances () const override
 
virtual std::map< std::string, std::map< double, double > > SurfaceReflectanceDiffuseFractions () const override
 
void SetRadiationLength (double rl)
 
void SetArgon39DecayRate (double r)
 
void SetAtomicNumber (double z)
 
void SetAtomicMass (double a)
 
void SetMeanExcitationEnergy (double e)
 
void SetFastScintSpectrum (std::vector< double > s)
 
void SetFastScintEnergies (std::vector< double > s)
 
void SetSlowScintSpectrum (std::vector< double > s)
 
void SetSlowScintEnergies (std::vector< double > s)
 
void SetRIndexSpectrum (std::vector< double > s)
 
void SetRIndexEnergies (std::vector< double > s)
 
void SetAbsLengthSpectrum (std::vector< double > s)
 
void SetAbsLengthEnergies (std::vector< double > s)
 
void SetRayleighSpectrum (std::vector< double > s)
 
void SetRayleighEnergies (std::vector< double > s)
 
void SetScintByParticleType (bool l)
 
void SetProtonScintYield (double y)
 
void SetProtonScintYieldRatio (double r)
 
void SetMuonScintYield (double y)
 
void SetMuonScintYieldRatio (double r)
 
void SetPionScintYield (double y)
 
void SetPionScintYieldRatio (double r)
 
void SetKaonScintYield (double y)
 
void SetKaonScintYieldRatio (double r)
 
void SetElectronScintYield (double y)
 
void SetElectronScintYieldRatio (double r)
 
void SetAlphaScintYield (double y)
 
void SetAlphaScintYieldRatio (double r)
 
void SetScintYield (double y)
 
void SetScintPreScale (double s)
 
void SetScintResolutionScale (double r)
 
void SetScintFastTimeConst (double t)
 
void SetScintSlowTimeConst (double t)
 
void SetScintYieldRatio (double r)
 
void SetScintBirksConstant (double kb)
 
void SetEnableCerenkovLight (bool f)
 
void SetReflectiveSurfaceNames (std::vector< std::string > n)
 
void SetReflectiveSurfaceEnergies (std::vector< double > e)
 
void SetReflectiveSurfaceReflectances (std::vector< std::vector< double > > r)
 
void SetReflectiveSurfaceDiffuseFractions (std::vector< std::vector< double > > f)
 
void SetExtraMatProperties (bool l)
 
virtual bool ExtraMatProperties () const override
 
virtual double TpbTimeConstant () const override
 
virtual std::map< double, double > TpbAbs () const override
 
virtual std::map< double, double > TpbEm () const override
 
void SetTpbTimeConstant (double y)
 
void SetTpbEmmisionEnergies (std::vector< double > s)
 
void SetTpbEmmisionSpectrum (std::vector< double > s)
 
void SetTpbAbsorptionEnergies (std::vector< double > s)
 
void SetTpbAbsorptionSpectrum (std::vector< double > s)
 

Protected Attributes

bool fIsConfigured
 
double fRadiationLength
 g/cm^2 More...
 
double fArgon39DecayRate
 decays per cm^3 per second More...
 
double fZ
 Ar atomic number. More...
 
double fA
 Ar atomic mass (g/mol) More...
 
double fI
 Ar mean excitation energy (eV) More...
 
std::vector< double > fFastScintSpectrum
 
std::vector< double > fFastScintEnergies
 
std::vector< double > fSlowScintSpectrum
 
std::vector< double > fSlowScintEnergies
 
std::vector< double > fRIndexSpectrum
 
std::vector< double > fRIndexEnergies
 
std::vector< double > fAbsLengthSpectrum
 
std::vector< double > fAbsLengthEnergies
 
std::vector< double > fRayleighSpectrum
 
std::vector< double > fRayleighEnergies
 
bool fScintByParticleType
 
double fProtonScintYield
 
double fProtonScintYieldRatio
 
double fMuonScintYield
 
double fMuonScintYieldRatio
 
double fPionScintYield
 
double fPionScintYieldRatio
 
double fKaonScintYield
 
double fKaonScintYieldRatio
 
double fElectronScintYield
 
double fElectronScintYieldRatio
 
double fAlphaScintYield
 
double fAlphaScintYieldRatio
 
double fScintYield
 
double fScintPreScale
 
double fScintResolutionScale
 
double fScintFastTimeConst
 
double fScintSlowTimeConst
 
double fScintYieldRatio
 
double fScintBirksConstant
 
bool fEnableCerenkovLight
 
std::vector< std::string > fReflectiveSurfaceNames
 
std::vector< double > fReflectiveSurfaceEnergies
 
std::vector< std::vector< double > > fReflectiveSurfaceReflectances
 
std::vector< std::vector< double > > fReflectiveSurfaceDiffuseFractions
 
bool fExtraMatProperties
 
double fTpbTimeConstant
 
std::vector< double > fTpbEmmisionEnergies
 
std::vector< double > fTpbEmmisionSpectrum
 
std::vector< double > fTpbAbsorptionEnergies
 
std::vector< double > fTpbAbsorptionSpectrum
 

Detailed Description

Properties related to liquid argon environment in the detector.

This class can access databases via DatabaseUtil service.

Note
Some of the database connection properties are established before the beginning of the job and if they change this service will not be aware of it. These properties petrain, so far, only the connection mode and not any content of the databases themselves.
2: the database connection features for this base class have been removed

Definition at line 72 of file LArPropertiesStandard.h.

Member Typedef Documentation

Constructor & Destructor Documentation

detinfo::LArPropertiesStandard::LArPropertiesStandard ( )

Definition at line 29 of file LArPropertiesStandard.cxx.

30  : fIsConfigured(false)
31 {
32 }
detinfo::LArPropertiesStandard::LArPropertiesStandard ( fhicl::ParameterSet const &  pset,
std::set< std::string >  ignore_params = {} 
)
explicit

Definition at line 35 of file LArPropertiesStandard.cxx.

References Configure(), fIsConfigured, fhicl::ParameterSet::get(), ScintByParticleType(), SetAbsLengthEnergies(), SetAbsLengthSpectrum(), SetAlphaScintYield(), SetAlphaScintYieldRatio(), SetArgon39DecayRate(), SetAtomicMass(), SetAtomicNumber(), SetElectronScintYield(), SetElectronScintYieldRatio(), SetEnableCerenkovLight(), SetFastScintEnergies(), SetFastScintSpectrum(), SetKaonScintYield(), SetKaonScintYieldRatio(), SetMeanExcitationEnergy(), SetMuonScintYield(), SetMuonScintYieldRatio(), SetPionScintYield(), SetPionScintYieldRatio(), SetProtonScintYield(), SetProtonScintYieldRatio(), SetRadiationLength(), SetRayleighEnergies(), SetRayleighSpectrum(), SetReflectiveSurfaceDiffuseFractions(), SetReflectiveSurfaceEnergies(), SetReflectiveSurfaceNames(), SetReflectiveSurfaceReflectances(), SetRIndexEnergies(), SetRIndexSpectrum(), SetScintBirksConstant(), SetScintByParticleType(), SetScintFastTimeConst(), SetScintPreScale(), SetScintResolutionScale(), SetScintSlowTimeConst(), SetScintYield(), SetScintYieldRatio(), SetSlowScintEnergies(), SetSlowScintSpectrum(), and lar::dump::vector().

39 {
40  this->Configure(pset, ignore_params);
41 }
bool Configure(fhicl::ParameterSet const &pset, std::set< std::string > ignore_params={})
Configures the provider.
detinfo::LArPropertiesStandard::LArPropertiesStandard ( LArPropertiesStandard const &  )
delete
virtual detinfo::LArPropertiesStandard::~LArPropertiesStandard ( )
virtualdefault

Member Function Documentation

std::map< double, double > detinfo::LArPropertiesStandard::AbsLengthSpectrum ( ) const
overridevirtual

Implements detinfo::LArProperties.

Definition at line 304 of file LArPropertiesStandard.cxx.

References fAbsLengthEnergies, and fAbsLengthSpectrum.

Referenced by CerenkovLightEnabled().

305 {
306  if(fAbsLengthSpectrum.size()!=fAbsLengthEnergies.size()){
307  throw cet::exception("Incorrect vector sizes in LArPropertiesStandard")
308  << "The vectors specifying the Abs Length spectrum are "
309  << " different sizes - " << fAbsLengthSpectrum.size()
310  << " " << fAbsLengthEnergies.size();
311  }
312 
313  std::map<double, double> ToReturn;
314  for(size_t i=0; i!=fAbsLengthSpectrum.size(); ++i)
315  ToReturn[fAbsLengthEnergies.at(i)]=fAbsLengthSpectrum.at(i);
316 
317  return ToReturn;
318 }
std::vector< double > fAbsLengthEnergies
std::vector< double > fAbsLengthSpectrum
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
virtual double detinfo::LArPropertiesStandard::AlphaScintYield ( bool  prescale = false) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 125 of file LArPropertiesStandard.h.

References fAlphaScintYield, and ScintPreScale().

125 { return fAlphaScintYield * ScintPreScale(prescale); }
virtual double ScintPreScale(bool prescale=true) const override
virtual double detinfo::LArPropertiesStandard::AlphaScintYieldRatio ( ) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 126 of file LArPropertiesStandard.h.

References fAlphaScintYieldRatio.

virtual double detinfo::LArPropertiesStandard::Argon39DecayRate ( ) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 95 of file LArPropertiesStandard.h.

References fArgon39DecayRate.

95 { return fArgon39DecayRate; } // decays per cm^3 per second
double fArgon39DecayRate
decays per cm^3 per second
virtual double detinfo::LArPropertiesStandard::AtomicMass ( ) const
inlineoverridevirtual

Ar atomic mass (g/mol)

Implements detinfo::LArProperties.

Definition at line 100 of file LArPropertiesStandard.h.

References fA.

100 { return fA; }
double fA
Ar atomic mass (g/mol)
virtual double detinfo::LArPropertiesStandard::AtomicNumber ( ) const
inlineoverridevirtual

Ar atomic number.

Implements detinfo::LArProperties.

Definition at line 98 of file LArPropertiesStandard.h.

References fZ.

98 { return fZ; }
virtual bool detinfo::LArPropertiesStandard::CerenkovLightEnabled ( ) const
inlineoverridevirtual
bool detinfo::LArPropertiesStandard::Configure ( fhicl::ParameterSet const &  pset,
std::set< std::string >  ignore_params = {} 
)

Configures the provider.

Parameters
psetconfiguration parameter set
ignore_paramsunknown parameters to be tolerated (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 104 of file LArPropertiesStandard.cxx.

References detinfo::LArPropertiesStandard::Configuration_t::AbsLengthEnergies, detinfo::LArPropertiesStandard::Configuration_t::AbsLengthSpectrum, detinfo::LArPropertiesStandard::ConfigWithScintByType_t::AlphaScintYield, detinfo::LArPropertiesStandard::ConfigWithScintByType_t::AlphaScintYieldRatio, detinfo::LArPropertiesStandard::Configuration_t::Argon39DecayRate, detinfo::LArPropertiesStandard::Configuration_t::AtomicMass, detinfo::LArPropertiesStandard::Configuration_t::AtomicNumber, detinfo::LArPropertiesStandard::ConfigWithScintByType_t::ElectronScintYield, detinfo::LArPropertiesStandard::ConfigWithScintByType_t::ElectronScintYieldRatio, detinfo::LArPropertiesStandard::Configuration_t::EnableCerenkovLight, detinfo::LArPropertiesStandard::Configuration_t::ExtraMatProperties, detinfo::LArPropertiesStandard::Configuration_t::FastScintEnergies, detinfo::LArPropertiesStandard::Configuration_t::FastScintSpectrum, fIsConfigured, fhicl::ParameterSet::get(), lar::IgnorableProviderConfigKeys(), detinfo::LArPropertiesStandard::ConfigWithScintByType_t::KaonScintYield, detinfo::LArPropertiesStandard::ConfigWithScintByType_t::KaonScintYieldRatio, fhicl::detail::ParameterBase::key(), detinfo::LArPropertiesStandard::Configuration_t::MeanExcitationEnergy, detinfo::LArPropertiesStandard::ConfigWithScintByType_t::MuonScintYield, detinfo::LArPropertiesStandard::ConfigWithScintByType_t::MuonScintYieldRatio, detinfo::LArPropertiesStandard::ConfigWithScintByType_t::PionScintYield, detinfo::LArPropertiesStandard::ConfigWithScintByType_t::PionScintYieldRatio, detinfo::LArPropertiesStandard::ConfigWithScintByType_t::ProtonScintYield, detinfo::LArPropertiesStandard::ConfigWithScintByType_t::ProtonScintYieldRatio, detinfo::LArPropertiesStandard::Configuration_t::RadiationLength, detinfo::LArPropertiesStandard::Configuration_t::RayleighEnergies, detinfo::LArPropertiesStandard::Configuration_t::RayleighSpectrum, detinfo::LArPropertiesStandard::Configuration_t::ReflectiveSurfaceDiffuseFractions, detinfo::LArPropertiesStandard::Configuration_t::ReflectiveSurfaceEnergies, detinfo::LArPropertiesStandard::Configuration_t::ReflectiveSurfaceNames, detinfo::LArPropertiesStandard::Configuration_t::ReflectiveSurfaceReflectances, detinfo::LArPropertiesStandard::Configuration_t::RIndexEnergies, detinfo::LArPropertiesStandard::Configuration_t::RIndexSpectrum, detinfo::LArPropertiesStandard::Configuration_t::ScintBirksConstant, detinfo::LArPropertiesStandard::Configuration_t::ScintByParticleType, detinfo::LArPropertiesStandard::Configuration_t::ScintFastTimeConst, detinfo::LArPropertiesStandard::Configuration_t::ScintPreScale, detinfo::LArPropertiesStandard::Configuration_t::ScintResolutionScale, detinfo::LArPropertiesStandard::Configuration_t::ScintSlowTimeConst, detinfo::LArPropertiesStandard::Configuration_t::ScintYield, detinfo::LArPropertiesStandard::Configuration_t::ScintYieldRatio, SetAbsLengthEnergies(), SetAbsLengthSpectrum(), SetAlphaScintYield(), SetAlphaScintYieldRatio(), SetArgon39DecayRate(), SetAtomicMass(), SetAtomicNumber(), SetElectronScintYield(), SetElectronScintYieldRatio(), SetEnableCerenkovLight(), SetExtraMatProperties(), SetFastScintEnergies(), SetFastScintSpectrum(), SetKaonScintYield(), SetKaonScintYieldRatio(), SetMeanExcitationEnergy(), SetMuonScintYield(), SetMuonScintYieldRatio(), SetPionScintYield(), SetPionScintYieldRatio(), SetProtonScintYield(), SetProtonScintYieldRatio(), SetRadiationLength(), SetRayleighEnergies(), SetRayleighSpectrum(), SetReflectiveSurfaceDiffuseFractions(), SetReflectiveSurfaceEnergies(), SetReflectiveSurfaceNames(), SetReflectiveSurfaceReflectances(), SetRIndexEnergies(), SetRIndexSpectrum(), SetScintBirksConstant(), SetScintByParticleType(), SetScintFastTimeConst(), SetScintPreScale(), SetScintResolutionScale(), SetScintSlowTimeConst(), SetScintYield(), SetScintYieldRatio(), SetSlowScintEnergies(), SetSlowScintSpectrum(), SetTpbAbsorptionEnergies(), SetTpbAbsorptionSpectrum(), SetTpbEmmisionEnergies(), SetTpbEmmisionSpectrum(), SetTpbTimeConstant(), detinfo::LArPropertiesStandard::Configuration_t::SlowScintEnergies, detinfo::LArPropertiesStandard::Configuration_t::SlowScintSpectrum, detinfo::LArPropertiesStandard::Configuration_t::TpbAbsorptionEnergies, detinfo::LArPropertiesStandard::Configuration_t::TpbAbsorptionSpectrum, detinfo::LArPropertiesStandard::Configuration_t::TpbEmmisionEnergies, detinfo::LArPropertiesStandard::Configuration_t::TpbEmmisionSpectrum, detinfo::LArPropertiesStandard::Configuration_t::TpbTimeConstant, and fhicl::detail::atom::value().

Referenced by LArPropertiesStandard().

107  {
108  // we need to know whether we require the additional ScintByParticleType parameters:
109  const bool bScintByParticleType = pset.get<bool>("ScintByParticleType", false);
110 
111  std::set<std::string> ignorable_keys = lar::IgnorableProviderConfigKeys();
112  ignorable_keys.insert(ignore_params.begin(), ignore_params.end());
113 
114 #if DETECTORINFO_LARPROPERTIESSTANDARD_HASOPTIONALATOM
115  // validation happens here:
117  Configuration_t const& config = config_table();
118 
119  if(bScintByParticleType) {
120  double value;
121  std::string errmsg;
122  if (config.ProtonScintYield(value)) SetProtonScintYield(value);
123  else errmsg += fhicl::detail::fillMissingKeysMsg(&config_table, { config.ProtonScintYield .key() });
124  if (config.ProtonScintYieldRatio (value)) SetProtonScintYieldRatio (value);
125  else errmsg += fhicl::detail::fillMissingKeysMsg(&config_table, { config.ProtonScintYieldRatio .key() });
126  if (config.MuonScintYield (value)) SetMuonScintYield (value);
127  else errmsg += fhicl::detail::fillMissingKeysMsg(&config_table, { config.MuonScintYield .key() });
128  if (config.MuonScintYieldRatio (value)) SetMuonScintYieldRatio (value);
129  else errmsg += fhicl::detail::fillMissingKeysMsg(&config_table, { config.MuonScintYieldRatio .key() });
130  if (config.PionScintYield (value)) SetPionScintYield (value);
131  else errmsg += fhicl::detail::fillMissingKeysMsg(&config_table, { config.PionScintYield .key() });
132  if (config.PionScintYieldRatio (value)) SetPionScintYieldRatio (value);
133  else errmsg += fhicl::detail::fillMissingKeysMsg(&config_table, { config.PionScintYieldRatio .key() });
134  if (config.KaonScintYield (value)) SetKaonScintYield (value);
135  else errmsg += fhicl::detail::fillMissingKeysMsg(&config_table, { config.KaonScintYield .key() });
136  if (config.KaonScintYieldRatio (value)) SetKaonScintYieldRatio (value);
137  else errmsg += fhicl::detail::fillMissingKeysMsg(&config_table, { config.KaonScintYieldRatio .key() });
138  if (config.ElectronScintYield (value)) SetElectronScintYield (value);
139  else errmsg += fhicl::detail::fillMissingKeysMsg(&config_table, { config.ElectronScintYield .key() });
140  if (config.ElectronScintYieldRatio(value)) SetElectronScintYieldRatio(value);
141  else errmsg += fhicl::detail::fillMissingKeysMsg(&config_table, { config.ElectronScintYieldRatio.key() });
142  if (config.AlphaScintYield (value)) SetAlphaScintYield (value);
143  else errmsg += fhicl::detail::fillMissingKeysMsg(&config_table, { config.AlphaScintYield .key() });
144  if (config.AlphaScintYieldRatio (value)) SetAlphaScintYieldRatio (value);
145  else errmsg += fhicl::detail::fillMissingKeysMsg(&config_table, { config.AlphaScintYieldRatio .key() });
146  if (!errmsg.empty()) {
148  "[these parameters are REQUIRED when ScintByParticleType is true; the list may be incomplete]\n"
149  + errmsg
150  ).c_str());
151  } // if missing parameters
152  } // if bScintByParticleType
153 
154  // read parameters
155 #else // !DETECTORINFO_LARPROPERTIESSTANDARD_HASOPTIONALATOM
156 
157  if (!bScintByParticleType) { // ignore the following keys
158  ConfigWithScintByType_t config; // to get the keys
159  ignorable_keys.insert(config.ProtonScintYield .key());
160  ignorable_keys.insert(config.ProtonScintYieldRatio .key());
161  ignorable_keys.insert(config.MuonScintYield .key());
162  ignorable_keys.insert(config.MuonScintYieldRatio .key());
163  ignorable_keys.insert(config.PionScintYield .key());
164  ignorable_keys.insert(config.PionScintYieldRatio .key());
165  ignorable_keys.insert(config.KaonScintYield .key());
166  ignorable_keys.insert(config.KaonScintYieldRatio .key());
167  ignorable_keys.insert(config.ElectronScintYield .key());
168  ignorable_keys.insert(config.ElectronScintYieldRatio.key());
169  ignorable_keys.insert(config.AlphaScintYield .key());
170  ignorable_keys.insert(config.AlphaScintYieldRatio .key());
171  } // if !bScintByParticleType
172 
173  // validation happens here:
174  fhicl::Table<ConfigWithScintByType_t> config_table { pset, ignorable_keys };
175 
176  // read parameters
177  ConfigWithScintByType_t const& config = config_table();
178  if (bScintByParticleType) {
179  SetProtonScintYield (config.ProtonScintYield ());
180  SetProtonScintYieldRatio (config.ProtonScintYieldRatio ());
181  SetMuonScintYield (config.MuonScintYield ());
182  SetMuonScintYieldRatio (config.MuonScintYieldRatio ());
183  SetPionScintYield (config.PionScintYield ());
184  SetPionScintYieldRatio (config.PionScintYieldRatio ());
185  SetKaonScintYield (config.KaonScintYield ());
186  SetKaonScintYieldRatio (config.KaonScintYieldRatio ());
187  SetElectronScintYield (config.ElectronScintYield ());
188  SetElectronScintYieldRatio(config.ElectronScintYieldRatio());
189  SetAlphaScintYield (config.AlphaScintYield ());
190  SetAlphaScintYieldRatio (config.AlphaScintYieldRatio ());
191  } // if ScintByParticleType
192 #endif // DETECTORINFO_LARPROPERTIESSTANDARD_HASOPTIONALATOM??
193 
194  SetRadiationLength (config.RadiationLength());
195 
196  SetAtomicNumber (config.AtomicNumber());
197  SetAtomicMass (config.AtomicMass());
198  SetMeanExcitationEnergy (config.MeanExcitationEnergy());
199 
200  SetArgon39DecayRate (config.Argon39DecayRate());
201 
202  SetFastScintEnergies(config.FastScintEnergies());
203  SetFastScintSpectrum(config.FastScintSpectrum());
204  SetSlowScintEnergies(config.SlowScintEnergies());
205  SetSlowScintSpectrum(config.SlowScintSpectrum());
206  SetAbsLengthEnergies(config.AbsLengthEnergies());
207  SetAbsLengthSpectrum(config.AbsLengthSpectrum());
208  SetRIndexEnergies (config.RIndexEnergies ());
209  SetRIndexSpectrum (config.RIndexSpectrum ());
210  SetRayleighEnergies (config.RayleighEnergies ());
211  SetRayleighSpectrum (config.RayleighSpectrum ());
212 
213  SetScintResolutionScale(config.ScintResolutionScale());
214  SetScintFastTimeConst (config.ScintFastTimeConst ());
215  SetScintSlowTimeConst (config.ScintSlowTimeConst ());
216  SetScintBirksConstant (config.ScintBirksConstant ());
217  SetScintYield (config.ScintYield ());
218  SetScintPreScale (config.ScintPreScale ());
219  SetScintYieldRatio (config.ScintYieldRatio ());
220  SetScintByParticleType (config.ScintByParticleType ());
221 
222  SetEnableCerenkovLight(config.EnableCerenkovLight());
223 
224  SetReflectiveSurfaceNames (config.ReflectiveSurfaceNames());
225  SetReflectiveSurfaceEnergies (config.ReflectiveSurfaceEnergies());
226  SetReflectiveSurfaceReflectances (config.ReflectiveSurfaceReflectances());
227  SetReflectiveSurfaceDiffuseFractions(config.ReflectiveSurfaceDiffuseFractions());
228 
229  SetTpbEmmisionEnergies(config.TpbEmmisionEnergies());
230  SetTpbEmmisionSpectrum(config.TpbEmmisionSpectrum());
231  SetTpbAbsorptionEnergies(config.TpbAbsorptionEnergies());
232  SetTpbAbsorptionSpectrum(config.TpbAbsorptionSpectrum());
233 
234  SetExtraMatProperties (config.ExtraMatProperties ());
235  SetTpbTimeConstant (config.TpbTimeConstant ());
236 
237 
238  fIsConfigured = true;
239 
240  return true;
241 }
void SetAbsLengthSpectrum(std::vector< double > s)
void SetTpbEmmisionSpectrum(std::vector< double > s)
void SetReflectiveSurfaceEnergies(std::vector< double > e)
void SetReflectiveSurfaceReflectances(std::vector< std::vector< double > > r)
std::set< std::string > const & IgnorableProviderConfigKeys()
Returns a list of configuration keys that providers should ignore.
Definition: ProviderUtil.h:35
void SetSlowScintEnergies(std::vector< double > s)
void SetFastScintSpectrum(std::vector< double > s)
void SetRayleighSpectrum(std::vector< double > s)
void SetTpbEmmisionEnergies(std::vector< double > s)
void SetAbsLengthEnergies(std::vector< double > s)
void SetFastScintEnergies(std::vector< double > s)
void SetRIndexEnergies(std::vector< double > s)
void SetReflectiveSurfaceDiffuseFractions(std::vector< std::vector< double > > f)
std::string value(boost::any const &)
void SetTpbAbsorptionSpectrum(std::vector< double > s)
void SetTpbAbsorptionEnergies(std::vector< double > s)
void SetSlowScintSpectrum(std::vector< double > s)
void SetReflectiveSurfaceNames(std::vector< std::string > n)
void SetRIndexSpectrum(std::vector< double > s)
void SetRayleighEnergies(std::vector< double > s)
virtual double detinfo::LArPropertiesStandard::ElectronScintYield ( bool  prescale = false) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 123 of file LArPropertiesStandard.h.

References fElectronScintYield, and ScintPreScale().

123 { return fElectronScintYield * ScintPreScale(prescale);}
virtual double ScintPreScale(bool prescale=true) const override
virtual double detinfo::LArPropertiesStandard::ElectronScintYieldRatio ( ) const
inlineoverridevirtual
virtual double detinfo::LArPropertiesStandard::ExcitationEnergy ( ) const
inlineoverridevirtual

Ar mean excitation energy (eV)

Implements detinfo::LArProperties.

Definition at line 102 of file LArPropertiesStandard.h.

References fI.

102 { return fI; }
double fI
Ar mean excitation energy (eV)
virtual bool detinfo::LArPropertiesStandard::ExtraMatProperties ( ) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 185 of file LArPropertiesStandard.h.

References fExtraMatProperties.

std::map< double, double > detinfo::LArPropertiesStandard::FastScintSpectrum ( ) const
overridevirtual

Implements detinfo::LArProperties.

Definition at line 252 of file LArPropertiesStandard.cxx.

References fFastScintEnergies, and fFastScintSpectrum.

Referenced by CerenkovLightEnabled().

253 {
254  if(fFastScintSpectrum.size()!=fFastScintEnergies.size()){
255  throw cet::exception("Incorrect vector sizes in LArPropertiesStandard")
256  << "The vectors specifying the fast scintillation spectrum are "
257  << " different sizes - " << fFastScintSpectrum.size()
258  << " " << fFastScintEnergies.size();
259  }
260 
261  std::map<double, double> ToReturn;
262  for(size_t i=0; i!=fFastScintSpectrum.size(); ++i)
263  ToReturn[fFastScintEnergies.at(i)]=fFastScintSpectrum.at(i);
264 
265  return ToReturn;
266 }
std::vector< double > fFastScintEnergies
std::vector< double > fFastScintSpectrum
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
virtual double detinfo::LArPropertiesStandard::KaonScintYield ( bool  prescale = false) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 119 of file LArPropertiesStandard.h.

References fKaonScintYield, and ScintPreScale().

119 { return fKaonScintYield * ScintPreScale(prescale); }
virtual double ScintPreScale(bool prescale=true) const override
virtual double detinfo::LArPropertiesStandard::KaonScintYieldRatio ( ) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 120 of file LArPropertiesStandard.h.

References fKaonScintYieldRatio.

virtual double detinfo::LArPropertiesStandard::MuonScintYield ( bool  prescale = false) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 117 of file LArPropertiesStandard.h.

References fMuonScintYield, and ScintPreScale().

117 { return fMuonScintYield * ScintPreScale(prescale); }
virtual double ScintPreScale(bool prescale=true) const override
virtual double detinfo::LArPropertiesStandard::MuonScintYieldRatio ( ) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 118 of file LArPropertiesStandard.h.

References fMuonScintYieldRatio.

virtual double detinfo::LArPropertiesStandard::PionScintYield ( bool  prescale = false) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 121 of file LArPropertiesStandard.h.

References fPionScintYield, and ScintPreScale().

121 { return fPionScintYield * ScintPreScale(prescale); }
virtual double ScintPreScale(bool prescale=true) const override
virtual double detinfo::LArPropertiesStandard::PionScintYieldRatio ( ) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 122 of file LArPropertiesStandard.h.

References fPionScintYieldRatio.

virtual double detinfo::LArPropertiesStandard::ProtonScintYield ( bool  prescale = false) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 115 of file LArPropertiesStandard.h.

References fProtonScintYield, and ScintPreScale().

115 { return fProtonScintYield * ScintPreScale(prescale); }
virtual double ScintPreScale(bool prescale=true) const override
virtual double detinfo::LArPropertiesStandard::ProtonScintYieldRatio ( ) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 116 of file LArPropertiesStandard.h.

References fProtonScintYieldRatio.

virtual double detinfo::LArPropertiesStandard::RadiationLength ( ) const
inlineoverridevirtual

g/cm^2

Implements detinfo::LArProperties.

Definition at line 93 of file LArPropertiesStandard.h.

References fRadiationLength.

std::map< double, double > detinfo::LArPropertiesStandard::RayleighSpectrum ( ) const
overridevirtual

Implements detinfo::LArProperties.

Definition at line 321 of file LArPropertiesStandard.cxx.

References fRayleighEnergies, and fRayleighSpectrum.

Referenced by CerenkovLightEnabled().

322 {
323  if(fRayleighSpectrum.size()!=fRayleighEnergies.size()){
324  throw cet::exception("Incorrect vector sizes in LArPropertiesStandard")
325  << "The vectors specifying the rayleigh spectrum are "
326  << " different sizes - " << fRayleighSpectrum.size()
327  << " " << fRayleighEnergies.size();
328  }
329 
330  std::map<double, double> ToReturn;
331  for(size_t i=0; i!=fRayleighSpectrum.size(); ++i)
332  ToReturn[fRayleighEnergies.at(i)]=fRayleighSpectrum.at(i);
333 
334  return ToReturn;
335 }
std::vector< double > fRayleighSpectrum
std::vector< double > fRayleighEnergies
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
std::map< double, double > detinfo::LArPropertiesStandard::RIndexSpectrum ( ) const
overridevirtual

Implements detinfo::LArProperties.

Definition at line 286 of file LArPropertiesStandard.cxx.

References fRIndexEnergies, and fRIndexSpectrum.

Referenced by CerenkovLightEnabled().

287 {
288  if(fRIndexSpectrum.size()!=fRIndexEnergies.size()){
289  throw cet::exception("Incorrect vector sizes in LArPropertiesStandard")
290  << "The vectors specifying the RIndex spectrum are "
291  << " different sizes - " << fRIndexSpectrum.size()
292  << " " << fRIndexEnergies.size();
293  }
294 
295  std::map<double, double> ToReturn;
296  for(size_t i=0; i!=fRIndexSpectrum.size(); ++i)
297  ToReturn[fRIndexEnergies.at(i)]=fRIndexSpectrum.at(i);
298 
299  return ToReturn;
300 }
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
virtual double detinfo::LArPropertiesStandard::ScintBirksConstant ( ) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 107 of file LArPropertiesStandard.h.

References fScintBirksConstant.

virtual bool detinfo::LArPropertiesStandard::ScintByParticleType ( ) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 109 of file LArPropertiesStandard.h.

References fScintByParticleType.

Referenced by LArPropertiesStandard().

virtual double detinfo::LArPropertiesStandard::ScintFastTimeConst ( ) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 105 of file LArPropertiesStandard.h.

References fScintFastTimeConst.

virtual double detinfo::LArPropertiesStandard::ScintPreScale ( bool  prescale = true) const
inlineoverridevirtual
virtual double detinfo::LArPropertiesStandard::ScintResolutionScale ( ) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 104 of file LArPropertiesStandard.h.

References fScintResolutionScale.

virtual double detinfo::LArPropertiesStandard::ScintSlowTimeConst ( ) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 106 of file LArPropertiesStandard.h.

References fScintSlowTimeConst.

virtual double detinfo::LArPropertiesStandard::ScintYield ( bool  prescale = false) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 111 of file LArPropertiesStandard.h.

References fScintYield, and ScintPreScale().

111 { return fScintYield * ScintPreScale(prescale);}
virtual double ScintPreScale(bool prescale=true) const override
virtual double detinfo::LArPropertiesStandard::ScintYieldRatio ( ) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 113 of file LArPropertiesStandard.h.

References fScintYieldRatio.

void detinfo::LArPropertiesStandard::SetAbsLengthEnergies ( std::vector< double >  s)
inline

Definition at line 152 of file LArPropertiesStandard.h.

References fAbsLengthEnergies, and s.

Referenced by Configure(), and LArPropertiesStandard().

152 { fAbsLengthEnergies = s;}
Float_t s
Definition: plot.C:23
std::vector< double > fAbsLengthEnergies
void detinfo::LArPropertiesStandard::SetAbsLengthSpectrum ( std::vector< double >  s)
inline

Definition at line 151 of file LArPropertiesStandard.h.

References fAbsLengthSpectrum, and s.

Referenced by Configure(), and LArPropertiesStandard().

151 { fAbsLengthSpectrum = s;}
Float_t s
Definition: plot.C:23
std::vector< double > fAbsLengthSpectrum
void detinfo::LArPropertiesStandard::SetAlphaScintYield ( double  y)
inline

Definition at line 167 of file LArPropertiesStandard.h.

References fAlphaScintYield, and y.

Referenced by Configure(), and LArPropertiesStandard().

167 { fAlphaScintYield = y;}
Float_t y
Definition: compare.C:6
void detinfo::LArPropertiesStandard::SetAlphaScintYieldRatio ( double  r)
inline
void detinfo::LArPropertiesStandard::SetArgon39DecayRate ( double  r)
inline

Definition at line 140 of file LArPropertiesStandard.h.

References fArgon39DecayRate.

Referenced by Configure(), and LArPropertiesStandard().

140 { fArgon39DecayRate = r;}
double fArgon39DecayRate
decays per cm^3 per second
void detinfo::LArPropertiesStandard::SetAtomicMass ( double  a)
inline

Definition at line 142 of file LArPropertiesStandard.h.

References fA.

Referenced by Configure(), and LArPropertiesStandard().

142 { fA = a;}
double fA
Ar atomic mass (g/mol)
void detinfo::LArPropertiesStandard::SetAtomicNumber ( double  z)
inline

Definition at line 141 of file LArPropertiesStandard.h.

References fZ, and z.

Referenced by Configure(), and LArPropertiesStandard().

141 { fZ = z;}
Double_t z
Definition: plot.C:279
void detinfo::LArPropertiesStandard::SetElectronScintYield ( double  y)
inline

Definition at line 165 of file LArPropertiesStandard.h.

References fElectronScintYield, and y.

Referenced by Configure(), and LArPropertiesStandard().

Float_t y
Definition: compare.C:6
void detinfo::LArPropertiesStandard::SetElectronScintYieldRatio ( double  r)
inline
void detinfo::LArPropertiesStandard::SetEnableCerenkovLight ( bool  f)
inline

Definition at line 177 of file LArPropertiesStandard.h.

References f, and fEnableCerenkovLight.

Referenced by Configure(), and LArPropertiesStandard().

void detinfo::LArPropertiesStandard::SetExtraMatProperties ( bool  l)
inline

Definition at line 184 of file LArPropertiesStandard.h.

References fExtraMatProperties.

Referenced by Configure().

void detinfo::LArPropertiesStandard::SetFastScintEnergies ( std::vector< double >  s)
inline

Definition at line 146 of file LArPropertiesStandard.h.

References fFastScintEnergies, and s.

Referenced by Configure(), and LArPropertiesStandard().

146 { fFastScintEnergies = s;}
Float_t s
Definition: plot.C:23
std::vector< double > fFastScintEnergies
void detinfo::LArPropertiesStandard::SetFastScintSpectrum ( std::vector< double >  s)
inline

Definition at line 145 of file LArPropertiesStandard.h.

References fFastScintSpectrum, and s.

Referenced by Configure(), and LArPropertiesStandard().

145 { fFastScintSpectrum = s;}
Float_t s
Definition: plot.C:23
std::vector< double > fFastScintSpectrum
void detinfo::LArPropertiesStandard::SetKaonScintYield ( double  y)
inline

Definition at line 163 of file LArPropertiesStandard.h.

References fKaonScintYield, and y.

Referenced by Configure(), and LArPropertiesStandard().

163 { fKaonScintYield = y;}
Float_t y
Definition: compare.C:6
void detinfo::LArPropertiesStandard::SetKaonScintYieldRatio ( double  r)
inline
void detinfo::LArPropertiesStandard::SetMeanExcitationEnergy ( double  e)
inline

Definition at line 143 of file LArPropertiesStandard.h.

References e, and fI.

Referenced by Configure(), and LArPropertiesStandard().

143 { fI = e;}
double fI
Ar mean excitation energy (eV)
Float_t e
Definition: plot.C:34
void detinfo::LArPropertiesStandard::SetMuonScintYield ( double  y)
inline

Definition at line 159 of file LArPropertiesStandard.h.

References fMuonScintYield, and y.

Referenced by Configure(), and LArPropertiesStandard().

159 { fMuonScintYield = y;}
Float_t y
Definition: compare.C:6
void detinfo::LArPropertiesStandard::SetMuonScintYieldRatio ( double  r)
inline
void detinfo::LArPropertiesStandard::SetPionScintYield ( double  y)
inline

Definition at line 161 of file LArPropertiesStandard.h.

References fPionScintYield, and y.

Referenced by Configure(), and LArPropertiesStandard().

161 { fPionScintYield = y;}
Float_t y
Definition: compare.C:6
void detinfo::LArPropertiesStandard::SetPionScintYieldRatio ( double  r)
inline
void detinfo::LArPropertiesStandard::SetProtonScintYield ( double  y)
inline

Definition at line 157 of file LArPropertiesStandard.h.

References fProtonScintYield, and y.

Referenced by Configure(), and LArPropertiesStandard().

157 { fProtonScintYield = y;}
Float_t y
Definition: compare.C:6
void detinfo::LArPropertiesStandard::SetProtonScintYieldRatio ( double  r)
inline
void detinfo::LArPropertiesStandard::SetRadiationLength ( double  rl)
inline

Definition at line 139 of file LArPropertiesStandard.h.

References fRadiationLength.

Referenced by Configure(), and LArPropertiesStandard().

void detinfo::LArPropertiesStandard::SetRayleighEnergies ( std::vector< double >  s)
inline

Definition at line 154 of file LArPropertiesStandard.h.

References fRayleighEnergies, and s.

Referenced by Configure(), and LArPropertiesStandard().

154 { fRayleighEnergies = s;}
Float_t s
Definition: plot.C:23
std::vector< double > fRayleighEnergies
void detinfo::LArPropertiesStandard::SetRayleighSpectrum ( std::vector< double >  s)
inline

Definition at line 153 of file LArPropertiesStandard.h.

References fRayleighSpectrum, and s.

Referenced by Configure(), and LArPropertiesStandard().

153 { fRayleighSpectrum = s;}
Float_t s
Definition: plot.C:23
std::vector< double > fRayleighSpectrum
void detinfo::LArPropertiesStandard::SetReflectiveSurfaceDiffuseFractions ( std::vector< std::vector< double > >  f)
inline

Definition at line 182 of file LArPropertiesStandard.h.

References f, and fReflectiveSurfaceDiffuseFractions.

Referenced by Configure(), and LArPropertiesStandard().

TFile f
Definition: plotHisto.C:6
std::vector< std::vector< double > > fReflectiveSurfaceDiffuseFractions
void detinfo::LArPropertiesStandard::SetReflectiveSurfaceEnergies ( std::vector< double >  e)
inline

Definition at line 180 of file LArPropertiesStandard.h.

References e, and fReflectiveSurfaceEnergies.

Referenced by Configure(), and LArPropertiesStandard().

std::vector< double > fReflectiveSurfaceEnergies
Float_t e
Definition: plot.C:34
void detinfo::LArPropertiesStandard::SetReflectiveSurfaceNames ( std::vector< std::string >  n)
inline

Definition at line 179 of file LArPropertiesStandard.h.

References fReflectiveSurfaceNames, and n.

Referenced by Configure(), and LArPropertiesStandard().

std::vector< std::string > fReflectiveSurfaceNames
Char_t n[5]
void detinfo::LArPropertiesStandard::SetReflectiveSurfaceReflectances ( std::vector< std::vector< double > >  r)
inline

Definition at line 181 of file LArPropertiesStandard.h.

References fReflectiveSurfaceReflectances.

Referenced by Configure(), and LArPropertiesStandard().

std::vector< std::vector< double > > fReflectiveSurfaceReflectances
void detinfo::LArPropertiesStandard::SetRIndexEnergies ( std::vector< double >  s)
inline

Definition at line 150 of file LArPropertiesStandard.h.

References fRIndexEnergies, and s.

Referenced by Configure(), and LArPropertiesStandard().

150 { fRIndexEnergies = s;}
Float_t s
Definition: plot.C:23
void detinfo::LArPropertiesStandard::SetRIndexSpectrum ( std::vector< double >  s)
inline

Definition at line 149 of file LArPropertiesStandard.h.

References fRIndexSpectrum, and s.

Referenced by Configure(), and LArPropertiesStandard().

149 { fRIndexSpectrum = s;}
Float_t s
Definition: plot.C:23
void detinfo::LArPropertiesStandard::SetScintBirksConstant ( double  kb)
inline

Definition at line 176 of file LArPropertiesStandard.h.

References fScintBirksConstant.

Referenced by Configure(), and LArPropertiesStandard().

void detinfo::LArPropertiesStandard::SetScintByParticleType ( bool  l)
inline
void detinfo::LArPropertiesStandard::SetScintFastTimeConst ( double  t)
inline

Definition at line 173 of file LArPropertiesStandard.h.

References fScintFastTimeConst.

Referenced by Configure(), and LArPropertiesStandard().

void detinfo::LArPropertiesStandard::SetScintPreScale ( double  s)
inline

Definition at line 171 of file LArPropertiesStandard.h.

References fScintPreScale, and s.

Referenced by Configure(), and LArPropertiesStandard().

171 { fScintPreScale = s;}
Float_t s
Definition: plot.C:23
void detinfo::LArPropertiesStandard::SetScintResolutionScale ( double  r)
inline
void detinfo::LArPropertiesStandard::SetScintSlowTimeConst ( double  t)
inline

Definition at line 174 of file LArPropertiesStandard.h.

References fScintSlowTimeConst.

Referenced by Configure(), and LArPropertiesStandard().

void detinfo::LArPropertiesStandard::SetScintYield ( double  y)
inline

Definition at line 170 of file LArPropertiesStandard.h.

References fScintYield, and y.

Referenced by Configure(), and LArPropertiesStandard().

170 { fScintYield = y;}
Float_t y
Definition: compare.C:6
void detinfo::LArPropertiesStandard::SetScintYieldRatio ( double  r)
inline

Definition at line 175 of file LArPropertiesStandard.h.

References fScintYieldRatio.

Referenced by Configure(), and LArPropertiesStandard().

void detinfo::LArPropertiesStandard::SetSlowScintEnergies ( std::vector< double >  s)
inline

Definition at line 148 of file LArPropertiesStandard.h.

References fSlowScintEnergies, and s.

Referenced by Configure(), and LArPropertiesStandard().

148 { fSlowScintEnergies = s;}
Float_t s
Definition: plot.C:23
std::vector< double > fSlowScintEnergies
void detinfo::LArPropertiesStandard::SetSlowScintSpectrum ( std::vector< double >  s)
inline

Definition at line 147 of file LArPropertiesStandard.h.

References fSlowScintSpectrum, and s.

Referenced by Configure(), and LArPropertiesStandard().

147 { fSlowScintSpectrum = s;}
Float_t s
Definition: plot.C:23
std::vector< double > fSlowScintSpectrum
void detinfo::LArPropertiesStandard::SetTpbAbsorptionEnergies ( std::vector< double >  s)
inline

Definition at line 195 of file LArPropertiesStandard.h.

References fTpbAbsorptionEnergies, and s.

Referenced by Configure().

Float_t s
Definition: plot.C:23
std::vector< double > fTpbAbsorptionEnergies
void detinfo::LArPropertiesStandard::SetTpbAbsorptionSpectrum ( std::vector< double >  s)
inline

Definition at line 196 of file LArPropertiesStandard.h.

References fTpbAbsorptionSpectrum, and s.

Referenced by Configure().

Float_t s
Definition: plot.C:23
std::vector< double > fTpbAbsorptionSpectrum
void detinfo::LArPropertiesStandard::SetTpbEmmisionEnergies ( std::vector< double >  s)
inline

Definition at line 193 of file LArPropertiesStandard.h.

References fTpbEmmisionEnergies, and s.

Referenced by Configure().

Float_t s
Definition: plot.C:23
std::vector< double > fTpbEmmisionEnergies
void detinfo::LArPropertiesStandard::SetTpbEmmisionSpectrum ( std::vector< double >  s)
inline

Definition at line 194 of file LArPropertiesStandard.h.

References fTpbEmmisionSpectrum, and s.

Referenced by Configure().

std::vector< double > fTpbEmmisionSpectrum
Float_t s
Definition: plot.C:23
void detinfo::LArPropertiesStandard::SetTpbTimeConstant ( double  y)
inline

Definition at line 191 of file LArPropertiesStandard.h.

References fTpbTimeConstant, and y.

Referenced by Configure().

191 { fTpbTimeConstant = y;}
Float_t y
Definition: compare.C:6
std::map< double, double > detinfo::LArPropertiesStandard::SlowScintSpectrum ( ) const
overridevirtual

Implements detinfo::LArProperties.

Definition at line 269 of file LArPropertiesStandard.cxx.

References fSlowScintEnergies, and fSlowScintSpectrum.

Referenced by CerenkovLightEnabled().

270 {
271  if(fSlowScintSpectrum.size()!=fSlowScintEnergies.size()){
272  throw cet::exception("Incorrect vector sizes in LArPropertiesStandard")
273  << "The vectors specifying the slow scintillation spectrum are "
274  << " different sizes - " << fSlowScintSpectrum.size()
275  << " " << fSlowScintEnergies.size();
276  }
277 
278  std::map<double, double> ToReturn;
279  for(size_t i=0; i!=fSlowScintSpectrum.size(); ++i)
280  ToReturn[fSlowScintEnergies.at(i)]=fSlowScintSpectrum.at(i);
281 
282  return ToReturn;
283 }
std::vector< double > fSlowScintEnergies
std::vector< double > fSlowScintSpectrum
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
std::map< std::string, std::map< double, double > > detinfo::LArPropertiesStandard::SurfaceReflectanceDiffuseFractions ( ) const
overridevirtual

Implements detinfo::LArProperties.

Definition at line 362 of file LArPropertiesStandard.cxx.

References fReflectiveSurfaceDiffuseFractions, fReflectiveSurfaceEnergies, and fReflectiveSurfaceNames.

Referenced by CerenkovLightEnabled().

363 {
364  std::map<std::string, std::map<double, double> > ToReturn;
365 
367  throw cet::exception("Incorrect vector sizes in LArPropertiesStandard")
368  << "The vectors specifying the surface reflectivities do not have consistent sizes";
369  }
370  for(size_t i=0; i!=fReflectiveSurfaceNames.size(); ++i){
372  throw cet::exception("Incorrect vector sizes in LArPropertiesStandard")
373  << "The vectors specifying the surface reflectivities do not have consistent sizes";
374 
375  }
376  }
377  for(size_t iName=0; iName!=fReflectiveSurfaceNames.size(); ++iName)
378  for(size_t iEnergy=0; iEnergy!=fReflectiveSurfaceEnergies.size(); ++iEnergy)
379  ToReturn[fReflectiveSurfaceNames.at(iName)][fReflectiveSurfaceEnergies.at(iEnergy)]=fReflectiveSurfaceDiffuseFractions[iName][iEnergy];
380 
381  return ToReturn;
382 }
std::vector< std::string > fReflectiveSurfaceNames
std::vector< double > fReflectiveSurfaceEnergies
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
std::vector< std::vector< double > > fReflectiveSurfaceDiffuseFractions
std::map< std::string, std::map< double, double > > detinfo::LArPropertiesStandard::SurfaceReflectances ( ) const
overridevirtual

Implements detinfo::LArProperties.

Definition at line 338 of file LArPropertiesStandard.cxx.

References fReflectiveSurfaceEnergies, fReflectiveSurfaceNames, and fReflectiveSurfaceReflectances.

Referenced by CerenkovLightEnabled().

339 {
340  std::map<std::string, std::map<double, double> > ToReturn;
341 
343  throw cet::exception("Incorrect vector sizes in LArPropertiesStandard")
344  << "The vectors specifying the surface reflectivities "
345  << "do not have consistent sizes";
346  }
347  for(size_t i=0; i!=fReflectiveSurfaceNames.size(); ++i){
349  throw cet::exception("Incorrect vector sizes in LArPropertiesStandard")
350  << "The vectors specifying the surface reflectivities do not have consistent sizes";
351  }
352  }
353  for(size_t iName=0; iName!=fReflectiveSurfaceNames.size(); ++iName)
354  for(size_t iEnergy=0; iEnergy!=fReflectiveSurfaceEnergies.size(); ++iEnergy)
355  ToReturn[fReflectiveSurfaceNames.at(iName)][fReflectiveSurfaceEnergies.at(iEnergy)]=fReflectiveSurfaceReflectances[iName][iEnergy];
356 
357  return ToReturn;
358 
359 }
std::vector< std::string > fReflectiveSurfaceNames
std::vector< std::vector< double > > fReflectiveSurfaceReflectances
std::vector< double > fReflectiveSurfaceEnergies
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
std::map< double, double > detinfo::LArPropertiesStandard::TpbAbs ( ) const
overridevirtual

Implements detinfo::LArProperties.

Definition at line 384 of file LArPropertiesStandard.cxx.

References fTpbAbsorptionEnergies, and fTpbAbsorptionSpectrum.

Referenced by TpbTimeConstant().

385 {
387  throw cet::exception("Incorrect vector sizes in LArProperties")
388  << "The vectors specifying the TpbAbsorption spectrum are "
389  << " different sizes - " << fTpbAbsorptionEnergies.size()
390  << " " << fTpbAbsorptionSpectrum.size();
391  }
392 
393  std::map<double, double> ToReturn;
394  for(size_t i=0; i!=fTpbAbsorptionSpectrum.size(); ++i)
395  ToReturn[fTpbAbsorptionEnergies.at(i)]=fTpbAbsorptionSpectrum.at(i);
396 
397  return ToReturn;
398 }
std::vector< double > fTpbAbsorptionSpectrum
std::vector< double > fTpbAbsorptionEnergies
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
std::map< double, double > detinfo::LArPropertiesStandard::TpbEm ( ) const
overridevirtual

Implements detinfo::LArProperties.

Definition at line 400 of file LArPropertiesStandard.cxx.

References fTpbEmmisionEnergies, and fTpbEmmisionSpectrum.

Referenced by TpbTimeConstant().

401 {
402  if(fTpbEmmisionEnergies.size()!=fTpbEmmisionSpectrum.size()){
403  throw cet::exception("Incorrect vector sizes in LArProperties")
404  << "The vectors specifying the TpbEmmision spectrum are "
405  << " different sizes - " << fTpbEmmisionEnergies.size()
406  << " " << fTpbEmmisionSpectrum.size();
407  }
408  //using interpolation for more smooth spectrum of TPB emmision - won't affect anything but the effective size of table passed to G4
409  Int_t tablesize=100;
410  std::vector<double> new_x;
411  double xrange=0.0;
412  Double_t *en = new Double_t[int(fTpbEmmisionSpectrum.size())+1];
413  Double_t *spectr = new Double_t[int(fTpbEmmisionSpectrum.size())+1];
414  for(int j=0;j<int(fTpbEmmisionSpectrum.size())+1;j++){
415  if(j==0){
416  en[j]=0.;
417  en[j]=0.;
418  }
419  else{
420  en[j]=fTpbEmmisionEnergies[j-1];
421  spectr[j]=fTpbEmmisionSpectrum[j-1];
422  //if(j==int(fTpbEmmisionSpectrum.size())) spectr[j]=+0.5;
423  }
424  //std::cout<<j<<" "<<int(fTpbEmmisionSpectrum.size())<<" energiestpb "<<en[j]<<std::endl;
425  }
426  TH1D *energyhist=new TH1D();
427  energyhist->SetBins(int(fTpbEmmisionSpectrum.size()),en);
428  for(int ii=0;ii<int(fTpbEmmisionSpectrum.size());ii++) energyhist->SetBinContent(ii,spectr[ii]);
429  xrange=double((en[int(fTpbEmmisionSpectrum.size())]-en[0])/double(fTpbEmmisionSpectrum.size()));
430  new_x.clear();
431  for(int jj=0; jj<int(tablesize); jj++){
432 
433  new_x.push_back(jj*(xrange/double(tablesize)));
434  //std::cout<<"position "<<jj<<" "<<new_x[jj]<<" size of table "<<tablesize<<" range x "<<xrange<<std::endl;
435  }
436  std::map<double, double> ToReturn;
437  //for(size_t i=0; i!=fTpbEmmisionSpectrum.size(); ++i)
438  // ToReturn[fTpbEmmisionEnergies.at(i)]=fTpbEmmisionSpectrum.at(i);
439  for(int i=0; i<tablesize; i++){
440  ToReturn[new_x.at(i)]=energyhist->Interpolate(new_x[i]);
441  //std::cout<<ToReturn[new_x[i]]<< " is set in material propertiestpb at energy "<<new_x[i]<<" size of x "<<new_x.size()<<" "<<energyhist->Interpolate(new_x[i])<<std::end;
442  }
443  delete energyhist;
444 
445  delete[] en;
446  delete[] spectr;
447  return ToReturn;
448 }
std::vector< double > fTpbEmmisionSpectrum
std::vector< double > fTpbEmmisionEnergies
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
virtual double detinfo::LArPropertiesStandard::TpbTimeConstant ( ) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 186 of file LArPropertiesStandard.h.

References fTpbTimeConstant, TpbAbs(), and TpbEm().

bool detinfo::LArPropertiesStandard::Update ( uint64_t  ts = 0)

Definition at line 244 of file LArPropertiesStandard.cxx.

245 {
246  if (ts == 0) return false;
247 
248  return true;
249 }

Member Data Documentation

double detinfo::LArPropertiesStandard::fA
protected

Ar atomic mass (g/mol)

Definition at line 330 of file LArPropertiesStandard.h.

Referenced by AtomicMass(), and SetAtomicMass().

std::vector<double> detinfo::LArPropertiesStandard::fAbsLengthEnergies
protected

Definition at line 343 of file LArPropertiesStandard.h.

Referenced by AbsLengthSpectrum(), and SetAbsLengthEnergies().

std::vector<double> detinfo::LArPropertiesStandard::fAbsLengthSpectrum
protected

Definition at line 342 of file LArPropertiesStandard.h.

Referenced by AbsLengthSpectrum(), and SetAbsLengthSpectrum().

double detinfo::LArPropertiesStandard::fAlphaScintYield
protected

Definition at line 359 of file LArPropertiesStandard.h.

Referenced by AlphaScintYield(), and SetAlphaScintYield().

double detinfo::LArPropertiesStandard::fAlphaScintYieldRatio
protected

Definition at line 360 of file LArPropertiesStandard.h.

Referenced by AlphaScintYieldRatio(), and SetAlphaScintYieldRatio().

double detinfo::LArPropertiesStandard::fArgon39DecayRate
protected

decays per cm^3 per second

Definition at line 325 of file LArPropertiesStandard.h.

Referenced by Argon39DecayRate(), and SetArgon39DecayRate().

double detinfo::LArPropertiesStandard::fElectronScintYield
protected

Definition at line 357 of file LArPropertiesStandard.h.

Referenced by ElectronScintYield(), and SetElectronScintYield().

double detinfo::LArPropertiesStandard::fElectronScintYieldRatio
protected

Definition at line 358 of file LArPropertiesStandard.h.

Referenced by ElectronScintYieldRatio(), and SetElectronScintYieldRatio().

bool detinfo::LArPropertiesStandard::fEnableCerenkovLight
protected

Definition at line 370 of file LArPropertiesStandard.h.

Referenced by CerenkovLightEnabled(), and SetEnableCerenkovLight().

bool detinfo::LArPropertiesStandard::fExtraMatProperties
protected

Definition at line 377 of file LArPropertiesStandard.h.

Referenced by ExtraMatProperties(), and SetExtraMatProperties().

std::vector<double> detinfo::LArPropertiesStandard::fFastScintEnergies
protected

Definition at line 337 of file LArPropertiesStandard.h.

Referenced by FastScintSpectrum(), and SetFastScintEnergies().

std::vector<double> detinfo::LArPropertiesStandard::fFastScintSpectrum
protected

Definition at line 336 of file LArPropertiesStandard.h.

Referenced by FastScintSpectrum(), and SetFastScintSpectrum().

double detinfo::LArPropertiesStandard::fI
protected

Ar mean excitation energy (eV)

Definition at line 331 of file LArPropertiesStandard.h.

Referenced by ExcitationEnergy(), and SetMeanExcitationEnergy().

bool detinfo::LArPropertiesStandard::fIsConfigured
protected

Definition at line 322 of file LArPropertiesStandard.h.

Referenced by Configure(), and LArPropertiesStandard().

double detinfo::LArPropertiesStandard::fKaonScintYield
protected

Definition at line 355 of file LArPropertiesStandard.h.

Referenced by KaonScintYield(), and SetKaonScintYield().

double detinfo::LArPropertiesStandard::fKaonScintYieldRatio
protected

Definition at line 356 of file LArPropertiesStandard.h.

Referenced by KaonScintYieldRatio(), and SetKaonScintYieldRatio().

double detinfo::LArPropertiesStandard::fMuonScintYield
protected

Definition at line 351 of file LArPropertiesStandard.h.

Referenced by MuonScintYield(), and SetMuonScintYield().

double detinfo::LArPropertiesStandard::fMuonScintYieldRatio
protected

Definition at line 352 of file LArPropertiesStandard.h.

Referenced by MuonScintYieldRatio(), and SetMuonScintYieldRatio().

double detinfo::LArPropertiesStandard::fPionScintYield
protected

Definition at line 353 of file LArPropertiesStandard.h.

Referenced by PionScintYield(), and SetPionScintYield().

double detinfo::LArPropertiesStandard::fPionScintYieldRatio
protected

Definition at line 354 of file LArPropertiesStandard.h.

Referenced by PionScintYieldRatio(), and SetPionScintYieldRatio().

double detinfo::LArPropertiesStandard::fProtonScintYield
protected

Definition at line 349 of file LArPropertiesStandard.h.

Referenced by ProtonScintYield(), and SetProtonScintYield().

double detinfo::LArPropertiesStandard::fProtonScintYieldRatio
protected

Definition at line 350 of file LArPropertiesStandard.h.

Referenced by ProtonScintYieldRatio(), and SetProtonScintYieldRatio().

double detinfo::LArPropertiesStandard::fRadiationLength
protected

g/cm^2

Definition at line 324 of file LArPropertiesStandard.h.

Referenced by RadiationLength(), and SetRadiationLength().

std::vector<double> detinfo::LArPropertiesStandard::fRayleighEnergies
protected

Definition at line 345 of file LArPropertiesStandard.h.

Referenced by RayleighSpectrum(), and SetRayleighEnergies().

std::vector<double> detinfo::LArPropertiesStandard::fRayleighSpectrum
protected

Definition at line 344 of file LArPropertiesStandard.h.

Referenced by RayleighSpectrum(), and SetRayleighSpectrum().

std::vector<std::vector<double> > detinfo::LArPropertiesStandard::fReflectiveSurfaceDiffuseFractions
protected
std::vector<double> detinfo::LArPropertiesStandard::fReflectiveSurfaceEnergies
protected
std::vector<std::string> detinfo::LArPropertiesStandard::fReflectiveSurfaceNames
protected
std::vector<std::vector<double> > detinfo::LArPropertiesStandard::fReflectiveSurfaceReflectances
protected
std::vector<double> detinfo::LArPropertiesStandard::fRIndexEnergies
protected

Definition at line 341 of file LArPropertiesStandard.h.

Referenced by RIndexSpectrum(), and SetRIndexEnergies().

std::vector<double> detinfo::LArPropertiesStandard::fRIndexSpectrum
protected

Definition at line 340 of file LArPropertiesStandard.h.

Referenced by RIndexSpectrum(), and SetRIndexSpectrum().

double detinfo::LArPropertiesStandard::fScintBirksConstant
protected

Definition at line 368 of file LArPropertiesStandard.h.

Referenced by ScintBirksConstant(), and SetScintBirksConstant().

bool detinfo::LArPropertiesStandard::fScintByParticleType
protected

Definition at line 347 of file LArPropertiesStandard.h.

Referenced by ScintByParticleType(), and SetScintByParticleType().

double detinfo::LArPropertiesStandard::fScintFastTimeConst
protected

Definition at line 365 of file LArPropertiesStandard.h.

Referenced by ScintFastTimeConst(), and SetScintFastTimeConst().

double detinfo::LArPropertiesStandard::fScintPreScale
protected

Definition at line 363 of file LArPropertiesStandard.h.

Referenced by ScintPreScale(), and SetScintPreScale().

double detinfo::LArPropertiesStandard::fScintResolutionScale
protected

Definition at line 364 of file LArPropertiesStandard.h.

Referenced by ScintResolutionScale(), and SetScintResolutionScale().

double detinfo::LArPropertiesStandard::fScintSlowTimeConst
protected

Definition at line 366 of file LArPropertiesStandard.h.

Referenced by ScintSlowTimeConst(), and SetScintSlowTimeConst().

double detinfo::LArPropertiesStandard::fScintYield
protected

Definition at line 362 of file LArPropertiesStandard.h.

Referenced by ScintYield(), and SetScintYield().

double detinfo::LArPropertiesStandard::fScintYieldRatio
protected

Definition at line 367 of file LArPropertiesStandard.h.

Referenced by ScintYieldRatio(), and SetScintYieldRatio().

std::vector<double> detinfo::LArPropertiesStandard::fSlowScintEnergies
protected

Definition at line 339 of file LArPropertiesStandard.h.

Referenced by SetSlowScintEnergies(), and SlowScintSpectrum().

std::vector<double> detinfo::LArPropertiesStandard::fSlowScintSpectrum
protected

Definition at line 338 of file LArPropertiesStandard.h.

Referenced by SetSlowScintSpectrum(), and SlowScintSpectrum().

std::vector<double> detinfo::LArPropertiesStandard::fTpbAbsorptionEnergies
protected

Definition at line 381 of file LArPropertiesStandard.h.

Referenced by SetTpbAbsorptionEnergies(), and TpbAbs().

std::vector<double> detinfo::LArPropertiesStandard::fTpbAbsorptionSpectrum
protected

Definition at line 382 of file LArPropertiesStandard.h.

Referenced by SetTpbAbsorptionSpectrum(), and TpbAbs().

std::vector<double> detinfo::LArPropertiesStandard::fTpbEmmisionEnergies
protected

Definition at line 379 of file LArPropertiesStandard.h.

Referenced by SetTpbEmmisionEnergies(), and TpbEm().

std::vector<double> detinfo::LArPropertiesStandard::fTpbEmmisionSpectrum
protected

Definition at line 380 of file LArPropertiesStandard.h.

Referenced by SetTpbEmmisionSpectrum(), and TpbEm().

double detinfo::LArPropertiesStandard::fTpbTimeConstant
protected

Definition at line 378 of file LArPropertiesStandard.h.

Referenced by SetTpbTimeConstant(), and TpbTimeConstant().

double detinfo::LArPropertiesStandard::fZ
protected

Ar atomic number.

Definition at line 329 of file LArPropertiesStandard.h.

Referenced by AtomicNumber(), and SetAtomicNumber().


The documentation for this class was generated from the following files: