LArSoft  v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
util::LArPropertiesServiceArgoNeuT Class Reference

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

#include "LArPropertiesServiceArgoNeuT.h"

Inheritance diagram for util::LArPropertiesServiceArgoNeuT:
detinfo::LArProperties detinfo::LArPropertiesService

Classes

struct  DBsettingsClass
 

Public Types

using provider_type = LArPropertiesServiceArgoNeuT
 Type of service provider. More...
 

Public Member Functions

 LArPropertiesServiceArgoNeuT (fhicl::ParameterSet const &pset, art::ActivityRegistry &reg)
 
virtual ~LArPropertiesServiceArgoNeuT ()=default
 
virtual void reconfigure (fhicl::ParameterSet const &pset) override
 
virtual const detinfo::LArPropertiesprovider () 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 RadiationLength () const override
 g/cm^2 More...
 
virtual double Argon39DecayRate () const override
 decays per cm^3 per second 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
 
double DriftVelocity (double efield=0., double temperature=0.) const
 cm/us More...
 
double Efield (unsigned int planegap=0) const
 kV/cm More...
 
double ElectronLifetime () const
 microseconds More...
 
double Density (double temperature=0.) const
 g/cm^3 More...
 
double Temperature () const
 kelvin More...
 
double Eloss (double mom, double mass, double tcut) const
 Restricted mean dE/dx energy loss (MeV/cm). More...
 
double ElossVar (double mom, double mass) const
 Energy loss fluctuation (sigma_E^2 / length in MeV^2/cm). More...
 
double BirksCorrection (double dQdX) const
 dQ/dX in electrons/cm, returns dE/dX in MeV/cm. More...
 
double ModBoxCorrection (double dQdX) const
 
virtual bool ExtraMatProperties () const override
 
virtual double TpbTimeConstant () const override
 

Private Member Functions

void preBeginRun (art::Run const &run)
 
void checkDBstatus () const
 
virtual std::map< double, double > TpbAbs () const override
 
virtual std::map< double, double > TpbEm () const override
 

Private Attributes

std::vector< double > fEfield
 kV/cm More...
 
double fTemperature
 kelvin More...
 
double fElectronlifetime
 microseconds More...
 
double fDefTemperature
 kelvin More...
 
double fDefElectronlifetime
 microseconds More...
 
double fRadiationLength
 g/cm^2 More...
 
double fArgon39DecayRate
 decays per cm^3 per second More...
 
bool fAlreadyReadFromDB
 tests whether the values have alread been picked up from the Database More...
 
double fZ
 Ar atomic number. More...
 
double fA
 Ar atomic mass (g/mol) More...
 
double fI
 Ar mean excitation energy (eV) More...
 
double fSa
 Sternheimer parameter a. More...
 
double fSk
 Sternheimer parameter k. More...
 
double fSx0
 Sternheimer parameter x0. More...
 
double fSx1
 Sternheimer parameter x1. More...
 
double fScbar
 Sternheimer parameter Cbar. 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 fExtraMatProperties
 
double fTpbTimeConstant
 
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
 
std::vector< double > fTpbEmmisionEnergies
 
std::vector< double > fTpbEmmisionSpectrum
 
std::vector< double > fTpbAbsorptionEnergies
 
std::vector< double > fTpbAbsorptionSpectrum
 
DBsettingsClass DBsettings
 settings read from DB access More...
 

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.

Definition at line 49 of file LArPropertiesServiceArgoNeuT.h.

Member Typedef Documentation

Constructor & Destructor Documentation

util::LArPropertiesServiceArgoNeuT::LArPropertiesServiceArgoNeuT ( fhicl::ParameterSet const &  pset,
art::ActivityRegistry reg 
)

Definition at line 25 of file LArPropertiesServiceArgoNeuT_service.cc.

References preBeginRun(), reconfigure(), and art::ActivityRegistry::sPreBeginRun.

26  : DBsettings() // reads information from DatabaseUtil service
27  //fval(0),
28  //fElectronlifetime( ( )
29 {
30  this->reconfigure(pset);
32 }
DBsettingsClass DBsettings
settings read from DB access
virtual void reconfigure(fhicl::ParameterSet const &pset) override
GlobalSignal< detail::SignalResponseType::FIFO, void(Run const &)> sPreBeginRun
virtual util::LArPropertiesServiceArgoNeuT::~LArPropertiesServiceArgoNeuT ( )
virtualdefault

Member Function Documentation

std::map< double, double > util::LArPropertiesServiceArgoNeuT::AbsLengthSpectrum ( ) const
overridevirtual

Implements detinfo::LArProperties.

Definition at line 501 of file LArPropertiesServiceArgoNeuT_service.cc.

References fAbsLengthEnergies, and fAbsLengthSpectrum.

Referenced by CerenkovLightEnabled().

502 {
503  if(fAbsLengthSpectrum.size()!=fAbsLengthEnergies.size()){
504  throw cet::exception("Incorrect vector sizes in LArProperties")
505  << "The vectors specifying the Abs Length spectrum are "
506  << " different sizes - " << fAbsLengthSpectrum.size()
507  << " " << fAbsLengthEnergies.size();
508  }
509 
510  std::map<double, double> ToReturn;
511  for(size_t i=0; i!=fAbsLengthSpectrum.size(); ++i)
512  ToReturn[fAbsLengthEnergies.at(i)]=fAbsLengthSpectrum.at(i);
513 
514  return ToReturn;
515 }
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
virtual double util::LArPropertiesServiceArgoNeuT::AlphaScintYield ( bool  prescale = false) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 103 of file LArPropertiesServiceArgoNeuT.h.

References fAlphaScintYield, and ScintPreScale().

103 { return fAlphaScintYield * ScintPreScale(prescale); }
virtual double ScintPreScale(bool prescale=true) const override
virtual double util::LArPropertiesServiceArgoNeuT::AlphaScintYieldRatio ( ) const
inlineoverridevirtual
virtual double util::LArPropertiesServiceArgoNeuT::Argon39DecayRate ( ) const
inlineoverridevirtual

decays per cm^3 per second

Implements detinfo::LArProperties.

Definition at line 79 of file LArPropertiesServiceArgoNeuT.h.

References fArgon39DecayRate.

virtual double util::LArPropertiesServiceArgoNeuT::AtomicMass ( ) const
inlineoverridevirtual

Ar atomic mass (g/mol)

Implements detinfo::LArProperties.

Definition at line 74 of file LArPropertiesServiceArgoNeuT.h.

References fA.

74 { return fA; }
virtual double util::LArPropertiesServiceArgoNeuT::AtomicNumber ( ) const
inlineoverridevirtual

Ar atomic number.

Implements detinfo::LArProperties.

Definition at line 72 of file LArPropertiesServiceArgoNeuT.h.

References fZ.

72 { return fZ; }
double util::LArPropertiesServiceArgoNeuT::BirksCorrection ( double  dQdX) const

dQ/dX in electrons/cm, returns dE/dX in MeV/cm.

Definition at line 291 of file LArPropertiesServiceArgoNeuT_service.cc.

