ATLAS Offline Software
Loading...
Searching...
No Matches
TFCSParametrizationEtaSelectChain Class Reference

#include <TFCSParametrizationEtaSelectChain.h>

Inheritance diagram for TFCSParametrizationEtaSelectChain:
Collaboration diagram for TFCSParametrizationEtaSelectChain:

Public Types

enum  FCSSplitChainObjects { kSplitChainObjects , kRetryChainFromStart = BIT(17) }
 Status bit for chain persistency. More...
typedef std::vector< TFCSParametrizationBase * > Chain_t
enum  FCSStatusBits { kMatchAllPDGID }
 Status bit for FCS needs. More...
typedef std::map< TFCSParametrizationBase *, Duplicate_tFindDuplicates_t
typedef std::map< std::string, FindDuplicates_tFindDuplicateClasses_t

Public Member Functions

 TFCSParametrizationEtaSelectChain (const char *name=nullptr, const char *title=nullptr)
 TFCSParametrizationEtaSelectChain (const TFCSParametrizationEtaSelectChain &ref)
virtual void push_back_in_bin (TFCSParametrizationBase *param)
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 can call the appropriate TFCSParametrizationBase simulations return -1 if no bin matches
virtual const std::string get_variable_text (TFCSSimulationState &simulstate, const TFCSTruthState *, const TFCSExtrapolationState *) const override
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 int push_back_in_bin (TFCSParametrizationBase *param, float low, float up)
virtual void push_back_in_bin (TFCSParametrizationBase *param, unsigned int bin) override
 Should not be used unless the bin boundaries are already defined!
int val_to_bin (float val) const
virtual double get_bin_low_edge (int bin) const
virtual double get_bin_up_edge (int bin) const
virtual void push_before_first_bin (TFCSParametrizationBase *param)
virtual unsigned int get_number_of_bins () const
virtual FCSReturnCode simulate (TFCSSimulationState &simulstate, const TFCSTruthState *truth, const TFCSExtrapolationState *extrapol) const override
 Method in all derived classes to do some simulation.
void Print (Option_t *option="") const override
bool SplitChainObjects () const
void set_SplitChainObjects ()
void reset_SplitChainObjects ()
bool RetryChainFromStart () const
void set_RetryChainFromStart ()
void reset_RetryChainFromStart ()
virtual unsigned int size () const override
 Some derived classes have daughter instances of TFCSParametrizationBase objects The size() and operator[] methods give general access to these daughters.
virtual const TFCSParametrizationBaseoperator[] (unsigned int ind) const override
 Some derived classes have daughter instances of TFCSParametrizationBase objects The size() and operator[] methods give general access to these daughters.
virtual TFCSParametrizationBaseoperator[] (unsigned int ind) override
 Some derived classes have daughter instances of TFCSParametrizationBase objects The size() and operator[] methods give general access to these daughters.
virtual void set_daughter (unsigned int ind, TFCSParametrizationBase *param) override
 Some derived classes have daughter instances of TFCSParametrizationBase objects The set_daughter method allows to change these daughters - expert use only!
const Chain_tchain () const
Chain_tchain ()
void push_back (const Chain_t::value_type &param)
virtual bool is_match_Ekin_bin (int Ekin_bin) const override
virtual bool is_match_calosample (int calosample) const override
void clear ()
virtual bool is_match_pdgid (int id) const override
virtual bool is_match_Ekin (float Ekin) const override
virtual bool is_match_eta (float eta) const override
virtual bool is_match_all_Ekin () const override
virtual bool is_match_all_eta () const override
virtual bool is_match_all_Ekin_bin () const override
virtual bool is_match_all_calosample () const override
const std::set< int > & pdgid () const override
double Ekin_nominal () const override
double Ekin_min () const override
double Ekin_max () const override
double eta_nominal () const override
double eta_min () const override
double eta_max () const override
virtual void set_pdgid (int id)
virtual void set_pdgid (const std::set< int > &ids)
virtual void add_pdgid (int id)
virtual void clear_pdgid ()
virtual void set_Ekin_nominal (double min)
virtual void set_Ekin_min (double min)
virtual void set_Ekin_max (double max)
virtual void set_eta_nominal (double min)
virtual void set_eta_min (double min)
virtual void set_eta_max (double max)
virtual void set_Ekin (const TFCSParametrizationBase &ref)
virtual void set_eta (const TFCSParametrizationBase &ref)
virtual void set_Ekin_eta (const TFCSParametrizationBase &ref)
virtual void set_pdgid_Ekin_eta (const TFCSParametrizationBase &ref)
virtual bool is_match_all_pdgid () const
virtual void set_match_all_pdgid ()
virtual void reset_match_all_pdgid ()
virtual void set_geometry (ICaloGeometry *geo)
 Method to set the geometry access pointer.
virtual bool operator== (const TFCSParametrizationBase &ref) const
 The == operator compares the content of instances.
virtual void CleanAuxInfo (TFCSSimulationState &) const
 Method in all derived classes to delete objects stored in the simulstate AuxInfo.
void FindDuplicates (FindDuplicateClasses_t &dup)
void RemoveDuplicates ()
void RemoveNameTitle ()
bool msgLvl (const MSG::Level lvl) const
 Check whether the logging system is active at the provided verbosity level.
MsgStream & msg () const
 Return a stream for sending messages directly (no decoration)
MsgStream & msg (const MSG::Level lvl) const
 Return a decorated starting stream for sending messages.
MSG::Level level () const
 Retrieve output level.
virtual void setLevel (MSG::Level lvl)
 Update outputlevel.

Static Public Member Functions

static void unit_test (TFCSSimulationState *simulstate=nullptr, TFCSTruthState *truth=nullptr, TFCSExtrapolationState *extrapol=nullptr)
static void unit_test (TFCSSimulationState *simulstate=nullptr, TFCSTruthState *truth=nullptr, const TFCSExtrapolationState *extrapol=nullptr)
static void unit_test (TFCSSimulationState *simulstate=nullptr, const TFCSTruthState *truth=nullptr, const TFCSExtrapolationState *extrapol=nullptr)
static std::string startMsg (MSG::Level lvl, const std::string &file, int line)
 Make a message to decorate the start of logging.

Protected Member Functions

virtual void recalc () override
 Default is to call recalc_pdgid_intersect() and recalc_Ekin_eta_intersect()
void recalc_pdgid_intersect ()
void recalc_pdgid_union ()
void recalc_Ekin_intersect ()
void recalc_eta_intersect ()
void recalc_Ekin_eta_intersect ()
void recalc_Ekin_union ()
void recalc_eta_union ()
void recalc_Ekin_eta_union ()
FCSReturnCode simulate_and_retry (TFCSParametrizationBase *parametrization, TFCSSimulationState &simulstate, const TFCSTruthState *truth, const TFCSExtrapolationState *extrapol) const
bool compare (const TFCSParametrizationBase &ref) const

Protected Attributes

std::vector< float > m_bin_low_edge
std::vector< unsigned int > m_bin_start
 Contains the index where the TFCSParametrizationBase* instances to run for a given bin start.

Static Protected Attributes

static constexpr double init_Ekin_nominal = 0
static constexpr double init_Ekin_min = 0
 Do not persistify!
static constexpr double init_Ekin_max = 14000000
 Do not persistify!
static constexpr double init_eta_nominal = 0
 Do not persistify!
static constexpr double init_eta_min = -100
 Do not persistify!
static constexpr double init_eta_max = 100
 Do not persistify!

Private Attributes

Chain_t m_chain
std::vector< std::unique_ptr< TFCSParametrizationBase > > m_writtenBases
std::set< int > m_pdgid
double m_Ekin_nominal
double m_Ekin_min
double m_Ekin_max
double m_eta_nominal
double m_eta_min
double m_eta_max
std::string m_nm
 Message source name.

Static Private Attributes

static boost::thread_specific_ptr< MsgStream > m_msg_tls ATLAS_THREAD_SAFE
 Do not persistify!

Detailed Description

Definition at line 10 of file TFCSParametrizationEtaSelectChain.h.

Member Typedef Documentation

◆ Chain_t

Definition at line 40 of file TFCSParametrizationChain.h.

◆ FindDuplicateClasses_t

typedef std::map<std::string, FindDuplicates_t> TFCSParametrizationBase::FindDuplicateClasses_t
inherited

