LArSoft  v09_90_00
Liquid Argon Software toolkit - https://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 21 of file LArPropertiesStandard.cxx.

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

Definition at line 24 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().

28 {
29  this->Configure(pset, ignore_params);
30 }
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 319 of file LArPropertiesStandard.cxx.

References fAbsLengthEnergies, and fAbsLengthSpectrum.

320 {
321  if (fAbsLengthSpectrum.size() != fAbsLengthEnergies.size()) {
322  throw cet::exception("Incorrect vector sizes in LArPropertiesStandard")
323  << "The vectors specifying the Abs Length spectrum are "
324  << " different sizes - " << fAbsLengthSpectrum.size() << " " << fAbsLengthEnergies.size();
325  }
326 
327  std::map<double, double> ToReturn;
328  for (size_t i = 0; i != fAbsLengthSpectrum.size(); ++i)
329  ToReturn[fAbsLengthEnergies.at(i)] = fAbsLengthSpectrum.at(i);
330 
331  return ToReturn;
332 }
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 148 of file LArPropertiesStandard.h.

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

Implements detinfo::LArProperties.

Definition at line 152 of file LArPropertiesStandard.h.

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

Implements detinfo::LArProperties.

Definition at line 94 of file LArPropertiesStandard.h.

95  {
96  return fArgon39DecayRate;
97  } // 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 102 of file LArPropertiesStandard.h.

