ATLAS Offline Software
Loading...
Searching...
No Matches
TFCSParametrizationEtaSelectChain.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
3*/
4
9#include <iostream>
10
11//=============================================
12//======= TFCSParametrizationEtaSelectChain =========
13//=============================================
14
16 clear();
17 if (size() == 0)
18 return;
19
23
24 chain().shrink_to_fit();
25}
26
31
34 const TFCSExtrapolationState *extrapol) const {
35 return val_to_bin(extrapol->IDCaloBoundary_eta());
36}
37
40 const TFCSExtrapolationState *extrapol) const {
41 return std::string(Form("eta=%2.2f", extrapol->IDCaloBoundary_eta()));
42}
43
44const std::string
46 if (bin == -1 || bin >= (int)get_number_of_bins()) {
47 return std::string(Form("bin=%d not in [%2.2f<=eta<%2.2f)", bin,
50 }
51 return std::string(Form("bin=%d, %2.2f<=eta<%2.2f", bin, m_bin_low_edge[bin],
52 m_bin_low_edge[bin + 1]));
53}
54
56 TFCSSimulationState *simulstate, TFCSTruthState *truth,
57 TFCSExtrapolationState *extrapol) {
59 if (!simulstate)
60 simulstate = new TFCSSimulationState();
61 if (!truth)
62 truth = new TFCSTruthState();
63 if (!extrapol)
64 extrapol = new TFCSExtrapolationState();
65
67 chain.setLevel(MSG::DEBUG);
68
70 param = new TFCSParametrization("A begin all", "A begin all");
71 param->setLevel(MSG::DEBUG);
72 param->set_eta_nominal(2);
73 param->set_eta_min(2);
74 param->set_eta_max(3);
75 chain.push_before_first_bin(param);
76 param = new TFCSParametrization("A end all", "A end all");
77 param->setLevel(MSG::DEBUG);
78 param->set_eta_nominal(2);
79 param->set_eta_min(2);
80 param->set_eta_max(3);
81 chain.push_back(param);
82
83 const int n_params = 5;
84 for (int i = 2; i < n_params; ++i) {
85 param = new TFCSParametrization(Form("A%d", i), Form("A %d", i));
86 param->setLevel(MSG::DEBUG);
87 param->set_eta_nominal(i * i + 0.1);
88 param->set_eta_min(i * i);
89 param->set_eta_max((i + 1) * (i + 1));
90 chain.push_back_in_bin(param);
91 }
92 for (int i = n_params; i >= 1; --i) {
93 param = new TFCSParametrization(Form("B%d", i), Form("B %d", i));
94 param->setLevel(MSG::DEBUG);
95 param->set_eta_nominal(i * i + 0.1);
96 param->set_eta_min(i * i);
97 param->set_eta_max((i + 1) * (i + 1));
98 chain.push_back_in_bin(param);
99 }
100
101 ATH_MSG_NOCLASS(logger, "==== Chain setup ====");
102 chain.Print();
103
104 param = new TFCSParametrization("B end all", "B end all");
105 param->setLevel(MSG::DEBUG);
106 chain.push_back(param);
107 param = new TFCSParametrization("B begin all", "B begin all");
108 param->setLevel(MSG::DEBUG);
109 chain.push_before_first_bin(param);
110
111 ATH_MSG_NOCLASS(logger, "==== Chain setup ====");
112 chain.Print();
113 ATH_MSG_NOCLASS(logger, "==== Simulate with eta=0.1 ====");
114 extrapol->set_IDCaloBoundary_eta(0.1);
115 chain.simulate(*simulstate, truth, extrapol);
116 ATH_MSG_NOCLASS(logger, "==== Simulate with eta=1.1 ====");
117 extrapol->set_IDCaloBoundary_eta(1.1);
118 chain.simulate(*simulstate, truth, extrapol);
119 ATH_MSG_NOCLASS(logger, "==== Simulate with eta=2.1 ====");
120 extrapol->set_IDCaloBoundary_eta(2.1);
121 chain.simulate(*simulstate, truth, extrapol);
122 ATH_MSG_NOCLASS(logger, "==== Simulate with eta=4.1 ====");
123 extrapol->set_IDCaloBoundary_eta(4.1);
124 chain.simulate(*simulstate, truth, extrapol);
125 ATH_MSG_NOCLASS(logger, "==== Simulate with eta=100 ====");
126 extrapol->set_IDCaloBoundary_eta(100);
127 chain.simulate(*simulstate, truth, extrapol);
128 ATH_MSG_NOCLASS(logger, "===================================" << std::endl);
129}
#define ATH_MSG_NOCLASS(logger_name, x)
Definition MLogging.h:52
Cut down AthMessaging.
Definition MLogging.h:176
virtual void setLevel(MSG::Level lvl)
Update outputlevel.
Definition MLogging.cxx:105
virtual double eta_max() const
virtual double eta_min() const
virtual unsigned int get_number_of_bins() const
const Chain_t & chain() const
virtual unsigned int size() const override
Some derived classes have daughter instances of TFCSParametrizationBase objects The size() and operat...
static void unit_test(TFCSSimulationState *simulstate=nullptr, TFCSTruthState *truth=nullptr, TFCSExtrapolationState *extrapol=nullptr)
virtual const std::string get_variable_text(TFCSSimulationState &simulstate, const TFCSTruthState *, const TFCSExtrapolationState *) const override
TFCSParametrizationEtaSelectChain(const char *name=nullptr, const char *title=nullptr)
virtual void recalc() override
Default is to call recalc_pdgid_intersect() and recalc_Ekin_eta_intersect()
virtual int get_bin(TFCSSimulationState &, const TFCSTruthState *truth, const TFCSExtrapolationState *extrapol) const override
this method should determine in derived classes which bin to simulate, so that the simulate method ca...
virtual void push_back_in_bin(TFCSParametrizationBase *param)
virtual const std::string get_bin_text(int bin) const override
print the range of a bin; for bin -1, print the allowed range
virtual void set_eta_max(double max)
TFCSParametrization(const char *name=nullptr, const char *title=nullptr)
virtual void set_eta_nominal(double min)
virtual void set_eta_min(double min)
static Root::TMsgLogger logger("iLumiCalc")