10 void initialize(
const std::map< std::string , float >& coeffmap,
11 const std::map< unsigned int, float >& afterglowmap);
18 const std::map< unsigned int, float >& afterglowmap){
27 std::map< std::string , float >::const_iterator coeffIt=m_coeffmap.find(
"C1");
28 if(coeffIt!=m_coeffmap.end()){
32 avglumi=c1*luminonorm/
nBXs;
35 if(!m_afterglowmap.empty()){
36 std::map< unsigned int, float >::const_iterator afterglowit=m_afterglowmap.lower_bound(nBXs+1);
37 if(afterglowit != m_afterglowmap.begin()){
38 Afterglow=(--afterglowit)->
second;
42 coeffIt=m_coeffmap.find(
"DRIFT");
43 if(coeffIt!=m_coeffmap.end()){
44 driftterm=1.0+coeffIt->second*
intglumi;
47 coeffIt=m_coeffmap.find(
"A0");
48 if(coeffIt!=m_coeffmap.end()){
52 coeffIt=m_coeffmap.find(
"A1");
53 if(coeffIt!=m_coeffmap.end()){
57 coeffIt=m_coeffmap.find(
"A2");
58 if(coeffIt!=m_coeffmap.end()){
61 result=a0*Afterglow/(1.+a1*avglumi+a2*avglumi*avglumi)*driftterm;
U second(std::pair< T, U > const &p)
std::map< unsigned int, float > m_afterglowmap
std::map< std::string, float > m_coeffmap
void initialize(const std::map< std::string, float > &coeffmap, const std::map< unsigned int, float > &afterglowmap)
#define DEFINE_EDM_PLUGIN(factory, type, name)
virtual float getCorrection(float luminonorm, float intglumi, unsigned int nBXs) const override