102 { 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 100 of file LArPropertiesStandard.h.

100 { return fZ; }
virtual bool detinfo::LArPropertiesStandard::CerenkovLightEnabled ( ) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 153 of file LArPropertiesStandard.h.

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 93 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 value.

Referenced by LArPropertiesStandard().

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

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

Implements detinfo::LArProperties.

Definition at line 147 of file LArPropertiesStandard.h.

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

Ar mean excitation energy (eV)

Implements detinfo::LArProperties.

Definition at line 104 of file LArPropertiesStandard.h.

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

Implements detinfo::LArProperties.

Definition at line 217 of file LArPropertiesStandard.h.

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

Implements detinfo::LArProperties.

Definition at line 271 of file LArPropertiesStandard.cxx.

References fFastScintEnergies, and fFastScintSpectrum.

272 {
273  if (fFastScintSpectrum.size() != fFastScintEnergies.size()) {
274  throw cet::exception("Incorrect vector sizes in LArPropertiesStandard")
275  << "The vectors specifying the fast scintillation spectrum are "
276  << " different sizes - " << fFastScintSpectrum.size() << " " << fFastScintEnergies.size();
277  }
278 
279  std::map<double, double> ToReturn;
280  for (size_t i = 0; i != fFastScintSpectrum.size(); ++i)
281  ToReturn[fFastScintEnergies.at(i)] = fFastScintSpectrum.at(i);
282 
283  return ToReturn;
284 }
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 133 of file LArPropertiesStandard.h.

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

Implements detinfo::LArProperties.

Definition at line 137 of file LArPropertiesStandard.h.

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

Implements detinfo::LArProperties.

Definition at line 128 of file LArPropertiesStandard.h.

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

Implements detinfo::LArProperties.

Definition at line 132 of file LArPropertiesStandard.h.

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

Implements detinfo::LArProperties.

Definition at line 138 of file LArPropertiesStandard.h.

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

Implements detinfo::LArProperties.

Definition at line 142 of file LArPropertiesStandard.h.

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

Implements detinfo::LArProperties.

Definition at line 123 of file LArPropertiesStandard.h.

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

Implements detinfo::LArProperties.

Definition at line 127 of file LArPropertiesStandard.h.

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

g/cm^2

Implements detinfo::LArProperties.

Definition at line 92 of file LArPropertiesStandard.h.

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

Implements detinfo::LArProperties.

Definition at line 335 of file LArPropertiesStandard.cxx.

References fRayleighEnergies, and fRayleighSpectrum.

336 {
337  if (fRayleighSpectrum.size() != fRayleighEnergies.size()) {
338  throw cet::exception("Incorrect vector sizes in LArPropertiesStandard")
339  << "The vectors specifying the rayleigh spectrum are "
340  << " different sizes - " << fRayleighSpectrum.size() << " " << fRayleighEnergies.size();
341  }
342 
343  std::map<double, double> ToReturn;
344  for (size_t i = 0; i != fRayleighSpectrum.size(); ++i)
345  ToReturn[fRayleighEnergies.at(i)] = fRayleighSpectrum.at(i);
346 
347  return ToReturn;
348 }
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 303 of file LArPropertiesStandard.cxx.

References fRIndexEnergies, and fRIndexSpectrum.

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

Implements detinfo::LArProperties.

Definition at line 109 of file LArPropertiesStandard.h.

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

Implements detinfo::LArProperties.

Definition at line 111 of file LArPropertiesStandard.h.

Referenced by LArPropertiesStandard().

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

Implements detinfo::LArProperties.

Definition at line 107 of file LArPropertiesStandard.h.

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

Implements detinfo::LArProperties.

Definition at line 117 of file LArPropertiesStandard.h.

118  {
119  return (prescale ? fScintPreScale : 1);
120  }
virtual double detinfo::LArPropertiesStandard::ScintResolutionScale ( ) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 106 of file LArPropertiesStandard.h.

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

Implements detinfo::LArProperties.

Definition at line 108 of file LArPropertiesStandard.h.

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

Implements detinfo::LArProperties.

Definition at line 113 of file LArPropertiesStandard.h.

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

Implements detinfo::LArProperties.

Definition at line 121 of file LArPropertiesStandard.h.

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

Definition at line 178 of file LArPropertiesStandard.h.

Referenced by Configure(), and LArPropertiesStandard().

178 { fAbsLengthEnergies = s; }
std::vector< double > fAbsLengthEnergies
void detinfo::LArPropertiesStandard::SetAbsLengthSpectrum ( std::vector< double >  s)
inline

Definition at line 177 of file LArPropertiesStandard.h.

Referenced by Configure(), and LArPropertiesStandard().

177 { fAbsLengthSpectrum = s; }
std::vector< double > fAbsLengthSpectrum
void detinfo::LArPropertiesStandard::SetAlphaScintYield ( double  y)
inline

Definition at line 193 of file LArPropertiesStandard.h.

References y.

Referenced by Configure(), and LArPropertiesStandard().

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

Definition at line 194 of file LArPropertiesStandard.h.

References r.

Referenced by Configure(), and LArPropertiesStandard().

void detinfo::LArPropertiesStandard::SetArgon39DecayRate ( double  r)
inline

Definition at line 166 of file LArPropertiesStandard.h.

References r.

Referenced by Configure(), and LArPropertiesStandard().

166 { fArgon39DecayRate = r; }
TRandom r
Definition: spectrum.C:23
double fArgon39DecayRate
decays per cm^3 per second
void detinfo::LArPropertiesStandard::SetAtomicMass ( double  a)
inline

Definition at line 168 of file LArPropertiesStandard.h.

Referenced by Configure(), and LArPropertiesStandard().

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

Definition at line 167 of file LArPropertiesStandard.h.

References z.

Referenced by Configure(), and LArPropertiesStandard().

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

Definition at line 191 of file LArPropertiesStandard.h.

References y.

Referenced by Configure(), and LArPropertiesStandard().

191 { fElectronScintYield = y; }
Float_t y
Definition: compare.C:6
void detinfo::LArPropertiesStandard::SetElectronScintYieldRatio ( double  r)
inline

Definition at line 192 of file LArPropertiesStandard.h.

References r.

Referenced by Configure(), and LArPropertiesStandard().

void detinfo::LArPropertiesStandard::SetEnableCerenkovLight ( bool  f)
inline

Definition at line 203 of file LArPropertiesStandard.h.

References f.

Referenced by Configure(), and LArPropertiesStandard().

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

Definition at line 216 of file LArPropertiesStandard.h.

Referenced by Configure().

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

Definition at line 172 of file LArPropertiesStandard.h.

Referenced by Configure(), and LArPropertiesStandard().

172 { fFastScintEnergies = s; }
std::vector< double > fFastScintEnergies
void detinfo::LArPropertiesStandard::SetFastScintSpectrum ( std::vector< double >  s)
inline

Definition at line 171 of file LArPropertiesStandard.h.

Referenced by Configure(), and LArPropertiesStandard().

171 { fFastScintSpectrum = s; }
std::vector< double > fFastScintSpectrum
void detinfo::LArPropertiesStandard::SetKaonScintYield ( double  y)
inline

Definition at line 189 of file LArPropertiesStandard.h.

References y.

Referenced by Configure(), and LArPropertiesStandard().

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

Definition at line 190 of file LArPropertiesStandard.h.

References r.

Referenced by Configure(), and LArPropertiesStandard().

190 { fKaonScintYieldRatio = r; }
TRandom r
Definition: spectrum.C:23
void detinfo::LArPropertiesStandard::SetMeanExcitationEnergy ( double  e)
inline

Definition at line 169 of file LArPropertiesStandard.h.

References e.

Referenced by Configure(), and LArPropertiesStandard().

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

Definition at line 185 of file LArPropertiesStandard.h.

References y.

Referenced by Configure(), and LArPropertiesStandard().

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

Definition at line 186 of file LArPropertiesStandard.h.

References r.

Referenced by Configure(), and LArPropertiesStandard().

186 { fMuonScintYieldRatio = r; }
TRandom r
Definition: spectrum.C:23
void detinfo::LArPropertiesStandard::SetPionScintYield ( double  y)
inline

Definition at line 187 of file LArPropertiesStandard.h.

References y.

Referenced by Configure(), and LArPropertiesStandard().

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

Definition at line 188 of file LArPropertiesStandard.h.

References r.

Referenced by Configure(), and LArPropertiesStandard().

188 { fPionScintYieldRatio = r; }
TRandom r
Definition: spectrum.C:23
void detinfo::LArPropertiesStandard::SetProtonScintYield ( double  y)
inline

Definition at line 183 of file LArPropertiesStandard.h.

References y.

Referenced by Configure(), and LArPropertiesStandard().

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

Definition at line 184 of file LArPropertiesStandard.h.

References r.

Referenced by Configure(), and LArPropertiesStandard().

void detinfo::LArPropertiesStandard::SetRadiationLength ( double  rl)
inline

Definition at line 165 of file LArPropertiesStandard.h.

Referenced by Configure(), and LArPropertiesStandard().

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

Definition at line 180 of file LArPropertiesStandard.h.

Referenced by Configure(), and LArPropertiesStandard().

180 { fRayleighEnergies = s; }
std::vector< double > fRayleighEnergies
void detinfo::LArPropertiesStandard::SetRayleighSpectrum ( std::vector< double >  s)
inline

Definition at line 179 of file LArPropertiesStandard.h.

Referenced by Configure(), and LArPropertiesStandard().

179 { fRayleighSpectrum = s; }
std::vector< double > fRayleighSpectrum
void detinfo::LArPropertiesStandard::SetReflectiveSurfaceDiffuseFractions ( std::vector< std::vector< double >>  f)
inline

Definition at line 211 of file LArPropertiesStandard.h.

References f.

Referenced by Configure(), and LArPropertiesStandard().

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

Definition at line 206 of file LArPropertiesStandard.h.

References e.

Referenced by Configure(), and LArPropertiesStandard().

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

Definition at line 205 of file LArPropertiesStandard.h.

References 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 207 of file LArPropertiesStandard.h.

References r.

Referenced by Configure(), and LArPropertiesStandard().

208  {
210  }
TRandom r
Definition: spectrum.C:23
std::vector< std::vector< double > > fReflectiveSurfaceReflectances
void detinfo::LArPropertiesStandard::SetRIndexEnergies ( std::vector< double >  s)
inline

Definition at line 176 of file LArPropertiesStandard.h.

Referenced by Configure(), and LArPropertiesStandard().

176 { fRIndexEnergies = s; }
void detinfo::LArPropertiesStandard::SetRIndexSpectrum ( std::vector< double >  s)
inline

Definition at line 175 of file LArPropertiesStandard.h.

Referenced by Configure(), and LArPropertiesStandard().

175 { fRIndexSpectrum = s; }
void detinfo::LArPropertiesStandard::SetScintBirksConstant ( double  kb)
inline

Definition at line 202 of file LArPropertiesStandard.h.

Referenced by Configure(), and LArPropertiesStandard().

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

Definition at line 199 of file LArPropertiesStandard.h.

Referenced by Configure(), and LArPropertiesStandard().

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

Definition at line 197 of file LArPropertiesStandard.h.

Referenced by Configure(), and LArPropertiesStandard().

void detinfo::LArPropertiesStandard::SetScintResolutionScale ( double  r)
inline

Definition at line 198 of file LArPropertiesStandard.h.

References r.

Referenced by Configure(), and LArPropertiesStandard().

void detinfo::LArPropertiesStandard::SetScintSlowTimeConst ( double  t)
inline

Definition at line 200 of file LArPropertiesStandard.h.

Referenced by Configure(), and LArPropertiesStandard().

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

Definition at line 196 of file LArPropertiesStandard.h.

References y.

Referenced by Configure(), and LArPropertiesStandard().

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

Definition at line 201 of file LArPropertiesStandard.h.

References r.

Referenced by Configure(), and LArPropertiesStandard().

201 { fScintYieldRatio = r; }
TRandom r
Definition: spectrum.C:23
void detinfo::LArPropertiesStandard::SetSlowScintEnergies ( std::vector< double >  s)
inline

Definition at line 174 of file LArPropertiesStandard.h.

Referenced by Configure(), and LArPropertiesStandard().

174 { fSlowScintEnergies = s; }
std::vector< double > fSlowScintEnergies
void detinfo::LArPropertiesStandard::SetSlowScintSpectrum ( std::vector< double >  s)
inline

Definition at line 173 of file LArPropertiesStandard.h.

Referenced by Configure(), and LArPropertiesStandard().

173 { fSlowScintSpectrum = s; }
std::vector< double > fSlowScintSpectrum
void detinfo::LArPropertiesStandard::SetTpbAbsorptionEnergies ( std::vector< double >  s)
inline

Definition at line 227 of file LArPropertiesStandard.h.

Referenced by Configure().

227 { fTpbAbsorptionEnergies = s; }
std::vector< double > fTpbAbsorptionEnergies
void detinfo::LArPropertiesStandard::SetTpbAbsorptionSpectrum ( std::vector< double >  s)
inline

Definition at line 228 of file LArPropertiesStandard.h.

Referenced by Configure().

228 { fTpbAbsorptionSpectrum = s; }
std::vector< double > fTpbAbsorptionSpectrum
void detinfo::LArPropertiesStandard::SetTpbEmmisionEnergies ( std::vector< double >  s)
inline

Definition at line 225 of file LArPropertiesStandard.h.

Referenced by Configure().

225 { fTpbEmmisionEnergies = s; }
std::vector< double > fTpbEmmisionEnergies
void detinfo::LArPropertiesStandard::SetTpbEmmisionSpectrum ( std::vector< double >  s)
inline

Definition at line 226 of file LArPropertiesStandard.h.

Referenced by Configure().

226 { fTpbEmmisionSpectrum = s; }
std::vector< double > fTpbEmmisionSpectrum
void detinfo::LArPropertiesStandard::SetTpbTimeConstant ( double  y)
inline

Definition at line 223 of file LArPropertiesStandard.h.

References y.

Referenced by Configure().

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

Implements detinfo::LArProperties.

Definition at line 287 of file LArPropertiesStandard.cxx.

References fSlowScintEnergies, and fSlowScintSpectrum.

288 {
289  if (fSlowScintSpectrum.size() != fSlowScintEnergies.size()) {
290  throw cet::exception("Incorrect vector sizes in LArPropertiesStandard")
291  << "The vectors specifying the slow scintillation spectrum are "
292  << " different sizes - " << fSlowScintSpectrum.size() << " " << fSlowScintEnergies.size();
293  }
294 
295  std::map<double, double> ToReturn;
296  for (size_t i = 0; i != fSlowScintSpectrum.size(); ++i)
297  ToReturn[fSlowScintEnergies.at(i)] = fSlowScintSpectrum.at(i);
298 
299  return ToReturn;
300 }
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 377 of file LArPropertiesStandard.cxx.

References fReflectiveSurfaceDiffuseFractions, fReflectiveSurfaceEnergies, and fReflectiveSurfaceNames.

378 {
379  std::map<std::string, std::map<double, double>> ToReturn;
380 
382  throw cet::exception("Incorrect vector sizes in LArPropertiesStandard")
383  << "The vectors specifying the surface reflectivities do not have consistent sizes";
384  }
385  for (size_t i = 0; i != fReflectiveSurfaceNames.size(); ++i) {
387  throw cet::exception("Incorrect vector sizes in LArPropertiesStandard")
388  << "The vectors specifying the surface reflectivities do not have consistent sizes";
389  }
390  }
391  for (size_t iName = 0; iName != fReflectiveSurfaceNames.size(); ++iName)
392  for (size_t iEnergy = 0; iEnergy != fReflectiveSurfaceEnergies.size(); ++iEnergy)
393  ToReturn[fReflectiveSurfaceNames.at(iName)][fReflectiveSurfaceEnergies.at(iEnergy)] =
394  fReflectiveSurfaceDiffuseFractions[iName][iEnergy];
395 
396  return ToReturn;
397 }
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 352 of file LArPropertiesStandard.cxx.