References Density(), Efield(), util::kGeVToElectrons, util::kRecombA, and util::kRecombk.

Referenced by util::DetectorPropertiesServiceArgoNeuT::BirksCorrection(), and CerenkovLightEnabled().

292 {
293  // Correction for charge quenching using parameterization from
294  // S.Amoruso et al., NIM A 523 (2004) 275
295 
296  double A3t = util::kRecombA;
297  double K3t = util::kRecombk; // in KV/cm*(g/cm^2)/MeV
298  double rho = this->Density(); // LAr density in g/cm^3
299  double Wion = 1000./util::kGeVToElectrons; // 23.6 eV = 1e, Wion in MeV/e
300  double Efield = this->Efield(); // Electric Field in the drift region in KV/cm
301  K3t /= rho; // KV/MeV
302  double dEdx = dQdx/(A3t/Wion-K3t/Efield*dQdx); //MeV/cm
303 
304  return dEdx;
305 }
constexpr double kGeVToElectrons
23.6eV per ion pair, 1e9 eV/GeV
double Efield(unsigned int planegap=0) const
kV/cm
constexpr double kRecombk
double Density(double temperature=0.) const
g/cm^3
constexpr double kRecombA
A constant.
void util::LArPropertiesServiceArgoNeuT::checkDBstatus ( ) const
private

Definition at line 418 of file LArPropertiesServiceArgoNeuT_service.cc.

References DBsettings, fAlreadyReadFromDB, util::LArPropertiesServiceArgoNeuT::DBsettingsClass::ShouldConnect, and util::LArPropertiesServiceArgoNeuT::DBsettingsClass::ToughErrorTreatment.

Referenced by Efield(), ElectronLifetime(), Temperature(), and TpbTimeConstant().

419 {
420 
421  // if we don't have any business with DBs, we have already wasted enough time
422  if (!DBsettings.ShouldConnect) return;
423 
424  // have we already done our duty?
425  if (fAlreadyReadFromDB) return;
426 
428  // Have not read from DB: should read and requested tough treatment
429  throw cet::exception("LArProperties") << " Extracting values from LArProperties before they "
430  << " have been read in from database. \n "
431  << "Set ToughErrorTreatment or ShouldConnect "
432  << " to false in databaseutil.fcl if you want "
433  << " to avoid this. \n";
434  }
435  else {
436  // Have not read from DB, should read and requested soft treatment
437  mf::LogWarning("LArProperties") << "!!! Extracting values from LArProperties before they "
438  << " have been read in from the database. \n "
439  << " You may not be using the correct values of "
440  << " electron lifetime, temperature and electric field!"
441  << " You should not be initializing"
442  << " Database originating values in BeginJob()s or constructors."
443  << " You have been warned !!! \n ";
444  }
445 } // util::LArPropertiesServiceArgoNeuT::checkDBstatus()
bool ShouldConnect
equivalent parameter in DatabaseUtil
DBsettingsClass DBsettings
settings read from DB access
bool ToughErrorTreatment
equivalent parameter in DatabaseUtil
bool fAlreadyReadFromDB
tests whether the values have alread been picked up from the Database
MaybeLogger_< ELseverityLevel::ELsev_warning, false > LogWarning
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
double util::LArPropertiesServiceArgoNeuT::Density ( double  temperature = 0.) const

g/cm^3

Definition at line 157 of file LArPropertiesServiceArgoNeuT_service.cc.

References Temperature().

Referenced by BirksCorrection(), CerenkovLightEnabled(), util::DetectorPropertiesServiceArgoNeuT::Density(), Eloss(), ElossVar(), and ModBoxCorrection().

158 {
159  // Default temperature use internal value.
160  if(temperature == 0.)
161  temperature = Temperature();
162 
163  double density = -0.00615*temperature + 1.928;
164 
165  return density;
166 }
double util::LArPropertiesServiceArgoNeuT::DriftVelocity ( double  efield = 0.,
double  temperature = 0. 
) const

cm/us

Definition at line 199 of file LArPropertiesServiceArgoNeuT_service.cc.

References Efield(), and Temperature().

Referenced by CerenkovLightEnabled(), and util::DetectorPropertiesServiceArgoNeuT::DriftVelocity().

199  {
200 
201  // Drift Velocity as a function of Electric Field and LAr Temperature
202  // from : W. Walkowiak, NIM A 449 (2000) 288-294
203  //
204  // Efield should have units of kV/cm
205  // Temperature should have units of Kelvin
206 
207  // Default Efield, use internal value.
208  if(efield == 0.)
209  efield = Efield();
210  //
211  if(efield > 4.0)
212  mf::LogWarning("LArProperties") << "DriftVelocity Warning! : E-field value of "
213  << efield
214  << " kV/cm is outside of range covered by drift"
215  << " velocity parameterization. Returned value"
216  << " may not be correct";
217 
218 
219  // Default temperature use internal value.
220  if(temperature == 0.)
221  temperature = Temperature();
222 
223  if(temperature < 87.0 || temperature > 94.0)
224  mf::LogWarning("LArProperties") << "DriftVelocity Warning! : Temperature value of "
225  << temperature
226  << " K is outside of range covered by drift velocity"
227  << " parameterization. Returned value may not be"
228  << " correct";
229 
230 
231 
232 
233  double tshift = -87.203+temperature;
234  double xFit = 0.0938163-0.0052563*tshift-0.0001470*tshift*tshift;
235  double uFit = 5.18406+0.01448*tshift-0.003497*tshift*tshift-0.000516*tshift*tshift*tshift;
236  double vd;
237 
238 
239 // Icarus Parameter Set, use as default
240  double P1 = -0.04640; // K^-1
241  double P2 = 0.01712; // K^-1
242  double P3 = 1.88125; // (kV/cm)^-1
243  double P4 = 0.99408; // kV/cm
244  double P5 = 0.01172; // (kV/cm)^-P6
245  double P6 = 4.20214;
246  double T0 = 105.749; // K
247  // Walkowiak Parameter Set
248  double P1W = -0.01481; // K^-1
249  double P2W = -0.0075; // K^-1
250  double P3W = 0.141; // (kV/cm)^-1
251  double P4W = 12.4; // kV/cm
252  double P5W = 1.627; // (kV/cm)^-P6
253  double P6W = 0.317;
254  double T0W = 90.371; // K
255 
256 // From Craig Thorne . . . currently not documented
257 // smooth transition from linear at small fields to
258 // icarus fit at most fields to Walkowiak at very high fields
259  if (efield < xFit) vd=efield*uFit;
260  else if (efield<0.619) {
261  vd = ((P1*(temperature-T0)+1)
262  *(P3*efield*std::log(1+P4/efield) + P5*std::pow(efield,P6))
263  +P2*(temperature-T0));
264  }
265  else if (efield<0.699) {
266  vd = 12.5*(efield-0.619)*((P1W*(temperature-T0W)+1)
267  *(P3W*efield*std::log(1+P4W/efield) + P5W*std::pow(efield,P6W))
268  +P2W*(temperature-T0W))+
269  12.5*(0.699-efield)*((P1*(temperature-T0)+1)
270  *(P3*efield*std::log(1+P4/efield) + P5*std::pow(efield,P6))
271  +P2*(temperature-T0));
272  }
273  else {
274  vd = ((P1W*(temperature-T0W)+1)
275  *(P3W*efield*std::log(1+P4W/efield) + P5W*std::pow(efield,P6W))
276  +P2W*(temperature-T0W));
277  }
278 
279  vd /= 10.;
280 
281  return vd; // in cm/us
282 }
double Efield(unsigned int planegap=0) const
kV/cm
MaybeLogger_< ELseverityLevel::ELsev_warning, false > LogWarning
double util::LArPropertiesServiceArgoNeuT::Efield ( unsigned int  planegap = 0) const