Definition at line 142 of file TFCSParametrizationBase.h.

◆ FindDuplicates_t

Member Enumeration Documentation

◆ FCSSplitChainObjects

Status bit for chain persistency.

Enumerator
kSplitChainObjects 

Set this bit in the TObject bit field if the TFCSParametrizationBase objects in the chain should be written as separate keys into the root file instead of directly writing the objects.

This is needed if the sum of all objects in the chain use >1GB of memory, which can't be handeled by TBuffer. Drawback is that identical objects will get stored as multiple instances

kRetryChainFromStart 

Definition at line 20 of file TFCSParametrizationChain.h.

20 {
22 BIT(16),
29 kRetryChainFromStart = BIT(17)
30 };
@ kSplitChainObjects
Set this bit in the TObject bit field if the TFCSParametrizationBase objects in the chain should be w...

◆ FCSStatusBits

Status bit for FCS needs.

Enumerator
kMatchAllPDGID 

Set this bit in the TObject bit field if valid for all PDGID.

Definition at line 52 of file TFCSParametrizationBase.h.

52 {
53 kMatchAllPDGID = BIT(
54 14)
55 };
@ kMatchAllPDGID
Set this bit in the TObject bit field if valid for all PDGID.

Constructor & Destructor Documentation

◆ TFCSParametrizationEtaSelectChain() [1/2]

TFCSParametrizationEtaSelectChain::TFCSParametrizationEtaSelectChain ( const char * name = nullptr,
const char * title = nullptr )
inline

Definition at line 13 of file TFCSParametrizationEtaSelectChain.h.

TFCSParametrizationFloatSelectChain(const char *name=nullptr, const char *title=nullptr)

◆ TFCSParametrizationEtaSelectChain() [2/2]

TFCSParametrizationEtaSelectChain::TFCSParametrizationEtaSelectChain ( const TFCSParametrizationEtaSelectChain & ref)
inline

Definition at line 16 of file TFCSParametrizationEtaSelectChain.h.

const boost::regex ref(r_ef)

Member Function Documentation

◆ add_pdgid()

void TFCSParametrization::add_pdgid ( int id)
virtualinherited

Reimplemented in TFCSEnergyBinParametrization.

Definition at line 35 of file TFCSParametrization.cxx.

35{ m_pdgid.insert(id); }

◆ chain() [1/2]

Chain_t & TFCSParametrizationChain::chain ( )
inlineinherited

Definition at line 54 of file TFCSParametrizationChain.h.

◆ chain() [2/2]

const Chain_t & TFCSParametrizationChain::chain ( ) const
inlineinherited

Definition at line 53 of file TFCSParametrizationChain.h.

53{ return m_chain; };

◆ CleanAuxInfo()

virtual void TFCSParametrizationBase::CleanAuxInfo ( TFCSSimulationState & ) const
inlinevirtualinherited

Method in all derived classes to delete objects stored in the simulstate AuxInfo.

Definition at line 130 of file TFCSParametrizationBase.h.

130{};

◆ clear()

void TFCSParametrization::clear ( )
inherited

Definition at line 18 of file TFCSParametrization.cxx.

18 {
19 m_pdgid.clear();
26}
static constexpr double init_Ekin_nominal
static constexpr double init_eta_max
Do not persistify!
static constexpr double init_Ekin_max
Do not persistify!
static constexpr double init_eta_nominal
Do not persistify!
static constexpr double init_eta_min
Do not persistify!
static constexpr double init_Ekin_min
Do not persistify!

◆ clear_pdgid()

void TFCSParametrization::clear_pdgid ( )
virtualinherited

Reimplemented in TFCSEnergyBinParametrization.

Definition at line 37 of file TFCSParametrization.cxx.

37{ m_pdgid.clear(); }

◆ compare()

bool TFCSParametrization::compare ( const TFCSParametrizationBase & ref) const
protectedinherited

Definition at line 78 of file TFCSParametrization.cxx.

78 {
79 if (IsA() != ref.IsA()) {
80 ATH_MSG_DEBUG("compare(): different class types "
81 << IsA()->GetName() << " != " << ref.IsA()->GetName());
82 return false;
83 }
84 std::string name(GetName());
85 if (name != ref.GetName()) {
86 ATH_MSG_DEBUG("compare(): different names " << GetName()
87 << " != " << ref.GetName());
88 return false;
89 }
90 std::string title(GetTitle());
91 if (title != ref.GetTitle()) {
92 ATH_MSG_DEBUG("compare(): different titles " << GetTitle()
93 << " != " << ref.GetTitle());
94 return false;
95 }
96 if (is_match_all_pdgid() != ref.is_match_all_pdgid() ||
97 pdgid() != ref.pdgid()) {
98 ATH_MSG_DEBUG("compare(): different pdgids");
99 return false;
100 }
101 if (Ekin_nominal() != ref.Ekin_nominal() || Ekin_min() != ref.Ekin_min() ||
102 Ekin_max() != ref.Ekin_max()) {
103 ATH_MSG_DEBUG("compare(): different Ekin range");
104 return false;
105 }
106 if (eta_nominal() != ref.eta_nominal() || eta_min() != ref.eta_min() ||
107 eta_max() != ref.eta_max()) {
108 ATH_MSG_DEBUG("compare(): different eta range");
109 return false;
110 }
111
112 return true;
113}
#define ATH_MSG_DEBUG(x)
virtual bool is_match_all_pdgid() const
double Ekin_nominal() const override
double eta_nominal() const override
double Ekin_min() const override
double eta_max() const override
double Ekin_max() const override
const std::set< int > & pdgid() const override
double eta_min() const override
#define IsA
Declare the TObject style functions.

◆ Ekin_max()

double TFCSParametrization::Ekin_max ( ) const
inlineoverridevirtualinherited

Reimplemented from TFCSParametrizationBase.

Definition at line 37 of file TFCSParametrization.h.

37{ return m_Ekin_max; };

◆ Ekin_min()

double TFCSParametrization::Ekin_min ( ) const
inlineoverridevirtualinherited

Reimplemented from TFCSParametrizationBase.

Definition at line 36 of file TFCSParametrization.h.

36{ return m_Ekin_min; };

◆ Ekin_nominal()

double TFCSParametrization::Ekin_nominal ( ) const
inlineoverridevirtualinherited

Reimplemented from TFCSParametrizationBase.

Definition at line 35 of file TFCSParametrization.h.

35{ return m_Ekin_nominal; };

◆ eta_max()

double TFCSParametrization::eta_max ( ) const
inlineoverridevirtualinherited

Reimplemented from TFCSParametrizationBase.

Definition at line 40 of file TFCSParametrization.h.

40{ return m_eta_max; };

◆ eta_min()

double TFCSParametrization::eta_min ( ) const
inlineoverridevirtualinherited

Reimplemented from TFCSParametrizationBase.

Definition at line 39 of file TFCSParametrization.h.

39{ return m_eta_min; };

◆ eta_nominal()

double TFCSParametrization::eta_nominal ( ) const
inlineoverridevirtualinherited

Reimplemented from TFCSParametrizationBase.

Definition at line 38 of file TFCSParametrization.h.

38{ return m_eta_nominal; };

◆ FindDuplicates()

void TFCSParametrizationBase::FindDuplicates ( FindDuplicateClasses_t & dup)
inherited

Definition at line 90 of file TFCSParametrizationBase.cxx.

