00001 #include "FastShowerUtils/Normalisers/HadEarlyEcalNormaliser.h" 00002 00003 #include "FastShowerUtils/IConfigurer.h" 00004 #include "FastShowerUtils/Normalisations.h" 00005 #include "FastShowerUtils/ParticleParameters.h" 00006 #include "FastShowerUtils/IFnOfParticleParameters.h" 00007 00008 #include <cmath> 00009 #include <pair.h> 00010 #include <iostream> 00011 namespace FastShower{ 00012 // 00013 HadEarlyEcalNormaliser::HadEarlyEcalNormaliser(const IConfigurer* c, 00014 const std::string& s): 00015 INormaliser(), DebugBase(s){ 00016 m_etaResponse = c->findFnPP("EcalEtaResponse"); 00017 m_coreFraction = c->findFnPP("EcalCoreFraction"); 00018 cout<<text()<<": finishing construction"<<endl; 00019 } 00020 // 00021 HadEarlyEcalNormaliser::~HadEarlyEcalNormaliser(){ 00022 delete m_etaResponse; 00023 } 00024 // 00025 INormaliser* HadEarlyEcalNormaliser::clone() const{ 00026 return new HadEarlyEcalNormaliser(*this); 00027 } 00028 // 00029 void HadEarlyEcalNormaliser::scale(Normalisations& n, 00030 const ParticleParameters& pp) const { 00031 double coreFrac = m_coreFraction->value(pp); 00032 double haloFrac = 1 - coreFrac; 00033 //cout<<"*** "<<text()<<": core/haloFrac = "<<coreFrac<<" / "<<haloFrac<<endl; 00034 //cout<<"*** "<<text()<<": etaResponse = "<<m_etaResponse->value(pp)<<endl; 00035 n.scaleCore(coreFrac*m_etaResponse->value(pp)); 00036 n.scaleHalo(haloFrac*m_etaResponse->value(pp)); 00037 } 00038 // 00039 void HadEarlyEcalNormaliser::components(IDebug::Cpts& v) const{ 00040 v.push_back(m_coreFraction); 00041 v.push_back(m_etaResponse); 00042 } 00043 }//namespace 00044