References fReflectiveSurfaceEnergies, fReflectiveSurfaceNames, and fReflectiveSurfaceReflectances.

353 {
354  std::map<std::string, std::map<double, double>> ToReturn;
355 
357  throw cet::exception("Incorrect vector sizes in LArPropertiesStandard")
358  << "The vectors specifying the surface reflectivities "
359  << "do not have consistent sizes";
360  }
361  for (size_t i = 0; i != fReflectiveSurfaceNames.size(); ++i) {
362  if (fReflectiveSurfaceEnergies.size() != fReflectiveSurfaceReflectances.at(i).size()) {
363  throw cet::exception("Incorrect vector sizes in LArPropertiesStandard")
364  << "The vectors specifying the surface reflectivities do not have consistent sizes";
365  }
366  }
367  for (size_t iName = 0; iName != fReflectiveSurfaceNames.size(); ++iName)
368  for (size_t iEnergy = 0; iEnergy != fReflectiveSurfaceEnergies.size(); ++iEnergy)
369  ToReturn[fReflectiveSurfaceNames.at(iName)][fReflectiveSurfaceEnergies.at(iEnergy)] =
370  fReflectiveSurfaceReflectances[iName][iEnergy];
371 
372  return ToReturn;
373 }
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 399 of file LArPropertiesStandard.cxx.