91 {
92
93 for (unsigned int i = 0; i < size(); ++i)
94 if ((*this)[i]) {
95 TFCSParametrizationBase *param = (*this)[i];
96 FindDuplicates_t &dup = dupclasses[param->GetName()];
97 // If param is already in the duplication list, skip over
98 auto checkexist = dup.find(param);
99 if (checkexist != dup.end()) {
100 ATH_MSG_WARNING(" [TFCSParametrizationBase::FindDuplicates] "
101 "DUPLICATE POINTER DETECTED");
102
103 ATH_MSG_WARNING(" - Pointer : " << param);
104 ATH_MSG_WARNING(" - Name : " << param->GetName());
105 ATH_MSG_WARNING(" - Class : " << param->ClassName());
106 ATH_MSG_WARNING(" - Occurs in parent : " << this
107 << " (" << this->ClassName() << ")"
108 << " index=" << i);
109
110 if (checkexist->second.replace) {
111 TFCSParametrizationBase *refparam = checkexist->second.replace;
112 ATH_MSG_DEBUG("Found duplicate pointer: "
113 << refparam << "=" << refparam->GetName()
114 << ", duplicate is " << param << "=" << param->GetName()
115 << " index " << i << " of " << this);
116 dup[refparam].mother.push_back(this);
117 dup[refparam].index.push_back(i);
118 }
119 continue;
120 }
121 // Add param to duplication list
122 dup[param] = Duplicate_t();
123 for (auto &ref : dup) {
124 TFCSParametrizationBase *refparam = ref.first;
125 // skip itself, as this just added above
126 if (param == refparam)
127 continue;
128 // skip nullptr reference
129 if (refparam == nullptr)
130 continue;
131 // skip reference that is itself going to get replaced
132 if (ref.second.replace)
133 continue;
134 // Check for objects with identical content
135 if (*param == *refparam) {
136 ATH_MSG_DEBUG("Found duplicate: "
137 << refparam << "=" << refparam->GetName()
138 << ", duplicate is " << param << "=" << param->GetName()
139 << " index " << i << " of " << this);
140
141 dup[param].replace = refparam;
142 dup[refparam].mother.push_back(this);
143 dup[refparam].index.push_back(i);
144 break;
145 }
146 }
147 // Continue for child objects in param
148 param->FindDuplicates(dupclasses);
149 }
150}
#define ATH_MSG_WARNING(x)
void FindDuplicates(FindDuplicateClasses_t &dup)
std::map< TFCSParametrizationBase *, Duplicate_t > FindDuplicates_t
virtual unsigned int size() const
Some derived classes have daughter instances of TFCSParametrizationBase objects The size() and operat...
TFCSParametrizationBase(const char *name=nullptr, const char *title=nullptr)

◆ get_bin()

int TFCSParametrizationEtaSelectChain::get_bin ( TFCSSimulationState & simulstate,
const TFCSTruthState * ,
const TFCSExtrapolationState *  ) const
overridevirtual

this method should determine in derived classes which bin to simulate, so that the simulate method can call the appropriate TFCSParametrizationBase simulations return -1 if no bin matches

Reimplemented from TFCSParametrizationBinnedChain.

Reimplemented in TFCSParametrizationAbsEtaSelectChain.

Definition at line 32 of file TFCSParametrizationEtaSelectChain.cxx.

◆ get_bin_low_edge()

virtual double TFCSParametrizationFloatSelectChain::get_bin_low_edge ( int bin) const
inlinevirtualinherited

◆ get_bin_text()

const std::string TFCSParametrizationEtaSelectChain::get_bin_text ( int bin) const
overridevirtual

print the range of a bin; for bin -1, print the allowed range

Reimplemented from TFCSParametrizationBinnedChain.

Reimplemented in TFCSParametrizationAbsEtaSelectChain.

Definition at line 45 of file TFCSParametrizationEtaSelectChain.cxx.

45 {
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}
virtual unsigned int get_number_of_bins() const

◆ get_bin_up_edge()

virtual double TFCSParametrizationFloatSelectChain::get_bin_up_edge ( int bin) const
inlinevirtualinherited

Definition at line 32 of file TFCSParametrizationFloatSelectChain.h.

32 {
33 return m_bin_low_edge[bin + 1];
34 };

◆ get_number_of_bins()

virtual unsigned int TFCSParametrizationBinnedChain::get_number_of_bins ( ) const
inlinevirtualinherited

Definition at line 22 of file TFCSParametrizationBinnedChain.h.

22 {
23 return m_bin_start.size() - 1;
24 };
std::vector< unsigned int > m_bin_start
Contains the index where the TFCSParametrizationBase* instances to run for a given bin start.

◆ get_variable_text()

const std::string TFCSParametrizationEtaSelectChain::get_variable_text ( TFCSSimulationState & simulstate,
const TFCSTruthState * ,
const TFCSExtrapolationState * extrapol ) const
overridevirtual

Reimplemented from TFCSParametrizationBinnedChain.

Definition at line 38 of file TFCSParametrizationEtaSelectChain.cxx.

40 {
41 return std::string(Form("eta=%2.2f", extrapol->IDCaloBoundary_eta()));
42}

◆ is_match_all_calosample()

virtual bool TFCSParametrization::is_match_all_calosample ( ) const
inlineoverridevirtualinherited

◆ is_match_all_Ekin()

virtual bool TFCSParametrization::is_match_all_Ekin ( ) const
inlineoverridevirtualinherited

Reimplemented from TFCSParametrizationBase.

Definition at line 25 of file TFCSParametrization.h.

25 {
26 return Ekin_min() == init_Ekin_min && Ekin_max() == init_Ekin_max;
27 };

◆ is_match_all_Ekin_bin()

virtual bool TFCSParametrization::is_match_all_Ekin_bin ( ) const
inlineoverridevirtualinherited

◆ is_match_all_eta()

virtual bool TFCSParametrization::is_match_all_eta ( ) const
inlineoverridevirtualinherited

Reimplemented from TFCSParametrizationBase.

Definition at line 28 of file TFCSParametrization.h.

28 {
29 return eta_min() == init_eta_min && eta_max() == init_eta_max;
30 };

◆ is_match_all_pdgid()

virtual bool TFCSParametrizationBase::is_match_all_pdgid ( ) const
inlinevirtualinherited

Definition at line 66 of file TFCSParametrizationBase.h.

66{ return TestBit(kMatchAllPDGID); };

◆ is_match_calosample()

bool TFCSParametrizationChain::is_match_calosample ( int calosample) const
overridevirtualinherited

Reimplemented from TFCSParametrizationBase.

Reimplemented in TFCSEnergyAndHitGAN, and TFCSEnergyAndHitGANV2.

Definition at line 137 of file TFCSParametrizationChain.cxx.

137 {
138 for (const auto &param : m_chain)
139 if (!param->is_match_calosample(calosample))
140 return false;
141 return true;
142}

◆ is_match_Ekin()

virtual bool TFCSParametrization::is_match_Ekin ( float Ekin) const
inlineoverridevirtualinherited

Reimplemented from TFCSParametrizationBase.

Definition at line 18 of file TFCSParametrization.h.

18 {
19 return (Ekin >= m_Ekin_min) && (Ekin < m_Ekin_max);
20 };

◆ is_match_Ekin_bin()

bool TFCSParametrizationChain::is_match_Ekin_bin ( int Ekin_bin) const
overridevirtualinherited

Reimplemented from TFCSParametrizationBase.

Reimplemented in TFCSEnergyAndHitGAN, and TFCSEnergyAndHitGANV2.

Definition at line 130 of file TFCSParametrizationChain.cxx.

130 {
131 for (const auto &param : m_chain)
132 if (!param->is_match_Ekin_bin(Ekin_bin))
133 return false;
134 return true;
135}

◆ is_match_eta()

virtual bool TFCSParametrization::is_match_eta ( float eta) const
inlineoverridevirtualinherited

Reimplemented from TFCSParametrizationBase.

Definition at line 21 of file TFCSParametrization.h.

21 {
22 return (eta >= m_eta_min) && (eta < m_eta_max);
23 };
Scalar eta() const
pseudorapidity method

◆ is_match_pdgid()

virtual bool TFCSParametrization::is_match_pdgid ( int id) const
inlineoverridevirtualinherited

Reimplemented from TFCSParametrizationBase.

Definition at line 15 of file TFCSParametrization.h.

15 {
16 return TestBit(kMatchAllPDGID) || m_pdgid.find(id) != m_pdgid.end();
17 };

◆ level()

MSG::Level ISF_FCS::MLogging::level ( ) const
inlineinherited

Retrieve output level.

Definition at line 201 of file MLogging.h.

201{ return msg().level(); }
MsgStream & msg() const
Return a stream for sending messages directly (no decoration)
Definition MLogging.h:231

◆ msg() [1/2]

MsgStream & ISF_FCS::MLogging::msg ( ) const
inlineinherited

Return a stream for sending messages directly (no decoration)

Definition at line 231 of file MLogging.h.