kV/cm

Definition at line 170 of file LArPropertiesServiceArgoNeuT_service.cc.

References checkDBstatus(), and fEfield.

Referenced by BirksCorrection(), CerenkovLightEnabled(), DriftVelocity(), util::DetectorPropertiesServiceArgoNeuT::Efield(), and ModBoxCorrection().

171 {
172  this->checkDBstatus();
173 
174  if(planegap >= fEfield.size())
175  throw cet::exception("LArProperties") << "requesting Electric field in a plane gap that is not defined\n";
176 
177  return fEfield[planegap];
178 }
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
double util::LArPropertiesServiceArgoNeuT::ElectronLifetime ( ) const
virtual double util::LArPropertiesServiceArgoNeuT::ElectronScintYield ( bool  prescale = false) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 101 of file LArPropertiesServiceArgoNeuT.h.

References fElectronScintYield, and ScintPreScale().

101 { return fElectronScintYield * ScintPreScale(prescale);}
virtual double ScintPreScale(bool prescale=true) const override
virtual double util::LArPropertiesServiceArgoNeuT::ElectronScintYieldRatio ( ) const
inlineoverridevirtual
double util::LArPropertiesServiceArgoNeuT::Eloss ( double  mom,
double  mass,
double  tcut 
) const

Restricted mean dE/dx energy loss (MeV/cm).

Definition at line 340 of file LArPropertiesServiceArgoNeuT_service.cc.

References B, beta, Density(), e, fA, fI, fSa, fScbar, fSk, fSx0, fSx1, fZ, K, and x.

Referenced by CerenkovLightEnabled(), and util::DetectorPropertiesServiceArgoNeuT::Eloss().

341 {
342  // Some constants.
343 
344  double K = 0.307075; // 4 pi N_A r_e^2 m_e c^2 (MeV cm^2/mol).
345  double me = 0.510998918; // Electron mass (MeV/c^2).
346 
347  // Calculate kinematic quantities.
348 
349  double bg = mom / mass; // beta*gamma.
350  double gamma = sqrt(1. + bg*bg); // gamma.
351  double beta = bg / gamma; // beta (velocity).
352  double mer = 0.001 * me / mass; // electron mass / mass of incident particle.
353  double tmax = 2.*me* bg*bg / (1. + 2.*gamma*mer + mer*mer); // Maximum delta ray energy (MeV).
354 
355  // Make sure tcut does not exceed tmax.
356 
357  if(tcut == 0. || tcut > tmax)
358  tcut = tmax;
359 
360  // Calculate density effect correction (delta).
361 
362  double x = std::log10(bg);
363  double delta = 0.;
364  if(x >= fSx0) {
365  delta = 2. * std::log(10.) * x - fScbar;
366  if(x < fSx1)
367  delta += fSa * std::pow(fSx1 - x, fSk);
368  }
369 
370  // Calculate stopping number.
371 
372  double B = 0.5 * std::log(2.*me*bg*bg*tcut / (1.e-12 * fI*fI))
373  - 0.5 * beta*beta * (1. + tcut / tmax) - 0.5 * delta;
374 
375  // Don't let the stopping number become negative.
376 
377  if(B < 1.)
378  B = 1.;
379 
380  // Calculate dE/dx.
381 
382  double dedx = Density() * K*fZ*B / (fA * beta*beta);
383 
384  // Done.
385 
386  return dedx;
387 }
Float_t x
Definition: compare.C:6
Int_t B
Definition: plot.C:25
Double_t beta
Double_t K
double fI
Ar mean excitation energy (eV)
double Density(double temperature=0.) const
g/cm^3
Float_t e
Definition: plot.C:34
double fScbar
Sternheimer parameter Cbar.
double util::LArPropertiesServiceArgoNeuT::ElossVar ( double  mom,
double  mass 
) const

Energy loss fluctuation (sigma_E^2 / length in MeV^2/cm).

Definition at line 398 of file LArPropertiesServiceArgoNeuT_service.cc.

References Density(), fA, fZ, and K.

Referenced by CerenkovLightEnabled(), and util::DetectorPropertiesServiceArgoNeuT::ElossVar().

399 {
400  // Some constants.
401 
402  double K = 0.307075; // 4 pi N_A r_e^2 m_e c^2 (MeV cm^2/mol).
403  double me = 0.510998918; // Electron mass (MeV/c^2).
404 
405  // Calculate kinematic quantities.
406 
407  double bg = mom / mass; // beta*gamma.
408  double gamma2 = 1. + bg*bg; // gamma^2.
409  double beta2 = bg*bg / gamma2; // beta^2.
410 
411  // Calculate final result.
412 
413  double result = gamma2 * (1. - 0.5 * beta2) * me * (fZ / fA) * K * Density();
414  return result;
415 }
Double_t K
double Density(double temperature=0.) const
g/cm^3
virtual double util::LArPropertiesServiceArgoNeuT::ExcitationEnergy ( ) const
inlineoverridevirtual

Ar mean excitation energy (eV)

Implements detinfo::LArProperties.

Definition at line 76 of file LArPropertiesServiceArgoNeuT.h.

References fI.

76 { return fI; }
double fI
Ar mean excitation energy (eV)
virtual bool util::LArPropertiesServiceArgoNeuT::ExtraMatProperties ( ) const
inlineoverridevirtual
std::map< double, double > util::LArPropertiesServiceArgoNeuT::FastScintSpectrum ( ) const
overridevirtual

Implements detinfo::LArProperties.

Definition at line 449 of file LArPropertiesServiceArgoNeuT_service.cc.

References fFastScintEnergies, and fFastScintSpectrum.

Referenced by CerenkovLightEnabled().

450 {
451  if(fFastScintSpectrum.size()!=fFastScintEnergies.size()){
452  throw cet::exception("Incorrect vector sizes in LArProperties")
453  << "The vectors specifying the fast scintillation spectrum are "
454  << " different sizes - " << fFastScintSpectrum.size()
455  << " " << fFastScintEnergies.size();
456  }
457 
458  std::map<double, double> ToReturn;
459  for(size_t i=0; i!=fFastScintSpectrum.size(); ++i)
460  ToReturn[fFastScintEnergies.at(i)]=fFastScintSpectrum.at(i);
461 
462  return ToReturn;
463 }
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
virtual double util::LArPropertiesServiceArgoNeuT::KaonScintYield ( bool  prescale = false) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 97 of file LArPropertiesServiceArgoNeuT.h.

