|
ATLAS Offline Software
|
Go to the documentation of this file.
16 #include <TObjString.h>
25 template <
typename TargetPtr,
typename SourcePtr>
26 TargetPtr checked_cast(SourcePtr ptr) {
29 "attempt to cast to no ptr object");
31 "attempt to cast from no ptr object");
35 throw std::runtime_error(
36 "Attempt to cast from nullptr in egammaLayerRecalibTool");
40 TargetPtr
obj =
dynamic_cast<TargetPtr
>(ptr);
42 throw std::runtime_error(
"failed dynamic cast for " +
43 std::string(ptr->GetName()) +
44 " in egammaLayerRecalibTool");
150 const double Es1 =
inputs.E1raw;
151 const double Es2 =
inputs.E2raw;
152 if (Es1 == 0 and Es2 == 0) {
157 const double sum = Es1 + Es2;
158 const double alpha = amount;
159 const double den = (alpha * Es1 + Es2);
167 throw std::runtime_error(
"not implemented");
202 if (
"layer1_2012" ==
tune)
return "layer1_2012_v5";
203 if (
"layer1_alt_2012" ==
tune)
return "layer1_alt_2012_v5";
204 if (
"layer1_2011" ==
tune)
return "layer1_2011_v5";
205 if (
"layer1_alt_2011" ==
tune)
return "layer1_alt_2011_v5";
206 if (
"layer1_2010" ==
tune)
return "layer1_2010_v5";
207 if (
"ps_2012" ==
tune)
return "ps_2012_v3";
208 if (
"ps_2011" ==
tune)
return "ps_2011_v3";
209 if (
"ps_2010" ==
tune)
return "ps_2010_v3";
210 if (
"layer1_2012_up" ==
tune)
return "layer1_2012_v5_up";
211 if (
"layer1_2012_down" ==
tune)
return "layer1_2012_v5_down";
212 if (
"layer1_2012_errup" ==
tune)
return "layer1_2012_v5_errup";
213 if (
"layer1_2012_errdown" ==
tune)
return "layer1_2012_v5_errdown";
214 if (
"layer1_2011_up" ==
tune)
return "layer1_2011_v5_up";
215 if (
"layer1_2011_down" ==
tune)
return "layer1_2011_v5_down";
216 if (
"layer1_2011_errup" ==
tune)
return "layer1_2011_v5_errup";
217 if (
"layer1_2011_errdown" ==
tune)
return "layer1_2011_v5_errdown";
218 if (
"layer1_2010_up" ==
tune)
return "layer1_2010_v5_up";
219 if (
"layer1_2010_down" ==
tune)
return "layer1_2010_v5_down";
220 if (
"layer1_2010_errup" ==
tune)
return "layer1_2010_v5_errup";
221 if (
"layer1_2010_errdown" ==
tune)
return "layer1_2010_v5_errdown";
222 if (
"ps_2012_up" ==
tune)
return "ps_2012_v3_up";
223 if (
"ps_2012_down" ==
tune)
return "ps_2012_v3_down";
224 if (
"ps_2012_errup" ==
tune)
return "ps_2012_v3_errup";
225 if (
"ps_2012_errdown" ==
tune)
return "ps_2012_v3_errdown";
226 if (
"ps_2011_up" ==
tune)
return "ps_2011_v3_up";
227 if (
"ps_2011_down" ==
tune)
return "ps_2011_v3_down";
228 if (
"ps_2011_errup" ==
tune)
return "ps_2011_v3_errup";
229 if (
"ps_2011_errdown" ==
tune)
return "ps_2011_v3_errdown";
230 if (
"ps_2010_up" ==
tune)
return "ps_2010_v3_up";
231 if (
"ps_2010_down" ==
tune)
return "ps_2010_v3_down";
232 if (
"ps_2010_errup" ==
tune)
return "ps_2010_v3_errup";
233 if (
"ps_2010_errdown" ==
tune)
return "ps_2010_v3_errdown";
243 if (
tune.empty()) { }
244 else if (
"es2018_21.0_v0" ==
tune) {
245 add_scale(
"run2_alt_with_layer2_r21_v1");
247 else if (
"es2017_21.0_v0" ==
tune) {
248 add_scale(
"run2_alt_with_layer2_r21_v0");
250 else if (
"es2017_20.7_final" ==
tune) {
254 else if (
"es2017_20.7_improved" ==
tune) {
259 else if (
"pileup_20.7" ==
tune) {
267 else if (
"run2_alt_with_layer2_r21_v1"==
tune) {
271 else if (
"run2_alt_with_layer2_r21_v0"==
tune) {
275 else if(
"run2_alt_with_layer2_modif" ==
tune) {
281 else if (
"2012" ==
tune) {
286 else if(
"2012_with_layer2" ==
tune) {
291 else if (
"2012_alt" ==
tune) {
296 else if(
"2012_alt_with_layer2" ==
tune) {
301 else if(
"2012_alt_with_layer2_modif" ==
tune) {
307 else if(
"2010_with_layer2" ==
tune) {
311 else if (
"2012_layer1_up" ==
tune) {
316 else if (
"2012_layer1_down" ==
tune) {
321 else if (
"2012_layer1_errup" ==
tune) {
324 else if (
"2012_layer1_errdown" ==
tune) {
327 else if (
"2012_ps_down" ==
tune) {
332 else if (
"2012_ps_up" ==
tune) {
337 else if (
"2012_ps_errdown" ==
tune) {
340 else if (
"2012_ps_errup" ==
tune) {
343 else if (
"2012_up" ==
tune) {
348 else if (
"2012_down" ==
tune) {
353 else if (
"2012_errup" ==
tune) {
357 else if (
"2012_errdown" ==
tune) {
362 else if (
"2011" ==
tune) {
366 else if(
"2011_with_layer2" ==
tune) {
370 else if (
"2011_alt" ==
tune) {
374 else if(
"2011_alt_with_layer2" ==
tune) {
378 else if (
"2011_layer1_up" ==
tune) {
382 else if (
"2011_layer1_down" ==
tune) {
386 else if (
"2011_layer1_errup" ==
tune) {
389 else if (
"2011_layer1_errdown" ==
tune) {
392 else if (
"2011_ps_down" ==
tune) {
396 else if (
"2011_ps_up" ==
tune) {
400 else if (
"2011_ps_errdown" ==
tune) {
403 else if (
"2011_ps_errup" ==
tune) {
406 else if (
"2011_up" ==
tune) {
410 else if (
"2011_down" ==
tune) {
414 else if (
"2011_errup" ==
tune) {
418 else if (
"2011_errdown" ==
tune) {
423 else if (
"2010" ==
tune) {
427 else if (
"2010_layer1_up" ==
tune) {
431 else if (
"2010_layer1_down" ==
tune) {
435 else if (
"2010_layer1_errup" ==
tune) {
438 else if (
"2010_layer1_errdown" ==
tune) {
441 else if (
"2010_ps_down" ==
tune) {
445 else if (
"2010_ps_up" ==
tune) {
449 else if (
"2010_ps_errdown" ==
tune) {
452 else if (
"2010_ps_errup" ==
tune) {
455 else if (
"2010_up" ==
tune) {
459 else if (
"2010_down" ==
tune) {
463 else if (
"2010_errup" ==
tune) {
467 else if (
"2010_errdown" ==
tune) {
471 else if (
"ps_HV1" ==
tune) {
474 else if (
"ps_EMECHV1" ==
tune) {
477 else if (
"test1" ==
tune) {
478 TH1F h_presampler(
"h_presampler",
"h_presampler", 10, -2.5, 2.5);
481 for (
int ibin = 1; ibin <= 5; ++ibin) {
488 else if (
"layer1_1" ==
tune) {
489 TFormula
f(
"formula_layer1_1",
"(abs(x)<1.425) ? 0.97 : 1");
492 else if (
"layer1_2" ==
tune) {
493 TFormula
f(
"formula_layer1_2",
"(abs(x)<1.425) ? 0.97 : 1.05");
496 else if (
"layer1_alt_2012_v5" ==
tune) {
498 TFile
f(
file.c_str());
499 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_alt_2012"));
503 else if (
"layer1_2012_v5" ==
tune) {
505 TFile
f(
file.c_str());
506 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2012"));
510 else if (
"layer1_2012_v5_down" ==
tune) {
512 TFile
f(
file.c_str());
513 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2012"));
517 else if (
"layer1_2012_v5_up" ==
tune) {
519 TFile
f(
file.c_str());
520 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2012"));
524 else if (
"layer1_2012_v5_errdown" ==
tune) {
526 TFile
f(
file.c_str());
527 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2012"));
531 else if (
"layer1_2012_v5_errup" ==
tune) {
533 TFile
f(
file.c_str());
534 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2012"));
538 else if (
"layer1_alt_2011_v5" ==
tune) {
540 TFile
f(
file.c_str());
541 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_alt_2011"));
545 else if (
"layer1_2011_v5" ==
tune) {
547 TFile
f(
file.c_str());
548 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2011"));
552 else if (
"layer1_2011_v5_down" ==
tune) {
554 TFile
f(
file.c_str());
555 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2011"));
559 else if (
"layer1_2011_v5_up" ==
tune) {
561 TFile
f(
file.c_str());
562 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2011"));
566 else if (
"layer1_2011_v5_errdown" ==
tune) {
568 TFile
f(
file.c_str());
569 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2011"));
573 else if (
"layer1_2011_v5_errup" ==
tune) {
575 TFile
f(
file.c_str());
576 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2011"));
580 else if (
"layer1_2010_v5" ==
tune) {
582 TFile
f(
file.c_str());
583 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2010"));
587 else if (
"layer1_2010_v5_down" ==
tune) {
589 TFile
f(
file.c_str());
590 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2010"));
594 else if (
"layer1_2010_v5_up" ==
tune) {
596 TFile
f(
file.c_str());
597 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2010"));
601 else if (
"layer1_2010_v5_errdown" ==
tune) {
603 TFile
f(
file.c_str());
604 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2010"));
608 else if (
"layer1_2010_v5_errup" ==
tune) {
610 TFile
f(
file.c_str());
611 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2010"));
615 else if(
"layer2_alt_run2_r21_v1"==
tune) {
617 TFile
f(
file.c_str());
618 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2_mu_run2_rel21_v1"));
622 else if(
"layer2_alt_run2_r21_v0"==
tune) {
624 TFile
f(
file.c_str());
625 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2mu_2016_rel21_v1"));
629 else if(
"layer2_alt_run2_v1" ==
tune) {
631 TFile
f(
file.c_str());
632 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2mu_2016_v1"));
636 else if(
"layer2_alt_2012_v5" ==
tune) {
638 TFile
f(
file.c_str());
639 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_alt_2012"));
643 else if(
"layer2_2012_v5" ==
tune) {
645 TFile
f(
file.c_str());
646 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2012"));
650 else if(
"layer2_2012_v5_down" ==
tune) {
652 TFile
f(
file.c_str());
653 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2012"));
657 else if(
"layer2_2012_v5_up" ==
tune) {
659 TFile
f(
file.c_str());
660 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2012"));
664 else if (
"layer2_2012_v5_errdown" ==
tune) {
666 TFile
f(
file.c_str());
667 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2012"));
671 else if (
"layer2_2012_v5_errup" ==
tune) {
673 TFile
f(
file.c_str());
674 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2012"));
678 else if(
"layer2_alt_2011_v5" ==
tune) {
680 TFile
f(
file.c_str());
681 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_alt_2011"));
685 else if(
"layer2_2011_v5" ==
tune) {
687 TFile
f(
file.c_str());
688 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2011"));
692 else if(
"layer2_2011_v5_down" ==
tune) {
694 TFile
f(
file.c_str());
695 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2011"));
699 else if(
"layer2_2011_v5_up" ==
tune) {
701 TFile
f(
file.c_str());
702 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2011"));
706 else if (
"layer2_2011_v5_errdown" ==
tune) {
708 TFile
f(
file.c_str());
709 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2011"));
713 else if (
"layer2_2011_v5_errup" ==
tune) {
715 TFile
f(
file.c_str());
716 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2011"));
720 else if(
"layer2_2010_v5" ==
tune) {
722 TFile
f(
file.c_str());
723 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2010"));
727 else if(
"layer2_2010_v5_down" ==
tune) {
729 TFile
f(
file.c_str());
730 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2010"));
734 else if(
"layer2_2010_v5_up" ==
tune) {
736 TFile
f(
file.c_str());
737 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2010"));
741 else if (
"layer2_2010_v5_errdown" ==
tune) {
743 TFile
f(
file.c_str());
744 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2010"));
748 else if (
"layer2_2010_v5_errup" ==
tune) {
750 TFile
f(
file.c_str());
751 TH1*
histo = checked_cast<TH1*>(
f.Get(
"hE1E2ave_2010"));
755 else if (
"ps_2016_r21_v0" ==
tune) {
757 TFile
f(
file.c_str());
758 TH1* histo_ps_tot_error = checked_cast<TH1*>(
f.Get(
"hPS_2016_rel21"));
762 else if (
"ps_2016_v1" ==
tune) {
764 TFile
f(
file.c_str());
765 TH1* histo_ps_tot_error = checked_cast<TH1*>(
f.Get(
"hPS_2016"));
769 else if (
"ps_2012_v3" ==
tune) {
771 TFile
f(
file.c_str());
772 TH1* histo_ps_tot_error = checked_cast<TH1*>(
f.Get(
"hPS_2012"));
776 else if (
"ps_2012_v3_down" ==
tune) {
778 TFile
f(
file.c_str());
779 TH1* histo_ps_tot_error = checked_cast<TH1*>(
f.Get(
"hPS_2012"));
783 else if (
"ps_2012_v3_up" ==
tune){
785 TFile
f(
file.c_str());
786 TH1* histo_ps_tot_error = checked_cast<TH1*>(
f.Get(
"hPS_2012"));
790 else if (
"ps_2012_v3_errdown" ==
tune){
792 TFile
f(
file.c_str());
793 TH1* histo_ps_tot_error = checked_cast<TH1*>(
f.Get(
"hPS_2012"));
797 else if (
"ps_2012_v3_errup" ==
tune){
799 TFile
f(
file.c_str());
800 TH1* histo_ps_tot_error = checked_cast<TH1*>(
f.Get(
"hPS_2012"));
804 else if (
"ps_2011_v3" ==
tune) {
806 TFile
f(
file.c_str());
807 TH1* histo_ps_tot_error = checked_cast<TH1*>(
f.Get(
"hPS_2011"));
811 else if (
"ps_2011_v3_down" ==
tune) {
813 TFile
f(
file.c_str());
814 TH1* histo_ps_tot_error = checked_cast<TH1*>(
f.Get(
"hPS_2011"));
818 else if (
"ps_2011_v3_up" ==
tune){
820 TFile
f(
file.c_str());
821 TH1* histo_ps_tot_error = checked_cast<TH1*>(
f.Get(
"hPS_2011"));
825 else if (
"ps_2011_v3_errdown" ==
tune){
827 TFile
f(
file.c_str());
828 TH1* histo_ps_tot_error = checked_cast<TH1*>(
f.Get(
"hPS_2011"));
832 else if (
"ps_2011_v3_errup" ==
tune){
834 TFile
f(
file.c_str());
835 TH1* histo_ps_tot_error = checked_cast<TH1*>(
f.Get(
"hPS_2011"));
840 else if (
"ps_2010_v3" ==
tune) {
842 TFile
f(
file.c_str());
843 TH1* histo_ps_tot_error = checked_cast<TH1*>(
f.Get(
"hPS_2010"));
847 else if (
"ps_2010_v3_down" ==
tune) {
849 TFile
f(
file.c_str());
850 TH1* histo_ps_tot_error = checked_cast<TH1*>(
f.Get(
"hPS_2010"));
854 else if (
"ps_2010_v3_up" ==
tune) {
856 TFile
f(
file.c_str());
857 TH1* histo_ps_tot_error = checked_cast<TH1*>(
f.Get(
"hPS_2010"));
861 else if (
"ps_2010_v3_errdown" ==
tune){
863 TFile
f(
file.c_str());
864 TH1* histo_ps_tot_error = checked_cast<TH1*>(
f.Get(
"hPS_2010"));
868 else if (
"ps_2010_v3_errup" ==
tune){
870 TFile
f(
file.c_str());
871 TH1* histo_ps_tot_error = checked_cast<TH1*>(
f.Get(
"hPS_2010"));
876 throw std::runtime_error(
tune+
" is not a valid tune");
920 double addE2 = 0, addE3 = 0;
923 { addE2 = acc_Eadded_s2(
particle); }
926 " but layer 2 info is not available");
929 { addE3 = acc_Eadded_s3(
particle); }
932 " but layer 3 info is not available");
955 ATH_MSG_DEBUG(
"decorating cluster with corrected layer energies");
956 deco_E0(*cluster) =
inputs.E0raw;
957 deco_E1(*cluster) =
inputs.E1raw;
958 deco_E2(*cluster) =
inputs.E2raw;
959 deco_E3(*cluster) =
inputs.E3raw;
960 deco_layer_correction(*cluster) =
m_tune;
964 ATH_MSG_DEBUG(
"cannot correct layer energies: decorating particle with non-corrected layer energies");
969 deco_E0(*cluster) = cluster->
energyBE(0);
970 deco_E1(*cluster) = cluster->
energyBE(1);
971 deco_E2(*cluster) = cluster->
energyBE(2);
972 deco_E3(*cluster) = cluster->
energyBE(3);
973 deco_layer_correction(*cluster) =
m_tune;
990 std::map<std::string, std::string>
parse(
const std::string&
list)
992 std::cout <<
"list: '" <<
list <<
"'" << std::endl;
993 std::map<std::string, std::string>
result;
995 while (TObjString* sObj = (TObjString*)
next())
997 const TString&
item(sObj->GetString());
998 std::cout <<
"item: '" <<
item <<
"'" << std::endl;
999 TObjArray* item_list = TString(
item).Tokenize(
":");
1002 if (item_list->GetEntries() == 1) {
1004 value =
static_cast<TObjString*
>(item_list->At(0))->GetString().Data();
1006 else if (item_list->GetEntries() == 2) {
1007 key =
static_cast<TObjString*
>(item_list->At(0))->GetString().Data();
1008 value =
static_cast<TObjString*
>(item_list->At(1))->GetString().Data();
1011 std::cerr <<
"invalid string " <<
item << std::endl;
1014 std::cerr <<
"trying to insert two times key " <<
key << std::endl;
1023 std::pair<std::string, egammaLayerRecalibTool*>
1026 std::map<std::string, std::string> args_map =
parse(
args);
1028 std::string
name =
"";
1029 std::string amount_name =
"";
1030 std::string type_name =
"";
1035 if (args_map.find(
"amount") != args_map.end()) {
1036 std::string amount_str = args_map[
"amount"];
1038 if (amount_str.back()==
'%') {
1040 amount_str.pop_back();
1042 const float amount = TString(amount_str).Atof() * (
perc ? 0.01 : 1);
1045 std::stringstream amount_stream;
1046 amount_stream << amount;
1047 amount_name = amount_stream.str();
1048 std::replace(amount_name.begin(), amount_name.end(),
'-',
'n');
1049 std::replace(amount_name.begin(), amount_name.end(),
'.',
'p');
1051 else if (args_map.find(
"name") != args_map.end()) {
1052 name = args_map[
"name"];
1054 else if (args_map.find(
"histo") != args_map.end()) {
1056 if (args_map.find(
"file") == args_map.end()) {
1057 std::cerr <<
"with histo you must specify file" << std::endl;
1060 if (args_map.find(
"formulax") != args_map.end())
dim = 1;
1064 std::cerr <<
"with histo you must specify formulax" << std::endl;
1068 TFile
f(args_map[
"file"].c_str());
1069 std::cout <<
"opening histo " << args_map[
"histo"] <<
" from file " << args_map[
"file"] << std::endl;
1070 TH1F*
histo =
dynamic_cast<TH1F*
>(
f.Get(args_map[
"histo"].c_str()));
1073 histo->SetDirectory(
nullptr);
1076 else{assert(
false); }
1078 else { assert(
false); }
1081 std::cerr <<
"cannot understand argument " <<
args << std::endl;
1093 if (not type_name.empty() and not amount_name.empty()) {
1094 name = type_name +
"_" + amount_name;
1098 std::cerr <<
"you need to specify a name for the bias with type " <<
type << std::endl;
1109 if(amount_getter)
delete amount_getter;
virtual double phi() const
The azimuthal angle ( ) of the particle.
float getCorr(int run, float eta, float phi) const
get correction factor to apply to raw EMBPS energy : corrected raw EMBPS energy = correction factor *...
std::string replace(std::string s, const std::string &s2, const std::string &s3)
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
virtual float operator()(const StdCalibrationInputs &input) const
virtual void shift_inputs(StdCalibrationInputs &, float amount) const
virtual float operator()(const StdCalibrationInputs &inputs) const
corr_pileupShift * m_tool
virtual float operator()(const StdCalibrationInputs &input) const
corr_pileupShift * m_tool
virtual void shift_inputs(StdCalibrationInputs &, float amount) const
virtual float operator()(const StdCalibrationInputs &input) const
Helper class to provide constant type-safe access to aux data.
virtual float operator()(const StdCalibrationInputs &inputs) const
virtual float operator()(const StdCalibrationInputs &input) const
Correction for pileup induced energy shit as function of mu per layer for 2016 data.
virtual void scale_inputs(StdCalibrationInputs &, float amount) const
corr_pileupShift * m_tool
uint32_t runNumber() const
The current event's run number.
virtual void shift_inputs(StdCalibrationInputs &, float amount) const
@ OutOfValidityRange
Input object is out of validity range.
@ Error
Some error happened during the object correction.
Description of a calorimeter cluster.
virtual float operator()(const StdCalibrationInputs &input) const
float getCorr(int layer, int run, float mu, float eta) const
get shift to subtract to raw layer energy : corrected layer energy = raw energy - shift
virtual float operator()(const StdCalibrationInputs &inputs) const
Helper class to provide type-safe access to aux data.
virtual double eta() const
The pseudorapidity ( ) of the particle.
corr_pileupShift * m_tool
virtual float operator()(const StdCalibrationInputs &inputs) const
virtual void scale_inputs(StdCalibrationInputs &, float amount) const
void SetBinContent(int, double)
double GetBinContent(int) const
float averageInteractionsPerCrossing() const
Average interactions per crossing for all BCIDs - for out-of-time pile-up.
virtual void shift_inputs(StdCalibrationInputs &, float amount) const
virtual void scale_inputs(StdCalibrationInputs &, float amount) const
virtual void scale_inputs(StdCalibrationInputs &, float amount) const
virtual void shift_inputs(StdCalibrationInputs &, float amount) const
void Tokenize(const std::string &str, std::vector< std::string > &tokens, const std::string &delimiters=" ")
virtual float operator()(const StdCalibrationInputs &input) const
virtual float operator()(const StdCalibrationInputs &input) const
Class describing the basic event information.
std::string PathResolverFindCalibFile(const std::string &logical_file_name)
@ Ok
The correction was done successfully.
virtual float operator()(const StdCalibrationInputs &input) const
virtual void scale_inputs(StdCalibrationInputs &, float amount) const
#define ATH_MSG_WARNING(x)
Return value from object correction CP tools.
float energyBE(const unsigned layer) const
Get the energy in one layer of the EM Calo.
virtual void scale_inputs(StdCalibrationInputs &, float amount) const
virtual void shift_inputs(StdCalibrationInputs &, float amount) const
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
float getCorr(int run, float eta, float phi) const
get correction factor to apply to raw EMECPS energy : corrected raw EMECPS energy = correction factor...
virtual void scale_inputs(StdCalibrationInputs &, float amount) const
virtual float operator()(const StdCalibrationInputs &input) const
corr_HV_EMECPS m_toolEMECPS
virtual void shift_inputs(StdCalibrationInputs &, float amount) const
std::unique_ptr< TH1 > m_histo