44 {
45
46
48
50 if (chain == nullptr) {
51 return 1;
52 }
53
55
56
57
58
59
60
63
64
66 if (outputFile ==
nullptr || !
outputFile->IsOpen()) {
67 return 1;
68 }
69
70 auto hRingsE =
new TH1F(
"RingsE",
"Rings energy dist", 30, 0.0, 1.0);
71 hRingsE->GetXaxis()->SetCanExtend(kTRUE);
72 hRingsE->SetStats(false);
73
74 auto hOutput =
new TH1F(
"NeuralRingerOffline",
"Neural Ringer Offline", 30, -1.0, 1.0);
75 hOutput->SetStats(false);
76
77 auto hNNvrEta = new TH2F("NNOutput vs rEta",
78 "NNOutput w.r.t rEta;rEta;NNOutput",
79 50, 0, 1.2, 50, -1.00, 1.00);
80 hNNvrEta->SetOption("COLZ");
81 hNNvrEta->SetStats(false);
82
84
85 std::vector<float> ringsE;
86
87
90
91 event.getEntry(entry);
92
95
96 if (
event.retrieve(electronCont,
"Electrons").isSuccess() ){
100 (*clRingsEL)->exportRingsTo(ringsE);
101 for ( auto ringE : ringsE ){
102 hRingsE->Fill( ringE );
103 }
104 }
105
108 hOutput->Fill( output );
110 output );
111 }
112 } else {
113 std::cout << "Could not retrieve electrons container" << std::endl;
114 }
115 }
116
117 auto metaChain =
getChain(argc, argv,
"MetaData");
118
122
124
125 size_t nEntriesMeta = metaChain->GetEntries();
126 for (
size_t entry = 0;
entry < nEntriesMeta;
entry++) {
127 metaEvent.getEntry(entry);
128 std::cout <<
" :: Entry :: " <<
entry <<
"/" << nEntriesMeta << std::endl;
129 std::cout << "----------------- Reading RingSetConfs ------------------- " << std::endl;
130 if ( metaEvent.retrieve(electronRingSetConf,"ElectronRingSetsConf").isSuccess() ){
131 try {
133 ringsConf->print(std::cout);
134 }
135 std::cout << "----------------- Printing its RawConfCollection ------------------- " << std::endl;
139 }
catch (
const std::runtime_error &
e) {
140 std::cout <<
"Coudln't read RingSetConfs, reason: " <<
e.what() << std::endl;
141 }
142 } else {
143 std::cout << "ElectronRingSetsConf not available." << std::endl;
144 }
145 }
146
147
148 auto canvas =
new TCanvas(
"RingsEnergyHist");
149 hRingsE->Draw();
150 canvas->SaveAs(
"ringsE.gif");
151 canvas->SaveAs(
"ringsE.eps");
152 canvas =
new TCanvas(
"NNOutput");
153 hOutput->Draw();
154 canvas->SaveAs(
"nnOutput.gif");
155 canvas->SaveAs(
"nnOutput.eps");
156 canvas =
new TCanvas(
"NNOutVsReta");
157 hNNvrEta->Draw();
158 canvas->SaveAs(
"nnWrtReta.gif");
159 canvas->SaveAs(
"nnWrtReta.eps");
160
163
164}
#define RETURN_CHECK(CONTEXT, EXP)
Helper macro for checking return codes in a compact form in the code.
ElementLink implementation for ROOT usage.
SG::ConstAccessor< T, ALLOC > ConstAccessor
Class describing an electron.
std::vector< RawConf > RawConfCollection
typedef The raw configuration structure data holder
static void print(const RawConf &raw, std::ostream &stream)
Prints rawConf.
static void getRawConfCol(RawConfCollection &rawConfCol, const RingSetConfContainer_v1 *container)
Retrieve RawConfCollection from RingSetConf container.
Tool for accessing xAOD files outside of Athena.
@ kClassAccess
Access auxiliary data using the aux containers.
@ kBranchAccess
Access auxiliary data branch-by-branch.
TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
StatusCode Init(const char *appname)
Function initialising ROOT/PyROOT for using the ATLAS EDM.
ElectronContainer_v1 ElectronContainer
Definition of the current "electron container version".
RingSetConf_v1 RingSetConf
Definition of the current "RingSetConf version".
EventInfo_v1 EventInfo
Definition of the latest event info version.
std::vector< ElementLink< CaloRingsContainer > > CaloRingsLinks
ElementLink type pointing at such objects.
const caloRingsReader_t & getCaloRingsReader()
Get CaloRings accessor with read only permissions.
RingSetConfContainer_v1 RingSetConfContainer
Definition of the current "RingSetConf container version".
TChain * getChain(int argc, char *argv[], const char *chainName="CollectionTree")