Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

SoftPhotonBarConfigurer.cxx

Go to the documentation of this file.
00001 #include "FastShowerUtils/SoftPhotonBarConfigurer.h"
00002 
00003 //Slice0
00004 #include "FastShowerUtils/Samplers/S0EmEcalBar1.h"
00005 #include "FastShowerUtils/Samplers/PeakMeanS0EmEcalBar1.h"
00006 #include "FastShowerUtils/Samplers/PeakSigmaS0EmEcalBar1.h"
00007 #include "FastShowerUtils/Samplers/TailFracS0EmEcalBar1.h"
00008 #include "FastShowerUtils/Samplers/TailAuxS0EmEcalBar1.h"
00009 //Cell0
00010 #include "FastShowerUtils/Samplers/C0EmEcalBar1.h"
00011 #include "FastShowerUtils/Samplers/PeakMeanC0EmEcalBar1.h"
00012 #include "FastShowerUtils/Samplers/PeakSigmaC0EmEcalBar1.h"
00013 #include "FastShowerUtils/Samplers/TailFracC0EmEcalBar1.h"
00014 #include "FastShowerUtils/Samplers/TailAuxC0EmEcalBar1.h"
00015 //SN1
00016 //#include "FastShowerUtils/SamplerRouterC0Sample.h"
00017 #include "FastShowerUtils/SNSamplerRouterC0Sample.h"
00018 //
00019 #include "FastShowerUtils/Samplers/SNEmEcalBar1.h"
00020 #include "FastShowerUtils/Samplers/PeakMeanSNEmEcalBar1.h"
00021 #include "FastShowerUtils/Samplers/PeakSigmaSNEmEcalBar1.h"
00022 #include "FastShowerUtils/Samplers/TailFracSNEmEcalBar1.h"
00023 #include "FastShowerUtils/Samplers/TailAuxSNEmEcalBar1.h"
00024 //SN2
00025 #include "FastShowerUtils/Samplers/SNEmEcalBar2.h"
00026 #include "FastShowerUtils/Samplers/TailFracSNEmEcalBar2.h"
00027 #include "FastShowerUtils/Samplers/TailAuxSNEmEcalBar2.h"
00028 //SN3 - as SN1
00029 #include "FastShowerUtils/Samplers/SNEmEcalBar3.h"
00030 //AN1
00031 //#include "FastShowerUtils/SamplerRouterSNSample.h"
00032 #include "FastShowerUtils/ANSamplerRouterSNSample.h"
00033 #
00034 #include "FastShowerUtils/Samplers/ANEmEcalBar1.h"
00035 #include "FastShowerUtils/Samplers/PeakMeanANEmEcalBar1.h"
00036 #include "FastShowerUtils/Samplers/PeakSigmaANEmEcalBar1.h"
00037 //AN2
00038 #include "FastShowerUtils/Samplers/ANEmEcalBar2.h"
00039 #include "FastShowerUtils/Samplers/PeakMeanANEmEcalBar2.h"
00040 #include "FastShowerUtils/Samplers/PeakSigmaANEmEcalBar2.h"
00041 //Normalisers
00042 #include "FastShowerUtils/Normalisers/EmEtaResponse.h"
00043 #include "FastShowerUtils/Normalisers/EmHcalLeakageBar.h"
00044 #include "FastShowerUtils/Normalisers/EmEcalNormaliser.h"
00045 #include "FastShowerUtils/Normalisers/EmHcalNormaliser.h"
00046 //
00047 #include "FastShowerUtils/PtrConverter.h"
00048 #include "FastShowerUtils/ISampler.h"
00049 #include "FastShowerUtils/SamplerPtr.h"
00050 #include "FastShowerUtils/INormaliser.h"
00051 #include "FastShowerUtils/NormaliserPtr.h"
00052 #include "FastShowerUtils/IDepositor.h"
00053 #include "FastShowerUtils/DepositorPtr.h"
00054 #include "FastShowerUtils/CoreDepositor.h"
00055 #include "FastShowerUtils/PencilDepositor.h"
00056 //
00057 #include "FastShowerUtils/PtrAdapter.h"
00058 //#include "FastShowerUtils/IFnOfParticleParameters.h"
00059 //#include "FastShowerUtils/IFnOfParticleParameters2.h"
00060 //#include "FastShowerUtils/FnOfPtr.h"
00061 //
00062 //
00063 #include <string>
00064 #include <algorithm>
00065 
00066 namespace FastShower{
00067 
00068   //
00069   SoftPhotonBarConfigurer::SoftPhotonBarConfigurer(Moni m):
00070     ConfigurerBase(m){
00071     this->initialise();
00072   }
00073   SoftPhotonBarConfigurer::SoftPhotonBarConfigurer(NoMoni nm):
00074     ConfigurerBase(nm){
00075     this->initialise();
00076   }
00077   void SoftPhotonBarConfigurer::initialise(){
00078     //S0
00079     this->addFn("S0PeakMean",        new  PeakMeanS0EmEcalBar1);
00080     this->addFn("S0PeakSigma",       new  PeakSigmaS0EmEcalBar1);
00081     this->addFn("S0TailFrac",        new  TailFracS0EmEcalBar1);
00082     this->addFn("S0TailLowerBound",  new  TailAuxS0EmEcalBar1);
00083     //C0
00084     this->addFn("C0PeakMean",        new  PeakMeanC0EmEcalBar1);
00085     this->addFn("C0PeakSigma",       new  PeakSigmaC0EmEcalBar1);
00086     this->addFn("C0TailFrac",        new  TailFracC0EmEcalBar1);
00087     this->addFn("C0TailLowerBound",  new  TailAuxC0EmEcalBar1);
00088     //SN1
00089     this->addFn("SN1PeakMean",       new  PeakMeanSNEmEcalBar1);
00090     this->addFn("SN1PeakSigma",      new  PeakSigmaSNEmEcalBar1);
00091     this->addFn("SN1TailFrac",       new  TailFracSNEmEcalBar1);
00092     this->addFn("SN1TailLowerBound", new  TailAuxSNEmEcalBar1);
00093     //SN2 - uses SN1 functions for mean and sigma
00094     this->addFn("SN2PeakMean",       new  PeakMeanSNEmEcalBar1);
00095     this->addFn("SN2PeakSigma",      new  PeakSigmaSNEmEcalBar1);
00096     this->addFn("SN2TailFrac",       new  TailFracSNEmEcalBar2);
00097     this->addFn("SN2TailLowerBound", new  TailAuxSNEmEcalBar2);
00098     //SN3 - uses SN1 functions for mean and sigma
00099     this->addFn("SN3PeakMean",       new  PeakMeanSNEmEcalBar1);
00100     this->addFn("SN3PeakSigma",      new  PeakSigmaSNEmEcalBar1);
00101     //AN1 
00102     this->addFn("AN1PeakMean",       new  PeakMeanANEmEcalBar1);
00103     this->addFn("AN1PeakSigma",      new  PeakSigmaANEmEcalBar1);
00104     //AN2 
00105     this->addFn("AN2PeakMean",       new  PeakMeanANEmEcalBar2);
00106     this->addFn("AN2PeakSigma",      new  PeakSigmaANEmEcalBar2);
00107     //
00108     //*******************************************************
00109     //*              Functions for Normalisers              *
00110     //*******************************************************
00111     this->addFnPP("EtaResponse",    new  EmEtaResponse);
00112     //*******************************************************
00113     //*              Functions2 for Normalisers             *
00114     //*******************************************************
00115     this->addFnPP2("E/HcalFractions", new  EmHcalLeakageBar);
00116     //
00117     //*******************************************************
00118     //*       IUpdating Gaussians (Peaks for Samplers)      *
00119     //*******************************************************
00120     this->addIUG("S0Peak",  this->makeUpdatingGaussian0LP("S0")  );
00121     this->addIUG("C0Peak",  this->makeUpdatingGaussian0LP("C0")  );
00122     this->addIUG("SN1Peak", this->makeUpdatingGaussian0LP("SN1") );
00123     this->addIUG("SN2Peak", this->makeUpdatingGaussian0LP("SN2") );
00124     this->addIUG("SN3Peak", this->makeUpdatingGaussian0LP("SN3") );
00125     this->addIUG("AN1Peak", this->makeUpdatingGaussian0LP("AN1") );
00126     this->addIUG("AN2Peak", this->makeUpdatingGaussian0LP("AN2") );
00127     //
00128     //*******************************************************
00129     //*       Samplers                                      *
00130     //*******************************************************
00131     this->addSampler("S0",  new S0EmEcalBar1(this, "")  );
00132     this->addSampler("C0",  new C0EmEcalBar1(this, "")  );
00133     this->addSampler("SN1", new SNEmEcalBar1(this, "") );
00134     this->addSampler("SN2", new SNEmEcalBar2(this, "") );
00135     this->addSampler("SN3", new SNEmEcalBar3(this, "") );
00136     this->addSampler("AN1", new ANEmEcalBar1(this, "") );
00137     this->addSampler("AN2", new ANEmEcalBar2(this, "") );
00138     this->addSampler("SN",  this->makeSN() );
00139     this->addSampler("AN",  this->makeAN() );
00140     //
00141     //*******************************************************
00142     //*       Depositors                                    *
00143     //*******************************************************
00144     this->addDepositorsE();
00145     this->addDepositorsH();
00146     //*******************************************************
00147     //*       Normalisers                                   *
00148     //*******************************************************
00149     this->normalisers();
00150   }
00151   //
00153   ISampler* SoftPhotonBarConfigurer::makeSN() const {
00154     
00155     std::vector< std::pair<double, ISampler*> > v;
00156     v.push_back(std::pair<double, ISampler*>(0.50, this->findSampler("SN1"))); 
00157     v.push_back(std::pair<double, ISampler*>(0.95, this->findSampler("SN2"))); 
00158     v.push_back(std::pair<double, ISampler*>(1.00, this->findSampler("SN3"))); 
00159     //return new SamplerRouterC0Sample(v, 0.0, "SNRouter");
00160     return new SNSamplerRouterC0Sample(v, 0.0, "SNRouter");
00161     
00162   }
00164   ISampler* SoftPhotonBarConfigurer::makeAN() const {
00165 
00166     std::vector< std::pair<double, ISampler*> > v;
00167     v.push_back(std::pair<double, ISampler*>(0.05, this->findSampler("AN1"))); 
00168     v.push_back(std::pair<double, ISampler*>(1.00, this->findSampler("AN2"))); 
00169     //return new SamplerRouterSNSample(v, 0.0, "ANRouter");
00170     return new ANSamplerRouterSNSample(v, 0.0, "ANRouter");
00171 
00172   }
00174   void SoftPhotonBarConfigurer::addDepositorsE(){
00175     
00176     this->addEdepositor( "ECalCore",
00177                          new CoreDepositor(
00178                                            this->findSampler("S0"),
00179                                            this->findSampler("C0"),
00180                                            this->findSampler("SN"),
00181                                            this->findSampler("AN")
00182                                            )
00183                          );
00184     
00185   }
00187   void SoftPhotonBarConfigurer::addDepositorsH(){
00188 
00189     this->addHdepositor( "HCalPencil", new PencilDepositor);
00190 
00191   }
00193   void SoftPhotonBarConfigurer::normalisers(){
00194     this->addNormaliser("EcalNormaliser",   
00195                         new EmEcalNormaliser(this,"SoftPhotonBarEcalNormaliser"));
00196     this->addNormaliser("HcalNormaliser",   
00197                         new EmHcalNormaliser(this,"SoftPhotonBarHcalNormaliser"));
00198   }
00199 }//namespace
00200 

Generated on Tue Mar 18 11:50:06 2003 for FastShowerUtils by doxygen1.3-rc1