ATLAS Offline Software
Loading...
Searching...
No Matches
TFCSParametrizationEbinChain.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
3*/
4
10#include <iostream>
11
12//=============================================
13//======= TFCSParametrizationEbinChain =========
14//=============================================
15
17 TFCSSimulationState &simulstate, const TFCSTruthState *,
18 const TFCSExtrapolationState *) const {
19 return std::string(Form("Ebin=%d", simulstate.Ebin()));
20}
21
23 TFCSSimulationState *simulstate, const TFCSTruthState *truth,
24 const TFCSExtrapolationState *extrapol) {
26 if (!simulstate)
27 simulstate = new TFCSSimulationState();
28 if (!truth)
29 truth = new TFCSTruthState();
30 if (!extrapol)
31 extrapol = new TFCSExtrapolationState();
32
33 TFCSParametrizationEbinChain chain("chain", "chain");
34 chain.setLevel(MSG::DEBUG);
35
37 param = new TFCSParametrization("A begin all", "A begin all");
38 param->setLevel(MSG::DEBUG);
39 chain.push_before_first_bin(param);
40 param = new TFCSParametrization("A end all", "A end all");
41 param->setLevel(MSG::DEBUG);
42 chain.push_back(param);
43
44 for (int i = 0; i < 3; ++i) {
46 new TFCSLateralShapeParametrization(Form("A%d", i), Form("A %d", i));
47 param->setLevel(MSG::DEBUG);
48 param->set_Ekin_bin(i);
49 chain.push_back_in_bin(param, i);
50 }
51
52 for (int i = 3; i > 0; --i) {
54 new TFCSLateralShapeParametrization(Form("B%d", i), Form("B %d", i));
55 param->setLevel(MSG::DEBUG);
56 param->set_Ekin_bin(i);
57 chain.push_back_in_bin(param, i);
58 }
59 param = new TFCSParametrization("B end all", "B end all");
60 param->setLevel(MSG::DEBUG);
61 chain.push_back(param);
62 param = new TFCSParametrization("B begin all", "B begin all");
63 param->setLevel(MSG::DEBUG);
64 chain.push_before_first_bin(param);
65
66 ATH_MSG_NOCLASS(logger, "==== Chain setup ====");
67 chain.Print();
68 ATH_MSG_NOCLASS(logger, "==== Simulate with Ebin=0 ====");
69 simulstate->set_Ebin(0);
70 chain.simulate(*simulstate, truth, extrapol);
71 ATH_MSG_NOCLASS(logger, "==== Simulate with Ebin=1 ====");
72 simulstate->set_Ebin(1);
73 chain.simulate(*simulstate, truth, extrapol);
74 ATH_MSG_NOCLASS(logger, "==== Simulate with Ebin=2 ====");
75 simulstate->set_Ebin(2);
76 chain.simulate(*simulstate, truth, extrapol);
77 ATH_MSG_NOCLASS(logger, "===================================" << std::endl);
78}
#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
const Chain_t & chain() const
static void unit_test(TFCSSimulationState *simulstate=nullptr, const TFCSTruthState *truth=nullptr, const TFCSExtrapolationState *extrapol=nullptr)
virtual const std::string get_variable_text(TFCSSimulationState &simulstate, const TFCSTruthState *, const TFCSExtrapolationState *) const override
TFCSParametrizationEbinChain(const char *name=nullptr, const char *title=nullptr)
TFCSParametrization(const char *name=nullptr, const char *title=nullptr)
static Root::TMsgLogger logger("iLumiCalc")