00001 #include "FastShowerUtils/HadLateBarConfigurer.h"
00002
00003
00004 #include "FastShowerUtils/Samplers/S0HadLateHcalBar1.h"
00005 #include "FastShowerUtils/Samplers/PeakMeanS0HadLateHcalBar1.h"
00006 #include "FastShowerUtils/Samplers/PeakSigmaS0HadLateHcalBar1.h"
00007 #include "FastShowerUtils/Samplers/TailFracS0HadLateHcalBar1.h"
00008
00009
00010 #include "FastShowerUtils/C0SamplerRouterADPhiSample.h"
00011
00012 #include "FastShowerUtils/C0SamplerRouterRandomSample.h"
00013
00014 #include "FastShowerUtils/Samplers/C0HadLateHcalBar1.h"
00015 #include "FastShowerUtils/Samplers/PeakMeanC0HadLateHcalBar1.h"
00016 #include "FastShowerUtils/Samplers/PeakSigmaC0HadLateHcalBar1.h"
00017
00018 #include "FastShowerUtils/Samplers/C0HadLateHcalBar2.h"
00019 #include "FastShowerUtils/Samplers/PeakMeanC0HadLateHcalBar21.h"
00020 #include "FastShowerUtils/Samplers/PeakSigmaC0HadLateHcalBar21.h"
00021 #include "FastShowerUtils/Samplers/PeakMeanC0HadLateHcalBar22.h"
00022 #include "FastShowerUtils/Samplers/PeakSigmaC0HadLateHcalBar22.h"
00023
00024
00025 #include "FastShowerUtils/SNSamplerRouterC0Sample.h"
00026
00027 #include "FastShowerUtils/Samplers/SNHadLateHcalBar1.h"
00028 #include "FastShowerUtils/Samplers/PeakMeanSNHadLateHcalBar1.h"
00029 #include "FastShowerUtils/Samplers/PeakSigmaSNHadLateHcalBar11.h"
00030 #include "FastShowerUtils/Samplers/PeakSigmaSNHadLateHcalBar12.h"
00031
00032
00033 #include "FastShowerUtils/ANSamplerRouterSNSample.h"
00034
00035 #include "FastShowerUtils/Samplers/ANHadLateHcalBar1.h"
00036 #include "FastShowerUtils/Samplers/PeakMeanANHadLateHcalBar1.h"
00037 #include "FastShowerUtils/Samplers/PeakSigmaANHadLateHcalBar1.h"
00038 #include "FastShowerUtils/Samplers/TailFracANHadLateHcalBar1.h"
00039
00040 #include "FastShowerUtils/Samplers/ANHadLateHcalBar2.h"
00041
00042
00043 #include "FastShowerUtils/HaloCells/HadLateHcalBarHaloCell1.h"
00044 #include "FastShowerUtils/HaloCells/HadLateHcalBarHaloCell2.h"
00045 #include "FastShowerUtils/HaloCells/HadLateHcalBarHaloCell3.h"
00046 #include "FastShowerUtils/HaloCells/HadLateHcalBarHaloCell4.h"
00047 #include "FastShowerUtils/HaloCells/HadLateHcalBarHaloCell5.h"
00048 #include "FastShowerUtils/HaloCells/HadLateHcalBarHaloCell6.h"
00049 #include "FastShowerUtils/HaloCells/HadLateHcalBarHaloCell7.h"
00050 #include "FastShowerUtils/HaloCells/HadLateHcalBarHaloCell8.h"
00051 #include "FastShowerUtils/HaloCells/HadLateHcalBarHaloCell9.h"
00052 #include "FastShowerUtils/HaloCells/HadLateHcalBarHaloCell10.h"
00053 #include "FastShowerUtils/HaloCells/HadLateHcalBarHaloCell11.h"
00054 #include "FastShowerUtils/HaloCells/HadLateHcalBarHaloCell12.h"
00055 #include "FastShowerUtils/HaloCells/HadLateHcalBarHaloCell13.h"
00056 #include "FastShowerUtils/HaloCells/HadLateHcalBarHaloCell14.h"
00057
00058
00059 #include "FastShowerUtils/Normalisers/HadLateEcalNormaliser.h"
00060 #include "FastShowerUtils/Normalisers/HadLateHcalNormaliser.h"
00061 #include "FastShowerUtils/Normalisers/HadEcalEtaResponseBar.h"
00062 #include "FastShowerUtils/Normalisers/HadHcalEtaResponseBar.h"
00063 #include "FastShowerUtils/Normalisers/HadLateHcalCoreFracBar.h"
00064
00065 #include "FastShowerUtils/PtrConverter.h"
00066 #include "FastShowerUtils/ISampler.h"
00067 #include "FastShowerUtils/SamplerPtr.h"
00068 #include "FastShowerUtils/INormaliser.h"
00069 #include "FastShowerUtils/NormaliserPtr.h"
00070 #include "FastShowerUtils/IDepositor.h"
00071 #include "FastShowerUtils/DepositorPtr.h"
00072 #include "FastShowerUtils/CoreDepositor.h"
00073 #include "FastShowerUtils/HaloDepositor.h"
00074 #include "FastShowerUtils/PencilDepositor.h"
00075
00076 #include "FastShowerUtils/PtrAdapter.h"
00077
00078 #include <string>
00079 #include <algorithm>
00080
00081 namespace FastShower{
00082
00083
00084 HadLateBarConfigurer::HadLateBarConfigurer(Moni m):ConfigurerBase(m){
00085 this->initialise();
00086 }
00087 HadLateBarConfigurer::HadLateBarConfigurer(NoMoni nm):ConfigurerBase(nm){
00088 this->initialise();
00089 }
00090 void HadLateBarConfigurer::initialise(){
00091
00092 this->addFn("S0PeakMean", new PeakMeanS0HadLateHcalBar1);
00093 this->addFn("S0PeakSigma", new PeakSigmaS0HadLateHcalBar1);
00094 this->addFn("S0TailFrac", new TailFracS0HadLateHcalBar1);
00095
00096 this->addFn("C01PeakMean", new PeakMeanC0HadLateHcalBar1);
00097 this->addFn("C01PeakSigma", new PeakSigmaC0HadLateHcalBar1);
00098
00099 this->addFn("C021PeakMean", new PeakMeanC0HadLateHcalBar21);
00100 this->addFn("C021PeakSigma", new PeakSigmaC0HadLateHcalBar21);
00101
00102 this->addFn("C022PeakMean", new PeakMeanC0HadLateHcalBar22);
00103 this->addFn("C022PeakSigma", new PeakSigmaC0HadLateHcalBar22);
00104
00105 this->addFn("SN1PeakMean", new PeakMeanSNHadLateHcalBar1);
00106 this->addFn("SN1PeakSigma", new PeakSigmaSNHadLateHcalBar11);
00107
00108 this->addFn("SN2PeakMean", new PeakMeanSNHadLateHcalBar1);
00109 this->addFn("SN2PeakSigma", new PeakSigmaSNHadLateHcalBar12);
00110
00111 this->addFn("AN1PeakMean", new PeakMeanANHadLateHcalBar1);
00112 this->addFn("AN1PeakSigma", new PeakSigmaANHadLateHcalBar1);
00113 this->addFn("AN1TailFrac", new TailFracANHadLateHcalBar1);
00114
00115 this->addFn("AN2PeakMean", new PeakMeanANHadLateHcalBar1);
00116 this->addFn("AN2PeakSigma", new PeakSigmaANHadLateHcalBar1);
00117
00118
00119
00120
00121 this->addFnPP("HaloCell1", new HadLateHcalBarHaloCell1);
00122 this->addFnPP("HaloCell2", new HadLateHcalBarHaloCell2);
00123 this->addFnPP("HaloCell3", new HadLateHcalBarHaloCell3);
00124 this->addFnPP("HaloCell4", new HadLateHcalBarHaloCell4);
00125 this->addFnPP("HaloCell5", new HadLateHcalBarHaloCell5);
00126 this->addFnPP("HaloCell6", new HadLateHcalBarHaloCell6);
00127 this->addFnPP("HaloCell7", new HadLateHcalBarHaloCell7);
00128 this->addFnPP("HaloCell8", new HadLateHcalBarHaloCell8);
00129 this->addFnPP("HaloCell9", new HadLateHcalBarHaloCell9);
00130 this->addFnPP("HaloCell10", new HadLateHcalBarHaloCell10);
00131 this->addFnPP("HaloCell11", new HadLateHcalBarHaloCell11);
00132 this->addFnPP("HaloCell12", new HadLateHcalBarHaloCell12);
00133 this->addFnPP("HaloCell13", new HadLateHcalBarHaloCell13);
00134 this->addFnPP("HaloCell14", new HadLateHcalBarHaloCell14);
00135
00136
00137
00138
00139 this->addFnPP("EcalEtaResponse", new HadEcalEtaResponseBar);
00140 this->addFnPP("HcalEtaResponse", new HadHcalEtaResponseBar);
00141 this->addFnPP("HcalCoreFraction", new HadLateHcalCoreFracBar);
00142
00143
00144
00145
00146 this->addIUG("S0Peak", this->makeUpdatingGaussian0LP("S0") );
00147 this->addIUG("C01Peak", this->makeUpdatingGaussian0LP("C01") );
00148 this->addIUG("C021Peak", this->makeUpdatingGaussian0LP("C021") );
00149 this->addIUG("C022Peak", this->makeUpdatingGaussian0LP("C022") );
00150 this->addIUG("SN1Peak", this->makeUpdatingGaussian01P("SN1") );
00151 this->addIUG("SN2Peak", this->makeUpdatingGaussian01P("SN2") );
00152 this->addIUG("AN1Peak", this->makeUpdatingGaussian0LP("AN1") );
00153 this->addIUG("AN2Peak", this->makeUpdatingGaussian0LP("AN2") );
00154
00155
00156
00157
00158 this->addSampler("S0", new S0HadLateHcalBar1(this, "S0") );
00159 this->addSampler("C01", new C0HadLateHcalBar1(this, "C01") );
00160 this->addSampler("C021", new C0HadLateHcalBar2(this, "C021") );
00161 this->addSampler("C022", new C0HadLateHcalBar2(this, "C022") );
00162 this->addSampler("SN1", new SNHadLateHcalBar1(this, "SN1") );
00163 this->addSampler("SN2", new SNHadLateHcalBar1(this, "SN2") );
00164 this->addSampler("AN1", new ANHadLateHcalBar1(this, "AN1") );
00165 this->addSampler("AN2", new ANHadLateHcalBar2(this, "AN2") );
00166
00167 this->addSampler("C0", this->makeC0() );
00168 this->addSampler("SN", this->makeSN() );
00169 this->addSampler("AN", this->makeAN() );
00170
00171
00172
00173
00174 this->addDepositorsE();
00175 this->addDepositorsH();
00176
00177
00178
00179 this->normalisers();
00180 }
00181
00183
00184
00185 std::vector< std::pair<double, ISampler*> > vr;
00186 vr.push_back(std::pair<double, ISampler*>(0.5, this->findSampler("C021")));
00187 vr.push_back(std::pair<double, ISampler*>(1.0, this->findSampler("C022")));
00188
00189 ISampler* rndmSampler = new C0SamplerRouterRandomSample(vr, 0.0, "C02Router");
00190
00191 std::vector< std::pair<double, ISampler*> > v;
00192 v.push_back(std::pair<double, ISampler*>(0.020, this->findSampler("C01")));
00193 v.push_back(std::pair<double, ISampler*>(0.050, rndmSampler));
00194
00195 return new C0SamplerRouterADPhiSample(v, 0.0, "C0Router");
00196
00197 }
00199 ISampler* HadLateBarConfigurer::makeSN() const {
00200
00201 std::vector< std::pair<double, ISampler*> > v;
00202 v.push_back(std::pair<double, ISampler*>(0.6, this->findSampler("SN1")));
00203 v.push_back(std::pair<double, ISampler*>(1.0, this->findSampler("SN2")));
00204
00205 return new SNSamplerRouterC0Sample(v, 0.0, "SNRouter");
00206
00207 }
00209 ISampler* HadLateBarConfigurer::makeAN() const {
00210
00211 std::vector< std::pair<double, ISampler*> > v;
00212 v.push_back(std::pair<double, ISampler*>(0.15, this->findSampler("AN1")));
00213 v.push_back(std::pair<double, ISampler*>(1.00, this->findSampler("AN2")));
00214
00215 return new ANSamplerRouterSNSample(v, 0.0, "ANRouter");
00216
00217 }
00219 void HadLateBarConfigurer::addDepositorsE(){
00220
00221 this->addEdepositor( "ECalPencil", new PencilDepositor);
00222
00223 }
00225 void HadLateBarConfigurer::addDepositorsH(){
00226
00227 this->addHdepositor( "HcalCore",
00228 new CoreDepositor(
00229 this->findSampler("S0"),
00230 this->findSampler("C0"),
00231 this->findSampler("SN"),
00232 this->findSampler("AN")
00233 )
00234 );
00235
00236 this->addHdepositor( "HcalHalo", new HaloDepositor(this,"Halo"));
00237
00238 }
00240 void HadLateBarConfigurer::normalisers(){
00241 this->addNormaliser("EcalNormaliser",
00242 new HadLateEcalNormaliser(this,"HadLateBarEcalNormaliser"));
00243 this->addNormaliser("HcalNormaliser",
00244 new HadLateHcalNormaliser(this,"HadLateBarHcalNormaliser"));
00245 }
00246 }
00247
00248
00249
00250
00251
00252
00253
00254
00255