231 {
232 MsgStream *ms = m_msg_tls.get();
233 if (!ms) {
234 ms = new MsgStream(Athena::getMessageSvc(), m_nm);
235 m_msg_tls.reset(ms);
236 }
237 return *ms;
238}
std::string m_nm
Message source name.
Definition MLogging.h:211
IMessageSvc * getMessageSvc(bool quiet=false)

◆ msg() [2/2]

MsgStream & ISF_FCS::MLogging::msg ( const MSG::Level lvl) const
inlineinherited

Return a decorated starting stream for sending messages.

Definition at line 240 of file MLogging.h.

240 {
241 return msg() << lvl;
242}

◆ msgLvl()

bool ISF_FCS::MLogging::msgLvl ( const MSG::Level lvl) const
inlineinherited

Check whether the logging system is active at the provided verbosity level.

Definition at line 222 of file MLogging.h.

222 {
223 if (msg().level() <= lvl) {
224 msg() << lvl;
225 return true;
226 } else {
227 return false;
228 }
229}
MSG::Level level() const
Retrieve output level.
Definition MLogging.h:201

◆ operator==()

virtual bool TFCSParametrizationBase::operator== ( const TFCSParametrizationBase & ref) const
inlinevirtualinherited

The == operator compares the content of instances.

The implementation in the base class only returns true for a comparison with itself

Reimplemented in TFCSHitCellMapping, TFCSHitCellMappingWiggle, TFCSLateralShapeParametrizationHitNumberFromE, and TFCSPredictExtrapWeights.

Definition at line 119 of file TFCSParametrizationBase.h.

119 {
120 return compare(ref);
121 };
bool compare(const TFCSParametrizationBase &ref) const
Do not persistify!

◆ operator[]() [1/2]

virtual const TFCSParametrizationBase * TFCSParametrizationChain::operator[] ( unsigned int ) const
inlineoverridevirtualinherited

Some derived classes have daughter instances of TFCSParametrizationBase objects The size() and operator[] methods give general access to these daughters.

Reimplemented from TFCSParametrizationBase.

Definition at line 43 of file TFCSParametrizationChain.h.

43 {
44 return m_chain[ind];
45 };

◆ operator[]() [2/2]

virtual TFCSParametrizationBase * TFCSParametrizationChain::operator[] ( unsigned int )
inlineoverridevirtualinherited

Some derived classes have daughter instances of TFCSParametrizationBase objects The size() and operator[] methods give general access to these daughters.

Reimplemented from TFCSParametrizationBase.

Definition at line 46 of file TFCSParametrizationChain.h.

46 {
47 return m_chain[ind];
48 };

◆ pdgid()

const std::set< int > & TFCSParametrization::pdgid ( ) const
inlineoverridevirtualinherited

Reimplemented from TFCSParametrizationBase.

Definition at line 34 of file TFCSParametrization.h.

34{ return m_pdgid; };

◆ Print()

void TFCSParametrizationBinnedChain::Print ( Option_t * option = "") const
overrideinherited

Definition at line 151 of file TFCSParametrizationBinnedChain.cxx.

151 {
153 TString opt(option);
154 bool shortprint = opt.Index("short") >= 0;
155 bool longprint = msgLvl(MSG::DEBUG) || (msgLvl(MSG::INFO) && !shortprint);
156 TString optprint = opt;
157 optprint.ReplaceAll("short", "");
158
159 TString prefix = "- ";
160 for (unsigned int ichain = 0; ichain < size(); ++ichain) {
161 if (ichain == 0 && ichain != m_bin_start.front()) {
162 prefix = "> ";
163 if (longprint)
164 ATH_MSG_INFO(optprint << prefix << "Run for all bins");
165 }
166 for (unsigned int ibin = 0; ibin < get_number_of_bins(); ++ibin) {
167 if (ichain == m_bin_start[ibin]) {
168 if (ibin < get_number_of_bins() - 1)
169 if (ichain == m_bin_start[ibin + 1])
170 continue;
171 prefix = Form("%-2d", ibin);
172 if (longprint)
173 ATH_MSG_INFO(optprint << prefix << "Run for " << get_bin_text(ibin));
174 }
175 }
176 if (ichain == m_bin_start.back()) {
177 prefix = "< ";
178 if (longprint)
179 ATH_MSG_INFO(optprint << prefix << "Run for all bins");
180 }
181 chain()[ichain]->Print(opt + prefix);
182 }
183}
#define ATH_MSG_INFO(x)
bool msgLvl(const MSG::Level lvl) const
Check whether the logging system is active at the provided verbosity level.
Definition MLogging.h:222
void Print(Option_t *option="") const
Print object information.
virtual const std::string get_bin_text(int bin) const
print the range of a bin; for bin -1, print the allowed range
const Chain_t & chain() const
virtual unsigned int size() const override
Some derived classes have daughter instances of TFCSParametrizationBase objects The size() and operat...

◆ push_back()

void TFCSParametrizationChain::push_back ( const Chain_t::value_type & param)
inlineinherited

Definition at line 55 of file TFCSParametrizationChain.h.

55 {
56 m_chain.push_back(param);
57 recalc();
58 };
virtual void recalc()
Default is to call recalc_pdgid_intersect() and recalc_Ekin_eta_intersect()

◆ push_back_in_bin() [1/3]

void TFCSParametrizationEtaSelectChain::push_back_in_bin ( TFCSParametrizationBase * param)
virtual

Definition at line 27 of file TFCSParametrizationEtaSelectChain.cxx.

28 {
29 push_back_in_bin(param, param->eta_min(), param->eta_max());
30}
virtual double eta_max() const
virtual double eta_min() const
virtual void push_back_in_bin(TFCSParametrizationBase *param)

◆ push_back_in_bin() [2/3]

int TFCSParametrizationFloatSelectChain::push_back_in_bin ( TFCSParametrizationBase * param,
float low,
float up )
virtual

Reimplemented from TFCSParametrizationFloatSelectChain.

Definition at line 20 of file TFCSParametrizationFloatSelectChain.cxx.

