ATLAS Offline Software
Loading...
Searching...
No Matches
TFCSEnergyAndHitGANV2.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef ISF_FASTCALOSIMEVENT_TFCSEnergyAndHitGANV2_h
6#define ISF_FASTCALOSIMEVENT_TFCSEnergyAndHitGANV2_h
7
12#include <string>
13#include <mutex>
14
15
16// forward declare lwtnn dependencies
17namespace lwt {
18class LightweightGraph;
19}
20
22public:
23 TFCSEnergyAndHitGANV2(const char *name = nullptr,
24 const char *title = nullptr);
25 virtual ~TFCSEnergyAndHitGANV2();
26
27 virtual bool is_match_Ekin_bin(int /*Ekin_bin*/) const override {
28 return true;
29 };
30 virtual bool is_match_calosample(int calosample) const override;
31 virtual bool is_match_all_Ekin_bin() const override { return true; };
32 virtual bool is_match_all_calosample() const override { return false; };
33
36 kGANfreemem = BIT(17)
38 };
39
40 bool GANfreemem() const { return TestBit(kGANfreemem); };
41 void set_GANfreemem() { SetBit(kGANfreemem); };
42 void reset_GANfreemem() { ResetBit(kGANfreemem); };
43
50
51 bool OnlyScaleEnergy() const { return TestBit(kOnlyScaleEnergy); };
54
56 virtual int get_bin(TFCSSimulationState &simulstate, const TFCSTruthState *,
57 const TFCSExtrapolationState *) const override {
58 return simulstate.getAuxInfo<int>("GANlayer"_FCShash);
59 };
60 virtual const std::string
62 const TFCSExtrapolationState *) const override;
63
64 unsigned int get_nr_of_init(unsigned int bin) const;
65 void set_nr_of_init(unsigned int bin, unsigned int ninit);
66
68 return m_param.GetBinning();
69 };
71 return m_slice->GetExtrapolatorWeights();
72 };
73
74 bool initializeNetwork(int const &pid, int const &etaMin,
75 const std::string &FastCaloGANInputFolderName);
76
77 bool fillEnergy(TFCSSimulationState &simulstate, const TFCSTruthState *truth,
78 const TFCSExtrapolationState *extrapol) const;
79 virtual FCSReturnCode
80 simulate(TFCSSimulationState &simulstate, const TFCSTruthState *truth,
81 const TFCSExtrapolationState *extrapol) const override;
82
83 virtual void Print(Option_t *option = "") const override;
84
85 static void test_path(const std::string& path,
86 TFCSSimulationState *simulstate = nullptr,
87 const TFCSTruthState *truth = nullptr,
88 const TFCSExtrapolationState *extrapol = nullptr,
89 const std::string& outputname = "unnamed", int pid = 211);
90
91 static void unit_test(TFCSSimulationState *simulstate = nullptr,
92 const TFCSTruthState *truth = nullptr,
93 const TFCSExtrapolationState *extrapol = nullptr);
94
95protected:
96 void SetRegionAndSliceFromXML(int pid, int etaMax,
97 std::string FastCaloGANInputFolderName);
98
99private:
100 static int GetBinsInFours(double const bins);
101 int GetAlphaBinsForRBin(const TAxis *x, int ix, int yBinNum) const;
102
103 std::vector<int> m_bin_ninit;
104
105 // Persistify configuration in string m_input. A custom Streamer(...) builds
106 // m_graph on the fly when reading from file. Inside Athena, if GANfreemem()
107 // is true, the content of m_input is deleted after reading in order to free
108 // memory
109
112 mutable std::mutex m_mutex;
113
114 ClassDefOverride(TFCSEnergyAndHitGANV2, 2) // TFCSEnergyAndHitGANV2
115};
116
117#endif
static const std::vector< std::string > bins
FCSReturnCode
Base class for all FastCaloSim parametrizations Functionality in derivde classes is provided through ...
#define x
std::vector< int > m_bin_ninit
bool initializeNetwork(int const &pid, int const &etaMin, const std::string &FastCaloGANInputFolderName)
virtual bool is_match_all_calosample() const override
static void unit_test(TFCSSimulationState *simulstate=nullptr, const TFCSTruthState *truth=nullptr, const TFCSExtrapolationState *extrapol=nullptr)
unsigned int get_nr_of_init(unsigned int bin) const
virtual int get_bin(TFCSSimulationState &simulstate, const TFCSTruthState *, const TFCSExtrapolationState *) const override
use the layer to be done as binning of the GAN chain
static void test_path(const std::string &path, TFCSSimulationState *simulstate=nullptr, const TFCSTruthState *truth=nullptr, const TFCSExtrapolationState *extrapol=nullptr, const std::string &outputname="unnamed", int pid=211)
virtual const std::string get_variable_text(TFCSSimulationState &simulstate, const TFCSTruthState *, const TFCSExtrapolationState *) const override
void SetRegionAndSliceFromXML(int pid, int etaMax, std::string FastCaloGANInputFolderName)
int GetAlphaBinsForRBin(const TAxis *x, int ix, int yBinNum) const
static int GetBinsInFours(double const bins)
virtual void Print(Option_t *option="") const override
const TFCSGANXMLParameters::Binning & get_Binning() const
virtual bool is_match_all_Ekin_bin() const override
FCSEnergyInitializationStatusBits
Status bit for energy initialization.
@ kOnlyScaleEnergy
Set this bit in the TObject bit field the simulated energy.
virtual bool is_match_calosample(int calosample) const override
virtual bool is_match_Ekin_bin(int) const override
const TFCSGANEtaSlice::ExtrapolatorWeights get_ExtrapolationWeights() const
TFCSEnergyAndHitGANV2(const char *name=nullptr, const char *title=nullptr)
bool fillEnergy(TFCSSimulationState &simulstate, const TFCSTruthState *truth, const TFCSExtrapolationState *extrapol) const
FCSGANfreemem
Status bit for chain persistency.
@ kGANfreemem
Set this bit in the TObject bit if the memory for m_input should be freed after reading in athena.
virtual FCSReturnCode simulate(TFCSSimulationState &simulstate, const TFCSTruthState *truth, const TFCSExtrapolationState *extrapol) const override
Method in all derived classes to do some simulation.
void set_nr_of_init(unsigned int bin, unsigned int ninit)
TFCSGANXMLParameters m_param
std::map< int, double > ExtrapolatorWeights
std::map< int, TH2D > Binning
TFCSParametrizationBinnedChain(const char *name=nullptr, const char *title=nullptr)
const T getAuxInfo(std::uint32_t index) const