References fTpbAbsorptionEnergies, and fTpbAbsorptionSpectrum.

400 {
401  if (fTpbAbsorptionEnergies.size() != fTpbAbsorptionSpectrum.size()) {
402  throw cet::exception("Incorrect vector sizes in LArProperties")
403  << "The vectors specifying the TpbAbsorption spectrum are "
404  << " different sizes - " << fTpbAbsorptionEnergies.size() << " "
405  << fTpbAbsorptionSpectrum.size();
406  }
407 
408  std::map<double, double> ToReturn;
409  for (size_t i = 0; i != fTpbAbsorptionSpectrum.size(); ++i)
410  ToReturn[fTpbAbsorptionEnergies.at(i)] = fTpbAbsorptionSpectrum.at(i);
411 
412  return ToReturn;
413 }
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 415 of file LArPropertiesStandard.cxx.

References fTpbEmmisionEnergies, and fTpbEmmisionSpectrum.

416 {
417  if (fTpbEmmisionEnergies.size() != fTpbEmmisionSpectrum.size()) {
418  throw cet::exception("Incorrect vector sizes in LArProperties")
419  << "The vectors specifying the TpbEmmision spectrum are "
420  << " different sizes - " << fTpbEmmisionEnergies.size() << " " << fTpbEmmisionSpectrum.size();
421  }
422  //using interpolation for more smooth spectrum of TPB emmision - won't affect anything but the effective size of table passed to G4
423  Int_t tablesize = 100;
424  std::vector<double> new_x;
425  double xrange = 0.0;
426  Double_t* en = new Double_t[int(fTpbEmmisionSpectrum.size()) + 1];
427  Double_t* spectr = new Double_t[int(fTpbEmmisionSpectrum.size()) + 1];
428  for (int j = 0; j < int(fTpbEmmisionSpectrum.size()) + 1; j++) {
429  if (j == 0) {
430  en[j] = 0.;
431  en[j] = 0.;
432  }
433  else {
434  en[j] = fTpbEmmisionEnergies[j - 1];
435  spectr[j] = fTpbEmmisionSpectrum[j - 1];
436  //if(j==int(fTpbEmmisionSpectrum.size())) spectr[j]=+0.5;
437  }
438  //std::cout<<j<<" "<<int(fTpbEmmisionSpectrum.size())<<" energiestpb "<<en[j]<<std::endl;
439  }
440  TH1D* energyhist = new TH1D();
441  energyhist->SetBins(int(fTpbEmmisionSpectrum.size()), en);
442  for (int ii = 0; ii < int(fTpbEmmisionSpectrum.size()); ii++)
443  energyhist->SetBinContent(ii, spectr[ii]);
444  xrange =
445  double((en[int(fTpbEmmisionSpectrum.size())] - en[0]) / double(fTpbEmmisionSpectrum.size()));
446  new_x.clear();
447  for (int jj = 0; jj < int(tablesize); jj++) {
448 
449  new_x.push_back(jj * (xrange / double(tablesize)));
450  //std::cout<<"position "<<jj<<" "<<new_x[jj]<<" size of table "<<tablesize<<" range x "<<xrange<<std::endl;
451  }
452  std::map<double, double> ToReturn;
453  //for(size_t i=0; i!=fTpbEmmisionSpectrum.size(); ++i)
454  // ToReturn[fTpbEmmisionEnergies.at(i)]=fTpbEmmisionSpectrum.at(i);
455  for (int i = 0; i < tablesize; i++) {
456  ToReturn[new_x.at(i)] = energyhist->Interpolate(new_x[i]);
457  //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;
458  }
459  delete energyhist;
460 
461  delete[] en;
462  delete[] spectr;
463  return ToReturn;
464 }
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 218 of file LArPropertiesStandard.h.

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