15 {
16 if (up < low) {
17 // can't handle wrong order of bounds
18 ATH_MSG_ERROR("Cannot add " << param->GetName() << ": range [" << low << ","
19 << up << ") not well defined");
20 return -1;
21 }
22 if (get_number_of_bins() == 0) {
23 // special case of adding the first bin
24 push_back_in_bin(param, 0);
25 m_bin_low_edge[0] = low;
26 m_bin_low_edge[1] = up;
27 return 0;
28 }
29 int ilow = val_to_bin(low);
30 int iup = val_to_bin(up);
31 if (ilow < 0 && iup < 0 && m_bin_low_edge[get_number_of_bins()] == low) {
32 // special case of adding bin at the end of existing bins
33 int endbin = get_number_of_bins();
34 push_back_in_bin(param, endbin);
35 m_bin_low_edge[endbin] = low;
36 m_bin_low_edge[endbin + 1] = up;
37 return endbin;
38 }
39
40 if (ilow < 0 && iup < 0) {
41 // can't handle disjunct ranges
42 ATH_MSG_ERROR("Cannot add " << param->GetName() << ": range [" << low << ","
43 << up << ") which is outside existing range ["
44 << m_bin_low_edge[0] << ","
46 return -1;
47 }
48
49 if (iup >= 0 && ilow >= 0 && iup - ilow == 1 && m_bin_low_edge[ilow] == low &&
50 m_bin_low_edge[iup] == up) {
51 // Case of adding to an existing bin
52 push_back_in_bin(param, ilow);
53 return ilow;
54 }
55
56 if (ilow < 0 && iup == 0 && m_bin_low_edge[iup] == up) {
57 // Case of adding a new first bin before existing bins
58 int newbin = iup;
59 int oldsize = m_bin_start.size();
60 m_bin_start.resize(oldsize + 1, m_bin_start.back());
61 m_bin_start.shrink_to_fit();
62 m_bin_low_edge.resize(oldsize + 1, m_bin_low_edge.back());
63 m_bin_low_edge.shrink_to_fit();
64 for (int i = oldsize; i > newbin; --i) {
65 m_bin_start[i] = m_bin_start[i - 1];
67 }
68 m_bin_low_edge[newbin] = low;
69 m_bin_low_edge[newbin + 1] = up;
70 push_back_in_bin(param, newbin);
71 return newbin;
72 }
73
74 ATH_MSG_ERROR("Cannot add "
75 << param->GetName() << ": range [" << low << "," << up
76 << ") covers more than one bin in existing range ["
77 << m_bin_low_edge[0] << ","
79 << ") or splits an existing bin");
80 return -1;
81}
#define ATH_MSG_ERROR(x)

◆ push_back_in_bin() [3/3]

void TFCSParametrizationFloatSelectChain::push_back_in_bin ( TFCSParametrizationBase * param,
unsigned int bin )
overridevirtual

Should not be used unless the bin boundaries are already defined!

Reimplemented from TFCSParametrizationFloatSelectChain.

Definition at line 23 of file TFCSParametrizationFloatSelectChain.cxx.

84 {
86 if (m_bin_low_edge.size() < m_bin_start.size()) {
87 m_bin_low_edge.resize(m_bin_start.size(), m_bin_low_edge.back());
88 m_bin_low_edge.shrink_to_fit();
89 }
90}
virtual void push_back_in_bin(TFCSParametrizationBase *param, unsigned int bin)

◆ push_before_first_bin()

void TFCSParametrizationBinnedChain::push_before_first_bin ( TFCSParametrizationBase * param)
virtualinherited

Definition at line 18 of file TFCSParametrizationBinnedChain.cxx.

19 {
20 if (m_bin_start[0] == size()) {
21 chain().push_back(param);
22 } else {
23 Chain_t::iterator it(&chain()[m_bin_start[0]]);
24 chain().insert(it, param);
25 }
26 for (auto &ele : m_bin_start)
27 ele++;
28 recalc();
29}

◆ recalc()

void TFCSParametrizationEtaSelectChain::recalc ( )
overrideprotectedvirtual

◆ recalc_Ekin_eta_intersect()

void TFCSParametrizationChain::recalc_Ekin_eta_intersect ( )
protectedinherited

◆ recalc_Ekin_eta_union()

void TFCSParametrizationChain::recalc_Ekin_eta_union ( )
protectedinherited

Definition at line 114 of file TFCSParametrizationChain.cxx.

◆ recalc_Ekin_intersect()

void TFCSParametrizationChain::recalc_Ekin_intersect ( )
protectedinherited

Definition at line 45 of file TFCSParametrizationChain.cxx.

45 {
46 set_Ekin(*m_chain[0]);
47
48 for (const auto &param : m_chain) {
49 if (param->Ekin_min() > Ekin_min())
50 set_Ekin_min(param->Ekin_min());
51 if (param->Ekin_max() < Ekin_max())
52 set_Ekin_max(param->Ekin_max());
53 if (Ekin_nominal() < Ekin_min() || Ekin_nominal() > Ekin_max())
54 set_Ekin_nominal(param->Ekin_nominal());
55 }
56
57 if (Ekin_nominal() < Ekin_min() || Ekin_nominal() > Ekin_max())
58 set_Ekin_nominal(0.5 * (Ekin_min() + Ekin_max()));
59}
virtual void set_Ekin_max(double max)
virtual void set_Ekin_min(double min)
virtual void set_Ekin(const TFCSParametrizationBase &ref)
virtual void set_Ekin_nominal(double min)

◆ recalc_Ekin_union()

void TFCSParametrizationChain::recalc_Ekin_union ( )
protectedinherited

Definition at line 82 of file TFCSParametrizationChain.cxx.

82 {
83 set_Ekin(*m_chain[0]);
84
85 for (const auto &param : m_chain) {
86 if (param->Ekin_min() < Ekin_min())
87 set_Ekin_min(param->Ekin_min());
88 if (param->Ekin_max() > Ekin_max())
89 set_Ekin_max(param->Ekin_max());
90 if (Ekin_nominal() < Ekin_min() || Ekin_nominal() > Ekin_max())
91 set_Ekin_nominal(param->Ekin_nominal());
92 }
93
94 if (Ekin_nominal() < Ekin_min() || Ekin_nominal() > Ekin_max())
95 set_Ekin_nominal(0.5 * (Ekin_min() + Ekin_max()));
96}

◆ recalc_eta_intersect()

void TFCSParametrizationChain::recalc_eta_intersect ( )
protectedinherited

Definition at line 61 of file TFCSParametrizationChain.cxx.

61 {
62 set_eta(*m_chain[0]);
63
64 for (const auto &param : m_chain) {
65 if (param->eta_min() > eta_min())
66 set_eta_min(param->eta_min());
67 if (param->eta_max() < eta_max())
68 set_eta_max(param->eta_max());
69 if (eta_nominal() < eta_min() || eta_nominal() > eta_max())
70 set_eta_nominal(param->eta_nominal());
71 }
72
73 if (eta_nominal() < eta_min() || eta_nominal() > eta_max())
74 set_eta_nominal(0.5 * (eta_min() + eta_max()));
75}
virtual void set_eta(const TFCSParametrizationBase &ref)
virtual void set_eta_max(double max)
virtual void set_eta_nominal(double min)
virtual void set_eta_min(double min)

◆ recalc_eta_union()

void TFCSParametrizationChain::recalc_eta_union ( )
protectedinherited

Definition at line 98 of file TFCSParametrizationChain.cxx.

98 {
99 set_eta(*m_chain[0]);
100
101 for (const auto &param : m_chain) {
102 if (param->eta_min() < eta_min())
103 set_eta_min(param->eta_min());
104 if (param->eta_max() > eta_max())
105 set_eta_max(param->eta_max());
106 if (eta_nominal() < eta_min() || eta_nominal() > eta_max())
107 set_eta_nominal(param->eta_nominal());
108 }
109
110 if (eta_nominal() < eta_min() || eta_nominal() > eta_max())
111 set_eta_nominal(0.5 * (eta_min() + eta_max()));
112}

◆ recalc_pdgid_intersect()

void TFCSParametrizationChain::recalc_pdgid_intersect ( )
protectedinherited

Definition at line 20 of file TFCSParametrizationChain.cxx.

20 {
21 set_pdgid(m_chain[0]->pdgid());
22
23 for (const auto &param : m_chain) {
24 std::set<int> tmp;
25
26 std::set_intersection(pdgid().begin(), pdgid().end(),
27 param->pdgid().begin(), param->pdgid().end(),
28 std::inserter(tmp, tmp.begin()));
29 set_pdgid(tmp);
30 }
31}
virtual void set_pdgid(int id)

◆ recalc_pdgid_union()

void TFCSParametrizationChain::recalc_pdgid_union ( )
protectedinherited

Definition at line 33 of file TFCSParametrizationChain.cxx.

33 {
34 set_pdgid(chain()[0]->pdgid());
35
36 for (const auto &param : chain()) {
37 std::set<int> tmp;
38
39 std::set_union(pdgid().begin(), pdgid().end(), param->pdgid().begin(),
40 param->pdgid().end(), std::inserter(tmp, tmp.begin()));
41 set_pdgid(tmp);
42 }
43}

◆ RemoveDuplicates()

void TFCSParametrizationBase::RemoveDuplicates ( )
inherited

Definition at line 152 of file TFCSParametrizationBase.cxx.

152 {
153 FindDuplicateClasses_t dupclasses;
154 FindDuplicates(dupclasses);
155
156 std::set<TFCSParametrizationBase *> dellist;
157 for (auto &dupiter : dupclasses) {
158 FindDuplicates_t &dup = dupiter.second;
159 for (auto onedup : dup) {
160 if (onedup.second.mother.empty())
161 continue;
162 TFCSParametrizationBase *ref = onedup.first;
163 ATH_MSG_DEBUG("Main object " << ref << "=" << ref->GetName());
164 for (unsigned int i = 0; i < onedup.second.mother.size(); ++i) {
165 int index = onedup.second.index[i];
166 TFCSParametrizationBase *mother = onedup.second.mother[i];
167 TFCSParametrizationBase *delparam = mother->operator[](index);
168 unsigned int delcount = dup[delparam].mother.size();
169 if (delcount == 0) {
170 ATH_MSG_DEBUG(" - Delete object "
171 << delparam << "=" << delparam->GetName() << " index "
172 << index << " of " << mother << ", has " << delcount
173 << " other replacements attached. Deleting");
174 mother->set_daughter(index, ref);
175 dellist.insert(delparam);
176 } else {
177 ATH_MSG_WARNING(" - Delete object "
178 << delparam << "=" << delparam->GetName() << " index "
179 << index << " of " << mother << ", has " << delcount
180 << " other replacements attached. Skipping");
181 }
182 }
183 }
184 }
185
186 ATH_MSG_INFO("RERUNNING DUPLICATE FINDING");
187 FindDuplicateClasses_t dupclasses2;
188 FindDuplicates(dupclasses2);
189
190 std::map<std::string, int> ndel;
191 for (auto *delparam : dellist) {
192 FindDuplicates_t &dup2 = dupclasses2[delparam->GetName()];
193 bool present = dup2.find(delparam) != dup2.end();
194 if (present) {
195 ATH_MSG_WARNING("- Delete object " << delparam << "="
196 << delparam->GetName()
197 << " still referenced somewhere!");
198 } else {
199 ATH_MSG_DEBUG("- Delete object " << delparam << "="
200 << delparam->GetName());
201 ++ndel[delparam->ClassName()];
202 delete delparam;
203 }
204 }
205 for (auto &del : ndel)
206 ATH_MSG_INFO("Deleted " << del.second << " duplicate objects of class "
207 << del.first);
208}
virtual void set_daughter(unsigned int, TFCSParametrizationBase *)
Some derived classes have daughter instances of TFCSParametrizationBase objects The set_daughter meth...
std::map< std::string, FindDuplicates_t > FindDuplicateClasses_t
str index
Definition DeMoScan.py:362

◆ RemoveNameTitle()

void TFCSParametrizationBase::RemoveNameTitle ( )
inherited

Definition at line 210 of file TFCSParametrizationBase.cxx.

210 {
211 for (unsigned int i = 0; i < size(); ++i)
212 if ((*this)[i]) {
213 TFCSParametrizationBase *param = (*this)[i];
214 param->SetName("");
215 param->SetTitle("");
216
217 // Continue for child objects in param
218 param->RemoveNameTitle();
219 }
220}

◆ reset_match_all_pdgid()

virtual void TFCSParametrizationBase::reset_match_all_pdgid ( )
inlinevirtualinherited

Definition at line 84 of file TFCSParametrizationBase.h.

84{ ResetBit(kMatchAllPDGID); };

◆ reset_RetryChainFromStart()

void TFCSParametrizationChain::reset_RetryChainFromStart ( )
inlineinherited

Definition at line 38 of file TFCSParametrizationChain.h.

38{ ResetBit(kRetryChainFromStart); };

◆ reset_SplitChainObjects()

void TFCSParametrizationChain::reset_SplitChainObjects ( )
inlineinherited

Definition at line 34 of file TFCSParametrizationChain.h.

34{ ResetBit(kSplitChainObjects); };

◆ RetryChainFromStart()

bool TFCSParametrizationChain::RetryChainFromStart ( ) const
inlineinherited

Definition at line 36 of file TFCSParametrizationChain.h.

36{ return TestBit(kRetryChainFromStart); };

◆ set_daughter()

virtual void TFCSParametrizationChain::set_daughter ( unsigned int ,
TFCSParametrizationBase *  )
inlineoverridevirtualinherited

Some derived classes have daughter instances of TFCSParametrizationBase objects The set_daughter method allows to change these daughters - expert use only!

The original element at this position is not deleted

Reimplemented from TFCSParametrizationBase.

Definition at line 49 of file TFCSParametrizationChain.h.

50 {
51 m_chain.at(ind) = param;
52 };

◆ set_Ekin()

void TFCSParametrization::set_Ekin ( const TFCSParametrizationBase & ref)
virtualinherited

Definition at line 55 of file TFCSParametrization.cxx.

55 {
56 set_Ekin_nominal(ref.Ekin_nominal());
57 set_Ekin_min(ref.Ekin_min());
58 set_Ekin_max(ref.Ekin_max());
59}

◆ set_Ekin_eta()

void TFCSParametrization::set_Ekin_eta ( const TFCSParametrizationBase & ref)
virtualinherited

Definition at line 67 of file TFCSParametrization.cxx.

67 {
69 set_eta(ref);
70}

◆ set_Ekin_max()

void TFCSParametrization::set_Ekin_max ( double max)
virtualinherited

Definition at line 45 of file TFCSParametrization.cxx.

45{ m_Ekin_max = max; }
#define max(a, b)
Definition cfImp.cxx:41

◆ set_Ekin_min()

void TFCSParametrization::set_Ekin_min ( double min)
virtualinherited

Definition at line 43 of file TFCSParametrization.cxx.

43{ m_Ekin_min = min; }
#define min(a, b)
Definition cfImp.cxx:40

◆ set_Ekin_nominal()

void TFCSParametrization::set_Ekin_nominal ( double min)
virtualinherited

Definition at line 39 of file TFCSParametrization.cxx.

39 {
40 m_Ekin_nominal = nominal;
41}

◆ set_eta()

void TFCSParametrization::set_eta ( const TFCSParametrizationBase & ref)
virtualinherited

Definition at line 61 of file TFCSParametrization.cxx.

61 {
62 set_eta_nominal(ref.eta_nominal());
63 set_eta_min(ref.eta_min());
64 set_eta_max(ref.eta_max());
65}

◆ set_eta_max()

void TFCSParametrization::set_eta_max ( double max)
virtualinherited

Definition at line 53 of file TFCSParametrization.cxx.

53{ m_eta_max = max; }

◆ set_eta_min()

void TFCSParametrization::set_eta_min ( double min)
virtualinherited

Definition at line 51 of file TFCSParametrization.cxx.

51{ m_eta_min = min; }

◆ set_eta_nominal()

void TFCSParametrization::set_eta_nominal ( double min)
virtualinherited

Definition at line 47 of file TFCSParametrization.cxx.

47 {
48 m_eta_nominal = nominal;
49}

◆ set_geometry()

void TFCSParametrizationBase::set_geometry ( ICaloGeometry * geo)
virtualinherited

Method to set the geometry access pointer.

Loops over daughter objects if present

Reimplemented in TFCSBinnedShowerBase, TFCSHistoLateralShapeParametrization, TFCSHitCellMapping, TFCSPhiModulationCorrection, and TFCSVoxelHistoLateralCovarianceFluctuations.

Definition at line 24 of file TFCSParametrizationBase.cxx.

24 {
25 for (unsigned int i = 0; i < size(); ++i)
26 (*this)[i]->set_geometry(geo);
27}

◆ set_match_all_pdgid()

virtual void TFCSParametrizationBase::set_match_all_pdgid ( )
inlinevirtualinherited

Definition at line 83 of file TFCSParametrizationBase.h.

83{ SetBit(kMatchAllPDGID); };

◆ set_pdgid() [1/2]

void TFCSParametrization::set_pdgid ( const std::set< int > & ids)
virtualinherited

Reimplemented in TFCSEnergyBinParametrization.

Definition at line 33 of file TFCSParametrization.cxx.

◆ set_pdgid() [2/2]

void TFCSParametrization::set_pdgid ( int id)
virtualinherited

Reimplemented in TFCSEnergyBinParametrization.

Definition at line 28 of file TFCSParametrization.cxx.

28 {
29 m_pdgid.clear();
30 m_pdgid.insert(id);
31}

◆ set_pdgid_Ekin_eta()

void TFCSParametrization::set_pdgid_Ekin_eta ( const TFCSParametrizationBase & ref)
virtualinherited

Definition at line 72 of file TFCSParametrization.cxx.

73 {
75 set_pdgid(ref.pdgid());
76}
virtual void set_Ekin_eta(const TFCSParametrizationBase &ref)

◆ set_RetryChainFromStart()

void TFCSParametrizationChain::set_RetryChainFromStart ( )
inlineinherited

Definition at line 37 of file TFCSParametrizationChain.h.

37{ SetBit(kRetryChainFromStart); };

◆ set_SplitChainObjects()

void TFCSParametrizationChain::set_SplitChainObjects ( )
inlineinherited

Definition at line 33 of file TFCSParametrizationChain.h.

33{ SetBit(kSplitChainObjects); };

◆ setLevel()

void ISF_FCS::MLogging::setLevel ( MSG::Level lvl)
virtualinherited

Update outputlevel.

Definition at line 105 of file MLogging.cxx.

105 {
106 lvl = (lvl >= MSG::NUM_LEVELS) ? MSG::ALWAYS
107 : (lvl < MSG::NIL) ? MSG::NIL
108 : lvl;
109 msg().setLevel(lvl);
110}

◆ simulate()

FCSReturnCode TFCSParametrizationBinnedChain::simulate ( TFCSSimulationState & simulstate,
const TFCSTruthState * truth,
const TFCSExtrapolationState * extrapol ) const
overridevirtualinherited

Method in all derived classes to do some simulation.

Result should be returned in simulstate.

Simulate all energies in calo layers for energy parametrizations. Simulate cells for shape simulation.

Reimplemented from TFCSParametrizationChain.

Reimplemented in TFCSEnergyAndHitGAN, and TFCSEnergyAndHitGANV2.

Definition at line 64 of file TFCSParametrizationBinnedChain.cxx.

66 {
67 Int_t retry = 0;
68 Int_t retry_warning = 1;
69
71 for (int i = 0; i <= retry; i++) {
72 if (i >= retry_warning)
74 "TFCSParametrizationBinnedChain::simulate(): Retry simulate call "
75 << i << "/" << retry);
76
77 for (unsigned int ichain = 0; ichain < m_bin_start[0]; ++ichain) {
78 ATH_MSG_DEBUG("now run for all bins: " << chain()[ichain]->GetName());
79 status = simulate_and_retry(chain()[ichain], simulstate, truth, extrapol);
80 if (status >= FCSRetry) {
81 retry = status - FCSRetry;
82 retry_warning = retry >> 1;
83 if (retry_warning < 1)
84 retry_warning = 1;
85 break;
86 }
87 if (status == FCSFatal)
88 return FCSFatal;
89 }
90 if (status >= FCSRetry)
91 continue;
92
93 if (get_number_of_bins() > 0) {
94 const int bin = get_bin(simulstate, truth, extrapol);
95 if (bin >= 0 && bin < (int)get_number_of_bins()) {
96 for (unsigned int ichain = m_bin_start[bin];
97 ichain < m_bin_start[bin + 1]; ++ichain) {
98 ATH_MSG_DEBUG("for " << get_variable_text(simulstate, truth, extrapol)
99 << " run " << get_bin_text(bin) << ": "
100 << chain()[ichain]->GetName());
101 status =
102 simulate_and_retry(chain()[ichain], simulstate, truth, extrapol);
103 if (status >= FCSRetry) {
104 retry = status - FCSRetry;
105 retry_warning = retry >> 1;
106 if (retry_warning < 1)
107 retry_warning = 1;
108 break;
109 }
110 if (status == FCSFatal)
111 return FCSFatal;
112 }
113 } else {
114 ATH_MSG_WARNING("for " << get_variable_text(simulstate, truth, extrapol)
115 << ": " << get_bin_text(bin));
116 }
117 } else {
118 ATH_MSG_WARNING("no bins defined, is this intended?");
119 }
120 if (status >= FCSRetry)
121 continue;
122
123 for (unsigned int ichain = m_bin_start.back(); ichain < size(); ++ichain) {
124 ATH_MSG_DEBUG("now run for all bins: " << chain()[ichain]->GetName());
125 status = simulate_and_retry(chain()[ichain], simulstate, truth, extrapol);
126 if (status >= FCSRetry) {
127 retry = status - FCSRetry;
128 retry_warning = retry >> 1;
129 if (retry_warning < 1)
130 retry_warning = 1;
131 break;
132 }
133 if (status == FCSFatal)
134 return FCSFatal;
135 }
136
137 if (status == FCSSuccess)
138 break;
139 }
140
141 if (status != FCSSuccess) {
142 ATH_MSG_FATAL("TFCSParametrizationBinnedChain::simulate(): Simulate call "
143 "failed after "
144 << retry << " retries");
145 return FCSFatal;
146 }
147
148 return FCSSuccess;
149}
#define ATH_MSG_FATAL(x)
FCSReturnCode
Base class for all FastCaloSim parametrizations Functionality in derivde classes is provided through ...
virtual const std::string get_variable_text(TFCSSimulationState &, const TFCSTruthState *, const TFCSExtrapolationState *) const
virtual int get_bin(TFCSSimulationState &simulstate, const TFCSTruthState *, const TFCSExtrapolationState *) const
this method should determine in derived classes which bin to simulate, so that the simulate method ca...
FCSReturnCode simulate_and_retry(TFCSParametrizationBase *parametrization, TFCSSimulationState &simulstate, const TFCSTruthState *truth, const TFCSExtrapolationState *extrapol) const
status
Definition merge.py:16

