ATLAS Offline Software
Loading...
Searching...
No Matches
TFCSParametrizationChain.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef ISF_FASTCALOSIMEVENT_TFCSParametrizationChain_h
6#define ISF_FASTCALOSIMEVENT_TFCSParametrizationChain_h
7
9
11public:
12 TFCSParametrizationChain(const char *name = nullptr,
13 const char *title = nullptr)
14 : TFCSParametrization(name, title){};
18
31
32 bool SplitChainObjects() const { return TestBit(kSplitChainObjects); };
35
36 bool RetryChainFromStart() const { return TestBit(kRetryChainFromStart); };
39
40 typedef std::vector<TFCSParametrizationBase *> Chain_t;
41 virtual unsigned int size() const override { return m_chain.size(); };
42 virtual const TFCSParametrizationBase *
43 operator[](unsigned int ind) const override {
44 return m_chain[ind];
45 };
46 virtual TFCSParametrizationBase *operator[](unsigned int ind) override {
47 return m_chain[ind];
48 };
49 virtual void set_daughter(unsigned int ind,
50 TFCSParametrizationBase *param) override {
51 m_chain.at(ind) = param;
52 };
53 const Chain_t &chain() const { return m_chain; };
54 Chain_t &chain() { return m_chain; };
55 void push_back(const Chain_t::value_type &param) {
56 m_chain.push_back(param);
57 recalc();
58 };
59
60 virtual bool is_match_Ekin_bin(int Ekin_bin) const override;
61 virtual bool is_match_calosample(int calosample) const override;
62
63 virtual FCSReturnCode
64 simulate(TFCSSimulationState &simulstate, const TFCSTruthState *truth,
65 const TFCSExtrapolationState *extrapol) const override;
66
67 void Print(Option_t *option = "") const override;
68
69 static void unit_test(TFCSSimulationState *simulstate = nullptr,
70 const TFCSTruthState *truth = nullptr,
71 const TFCSExtrapolationState *extrapol = nullptr);
72
73 // THIS CLASS HAS A CUSTOM STREAMER! CHANGES IN THE VERSIONING OR DATA TYPES
74 // NEED TO BE IMPLEMENTED BY HAND! void
75 // TFCSParametrizationChain::Streamer(TBuffer &R__b)
76protected:
78 void recalc_pdgid_union();
79
83
84 void recalc_Ekin_union();
85 void recalc_eta_union();
87
90 virtual void recalc();
91
94 TFCSSimulationState &simulstate,
95 const TFCSTruthState *truth,
96 const TFCSExtrapolationState *extrapol) const;
97
98private:
100
101 // Ensure all objects to be written by the streamer live long enough.
102 std::vector<std::unique_ptr<TFCSParametrizationBase>> m_writtenBases;
103
104 ClassDefOverride(TFCSParametrizationChain, 2) // TFCSParametrizationChain
105};
106
108
109#endif
const boost::regex ref(r_ef)
FCSReturnCode
Base class for all FastCaloSim parametrizations Functionality in derivde classes is provided through ...
TFCSParametrizationBase(const char *name=nullptr, const char *title=nullptr)
FCSReturnCode simulate_and_retry(TFCSParametrizationBase *parametrization, TFCSSimulationState &simulstate, const TFCSTruthState *truth, const TFCSExtrapolationState *extrapol) const
TFCSParametrizationChain(const TFCSParametrizationChain &ref)
static void unit_test(TFCSSimulationState *simulstate=nullptr, const TFCSTruthState *truth=nullptr, const TFCSExtrapolationState *extrapol=nullptr)
void Print(Option_t *option="") const override
FCSSplitChainObjects
Status bit for chain persistency.
@ kSplitChainObjects
Set this bit in the TObject bit field if the TFCSParametrizationBase objects in the chain should be w...
TFCSParametrizationChain(const char *name=nullptr, const char *title=nullptr)
std::vector< TFCSParametrizationBase * > Chain_t
virtual bool is_match_calosample(int calosample) const override
virtual const TFCSParametrizationBase * operator[](unsigned int ind) const override
Some derived classes have daughter instances of TFCSParametrizationBase objects The size() and operat...
void push_back(const Chain_t::value_type &param)
const Chain_t & chain() const
virtual FCSReturnCode simulate(TFCSSimulationState &simulstate, const TFCSTruthState *truth, const TFCSExtrapolationState *extrapol) const override
Method in all derived classes to do some simulation.
virtual void recalc()
Default is to call recalc_pdgid_intersect() and recalc_Ekin_eta_intersect()
virtual TFCSParametrizationBase * operator[](unsigned int ind) override
Some derived classes have daughter instances of TFCSParametrizationBase objects The size() and operat...
virtual bool is_match_Ekin_bin(int Ekin_bin) const override
std::vector< std::unique_ptr< TFCSParametrizationBase > > m_writtenBases
virtual void set_daughter(unsigned int ind, TFCSParametrizationBase *param) override
Some derived classes have daughter instances of TFCSParametrizationBase objects The set_daughter meth...
virtual unsigned int size() const override
Some derived classes have daughter instances of TFCSParametrizationBase objects The size() and operat...
TFCSParametrization(const char *name=nullptr, const char *title=nullptr)