Definition at line 263 of file LArPropertiesStandard.cxx.

Referenced by detinfo::LArPropertiesServiceStandard::preBeginRun().

264 {
265  if (ts == 0) return false;
266 
267  return true;
268 }

Member Data Documentation

double detinfo::LArPropertiesStandard::fA
protected

Ar atomic mass (g/mol)

Definition at line 366 of file LArPropertiesStandard.h.

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

Definition at line 378 of file LArPropertiesStandard.h.

Referenced by AbsLengthSpectrum().

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

Definition at line 377 of file LArPropertiesStandard.h.

Referenced by AbsLengthSpectrum().

double detinfo::LArPropertiesStandard::fAlphaScintYield
protected

Definition at line 394 of file LArPropertiesStandard.h.

double detinfo::LArPropertiesStandard::fAlphaScintYieldRatio
protected

Definition at line 395 of file LArPropertiesStandard.h.

double detinfo::LArPropertiesStandard::fArgon39DecayRate
protected

decays per cm^3 per second

Definition at line 361 of file LArPropertiesStandard.h.

double detinfo::LArPropertiesStandard::fElectronScintYield
protected

Definition at line 392 of file LArPropertiesStandard.h.

double detinfo::LArPropertiesStandard::fElectronScintYieldRatio
protected