◆ simulate_and_retry()

FCSReturnCode TFCSParametrizationChain::simulate_and_retry ( TFCSParametrizationBase * parametrization,
TFCSSimulationState & simulstate,
const TFCSTruthState * truth,
const TFCSExtrapolationState * extrapol ) const
protectedinherited

◆ size()

virtual unsigned int TFCSParametrizationChain::size ( ) const
inlineoverridevirtualinherited

Some derived classes have daughter instances of TFCSParametrizationBase objects The size() and operator[] methods give general access to these daughters.

Reimplemented from TFCSParametrizationBase.

Definition at line 41 of file TFCSParametrizationChain.h.

41{ return m_chain.size(); };

◆ SplitChainObjects()

bool TFCSParametrizationChain::SplitChainObjects ( ) const
inlineinherited

Definition at line 32 of file TFCSParametrizationChain.h.

32{ return TestBit(kSplitChainObjects); };

◆ startMsg()

std::string ISF_FCS::MLogging::startMsg ( MSG::Level lvl,
const std::string & file,
int line )
staticinherited

Make a message to decorate the start of logging.

Print a message for the start of logging.

Definition at line 116 of file MLogging.cxx.

116 {
117 int col1_len = 20;
118 int col2_len = 5;
119 int col3_len = 10;
120 auto last_slash = file.find_last_of('/');
121 int path_len = last_slash == std::string::npos ? 0 : last_slash;
122 int trim_point = path_len;
123 int total_len = file.length();
124 if (total_len - path_len > col1_len)
125 trim_point = total_len - col1_len;
126 std::string trimmed_name = file.substr(trim_point);
127 const char *LevelNames[MSG::NUM_LEVELS] = {
128 "NIL", "VERBOSE", "DEBUG", "INFO", "WARNING", "ERROR", "FATAL", "ALWAYS"};
129 std::string level = LevelNames[lvl];
130 std::string level_string = std::string("(") + level + ") ";
131 std::stringstream output;
132 output << std::setw(col1_len) << std::right << trimmed_name << ":"
133 << std::setw(col2_len) << std::left << line << std::setw(col3_len)
134 << std::right << level_string;
135 return output.str();
136}
output
Definition merge.py:16
TFile * file