References fKaonScintYield, and ScintPreScale().

97 { return fKaonScintYield * ScintPreScale(prescale); }
virtual double ScintPreScale(bool prescale=true) const override
virtual double util::LArPropertiesServiceArgoNeuT::KaonScintYieldRatio ( ) const
inlineoverridevirtual
double util::LArPropertiesServiceArgoNeuT::ModBoxCorrection ( double  dQdX) const

Definition at line 308 of file LArPropertiesServiceArgoNeuT_service.cc.

References Density(), Efield(), util::kGeVToElectrons, util::kModBoxA, and util::kModBoxB.

Referenced by CerenkovLightEnabled(), and util::DetectorPropertiesServiceArgoNeuT::ModBoxCorrection().

309 {
310  // Modified Box model correction has better behavior than the Birks
311  // correction at high values of dQ/dx.
312  double rho = this->Density(); // LAr density in g/cm^3
313  double Wion = 1000./util::kGeVToElectrons; // 23.6 eV = 1e, Wion in MeV/e
314  double Efield = this->Efield(); // Electric Field in the drift region in KV/cm
315  double Beta = util::kModBoxB / (rho * Efield);
316  double Alpha = util::kModBoxA;
317  double dEdx = (exp(Beta * Wion * dQdx ) - Alpha) / Beta;
318 
319  return dEdx;
320 
321 }
constexpr double kGeVToElectrons
23.6eV per ion pair, 1e9 eV/GeV
double Efield(unsigned int planegap=0) const
kV/cm
constexpr double kModBoxB
Modified Box Beta in g/(MeV cm²)*kV/cm.
double Density(double temperature=0.) const
g/cm^3
constexpr double kModBoxA
Modified Box Alpha.
virtual double util::LArPropertiesServiceArgoNeuT::MuonScintYield ( bool  prescale = false) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 95 of file LArPropertiesServiceArgoNeuT.h.

References fMuonScintYield, and ScintPreScale().

95 { return fMuonScintYield * ScintPreScale(prescale); }
virtual double ScintPreScale(bool prescale=true) const override
virtual double util::LArPropertiesServiceArgoNeuT::MuonScintYieldRatio ( ) const
inlineoverridevirtual
virtual double util::LArPropertiesServiceArgoNeuT::PionScintYield ( bool  prescale = false) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 99 of file LArPropertiesServiceArgoNeuT.h.

References fPionScintYield, and ScintPreScale().

99 { return fPionScintYield * ScintPreScale(prescale); }
virtual double ScintPreScale(bool prescale=true) const override
virtual double util::LArPropertiesServiceArgoNeuT::PionScintYieldRatio ( ) const
inlineoverridevirtual
void util::LArPropertiesServiceArgoNeuT::preBeginRun ( art::Run const &  run)
private

Definition at line 35 of file LArPropertiesServiceArgoNeuT_service.cc.

References fAlreadyReadFromDB, fDefElectronlifetime, fDefTemperature, fEfield, fElectronlifetime, fTemperature, util::DatabaseUtil::GetEfieldValuesFromDB(), util::DatabaseUtil::GetLifetimeFromDB(), util::DatabaseUtil::GetTemperatureFromDB(), art::Run::id(), and art::RunID::run().

Referenced by LArPropertiesServiceArgoNeuT(), and TpbTimeConstant().

36 {
37  int nrun = run.id().run();
39  if (nrun != 0){
40 
41  double inpvalue = 0.;
42 
43  //get lifetime for a given run. If it doesn't work return to default value.
44  if(DButil->GetLifetimeFromDB(nrun,inpvalue)!=-1)
45  fElectronlifetime=inpvalue;
46  else{//use default value
48  }
49 
50  //get temperature for a given run. If it doesn't work return to default value.
51  if(DButil->GetTemperatureFromDB(nrun,inpvalue)!=-1)
52  fTemperature=inpvalue;
53  else{
55  }
56  //get Efield vlaues for a given run. If it doesn't work return to default value.
57  DButil->GetEfieldValuesFromDB(nrun,fEfield);
58 
59  }
60  else
61  mf::LogWarning("LArProperties") << "run number == 0, not extracting info from DB\n" ;
62 
63  fAlreadyReadFromDB=true;
64 }
int GetEfieldValuesFromDB(int run, std::vector< double > &efield)
int GetLifetimeFromDB(int run, double &lftime_real)
bool fAlreadyReadFromDB
tests whether the values have alread been picked up from the Database
MaybeLogger_< ELseverityLevel::ELsev_warning, false > LogWarning
int GetTemperatureFromDB(int run, double &temp_real)
virtual double util::LArPropertiesServiceArgoNeuT::ProtonScintYield ( bool  prescale = false) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 93 of file LArPropertiesServiceArgoNeuT.h.

References fProtonScintYield, and ScintPreScale().

93 { return fProtonScintYield * ScintPreScale(prescale); }
virtual double ScintPreScale(bool prescale=true) const override
virtual double util::LArPropertiesServiceArgoNeuT::ProtonScintYieldRatio ( ) const
inlineoverridevirtual
virtual const detinfo::LArProperties* util::LArPropertiesServiceArgoNeuT::provider ( ) const
inlineoverridevirtual

Implements detinfo::LArPropertiesService.

Definition at line 66 of file LArPropertiesServiceArgoNeuT.h.

66 { return this; }
virtual double util::LArPropertiesServiceArgoNeuT::RadiationLength ( ) const
inlineoverridevirtual

g/cm^2

Implements detinfo::LArProperties.

Definition at line 78 of file LArPropertiesServiceArgoNeuT.h.

References fRadiationLength.

std::map< double, double > util::LArPropertiesServiceArgoNeuT::RayleighSpectrum ( ) const
overridevirtual

Implements detinfo::LArProperties.

Definition at line 518 of file LArPropertiesServiceArgoNeuT_service.cc.

References fRayleighEnergies, and fRayleighSpectrum.

Referenced by CerenkovLightEnabled().

519 {
520  if(fRayleighSpectrum.size()!=fRayleighEnergies.size()){
521  throw cet::exception("Incorrect vector sizes in LArProperties")
522  << "The vectors specifying the rayleigh spectrum are "
523  << " different sizes - " << fRayleighSpectrum.size()
524  << " " << fRayleighEnergies.size();
525  }
526 
527  std::map<double, double> ToReturn;
528  for(size_t i=0; i!=fRayleighSpectrum.size(); ++i)
529  ToReturn[fRayleighEnergies.at(i)]=fRayleighSpectrum.at(i);
530 
531  return ToReturn;
532 }
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
void util::LArPropertiesServiceArgoNeuT::reconfigure ( fhicl::ParameterSet const &  pset)
overridevirtual
Todo:
these values should eventually come from a database

Implements detinfo::LArPropertiesService.