Definition at line 393 of file LArPropertiesStandard.h.

bool detinfo::LArPropertiesStandard::fEnableCerenkovLight
protected

Definition at line 405 of file LArPropertiesStandard.h.

bool detinfo::LArPropertiesStandard::fExtraMatProperties
protected

Definition at line 412 of file LArPropertiesStandard.h.

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

Definition at line 372 of file LArPropertiesStandard.h.

Referenced by FastScintSpectrum().

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

Definition at line 371 of file LArPropertiesStandard.h.

Referenced by FastScintSpectrum().

double detinfo::LArPropertiesStandard::fI
protected

Ar mean excitation energy (eV)

Definition at line 367 of file LArPropertiesStandard.h.

bool detinfo::LArPropertiesStandard::fIsConfigured
protected

Definition at line 358 of file LArPropertiesStandard.h.

Referenced by Configure(), and LArPropertiesStandard().

double detinfo::LArPropertiesStandard::fKaonScintYield
protected

Definition at line 390 of file LArPropertiesStandard.h.

double detinfo::LArPropertiesStandard::fKaonScintYieldRatio
protected

Definition at line 391 of file LArPropertiesStandard.h.

double detinfo::LArPropertiesStandard::fMuonScintYield
protected

Definition at line 386 of file LArPropertiesStandard.h.