◆ unit_test() [1/3]

void TFCSParametrizationBinnedChain::unit_test ( TFCSSimulationState * simulstate = nullptr,
const TFCSTruthState * truth = nullptr,
const TFCSExtrapolationState * extrapol = nullptr )
staticinherited

Definition at line 185 of file TFCSParametrizationBinnedChain.cxx.

187 {
188 ISF_FCS::MLogging logger;
189 if (!simulstate)
190 simulstate = new TFCSSimulationState();
191 if (!truth)
192 truth = new TFCSTruthState();
193 if (!extrapol)
194 extrapol = new TFCSExtrapolationState();
195
196 TFCSParametrizationBinnedChain chain("chain", "chain");
197 chain.setLevel(MSG::DEBUG);
198
199 ATH_MSG_NOCLASS(logger, "==== Chain setup ====");
200 chain.Print();
201 ATH_MSG_NOCLASS(logger, "==== Simulate with empty chain ====");
202 chain.simulate(*simulstate, truth, extrapol);
203 ATH_MSG_NOCLASS(logger, "===================================" << std::endl);
204
206 param = new TFCSInvisibleParametrization("A begin all", "A begin all");
207 param->setLevel(MSG::VERBOSE);
208 chain.push_before_first_bin(param);
209 param = new TFCSParametrization("A end all", "A end all");
210 param->setLevel(MSG::DEBUG);
211 chain.push_back(param);
212
213 ATH_MSG_NOCLASS(logger, "==== Chain setup ====");
214 chain.Print();
215 ATH_MSG_NOCLASS(logger, "==== Simulate only begin/end all ====");
216 chain.simulate(*simulstate, truth, extrapol);
218 "==== Simulate only begin/end all with chain retry====");
219 chain.set_RetryChainFromStart();
220 chain.simulate(*simulstate, truth, extrapol);
221 chain.reset_RetryChainFromStart();
222 ATH_MSG_NOCLASS(logger, "===================================" << std::endl);
223
224 for (int i = 0; i < 3; ++i) {
226 new TFCSInvisibleParametrization(Form("A%d", i), Form("A %d", i));
227 param->setLevel(MSG::DEBUG);
228 chain.push_back_in_bin(param, i);
229 }
230
231 for (int i = 3; i > 0; --i) {
233 new TFCSInvisibleParametrization(Form("B%d", i), Form("B %d", i));
234 param->setLevel(MSG::DEBUG);
235 chain.push_back_in_bin(param, i);
236 }
237 param = new TFCSParametrization("B end all", "B end all");
238 param->setLevel(MSG::DEBUG);
239 chain.push_back(param);
240 param = new TFCSInvisibleParametrization("B begin all", "B begin all");
241 param->setLevel(MSG::VERBOSE);
242 chain.push_before_first_bin(param);
243
244 ATH_MSG_NOCLASS(logger, "==== Chain setup ====");
245 chain.Print();
246 ATH_MSG_NOCLASS(logger, "==== Simulate with full chain ====");
247 chain.simulate(*simulstate, truth, extrapol);
249 "==== Simulate with full chain with chain retry ====");
250 chain.set_RetryChainFromStart();
251 chain.simulate(*simulstate, truth, extrapol);
252 chain.reset_RetryChainFromStart();
253 ATH_MSG_NOCLASS(logger, "===================================" << std::endl);
254}
#define ATH_MSG_NOCLASS(logger_name, x)
Definition MLogging.h:52
virtual void setLevel(MSG::Level lvl)
Update outputlevel.
Definition MLogging.cxx:105
TFCSParametrizationBinnedChain(const char *name=nullptr, const char *title=nullptr)
TFCSParametrization(const char *name=nullptr, const char *title=nullptr)
static Root::TMsgLogger logger("iLumiCalc")