Definition at line 70 of file LArPropertiesServiceArgoNeuT_service.cc.

References fA, fAbsLengthEnergies, fAbsLengthSpectrum, fAlphaScintYield, fAlphaScintYieldRatio, fAlreadyReadFromDB, fArgon39DecayRate, fDefElectronlifetime, fDefTemperature, fEfield, fElectronlifetime, fElectronScintYield, fElectronScintYieldRatio, fEnableCerenkovLight, fExtraMatProperties, fFastScintEnergies, fFastScintSpectrum, fI, fKaonScintYield, fKaonScintYieldRatio, fMuonScintYield, fMuonScintYieldRatio, fPionScintYield, fPionScintYieldRatio, fProtonScintYield, fProtonScintYieldRatio, fRadiationLength, fRayleighEnergies, fRayleighSpectrum, fReflectiveSurfaceDiffuseFractions, fReflectiveSurfaceEnergies, fReflectiveSurfaceNames, fReflectiveSurfaceReflectances, fRIndexEnergies, fRIndexSpectrum, fSa, fScbar, fScintBirksConstant, fScintByParticleType, fScintFastTimeConst, fScintPreScale, fScintResolutionScale, fScintSlowTimeConst, fScintYield, fScintYieldRatio, fSk, fSlowScintEnergies, fSlowScintSpectrum, fSx0, fSx1, fTemperature, fTpbAbsorptionEnergies, fTpbAbsorptionSpectrum, fTpbEmmisionEnergies, fTpbEmmisionSpectrum, fTpbTimeConstant, fZ, and fhicl::ParameterSet::get().

Referenced by LArPropertiesServiceArgoNeuT().

71 {
72  fEfield = pset.get< std::vector<double> >("Efield" );
73  fTemperature = pset.get< double >("Temperature" );
74  fElectronlifetime = pset.get< double >("Electronlifetime");
75  fDefTemperature = pset.get< double >("Temperature" );
76  fDefElectronlifetime = pset.get< double >("Electronlifetime");
77  fRadiationLength = pset.get< double >("RadiationLength" );
78  fZ = pset.get< double >("AtomicNumber" );
79  fA = pset.get< double >("AtomicMass" );
80  fI = pset.get< double >("ExcitationEnergy");
81  fSa = pset.get< double >("SternheimerA" );
82  fSk = pset.get< double >("SternheimerK" );
83  fSx0 = pset.get< double >("SternheimerX0" );
84  fSx1 = pset.get< double >("SternheimerX1" );
85  fScbar = pset.get< double >("SternheimerCbar" );
86 
87  fArgon39DecayRate = pset.get< double >("Argon39DecayRate");
88 
89  fFastScintEnergies = pset.get< std::vector<double> >("FastScintEnergies");
90  fFastScintSpectrum = pset.get< std::vector<double> >("FastScintSpectrum");
91  fSlowScintEnergies = pset.get< std::vector<double> >("SlowScintEnergies");
92  fSlowScintSpectrum = pset.get< std::vector<double> >("SlowScintSpectrum");
93  fAbsLengthEnergies = pset.get< std::vector<double> >("AbsLengthEnergies");
94  fAbsLengthSpectrum = pset.get< std::vector<double> >("AbsLengthSpectrum");
95  fRIndexEnergies = pset.get< std::vector<double> >("RIndexEnergies" );
96  fRIndexSpectrum = pset.get< std::vector<double> >("RIndexSpectrum" );
97  fRayleighEnergies = pset.get< std::vector<double> >("RayleighEnergies" );
98  fRayleighSpectrum = pset.get< std::vector<double> >("RayleighSpectrum" );
99 
100  fScintResolutionScale = pset.get<double>("ScintResolutionScale");
101  fScintFastTimeConst = pset.get<double>("ScintFastTimeConst" );
102  fScintSlowTimeConst = pset.get<double>("ScintSlowTimeConst" );
103  fScintBirksConstant = pset.get<double>("ScintBirksConstant" );
104  fScintByParticleType = pset.get<bool>("ScintByParticleType" );
105  fScintYield = pset.get<double>("ScintYield" );
106  fScintPreScale = pset.get<double>("ScintPreScale" );
107  fScintYieldRatio = pset.get<double>("ScintYieldRatio" );
108  fExtraMatProperties = pset.get<bool>("LoadExtraMatProperties");
109 
110  if(fScintByParticleType){
111  fProtonScintYield = pset.get<double>("ProtonScintYield" );
112  fProtonScintYieldRatio = pset.get<double>("ProtonScintYieldRatio");
113  fMuonScintYield = pset.get<double>("MuonScintYield" );
114  fMuonScintYieldRatio = pset.get<double>("MuonScintYieldRatio" );
115  fPionScintYield = pset.get<double>("PionScintYield" );
116  fPionScintYieldRatio = pset.get<double>("PionScintYieldRatio" );
117  fKaonScintYield = pset.get<double>("KaonScintYield" );
118  fKaonScintYieldRatio = pset.get<double>("KaonScintYieldRatio" );
119  fElectronScintYield = pset.get<double>("ElectronScintYield" );
120  fElectronScintYieldRatio = pset.get<double>("ElectronScintYieldRatio");
121  fAlphaScintYield = pset.get<double>("AlphaScintYield" );
122  fAlphaScintYieldRatio = pset.get<double>("AlphaScintYieldRatio" );
123  }
124 
125  if(fExtraMatProperties){
126  // Used data to be found e.g. in: JINST 7 P05008 (reflectances estimated from measurements at Cracow University of Technology (thanks to dr. J. Jaglarz and dr. N. Nosidlak) + http://refractiveindex.info and refs. therein), G.M. Seidel, et al.,Nucl. Instr. and Meth. A 489 (2002)189; arXiv:1108.5584 [physics.ins-det]; Journal of Luminescence 81 (1999) 285}291; arXiv:1304.6117v3 [physics.ins-det]; „Optical characterization and GEANT4 simulation of the light collection system for the WArP 100 liters detector: analysis of the event reconstruction capability”, F. Di Pompeo PhD thesis; //http://gentitfx.fr/litrani/AllModules/FitMacros/RIndexRev_vm2000.C.html for vm2000 (VM2000 (TM)) and refs. Therein - list will be updated for referece
127 
128  fTpbTimeConstant = pset.get<double>("TpbTimeConstant" );
129 
130  fTpbEmmisionEnergies = pset.get<std::vector<double> >("TpbEmmisionEnergies" );
131  fTpbEmmisionSpectrum = pset.get<std::vector<double> >("TpbEmmisionSpectrum" );
132  fTpbAbsorptionEnergies = pset.get<std::vector<double> >("TpbAbsorptionEnergies");
133  fTpbAbsorptionSpectrum = pset.get<std::vector<double> >("TpbAbsorptionSpectrum");
134 
135  }
136 
137 
138 
139  fEnableCerenkovLight = pset.get<bool>("EnableCerenkovLight" );
140 
141  fReflectiveSurfaceNames = pset.get<std::vector<std::string> > ("ReflectiveSurfaceNames" );
142  fReflectiveSurfaceEnergies = pset.get<std::vector<double> > ("ReflectiveSurfaceEnergies" );
143  fReflectiveSurfaceReflectances = pset.get<std::vector<std::vector<double> > >("ReflectiveSurfaceReflectances" );
144  fReflectiveSurfaceDiffuseFractions= pset.get<std::vector<std::vector<double> > >("ReflectiveSurfaceDiffuseFractions");
145 
146  fAlreadyReadFromDB=false;
147 
148  return;
149 }
std::vector< std::string > fReflectiveSurfaceNames
double fArgon39DecayRate
decays per cm^3 per second
bool fAlreadyReadFromDB
tests whether the values have alread been picked up from the Database
double fI
Ar mean excitation energy (eV)
std::vector< std::vector< double > > fReflectiveSurfaceReflectances
std::vector< std::vector< double > > fReflectiveSurfaceDiffuseFractions
double fScbar
Sternheimer parameter Cbar.
std::map< double, double > util::LArPropertiesServiceArgoNeuT::RIndexSpectrum ( ) const
overridevirtual