double detinfo::LArPropertiesStandard::fMuonScintYieldRatio
protected

Definition at line 387 of file LArPropertiesStandard.h.

double detinfo::LArPropertiesStandard::fPionScintYield
protected

Definition at line 388 of file LArPropertiesStandard.h.

double detinfo::LArPropertiesStandard::fPionScintYieldRatio
protected

Definition at line 389 of file LArPropertiesStandard.h.

double detinfo::LArPropertiesStandard::fProtonScintYield
protected

Definition at line 384 of file LArPropertiesStandard.h.

double detinfo::LArPropertiesStandard::fProtonScintYieldRatio
protected

Definition at line 385 of file LArPropertiesStandard.h.

double detinfo::LArPropertiesStandard::fRadiationLength
protected

g/cm^2

Definition at line 360 of file LArPropertiesStandard.h.

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

Definition at line 380 of file LArPropertiesStandard.h.

Referenced by RayleighSpectrum().

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

Definition at line 379 of file LArPropertiesStandard.h.

Referenced by RayleighSpectrum().

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

Definition at line 410 of file LArPropertiesStandard.h.

Referenced by SurfaceReflectanceDiffuseFractions().

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

Definition at line 409 of file LArPropertiesStandard.h.

Referenced by SurfaceReflectances().

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

Definition at line 376 of file LArPropertiesStandard.h.

Referenced by RIndexSpectrum().

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

Definition at line 375 of file LArPropertiesStandard.h.

Referenced by RIndexSpectrum().

double detinfo::LArPropertiesStandard::fScintBirksConstant
protected

Definition at line 403 of file LArPropertiesStandard.h.

bool detinfo::LArPropertiesStandard::fScintByParticleType
protected

Definition at line 382 of file LArPropertiesStandard.h.

double detinfo::LArPropertiesStandard::fScintFastTimeConst
protected

Definition at line 400 of file LArPropertiesStandard.h.

double detinfo::LArPropertiesStandard::fScintPreScale
protected

Definition at line 398 of file LArPropertiesStandard.h.

double detinfo::LArPropertiesStandard::fScintResolutionScale
protected

Definition at line 399 of file LArPropertiesStandard.h.

double detinfo::LArPropertiesStandard::fScintSlowTimeConst
protected

Definition at line 401 of file LArPropertiesStandard.h.

double detinfo::LArPropertiesStandard::fScintYield
protected

Definition at line 397 of file LArPropertiesStandard.h.

double detinfo::LArPropertiesStandard::fScintYieldRatio
protected

Definition at line 402 of file LArPropertiesStandard.h.

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

Definition at line 374 of file LArPropertiesStandard.h.

Referenced by SlowScintSpectrum().

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

Definition at line 373 of file LArPropertiesStandard.h.

Referenced by SlowScintSpectrum().

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

Definition at line 416 of file LArPropertiesStandard.h.

Referenced by TpbAbs().

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

Definition at line 417 of file LArPropertiesStandard.h.

Referenced by TpbAbs().

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

Definition at line 414 of file LArPropertiesStandard.h.

Referenced by TpbEm().

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

Definition at line 415 of file LArPropertiesStandard.h.

Referenced by TpbEm().

double detinfo::LArPropertiesStandard::fTpbTimeConstant
protected

Definition at line 413 of file LArPropertiesStandard.h.

double detinfo::LArPropertiesStandard::fZ
protected

Ar atomic number.

Definition at line 365 of file LArPropertiesStandard.h.


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