◆ unit_test() [2/3]

void TFCSParametrizationEtaSelectChain::unit_test ( TFCSSimulationState * simulstate = nullptr,
TFCSTruthState * truth = nullptr,
TFCSExtrapolationState * extrapol = nullptr )
static

Definition at line 55 of file TFCSParametrizationEtaSelectChain.cxx.

57 {
58 ISF_FCS::MLogging logger;
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}
TFCSParametrizationEtaSelectChain(const char *name=nullptr, const char *title=nullptr)

◆ unit_test() [3/3]

void TFCSParametrizationFloatSelectChain::unit_test ( TFCSSimulationState * simulstate = nullptr,
TFCSTruthState * truth = nullptr,
const TFCSExtrapolationState * extrapol = nullptr )
staticinherited

Definition at line 110 of file TFCSParametrizationFloatSelectChain.cxx.

111 {
112 ISF_FCS::MLogging logger;
114 logger,
115 "==================================================================");
117 logger,
118 "= Please call TFCSParametrizationEkinSelectChain::unit_test(...) =");
120 logger,
121 "= or TFCSParametrizationEtaSelectChain ::unit_test(...) =");
123 logger,
124 "=================================================================="
125 << std::endl);
126}

◆ val_to_bin()

int TFCSParametrizationFloatSelectChain::val_to_bin ( float val) const
inherited

Definition at line 92 of file TFCSParametrizationFloatSelectChain.cxx.

92 {
93 if (val < m_bin_low_edge[0]) {
94 ATH_MSG_VERBOSE("val_to_bin(" << val << ")=-1: " << val << " < "
95 << m_bin_low_edge[0]);
96 return -1;
97 }
98 if (val >= m_bin_low_edge[get_number_of_bins()]) {
99 ATH_MSG_VERBOSE("val_to_bin(" << val << ")=-1: " << val << " >= "
101 return -1;
102 }
103
104 auto it = std::upper_bound(m_bin_low_edge.begin(), m_bin_low_edge.end(), val);
105 int dist = std::distance(m_bin_low_edge.begin(), it) - 1;
106 ATH_MSG_VERBOSE("val_to_bin(" << val << ")=" << dist);
107 return dist;
108}
#define ATH_MSG_VERBOSE(x)

Member Data Documentation

◆ ATLAS_THREAD_SAFE

boost::thread_specific_ptr<MsgStream> m_msg_tls ISF_FCS::MLogging::ATLAS_THREAD_SAFE
inlinestaticprivateinherited

Do not persistify!

MsgStream instance (a std::cout like with print-out levels)

Definition at line 215 of file MLogging.h.

◆ init_Ekin_max

double TFCSParametrizationBase::init_Ekin_max = 14000000
staticconstexprprotectedinherited

Do not persistify!

Definition at line 155 of file TFCSParametrizationBase.h.

◆ init_Ekin_min

double TFCSParametrizationBase::init_Ekin_min = 0
staticconstexprprotectedinherited

Do not persistify!

Definition at line 154 of file TFCSParametrizationBase.h.

◆ init_Ekin_nominal

double TFCSParametrizationBase::init_Ekin_nominal = 0
staticconstexprprotectedinherited

Definition at line 153 of file TFCSParametrizationBase.h.

◆ init_eta_max

double TFCSParametrizationBase::init_eta_max = 100
staticconstexprprotectedinherited

Do not persistify!

Definition at line 158 of file TFCSParametrizationBase.h.

◆ init_eta_min

double TFCSParametrizationBase::init_eta_min = -100
staticconstexprprotectedinherited

Do not persistify!

Definition at line 157 of file TFCSParametrizationBase.h.

◆ init_eta_nominal

double TFCSParametrizationBase::init_eta_nominal = 0
staticconstexprprotectedinherited

Do not persistify!

Definition at line 156 of file TFCSParametrizationBase.h.

◆ m_bin_low_edge

std::vector<float> TFCSParametrizationFloatSelectChain::m_bin_low_edge
protectedinherited

Definition at line 41 of file TFCSParametrizationFloatSelectChain.h.

◆ m_bin_start

std::vector<unsigned int> TFCSParametrizationBinnedChain::m_bin_start
protectedinherited

Contains the index where the TFCSParametrizationBase* instances to run for a given bin start.

The last entry of the vector correponds to the index from where on TFCSParametrizationBase* objects should be run again for all bins. This way one can loop over some instances for all bins, then only specific ones for one bin and at the end again over some for all bins

Definition at line 53 of file TFCSParametrizationBinnedChain.h.

◆ m_chain

Chain_t TFCSParametrizationChain::m_chain
privateinherited

Definition at line 99 of file TFCSParametrizationChain.h.

◆ m_Ekin_max

double TFCSParametrization::m_Ekin_max
privateinherited

Definition at line 64 of file TFCSParametrization.h.

◆ m_Ekin_min

double TFCSParametrization::m_Ekin_min
privateinherited

Definition at line 64 of file TFCSParametrization.h.

◆ m_Ekin_nominal

double TFCSParametrization::m_Ekin_nominal
privateinherited

Definition at line 64 of file TFCSParametrization.h.

◆ m_eta_max

double TFCSParametrization::m_eta_max
privateinherited

Definition at line 65 of file TFCSParametrization.h.

◆ m_eta_min

double TFCSParametrization::m_eta_min
privateinherited

Definition at line 65 of file TFCSParametrization.h.

◆ m_eta_nominal

double TFCSParametrization::m_eta_nominal
privateinherited

Definition at line 65 of file TFCSParametrization.h.

◆ m_nm

std::string ISF_FCS::MLogging::m_nm
privateinherited

Message source name.

Definition at line 211 of file MLogging.h.

◆ m_pdgid

std::set<int> TFCSParametrization::m_pdgid
privateinherited

Definition at line 63 of file TFCSParametrization.h.

◆ m_writtenBases

std::vector<std::unique_ptr<TFCSParametrizationBase> > TFCSParametrizationChain::m_writtenBases
privateinherited

Definition at line 102 of file TFCSParametrizationChain.h.


The documentation for this class was generated from the following files: