00001 #include "FastShowerUtils/HadEarlyBarConfigurer.h"
00002
00003
00004
00005
00006
00007
00008 #include "FastShowerUtils/S0SamplerRouterEnergySample.h"
00009
00010 #include "FastShowerUtils/Samplers/S0HadEarlyEcalBar1.h"
00011 #include "FastShowerUtils/Samplers/PeakMeanS0HadEarlyEcalBar11.h"
00012 #include "FastShowerUtils/Samplers/PeakMeanS0HadEarlyEcalBar12.h"
00013 #include "FastShowerUtils/Samplers/PeakMeanS0HadEarlyEcalBar13.h"
00014 #include "FastShowerUtils/Samplers/PeakSigmaS0HadEarlyEcalBar1.h"
00015 #include "FastShowerUtils/Samplers/TailFracS0HadEarlyEcalBar1.h"
00016
00017
00018 #include "FastShowerUtils/C0SamplerRouterRandomSample.h"
00019
00020 #include "FastShowerUtils/Samplers/C0HadEarlyEcalBar1.h"
00021 #include "FastShowerUtils/Samplers/PeakMeanC0HadEarlyEcalBar11.h"
00022 #include "FastShowerUtils/Samplers/PeakSigmaC0HadEarlyEcalBar11.h"
00023 #include "FastShowerUtils/Samplers/PeakMeanC0HadEarlyEcalBar12.h"
00024 #include "FastShowerUtils/Samplers/PeakSigmaC0HadEarlyEcalBar12.h"
00025 #include "FastShowerUtils/Samplers/TailFracC0HadEarlyEcalBar1.h"
00026
00027 #include "FastShowerUtils/Samplers/SNHadEarlyEcalBar1.h"
00028 #include "FastShowerUtils/Samplers/PeakMeanSNHadEarlyEcalBar1.h"
00029 #include "FastShowerUtils/Samplers/PeakSigmaSNHadEarlyEcalBar1.h"
00030
00031
00032 #include "FastShowerUtils/ANSamplerRouterSNSample.h"
00033
00034 #include "FastShowerUtils/Samplers/ANHadEarlyEcalBar1.h"
00035 #include "FastShowerUtils/Samplers/PeakMeanANHadEarlyEcalBar1.h"
00036 #include "FastShowerUtils/Samplers/PeakSigmaANHadEarlyEcalBar1.h"
00037 #include "FastShowerUtils/Samplers/TailFracANHadEarlyEcalBar1.h"
00038
00039 #include "FastShowerUtils/Samplers/ANHadEarlyEcalBar2.h"
00040
00041
00042 #include "FastShowerUtils/HaloCells/HadEarlyEcalBarHaloCell1.h"
00043 #include "FastShowerUtils/HaloCells/HadEarlyEcalBarHaloCell2.h"
00044 #include "FastShowerUtils/HaloCells/HadEarlyEcalBarHaloCell3.h"
00045 #include "FastShowerUtils/HaloCells/HadEarlyEcalBarHaloCell4.h"
00046 #include "FastShowerUtils/HaloCells/HadEarlyEcalBarHaloCell5.h"
00047 #include "FastShowerUtils/HaloCells/HadEarlyEcalBarHaloCell6.h"
00048 #include "FastShowerUtils/HaloCells/HadEarlyEcalBarHaloCell7.h"
00049 #include "FastShowerUtils/HaloCells/HadEarlyEcalBarHaloCell8.h"
00050 #include "FastShowerUtils/HaloCells/HadEarlyEcalBarHaloCell9.h"
00051 #include "FastShowerUtils/HaloCells/HadEarlyEcalBarHaloCell10.h"
00052 #include "FastShowerUtils/HaloCells/HadEarlyEcalBarHaloCell11.h"
00053 #include "FastShowerUtils/HaloCells/HadEarlyEcalBarHaloCell12.h"
00054 #include "FastShowerUtils/HaloCells/HadEarlyEcalBarHaloCell13.h"
00055 #include "FastShowerUtils/HaloCells/HadEarlyEcalBarHaloCell14.h"
00056
00057
00058
00059
00060
00061
00062
00063 #include "FastShowerUtils/S0SamplerRouterEnergySample.h"
00064
00065 #include "FastShowerUtils/Samplers/S0HadEarlyHcalBar1.h"
00066 #include "FastShowerUtils/Samplers/TailFracS0HadEarlyHcalBar1.h"
00067
00068 #include "FastShowerUtils/Samplers/S0HadEarlyHcalBar2.h"
00069 #include "FastShowerUtils/Samplers/PeakMeanS0HadEarlyHcalBar1.h"
00070 #include "FastShowerUtils/Samplers/PeakSigmaS0HadEarlyHcalBar1.h"
00071 #include "FastShowerUtils/Samplers/TailFracS0HadEarlyHcalBar2.h"
00072
00073 #include "FastShowerUtils/Samplers/S0HadEarlyHcalBar3.h"
00074 #include "FastShowerUtils/Samplers/TailFracS0HadEarlyHcalBar3.h"
00075
00076
00077 #include "FastShowerUtils/C0SamplerRouterRandomSample.h"
00078 #include "FastShowerUtils/C0SamplerRouterEnergySample.h"
00079
00080 #include "FastShowerUtils/Samplers/C0HadEarlyHcalBar1.h"
00081 #include "FastShowerUtils/Samplers/PeakMeanC0HadEarlyHcalBar1.h"
00082 #include "FastShowerUtils/Samplers/PeakSigmaC0HadEarlyHcalBar1.h"
00083 #include "FastShowerUtils/Samplers/TailFracC0HadEarlyHcalBar1.h"
00084
00085 #include "FastShowerUtils/Samplers/C0HadEarlyHcalBar2.h"
00086 #include "FastShowerUtils/Samplers/TailFracC0HadEarlyHcalBar2.h"
00087
00088 #include "FastShowerUtils/Samplers/C0HadEarlyHcalBar3.h"
00089 #include "FastShowerUtils/Samplers/TailFracC0HadEarlyHcalBar3.h"
00090
00091
00092 #include "FastShowerUtils/SNSamplerRouterC0Sample.h"
00093
00094 #include "FastShowerUtils/Samplers/SNHadEarlyHcalBar1.h"
00095 #include "FastShowerUtils/Samplers/PeakMeanSNHadEarlyHcalBar1.h"
00096 #include "FastShowerUtils/Samplers/PeakSigmaSNHadEarlyHcalBar11.h"
00097
00098 #include "FastShowerUtils/Samplers/PeakSigmaSNHadEarlyHcalBar12.h"
00099
00100
00101 #include "FastShowerUtils/ANSamplerRouterSNSample.h"
00102
00103 #include "FastShowerUtils/Samplers/ANHadEarlyHcalBar1.h"
00104 #include "FastShowerUtils/Samplers/PeakMeanANHadEarlyHcalBar1.h"
00105 #include "FastShowerUtils/Samplers/PeakSigmaANHadEarlyHcalBar1.h"
00106 #include "FastShowerUtils/Samplers/TailFracANHadEarlyHcalBar11.h"
00107 #include "FastShowerUtils/Samplers/TailFracANHadEarlyHcalBar12.h"
00108 #include "FastShowerUtils/Samplers/TailFracANHadEarlyHcalBar13.h"
00109
00110 #include "FastShowerUtils/Samplers/ANHadEarlyHcalBar2.h"
00111
00112
00113 #include "FastShowerUtils/HaloCells/HadEarlyHcalBarHaloCell1.h"
00114 #include "FastShowerUtils/HaloCells/HadEarlyHcalBarHaloCell2.h"
00115 #include "FastShowerUtils/HaloCells/HadEarlyHcalBarHaloCell3.h"
00116 #include "FastShowerUtils/HaloCells/HadEarlyHcalBarHaloCell4.h"
00117 #include "FastShowerUtils/HaloCells/HadEarlyHcalBarHaloCell5.h"
00118 #include "FastShowerUtils/HaloCells/HadEarlyHcalBarHaloCell6.h"
00119 #include "FastShowerUtils/HaloCells/HadEarlyHcalBarHaloCell7.h"
00120 #include "FastShowerUtils/HaloCells/HadEarlyHcalBarHaloCell8.h"
00121 #include "FastShowerUtils/HaloCells/HadEarlyHcalBarHaloCell9.h"
00122 #include "FastShowerUtils/HaloCells/HadEarlyHcalBarHaloCell10.h"
00123 #include "FastShowerUtils/HaloCells/HadEarlyHcalBarHaloCell11.h"
00124 #include "FastShowerUtils/HaloCells/HadEarlyHcalBarHaloCell12.h"
00125 #include "FastShowerUtils/HaloCells/HadEarlyHcalBarHaloCell13.h"
00126 #include "FastShowerUtils/HaloCells/HadEarlyHcalBarHaloCell14.h"
00127
00128
00129
00130 #include "FastShowerUtils/Normalisers/HadEarlyEcalNormaliser.h"
00131 #include "FastShowerUtils/Normalisers/HadEarlyHcalNormaliser.h"
00132 #include "FastShowerUtils/Normalisers/HadEcalEtaResponseBar.h"
00133 #include "FastShowerUtils/Normalisers/HadHcalEtaResponseBar.h"
00134 #include "FastShowerUtils/Normalisers/HadEarlyEcalCoreFracBar.h"
00135 #include "FastShowerUtils/Normalisers/HadEarlyHcalCoreFracBar.h"
00136
00137 #include "FastShowerUtils/PtrConverter.h"
00138 #include "FastShowerUtils/ISampler.h"
00139 #include "FastShowerUtils/SamplerPtr.h"
00140 #include "FastShowerUtils/INormaliser.h"
00141 #include "FastShowerUtils/NormaliserPtr.h"
00142 #include "FastShowerUtils/IDepositor.h"
00143 #include "FastShowerUtils/DepositorPtr.h"
00144 #include "FastShowerUtils/CoreDepositor.h"
00145 #include "FastShowerUtils/HaloDepositor.h"
00146 #include "FastShowerUtils/PencilDepositor.h"
00147
00148 #include "FastShowerUtils/PtrAdapter.h"
00149
00150 #include <float.h>
00151 #include <string>
00152 #include <algorithm>
00153
00154 namespace FastShower{
00155
00156
00157 HadEarlyBarConfigurer::HadEarlyBarConfigurer(Moni m):ConfigurerBase(m){
00158 this->initialise();
00159 }
00160 HadEarlyBarConfigurer::HadEarlyBarConfigurer(NoMoni nm):ConfigurerBase(nm){
00161 this->initialise();
00162 }
00163 void HadEarlyBarConfigurer::initialise(){
00164
00165
00166
00167 this->addFn("ES011PeakMean", new PeakMeanS0HadEarlyEcalBar11);
00168 this->addFn("ES011PeakSigma", new PeakSigmaS0HadEarlyEcalBar1);
00169 this->addFn("ES011TailFrac", new TailFracS0HadEarlyEcalBar1);
00170
00171 this->addFn("ES012PeakMean", new PeakMeanS0HadEarlyEcalBar12);
00172 this->addFn("ES012PeakSigma", new PeakSigmaS0HadEarlyEcalBar1);
00173 this->addFn("ES012TailFrac", new TailFracS0HadEarlyEcalBar1);
00174
00175 this->addFn("ES013PeakMean", new PeakMeanS0HadEarlyEcalBar13);
00176 this->addFn("ES013PeakSigma", new PeakSigmaS0HadEarlyEcalBar1);
00177 this->addFn("ES013TailFrac", new TailFracS0HadEarlyEcalBar1);
00178
00179 this->addFn("EC011PeakMean", new PeakMeanC0HadEarlyEcalBar11);
00180 this->addFn("EC011PeakSigma", new PeakSigmaC0HadEarlyEcalBar11);
00181 this->addFn("EC011TailFrac", new TailFracC0HadEarlyEcalBar1);
00182
00183 this->addFn("EC012PeakMean", new PeakMeanC0HadEarlyEcalBar12);
00184 this->addFn("EC012PeakSigma", new PeakSigmaC0HadEarlyEcalBar12);
00185 this->addFn("EC012TailFrac", new TailFracC0HadEarlyEcalBar1);
00186
00187 this->addFn("ESNPeakMean", new PeakMeanSNHadEarlyEcalBar1);
00188 this->addFn("ESNPeakSigma", new PeakSigmaSNHadEarlyEcalBar1);
00189
00190 this->addFn("EAN1PeakMean", new PeakMeanANHadEarlyEcalBar1);
00191 this->addFn("EAN1PeakSigma", new PeakSigmaANHadEarlyEcalBar1);
00192 this->addFn("EAN1TailFrac", new TailFracANHadEarlyEcalBar1);
00193
00194 this->addFn("EAN2PeakMean", new PeakMeanANHadEarlyEcalBar1);
00195 this->addFn("EAN2PeakSigma", new PeakSigmaANHadEarlyEcalBar1);
00196
00197
00198
00199 this->addFn("HS01TailFrac", new TailFracS0HadEarlyHcalBar1);
00200
00201 this->addFn("HS02PeakMean", new PeakMeanS0HadEarlyHcalBar1);
00202 this->addFn("HS02PeakSigma", new PeakSigmaS0HadEarlyHcalBar1);
00203 this->addFn("HS02TailFrac", new TailFracS0HadEarlyHcalBar2);
00204
00205 this->addFn("HS03PeakMean", new PeakMeanS0HadEarlyHcalBar1);
00206 this->addFn("HS03PeakSigma", new PeakSigmaS0HadEarlyHcalBar1);
00207 this->addFn("HS03TailFrac", new TailFracS0HadEarlyHcalBar3);
00208
00209 this->addFn("HC01TailFrac", new TailFracC0HadEarlyHcalBar1);
00210
00211 this->addFn("HC02PeakMean", new PeakMeanC0HadEarlyHcalBar1);
00212 this->addFn("HC02PeakSigma", new PeakSigmaC0HadEarlyHcalBar1);
00213 this->addFn("HC02TailFrac", new TailFracC0HadEarlyHcalBar2);
00214
00215 this->addFn("HC03PeakMean", new PeakMeanC0HadEarlyHcalBar1);
00216 this->addFn("HC03PeakSigma", new PeakSigmaC0HadEarlyHcalBar1);
00217 this->addFn("HC03TailFrac", new TailFracC0HadEarlyHcalBar3);
00218
00219 this->addFn("HSN11PeakMean", new PeakMeanSNHadEarlyHcalBar1);
00220 this->addFn("HSN11PeakSigma", new PeakSigmaSNHadEarlyHcalBar11);
00221
00222 this->addFn("HSN12PeakMean", new PeakMeanSNHadEarlyHcalBar1);
00223 this->addFn("HSN12PeakSigma", new PeakSigmaSNHadEarlyHcalBar12);
00224
00225 this->addFn("HAN11PeakMean", new PeakMeanANHadEarlyHcalBar1);
00226 this->addFn("HAN11PeakSigma", new PeakSigmaANHadEarlyHcalBar1);
00227 this->addFn("HAN11TailFrac", new TailFracANHadEarlyHcalBar11);
00228
00229 this->addFn("HAN12PeakMean", new PeakMeanANHadEarlyHcalBar1);
00230 this->addFn("HAN12PeakSigma", new PeakSigmaANHadEarlyHcalBar1);
00231 this->addFn("HAN12TailFrac", new TailFracANHadEarlyHcalBar12);
00232
00233 this->addFn("HAN13PeakMean", new PeakMeanANHadEarlyHcalBar1);
00234 this->addFn("HAN13PeakSigma", new PeakSigmaANHadEarlyHcalBar1);
00235 this->addFn("HAN13TailFrac", new TailFracANHadEarlyHcalBar13);
00236
00237 this->addFn("HAN2PeakMean", new PeakMeanANHadEarlyHcalBar1);
00238 this->addFn("HAN2PeakSigma", new PeakSigmaANHadEarlyHcalBar1);
00239
00240
00241
00242
00243 this->addFnPP("eHaloCell1", new HadEarlyEcalBarHaloCell1);
00244 this->addFnPP("eHaloCell2", new HadEarlyEcalBarHaloCell2);
00245 this->addFnPP("eHaloCell3", new HadEarlyEcalBarHaloCell3);
00246 this->addFnPP("eHaloCell4", new HadEarlyEcalBarHaloCell4);
00247 this->addFnPP("eHaloCell5", new HadEarlyEcalBarHaloCell5);
00248 this->addFnPP("eHaloCell6", new HadEarlyEcalBarHaloCell6);
00249 this->addFnPP("eHaloCell7", new HadEarlyEcalBarHaloCell7);
00250 this->addFnPP("eHaloCell8", new HadEarlyEcalBarHaloCell8);
00251 this->addFnPP("eHaloCell9", new HadEarlyEcalBarHaloCell9);
00252 this->addFnPP("eHaloCell10", new HadEarlyEcalBarHaloCell10);
00253 this->addFnPP("eHaloCell11", new HadEarlyEcalBarHaloCell11);
00254 this->addFnPP("eHaloCell12", new HadEarlyEcalBarHaloCell12);
00255 this->addFnPP("eHaloCell13", new HadEarlyEcalBarHaloCell13);
00256 this->addFnPP("eHaloCell14", new HadEarlyEcalBarHaloCell14);
00257
00258
00259
00260
00261 this->addFnPP("hHaloCell1", new HadEarlyHcalBarHaloCell1);
00262 this->addFnPP("hHaloCell2", new HadEarlyHcalBarHaloCell2);
00263 this->addFnPP("hHaloCell3", new HadEarlyHcalBarHaloCell3);
00264 this->addFnPP("hHaloCell4", new HadEarlyHcalBarHaloCell4);
00265 this->addFnPP("hHaloCell5", new HadEarlyHcalBarHaloCell5);
00266 this->addFnPP("hHaloCell6", new HadEarlyHcalBarHaloCell6);
00267 this->addFnPP("hHaloCell7", new HadEarlyHcalBarHaloCell7);
00268 this->addFnPP("hHaloCell8", new HadEarlyHcalBarHaloCell8);
00269 this->addFnPP("hHaloCell9", new HadEarlyHcalBarHaloCell9);
00270 this->addFnPP("hHaloCell10", new HadEarlyHcalBarHaloCell10);
00271 this->addFnPP("hHaloCell11", new HadEarlyHcalBarHaloCell11);
00272 this->addFnPP("hHaloCell12", new HadEarlyHcalBarHaloCell12);
00273 this->addFnPP("hHaloCell13", new HadEarlyHcalBarHaloCell13);
00274 this->addFnPP("hHaloCell14", new HadEarlyHcalBarHaloCell14);
00275
00276
00277
00278
00279 this->addFnPP("EcalEtaResponse", new HadEcalEtaResponseBar);
00280 this->addFnPP("HcalEtaResponse", new HadHcalEtaResponseBar);
00281 this->addFnPP("EcalCoreFraction", new HadEarlyEcalCoreFracBar);
00282 this->addFnPP("HcalCoreFraction", new HadEarlyHcalCoreFracBar);
00283
00284
00285
00286
00287 this->addIUG("ES011Peak", this->makeUpdatingGaussian0LP("ES011") );
00288 this->addIUG("ES012Peak", this->makeUpdatingGaussian0LP("ES012") );
00289 this->addIUG("ES013Peak", this->makeUpdatingGaussian0LP("ES013") );
00290 this->addIUG("EC011Peak", this->makeUpdatingGaussian0LP("EC011") );
00291 this->addIUG("EC012Peak", this->makeUpdatingGaussian0LP("EC012") );
00292 this->addIUG("ESNPeak", this->makeUpdatingGaussian01P("ESN") );
00293 this->addIUG("EAN1Peak", this->makeUpdatingGaussian0LP("EAN1") );
00294 this->addIUG("EAN2Peak", this->makeUpdatingGaussian0LP("EAN2") );
00295
00296
00297
00298
00299 this->addSampler("ES011", new S0HadEarlyEcalBar1(this, "ES011") );
00300 this->addSampler("ES012", new S0HadEarlyEcalBar1(this, "ES012") );
00301 this->addSampler("ES013", new S0HadEarlyEcalBar1(this, "ES013") );
00302 this->addSampler("EC011", new C0HadEarlyEcalBar1(this, "EC011") );
00303 this->addSampler("EC012", new C0HadEarlyEcalBar1(this, "EC012") );
00304 this->addSampler("ESN", new SNHadEarlyEcalBar1(this, "ESN") );
00305 this->addSampler("EAN1", new ANHadEarlyEcalBar1(this, "EAN1") );
00306 this->addSampler("EAN2", new ANHadEarlyEcalBar2(this, "EAN2") );
00307
00308 this->addSampler("ES0", this->makeES0() );
00309 this->addSampler("EC0", this->makeEC0() );
00310 this->addSampler("EAN", this->makeEAN() );
00311
00312
00313
00314
00315 this->addIUG("HS02Peak", this->makeUpdatingGaussian0LP("HS02") );
00316 this->addIUG("HS03Peak", this->makeUpdatingGaussian0LP("HS03") );
00317 this->addIUG("HC02Peak", this->makeUpdatingGaussian02P("HC02") );
00318 this->addIUG("HC03Peak", this->makeUpdatingGaussian0LP("HC03") );
00319 this->addIUG("HSN11Peak", this->makeUpdatingGaussian01P("HSN11") );
00320 this->addIUG("HSN12Peak", this->makeUpdatingGaussian01P("HSN12") );
00321 this->addIUG("HAN11Peak", this->makeUpdatingGaussian0LP("HAN11") );
00322 this->addIUG("HAN12Peak", this->makeUpdatingGaussian0LP("HAN12") );
00323 this->addIUG("HAN13Peak", this->makeUpdatingGaussian0LP("HAN13") );
00324 this->addIUG("HAN2Peak", this->makeUpdatingGaussian0LP("HAN2") );
00325
00326
00327
00328
00329 this->addSampler("HS01", new S0HadEarlyHcalBar1(this, "HS01") );
00330 this->addSampler("HS02", new S0HadEarlyHcalBar2(this, "HS02") );
00331 this->addSampler("HS03", new S0HadEarlyHcalBar3(this, "HS03") );
00332 this->addSampler("HC01", new C0HadEarlyHcalBar1(this, "HC01") );
00333 this->addSampler("HC02", new C0HadEarlyHcalBar2(this, "HC02") );
00334 this->addSampler("HC03", new C0HadEarlyHcalBar3(this, "HC03") );
00335 this->addSampler("HSN11", new SNHadEarlyHcalBar1(this, "HSN11") );
00336 this->addSampler("HSN12", new SNHadEarlyHcalBar1(this, "HSN12") );
00337 this->addSampler("HAN11", new ANHadEarlyHcalBar1(this, "HAN11") );
00338 this->addSampler("HAN12", new ANHadEarlyHcalBar1(this, "HAN12") );
00339 this->addSampler("HAN13", new ANHadEarlyHcalBar1(this, "HAN13") );
00340 this->addSampler("HAN2", new ANHadEarlyHcalBar2(this, "HAN2") );
00341
00342 this->addSampler("HS0", this->makeHS0() );
00343 this->addSampler("HC0", this->makeHC0() );
00344 this->addSampler("HSN", this->makeHSN() );
00345 this->addSampler("HAN", this->makeHAN() );
00346
00347
00348
00349
00350 this->addDepositorsE();
00351 this->addDepositorsH();
00352
00353
00354
00355 this->normalisers();
00356 }
00357
00359
00360
00361 std::vector< std::pair<double, ISampler*> > v;
00362 v.push_back(std::pair<double, ISampler*>( 30.0, this->findSampler("ES011")));
00363 v.push_back(std::pair<double, ISampler*>( 75.0, this->findSampler("ES012")));
00364 v.push_back(std::pair<double, ISampler*>(FLT_MAX, this->findSampler("ES013")));
00365
00366 return new S0SamplerRouterEnergySample(v, 0.0, "ES0Router");
00367
00368 }
00370 ISampler* HadEarlyBarConfigurer::makeEC0() const {
00371
00372 std::vector< std::pair<double, ISampler*> > v;
00373 v.push_back(std::pair<double, ISampler*>(0.6, this->findSampler("EC011")));
00374 v.push_back(std::pair<double, ISampler*>(1.0, this->findSampler("EC012")));
00375
00376 return new C0SamplerRouterRandomSample(v, 0.0, "EC0Router");
00377
00378 }
00380 ISampler* HadEarlyBarConfigurer::makeEAN() const {
00381
00382 std::vector< std::pair<double, ISampler*> > v;
00383 v.push_back(std::pair<double, ISampler*>(0.15, this->findSampler("EAN1")));
00384 v.push_back(std::pair<double, ISampler*>(1.00, this->findSampler("EAN2")));
00385
00386 return new ANSamplerRouterSNSample(v, 0.0, "EANRouter");
00387
00388 }
00390 ISampler* HadEarlyBarConfigurer::makeHS0() const {
00391
00392 std::vector< std::pair<double, ISampler*> > v;
00393 v.push_back(std::pair<double, ISampler*>( 15.0, this->findSampler("HS01")));
00394 v.push_back(std::pair<double, ISampler*>( 30.0, this->findSampler("HS02")));
00395 v.push_back(std::pair<double, ISampler*>(FLT_MAX, this->findSampler("HS03")));
00396
00397 return new S0SamplerRouterEnergySample(v, 0.0, "HS0Router");
00398
00399 }
00401 ISampler* HadEarlyBarConfigurer::makeHC0() const {
00402
00403 std::vector< std::pair<double, ISampler*> > v;
00404 v.push_back(std::pair<double, ISampler*>( 15.0, this->findSampler("HC01")));
00405 v.push_back(std::pair<double, ISampler*>( 30.0, this->findSampler("HC02")));
00406 v.push_back(std::pair<double, ISampler*>(FLT_MAX, this->findSampler("HC03")));
00407
00408 return new C0SamplerRouterEnergySample(v, 0.0, "HC0Router");
00409
00410 }
00412 ISampler* HadEarlyBarConfigurer::makeHSN() const {
00413
00414 std::vector< std::pair<double, ISampler*> > v;
00415 v.push_back(std::pair<double, ISampler*>(0.6, this->findSampler("HSN11")));
00416 v.push_back(std::pair<double, ISampler*>(1.0, this->findSampler("HSN12")));
00417
00418 return new SNSamplerRouterC0Sample(v, 0.0, "HSNRouter");
00419
00420 }
00422 ISampler* HadEarlyBarConfigurer::makeHAN() const {
00423
00424 std::vector< std::pair<double, ISampler*> > vr;
00425 vr.push_back(std::pair<double, ISampler*>(0.05, this->findSampler("HAN11")));
00426 vr.push_back(std::pair<double, ISampler*>(0.10, this->findSampler("HAN12")));
00427 vr.push_back(std::pair<double, ISampler*>(0.15, this->findSampler("HAN13")));
00428
00429 ISampler* snSampler = new ANSamplerRouterSNSample(vr, 0.0, "HAN1Router");
00430
00431 std::vector< std::pair<double, ISampler*> > v;
00432 v.push_back(std::pair<double, ISampler*>(0.15, snSampler));
00433 v.push_back(std::pair<double, ISampler*>(1.00, this->findSampler("HAN2")));
00434
00435 return new ANSamplerRouterSNSample(v, 0.0, "HANRouter");
00436
00437 }
00439 void HadEarlyBarConfigurer::addDepositorsE(){
00440
00441 this->addEdepositor( "EcalCore",
00442 new CoreDepositor(
00443 this->findSampler("ES0"),
00444 this->findSampler("EC0"),
00445 this->findSampler("ESN"),
00446 this->findSampler("EAN")
00447 )
00448 );
00449
00450 this->addEdepositor( "EcalHalo", new HaloDepositor(this,"eHalo"));
00451
00452 }
00454 void HadEarlyBarConfigurer::addDepositorsH(){
00455
00456 this->addHdepositor( "HcalCore",
00457 new CoreDepositor(
00458 this->findSampler("HS0"),
00459 this->findSampler("HC0"),
00460 this->findSampler("HSN"),
00461 this->findSampler("HAN")
00462 )
00463 );
00464
00465 this->addHdepositor( "HcalHalo", new HaloDepositor(this,"hHalo"));
00466
00467 }
00469 void HadEarlyBarConfigurer::normalisers(){
00470 this->addNormaliser("EcalNormaliser",
00471 new HadEarlyEcalNormaliser(this,"HadEarlyBarEcalNormaliser"));
00472 this->addNormaliser("HcalNormaliser",
00473 new HadEarlyHcalNormaliser(this,"HadEarlyBarHcalNormaliser"));
00474 }
00475 }
00476
00477
00478
00479
00480
00481
00482
00483
00484