Implements detinfo::LArProperties.

Definition at line 483 of file LArPropertiesServiceArgoNeuT_service.cc.

References fRIndexEnergies, and fRIndexSpectrum.

Referenced by CerenkovLightEnabled().

484 {
485  if(fRIndexSpectrum.size()!=fRIndexEnergies.size()){
486  throw cet::exception("Incorrect vector sizes in LArProperties")
487  << "The vectors specifying the RIndex spectrum are "
488  << " different sizes - " << fRIndexSpectrum.size()
489  << " " << fRIndexEnergies.size();
490  }
491 
492  std::map<double, double> ToReturn;
493  for(size_t i=0; i!=fRIndexSpectrum.size(); ++i)
494  ToReturn[fRIndexEnergies.at(i)]=fRIndexSpectrum.at(i);
495 
496  return ToReturn;
497 }
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
virtual double util::LArPropertiesServiceArgoNeuT::ScintBirksConstant ( ) const
inlineoverridevirtual
virtual bool util::LArPropertiesServiceArgoNeuT::ScintByParticleType ( ) const
inlineoverridevirtual
virtual double util::LArPropertiesServiceArgoNeuT::ScintFastTimeConst ( ) const
inlineoverridevirtual
virtual double util::LArPropertiesServiceArgoNeuT::ScintPreScale ( bool  prescale = true) const
inlineoverridevirtual
virtual double util::LArPropertiesServiceArgoNeuT::ScintResolutionScale ( ) const
inlineoverridevirtual
virtual double util::LArPropertiesServiceArgoNeuT::ScintSlowTimeConst ( ) const
inlineoverridevirtual
virtual double util::LArPropertiesServiceArgoNeuT::ScintYield ( bool  prescale = false) const
inlineoverridevirtual

Implements detinfo::LArProperties.

Definition at line 89 of file LArPropertiesServiceArgoNeuT.h.

References fScintYield, and ScintPreScale().

89 { return fScintYield * ScintPreScale(prescale);}
virtual double ScintPreScale(bool prescale=true) const override
virtual double util::LArPropertiesServiceArgoNeuT::ScintYieldRatio ( ) const
inlineoverridevirtual
std::map< double, double > util::LArPropertiesServiceArgoNeuT::SlowScintSpectrum ( ) const
overridevirtual

Implements detinfo::LArProperties.

Definition at line 466 of file LArPropertiesServiceArgoNeuT_service.cc.

References fFastScintEnergies, fFastScintSpectrum, fSlowScintEnergies, and fSlowScintSpectrum.

Referenced by CerenkovLightEnabled().

467 {
468  if(fSlowScintSpectrum.size()!=fSlowScintEnergies.size()){
469  throw cet::exception("Incorrect vector sizes in LArProperties")
470  << "The vectors specifying the slow scintillation spectrum are "
471  << " different sizes - " << fFastScintSpectrum.size()
472  << " " << fFastScintEnergies.size();
473  }
474 
475  std::map<double, double> ToReturn;
476  for(size_t i=0; i!=fSlowScintSpectrum.size(); ++i)
477  ToReturn[fSlowScintEnergies.at(i)]=fSlowScintSpectrum.at(i);
478 
479  return ToReturn;
480 }
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
std::map< std::string, std::map< double, double > > util::LArPropertiesServiceArgoNeuT::SurfaceReflectanceDiffuseFractions ( ) const
overridevirtual

Implements detinfo::LArProperties.

Definition at line 559 of file LArPropertiesServiceArgoNeuT_service.cc.

References fReflectiveSurfaceDiffuseFractions, fReflectiveSurfaceEnergies, and fReflectiveSurfaceNames.

Referenced by CerenkovLightEnabled().

560 {
561  std::map<std::string, std::map<double, double> > ToReturn;
562 
564  throw cet::exception("Incorrect vector sizes in LArPropertiesServiceArgoNeuT")
565  << "The vectors specifying the surface reflectivities do not have consistent sizes";
566  }
567  for(size_t i=0; i!=fReflectiveSurfaceNames.size(); ++i){
569  throw cet::exception("Incorrect vector sizes in LArPropertiesServiceArgoNeuT")
570  << "The vectors specifying the surface reflectivities do not have consistent sizes";
571 
572  }
573  }
574  for(size_t iName=0; iName!=fReflectiveSurfaceNames.size(); ++iName)
575  for(size_t iEnergy=0; iEnergy!=fReflectiveSurfaceEnergies.size(); ++iEnergy)
576  ToReturn[fReflectiveSurfaceNames.at(iName)][fReflectiveSurfaceEnergies.at(iEnergy)]=fReflectiveSurfaceDiffuseFractions[iName][iEnergy];
577 
578  return ToReturn;
579 }
std::vector< std::string > fReflectiveSurfaceNames
std::vector< std::vector< double > > fReflectiveSurfaceDiffuseFractions
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
std::map< std::string, std::map< double, double > > util::LArPropertiesServiceArgoNeuT::SurfaceReflectances ( ) const
overridevirtual

Implements detinfo::LArProperties.

Definition at line 535 of file LArPropertiesServiceArgoNeuT_service.cc.

References fReflectiveSurfaceEnergies, fReflectiveSurfaceNames, and fReflectiveSurfaceReflectances.

Referenced by CerenkovLightEnabled().

536 {
537  std::map<std::string, std::map<double, double> > ToReturn;
538 
540  throw cet::exception("Incorrect vector sizes in LArProperties")
541  << "The vectors specifying the surface reflectivities "
542  << "do not have consistent sizes";
543  }
544  for(size_t i=0; i!=fReflectiveSurfaceNames.size(); ++i){
546  throw cet::exception("Incorrect vector sizes in LArProperties")
547  << "The vectors specifying the surface reflectivities do not have consistent sizes";
548  }
549  }
550  for(size_t iName=0; iName!=fReflectiveSurfaceNames.size(); ++iName)
551  for(size_t iEnergy=0; iEnergy!=fReflectiveSurfaceEnergies.size(); ++iEnergy)
552  ToReturn[fReflectiveSurfaceNames.at(iName)][fReflectiveSurfaceEnergies.at(iEnergy)]=fReflectiveSurfaceReflectances[iName][iEnergy];
553 
554  return ToReturn;
555 
556 }
std::vector< std::string > fReflectiveSurfaceNames
std::vector< std::vector< double > > fReflectiveSurfaceReflectances
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
std::map< double, double > util::LArPropertiesServiceArgoNeuT::TpbAbs ( ) const
overrideprivatevirtual

