00001 #include "FastShowerUtils/HardPhotonBarConfigurer.h"
00002
00003
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
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
00016
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
00025 #include "FastShowerUtils/Samplers/SNEmEcalBar2.h"
00026 #include "FastShowerUtils/Samplers/TailFracSNEmEcalBar2.h"
00027 #include "FastShowerUtils/Samplers/TailAuxSNEmEcalBar2.h"
00028
00029 #include "FastShowerUtils/Samplers/SNEmEcalBar3.h"
00030
00031
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
00038 #include "FastShowerUtils/Samplers/ANEmEcalBar2.h"
00039 #include "FastShowerUtils/Samplers/PeakMeanANEmEcalBar2.h"
00040 #include "FastShowerUtils/Samplers/PeakSigmaANEmEcalBar2.h"
00041
00042
00043 #include "FastShowerUtils/Normalisers/EmEtaResponse.h"
00044 #include "FastShowerUtils/Normalisers/EmHcalLeakageBar.h"
00045
00046 #include "FastShowerUtils/PtrConverter.h"
00047 #include "FastShowerUtils/ISampler.h"
00048 #include "FastShowerUtils/SamplerPtr.h"
00049 #include "FastShowerUtils/INormaliser.h"
00050 #include "FastShowerUtils/NormaliserPtr.h"
00051 #include "FastShowerUtils/IDepositor.h"
00052 #include "FastShowerUtils/DepositorPtr.h"
00053 #include "FastShowerUtils/CoreDepositor.h"
00054 #include "FastShowerUtils/PencilDepositor.h"
00055
00056 #include "FastShowerUtils/PtrAdapter.h"
00057
00058 #include "FastShowerUtils/Normalisers/EmEcalNormaliser.h"
00059 #include "FastShowerUtils/Normalisers/EmHcalNormaliser.h"
00060
00061 #include <string>
00062 #include <algorithm>
00063
00064 namespace FastShower{
00065
00066
00067 HardPhotonBarConfigurer::HardPhotonBarConfigurer(Moni m):ConfigurerBase(m){
00068 this->initialise();
00069 }
00070 HardPhotonBarConfigurer::HardPhotonBarConfigurer(NoMoni nm):ConfigurerBase(nm){
00071 this->initialise();
00072 }
00073 void HardPhotonBarConfigurer::initialise(){
00074
00075 this->addFn("S0PeakMean", new PeakMeanS0EmEcalBar1);
00076 this->addFn("S0PeakSigma", new PeakSigmaS0EmEcalBar1);
00077 this->addFn("S0TailFrac", new TailFracS0EmEcalBar1);
00078 this->addFn("S0TailLowerBound", new TailAuxS0EmEcalBar1);
00079
00080 this->addFn("C0PeakMean", new PeakMeanC0EmEcalBar1);
00081 this->addFn("C0PeakSigma", new PeakSigmaC0EmEcalBar1);
00082 this->addFn("C0TailFrac", new TailFracC0EmEcalBar1);
00083 this->addFn("C0TailLowerBound", new TailAuxC0EmEcalBar1);
00084
00085 this->addFn("SN1PeakMean", new PeakMeanSNEmEcalBar1);
00086 this->addFn("SN1PeakSigma", new PeakSigmaSNEmEcalBar1);
00087 this->addFn("SN1TailFrac", new TailFracSNEmEcalBar1);
00088 this->addFn("SN1TailLowerBound", new TailAuxSNEmEcalBar1);
00089
00090 this->addFn("SN2PeakMean", new PeakMeanSNEmEcalBar1);
00091 this->addFn("SN2PeakSigma", new PeakSigmaSNEmEcalBar1);
00092 this->addFn("SN2TailFrac", new TailFracSNEmEcalBar2);
00093 this->addFn("SN2TailLowerBound", new TailAuxSNEmEcalBar2);
00094
00095 this->addFn("SN3PeakMean", new PeakMeanSNEmEcalBar1);
00096 this->addFn("SN3PeakSigma", new PeakSigmaSNEmEcalBar1);
00097
00098 this->addFn("AN1PeakMean", new PeakMeanANEmEcalBar1);
00099 this->addFn("AN1PeakSigma", new PeakSigmaANEmEcalBar1);
00100
00101 this->addFn("AN2PeakMean", new PeakMeanANEmEcalBar2);
00102 this->addFn("AN2PeakSigma", new PeakSigmaANEmEcalBar2);
00103
00104
00105
00106
00107 this->addFnPP("EtaResponse", new EmEtaResponse);
00108
00109
00110
00111 this->addFnPP2("E/HcalFractions", new EmHcalLeakageBar);
00112
00113
00114
00115
00116 this->addIUG("AN1Peak", this->makeUpdatingGaussian0LP("AN1") );
00117 this->addIUG("AN2Peak", this->makeUpdatingGaussian0LP("AN2") );
00118 this->addIUG("C0Peak", this->makeUpdatingGaussian0LP("C0") );
00119 this->addIUG("SN1Peak", this->makeUpdatingGaussian0LP("SN1") );
00120 this->addIUG("SN2Peak", this->makeUpdatingGaussian0LP("SN2") );
00121 this->addIUG("SN3Peak", this->makeUpdatingGaussian0LP("SN3") );
00122 this->addIUG("S0Peak", this->makeUpdatingGaussian0LP("S0") );
00123
00124
00125
00126
00127 this->addSampler("S0", new S0EmEcalBar1(this, "") );
00128 this->addSampler("C0", new C0EmEcalBar1(this, "") );
00129 this->addSampler("SN1", new SNEmEcalBar1(this, "") );
00130 this->addSampler("SN2", new SNEmEcalBar2(this, "") );
00131 this->addSampler("SN3", new SNEmEcalBar3(this, "") );
00132 this->addSampler("AN1", new ANEmEcalBar1(this, "") );
00133 this->addSampler("AN2", new ANEmEcalBar2(this, "") );
00134 this->addSampler("SN", this->makeSN() );
00135 this->addSampler("AN", this->makeAN() );
00136
00137
00138
00139
00140 this->addDepositorsE();
00141 this->addDepositorsH();
00142
00143
00144
00145 this->normalisers();
00146 }
00147
00149
00150
00151 std::vector< std::pair<double, ISampler*> > v;
00152 v.push_back(std::pair<double, ISampler*>(0.50, this->findSampler("SN1")));
00153 v.push_back(std::pair<double, ISampler*>(0.95, this->findSampler("SN2")));
00154 v.push_back(std::pair<double, ISampler*>(1.00, this->findSampler("SN3")));
00155
00156 return new SNSamplerRouterC0Sample(v, 0.0, "SNRouter");
00157
00158 }
00160 ISampler* HardPhotonBarConfigurer::makeAN() const {
00161
00162 std::vector< std::pair<double, ISampler*> > v;
00163 v.push_back(std::pair<double, ISampler*>(0.05, this->findSampler("AN1")));
00164 v.push_back(std::pair<double, ISampler*>(1.00, this->findSampler("AN2")));
00165
00166 return new ANSamplerRouterSNSample(v, 0.0, "ANRouter");
00167
00168 }
00170 void HardPhotonBarConfigurer::addDepositorsE(){
00171
00172 this->addEdepositor( "EcalCore",
00173 new CoreDepositor(
00174 this->findSampler("S0"),
00175 this->findSampler("C0"),
00176 this->findSampler("SN"),
00177 this->findSampler("AN")
00178 )
00179 );
00180
00181 }
00183 void HardPhotonBarConfigurer::addDepositorsH(){
00184
00185 this->addHdepositor( "HCalPencil", new PencilDepositor);
00186
00187 }
00189 void HardPhotonBarConfigurer::normalisers(){
00190 this->addNormaliser("EcalNormaliser",
00191 new EmEcalNormaliser(this,"HardPhotonBarEcalNormaliser"));
00192 this->addNormaliser("HcalNormaliser",
00193 new EmHcalNormaliser(this,"HardPhotonBarHcalNormaliser"));
00194 }
00195 }
00196
00197
00198
00199
00200
00201
00202
00203
00204