Public Member Functions | Private Attributes | List of all members
WireCell::Gen::BoxRecombination Class Reference

#include <RecombinationModels.h>

Inheritance diagram for WireCell::Gen::BoxRecombination:
WireCell::IRecombinationModel WireCell::IConfigurable WireCell::IComponent< IRecombinationModel > WireCell::IComponent< IConfigurable > WireCell::Interface WireCell::Interface

Public Member Functions

 BoxRecombination (double Efield=500 *units::volt/units::cm, double A=0.930, double B=0.212 *units::gram/(units::MeV *units::cm2)*(units::kilovolt/units::cm), double rho=1.396 *units::gram/units::cm3, double Wi=23.6 *units::eV/(-1 *units::eplus))
 
virtual ~BoxRecombination ()
 
virtual double operator() (double dE, double dX=0.0)
 
virtual void configure (const WireCell::Configuration &config)
 Accept a configuration. More...
 
virtual WireCell::Configuration default_configuration () const
 Optional, override to return a hard-coded default configuration. More...
 
- Public Member Functions inherited from WireCell::IRecombinationModel
virtual ~IRecombinationModel ()
 
- Public Member Functions inherited from WireCell::IComponent< IRecombinationModel >
virtual ~IComponent ()
 
- Public Member Functions inherited from WireCell::Interface
virtual ~Interface ()
 
- Public Member Functions inherited from WireCell::IConfigurable
virtual ~IConfigurable ()
 
- Public Member Functions inherited from WireCell::IComponent< IConfigurable >
virtual ~IComponent ()
 

Private Attributes

double m_efield
 
double m_a
 
double m_b
 
double m_rho
 
double m_wi
 

Additional Inherited Members

- Public Types inherited from WireCell::IComponent< IRecombinationModel >
typedef std::shared_ptr< IRecombinationModelpointer
 Access subclass facet by pointer. More...
 
typedef std::vector< pointervector
 Vector of shared pointers. More...
 
- Public Types inherited from WireCell::Interface
typedef std::shared_ptr< Interfacepointer
 
- Public Types inherited from WireCell::IComponent< IConfigurable >
typedef std::shared_ptr< IConfigurablepointer
 Access subclass facet by pointer. More...
 
typedef std::vector< pointervector
 Vector of shared pointers. More...
 

Detailed Description

Modified Box model, R = ln(a+b*dE/dX)/(b*dE/dX), dQ = (R/Wi)*dE a=A, b=B/(Efield*rho) as defined in: http://lar.bnl.gov/properties/pass.html#recombination

Definition at line 47 of file RecombinationModels.h.

Constructor & Destructor Documentation

Gen::BoxRecombination::BoxRecombination ( double  Efield = 500*units::volt/units::cm,
double  A = 0.930,
double  B = 0.212*units::gram/(units::MeV*units::cm2)*(units::kilovolt/units::cm),
double  rho = 1.396*units::gram/units::cm3,
double  Wi = 23.6*units::eV/(-1*units::eplus) 
)
Gen::BoxRecombination::~BoxRecombination ( )
virtual

Definition at line 94 of file RecombinationModels.cxx.

95 {
96 }

Member Function Documentation

void Gen::BoxRecombination::configure ( const WireCell::Configuration config)
virtual

Accept a configuration.

Implements WireCell::IConfigurable.

Definition at line 103 of file RecombinationModels.cxx.

104  {
105  m_efield = get(config, "Efield", m_efield);
106  m_a = get(config, "A", m_a);
107  m_b = get(config, "B", m_b);
108  m_rho = get(config, "rho", m_rho);
109  m_wi = get(config, "Wi", m_wi);
110  }
static Config * config
Definition: config.cpp:1054
WireCell::Configuration Gen::BoxRecombination::default_configuration ( ) const
virtual

Optional, override to return a hard-coded default configuration.

Reimplemented from WireCell::IConfigurable.

Definition at line 111 of file RecombinationModels.cxx.

112  {
114  cfg["Efield"] = m_efield;
115  cfg["A"] = m_a;
116  cfg["B"] = m_b;
117  cfg["rho"] = m_rho;
118  cfg["Wi"] = m_wi;
119  return cfg;
120  }
cfg
Definition: dbjson.py:29
Json::Value Configuration
Definition: Configuration.h:50
double Gen::BoxRecombination::operator() ( double  dE,
double  dX = 0.0 
)
virtual

Implements WireCell::IRecombinationModel.

Definition at line 97 of file RecombinationModels.cxx.

98 {
99  const double tmp = (dE/dX)*m_b/(m_efield*m_rho);
100  const double R = std::log(m_a + tmp)/ tmp;
101  return R*dE/m_wi;
102 }
string tmp
Definition: languages.py:63
void log(source_loc source, level::level_enum lvl, const char *fmt, const Args &...args)
Definition: spdlog.h:165

Member Data Documentation

double WireCell::Gen::BoxRecombination::m_a
private

Definition at line 48 of file RecombinationModels.h.

double WireCell::Gen::BoxRecombination::m_b
private

Definition at line 48 of file RecombinationModels.h.

double WireCell::Gen::BoxRecombination::m_efield
private

Definition at line 48 of file RecombinationModels.h.

double WireCell::Gen::BoxRecombination::m_rho
private

Definition at line 48 of file RecombinationModels.h.

double WireCell::Gen::BoxRecombination::m_wi
private

Definition at line 48 of file RecombinationModels.h.


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