Implements detinfo::LArProperties.

Definition at line 581 of file LArPropertiesServiceArgoNeuT_service.cc.

582 { throw cet::exception("LArPropertiesServiceArgoNeuT") << __func__ << "() not implemented here !\n"; }
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
std::map< double, double > util::LArPropertiesServiceArgoNeuT::TpbEm ( ) const
overrideprivatevirtual

Implements detinfo::LArProperties.

Definition at line 585 of file LArPropertiesServiceArgoNeuT_service.cc.

586 { throw cet::exception("LArPropertiesServiceArgoNeuT") << __func__ << "() not implemented here !\n"; }
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
virtual double util::LArPropertiesServiceArgoNeuT::TpbTimeConstant ( ) const
inlineoverridevirtual

Member Data Documentation

DBsettingsClass util::LArPropertiesServiceArgoNeuT::DBsettings
private

settings read from DB access

Definition at line 230 of file LArPropertiesServiceArgoNeuT.h.

Referenced by checkDBstatus().

double util::LArPropertiesServiceArgoNeuT::fA
private

Ar atomic mass (g/mol)

Definition at line 159 of file LArPropertiesServiceArgoNeuT.h.

Referenced by AtomicMass(), Eloss(), ElossVar(), and reconfigure().

std::vector<double> util::LArPropertiesServiceArgoNeuT::fAbsLengthEnergies
private

Definition at line 177 of file LArPropertiesServiceArgoNeuT.h.

Referenced by AbsLengthSpectrum(), and reconfigure().

std::vector<double> util::LArPropertiesServiceArgoNeuT::fAbsLengthSpectrum
private

Definition at line 176 of file LArPropertiesServiceArgoNeuT.h.

Referenced by AbsLengthSpectrum(), and reconfigure().

double util::LArPropertiesServiceArgoNeuT::fAlphaScintYield
private

Definition at line 199 of file LArPropertiesServiceArgoNeuT.h.

Referenced by AlphaScintYield(), and reconfigure().

double util::LArPropertiesServiceArgoNeuT::fAlphaScintYieldRatio
private

Definition at line 200 of file LArPropertiesServiceArgoNeuT.h.

Referenced by AlphaScintYieldRatio(), and reconfigure().

bool util::LArPropertiesServiceArgoNeuT::fAlreadyReadFromDB
private

tests whether the values have alread been picked up from the Database

Definition at line 154 of file LArPropertiesServiceArgoNeuT.h.

Referenced by checkDBstatus(), preBeginRun(), and reconfigure().

double util::LArPropertiesServiceArgoNeuT::fArgon39DecayRate
private

decays per cm^3 per second

Definition at line 152 of file LArPropertiesServiceArgoNeuT.h.

Referenced by Argon39DecayRate(), and reconfigure().

double util::LArPropertiesServiceArgoNeuT::fDefElectronlifetime
private

microseconds

Definition at line 149 of file LArPropertiesServiceArgoNeuT.h.

Referenced by preBeginRun(), and reconfigure().

double util::LArPropertiesServiceArgoNeuT::fDefTemperature
private

kelvin

Definition at line 148 of file LArPropertiesServiceArgoNeuT.h.

Referenced by preBeginRun(), and reconfigure().

std::vector< double > util::LArPropertiesServiceArgoNeuT::fEfield
private

kV/cm

Definition at line 145 of file LArPropertiesServiceArgoNeuT.h.

Referenced by Efield(), preBeginRun(), and reconfigure().

double util::LArPropertiesServiceArgoNeuT::fElectronlifetime
private

microseconds

Definition at line 147 of file LArPropertiesServiceArgoNeuT.h.

Referenced by ElectronLifetime(), preBeginRun(), and reconfigure().

double util::LArPropertiesServiceArgoNeuT::fElectronScintYield
private

Definition at line 197 of file LArPropertiesServiceArgoNeuT.h.

Referenced by ElectronScintYield(), and reconfigure().

double util::LArPropertiesServiceArgoNeuT::fElectronScintYieldRatio
private

Definition at line 198 of file LArPropertiesServiceArgoNeuT.h.

Referenced by ElectronScintYieldRatio(), and reconfigure().

bool util::LArPropertiesServiceArgoNeuT::fEnableCerenkovLight
private

Definition at line 210 of file LArPropertiesServiceArgoNeuT.h.

Referenced by CerenkovLightEnabled(), and reconfigure().

bool util::LArPropertiesServiceArgoNeuT::fExtraMatProperties
private

Definition at line 181 of file LArPropertiesServiceArgoNeuT.h.

Referenced by ExtraMatProperties(), and reconfigure().

std::vector<double> util::LArPropertiesServiceArgoNeuT::fFastScintEnergies
private
std::vector<double> util::LArPropertiesServiceArgoNeuT::fFastScintSpectrum
private
double util::LArPropertiesServiceArgoNeuT::fI
private

Ar mean excitation energy (eV)

Definition at line 160 of file LArPropertiesServiceArgoNeuT.h.

Referenced by Eloss(), ExcitationEnergy(), and reconfigure().

double util::LArPropertiesServiceArgoNeuT::fKaonScintYield
private

Definition at line 195 of file LArPropertiesServiceArgoNeuT.h.

Referenced by KaonScintYield(), and reconfigure().

double util::LArPropertiesServiceArgoNeuT::fKaonScintYieldRatio
private

Definition at line 196 of file LArPropertiesServiceArgoNeuT.h.

Referenced by KaonScintYieldRatio(), and reconfigure().

double util::LArPropertiesServiceArgoNeuT::fMuonScintYield
private

Definition at line 191 of file LArPropertiesServiceArgoNeuT.h.

Referenced by MuonScintYield(), and reconfigure().

double util::LArPropertiesServiceArgoNeuT::fMuonScintYieldRatio
private

Definition at line 192 of file LArPropertiesServiceArgoNeuT.h.

Referenced by MuonScintYieldRatio(), and reconfigure().

double util::LArPropertiesServiceArgoNeuT::fPionScintYield
private

Definition at line 193 of file LArPropertiesServiceArgoNeuT.h.

Referenced by PionScintYield(), and reconfigure().

double util::LArPropertiesServiceArgoNeuT::fPionScintYieldRatio
private

Definition at line 194 of file LArPropertiesServiceArgoNeuT.h.

Referenced by PionScintYieldRatio(), and reconfigure().

double util::LArPropertiesServiceArgoNeuT::fProtonScintYield
private

Definition at line 189 of file LArPropertiesServiceArgoNeuT.h.

Referenced by ProtonScintYield(), and reconfigure().

double util::LArPropertiesServiceArgoNeuT::fProtonScintYieldRatio
private

Definition at line 190 of file LArPropertiesServiceArgoNeuT.h.

Referenced by ProtonScintYieldRatio(), and reconfigure().

double util::LArPropertiesServiceArgoNeuT::fRadiationLength
private

g/cm^2

Definition at line 150 of file LArPropertiesServiceArgoNeuT.h.

Referenced by RadiationLength(), and reconfigure().

std::vector<double> util::LArPropertiesServiceArgoNeuT::fRayleighEnergies
private

Definition at line 179 of file LArPropertiesServiceArgoNeuT.h.

Referenced by RayleighSpectrum(), and reconfigure().

std::vector<double> util::LArPropertiesServiceArgoNeuT::fRayleighSpectrum
private

Definition at line 178 of file LArPropertiesServiceArgoNeuT.h.

Referenced by RayleighSpectrum(), and reconfigure().

std::vector<std::vector<double> > util::LArPropertiesServiceArgoNeuT::fReflectiveSurfaceDiffuseFractions
private
std::vector<double> util::LArPropertiesServiceArgoNeuT::fReflectiveSurfaceEnergies
private
std::vector<std::string> util::LArPropertiesServiceArgoNeuT::fReflectiveSurfaceNames
private
std::vector<std::vector<double> > util::LArPropertiesServiceArgoNeuT::fReflectiveSurfaceReflectances
private

Definition at line 214 of file LArPropertiesServiceArgoNeuT.h.

Referenced by reconfigure(), and SurfaceReflectances().

std::vector<double> util::LArPropertiesServiceArgoNeuT::fRIndexEnergies
private

Definition at line 175 of file LArPropertiesServiceArgoNeuT.h.

Referenced by reconfigure(), and RIndexSpectrum().

std::vector<double> util::LArPropertiesServiceArgoNeuT::fRIndexSpectrum
private

Definition at line 174 of file LArPropertiesServiceArgoNeuT.h.

Referenced by reconfigure(), and RIndexSpectrum().

double util::LArPropertiesServiceArgoNeuT::fSa
private

Sternheimer parameter a.

Definition at line 161 of file LArPropertiesServiceArgoNeuT.h.

Referenced by Eloss(), and reconfigure().

double util::LArPropertiesServiceArgoNeuT::fScbar
private

Sternheimer parameter Cbar.

Definition at line 165 of file LArPropertiesServiceArgoNeuT.h.

Referenced by Eloss(), and reconfigure().

double util::LArPropertiesServiceArgoNeuT::fScintBirksConstant
private

Definition at line 208 of file LArPropertiesServiceArgoNeuT.h.

Referenced by reconfigure(), and ScintBirksConstant().

bool util::LArPropertiesServiceArgoNeuT::fScintByParticleType
private

Definition at line 187 of file LArPropertiesServiceArgoNeuT.h.

Referenced by reconfigure(), and ScintByParticleType().

double util::LArPropertiesServiceArgoNeuT::fScintFastTimeConst
private

Definition at line 205 of file LArPropertiesServiceArgoNeuT.h.

Referenced by reconfigure(), and ScintFastTimeConst().

double util::LArPropertiesServiceArgoNeuT::fScintPreScale
private

Definition at line 203 of file LArPropertiesServiceArgoNeuT.h.

Referenced by reconfigure(), and ScintPreScale().

double util::LArPropertiesServiceArgoNeuT::fScintResolutionScale
private

Definition at line 204 of file LArPropertiesServiceArgoNeuT.h.

Referenced by reconfigure(), and ScintResolutionScale().

double util::LArPropertiesServiceArgoNeuT::fScintSlowTimeConst
private

Definition at line 206 of file LArPropertiesServiceArgoNeuT.h.

Referenced by reconfigure(), and ScintSlowTimeConst().

double util::LArPropertiesServiceArgoNeuT::fScintYield
private

Definition at line 202 of file LArPropertiesServiceArgoNeuT.h.

Referenced by reconfigure(), and ScintYield().

double util::LArPropertiesServiceArgoNeuT::fScintYieldRatio
private

Definition at line 207 of file LArPropertiesServiceArgoNeuT.h.

Referenced by reconfigure(), and ScintYieldRatio().

double util::LArPropertiesServiceArgoNeuT::fSk
private

Sternheimer parameter k.

Definition at line 162 of file LArPropertiesServiceArgoNeuT.h.

Referenced by Eloss(), and reconfigure().

std::vector<double> util::LArPropertiesServiceArgoNeuT::fSlowScintEnergies
private

Definition at line 173 of file LArPropertiesServiceArgoNeuT.h.

Referenced by reconfigure(), and SlowScintSpectrum().

std::vector<double> util::LArPropertiesServiceArgoNeuT::fSlowScintSpectrum
private

Definition at line 172 of file LArPropertiesServiceArgoNeuT.h.

Referenced by reconfigure(), and SlowScintSpectrum().

double util::LArPropertiesServiceArgoNeuT::fSx0
private

Sternheimer parameter x0.

Definition at line 163 of file LArPropertiesServiceArgoNeuT.h.

Referenced by Eloss(), and reconfigure().

double util::LArPropertiesServiceArgoNeuT::fSx1
private

Sternheimer parameter x1.

Definition at line 164 of file LArPropertiesServiceArgoNeuT.h.

Referenced by Eloss(), and reconfigure().

double util::LArPropertiesServiceArgoNeuT::fTemperature
private

kelvin

Definition at line 146 of file LArPropertiesServiceArgoNeuT.h.

Referenced by preBeginRun(), reconfigure(), and Temperature().

std::vector<double> util::LArPropertiesServiceArgoNeuT::fTpbAbsorptionEnergies
private

Definition at line 219 of file LArPropertiesServiceArgoNeuT.h.

Referenced by reconfigure().

std::vector<double> util::LArPropertiesServiceArgoNeuT::fTpbAbsorptionSpectrum
private

Definition at line 220 of file LArPropertiesServiceArgoNeuT.h.

Referenced by reconfigure().

std::vector<double> util::LArPropertiesServiceArgoNeuT::fTpbEmmisionEnergies
private

Definition at line 217 of file LArPropertiesServiceArgoNeuT.h.

Referenced by reconfigure().

std::vector<double> util::LArPropertiesServiceArgoNeuT::fTpbEmmisionSpectrum
private

Definition at line 218 of file LArPropertiesServiceArgoNeuT.h.

Referenced by reconfigure().

double util::LArPropertiesServiceArgoNeuT::fTpbTimeConstant
private

Definition at line 184 of file LArPropertiesServiceArgoNeuT.h.

Referenced by reconfigure(), and TpbTimeConstant().

double util::LArPropertiesServiceArgoNeuT::fZ
private

Ar atomic number.

Definition at line 158 of file LArPropertiesServiceArgoNeuT.h.

Referenced by AtomicNumber(), Eloss(), ElossVar(), and reconfigure().


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