ATLAS Offline Software
Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
LVL1::jFexInputProvider Class Reference

#include <jFexInputProvider.h>

Inheritance diagram for LVL1::jFexInputProvider:
Collaboration diagram for LVL1::jFexInputProvider:

Public Member Functions

 jFexInputProvider (const std::string &type, const std::string &name, const IInterface *parent)
 
virtual ~jFexInputProvider ()
 
virtual StatusCode initialize () override final
 
virtual StatusCode fillTopoInputEvent (TCS::TopoInputEvent &) const override final
 

Private Member Functions

StatusCode fillSRJet (TCS::TopoInputEvent &inputEvent) const
 
StatusCode fillLRJet (TCS::TopoInputEvent &inputEvent) const
 
StatusCode fillEM (TCS::TopoInputEvent &inputEvent) const
 
StatusCode fillTau (TCS::TopoInputEvent &inputEvent) const
 
StatusCode fillXE (TCS::TopoInputEvent &inputEvent) const
 
StatusCode fillTE (TCS::TopoInputEvent &inputEvent) const
 

Private Attributes

ToolHandle< GenericMonitoringToolm_monTool {this, "MonTool", "", "Monitoring tool to create online histograms"}
 
StringProperty m_gFEXJetLoc {""}
 
SG::ReadHandleKey< xAOD::jFexSRJetRoIContainerm_jJet_EDMKey {this, "jFexSRJetRoIKey", "L1_jFexSRJetRoI", "jFEX Jet EDM"}
 
SG::ReadHandleKey< xAOD::jFexLRJetRoIContainerm_jLJet_EDMKey {this, "jFexLRJetRoIKey", "L1_jFexLRJetRoI", "jFEX LJet EDM"}
 
SG::ReadHandleKey< xAOD::jFexFwdElRoIContainerm_jEM_EDMKey {this, "jFexFwdElRoIKey", "L1_jFexFwdElRoI", "jFEX EM EDM"}
 
SG::ReadHandleKey< xAOD::jFexTauRoIContainerm_jTau_EDMKey {this, "jFexTauRoIKey", "L1_jFexTauRoI", "jFEX Tau EDM"}
 
SG::ReadHandleKey< xAOD::jFexMETRoIContainerm_jXE_EDMKey {this, "jFexMETRoIKey", "L1_jFexMETRoI", "jFEX XE EDM"}
 
SG::ReadHandleKey< xAOD::jFexSumETRoIContainerm_jTE_EDMKey {this, "jFexSumETRoIKey", "L1_jFexSumETRoI", "jFEX TE EDM"}
 

Static Private Attributes

static const int m_Et_conversion = 2
 
static const double m_sumEt_conversion = 0.01
 
static const int m_phi_conversion = 2
 
static const int m_eta_conversion = 4
 
static const double m_EtDouble_conversion = 0.1
 
static const double m_sumEtDouble_conversion = 0.1
 
static const double m_phiDouble_conversion = 0.05
 
static const double m_etaDouble_conversion = 0.025
 

Detailed Description

Definition at line 24 of file jFexInputProvider.h.

Constructor & Destructor Documentation

◆ jFexInputProvider()

jFexInputProvider::jFexInputProvider ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Definition at line 32 of file jFexInputProvider.cxx.

33  :
34  base_class(type, name, parent)
35 {
36  declareInterface<LVL1::IInputTOBConverter>( this );
37 }

◆ ~jFexInputProvider()

jFexInputProvider::~jFexInputProvider ( )
virtual

Definition at line 39 of file jFexInputProvider.cxx.

40 {}

Member Function Documentation

◆ fillEM()

StatusCode jFexInputProvider::fillEM ( TCS::TopoInputEvent inputEvent) const
private

Definition at line 58 of file jFexInputProvider.cxx.

58  {
59  if (m_jEM_EDMKey.empty()) {
60  ATH_MSG_DEBUG("jFex EM input disabled, skip filling");
61  return StatusCode::SUCCESS;
62  }
64  ATH_CHECK(jEM_EDM.isValid());
65 
66  for(const xAOD::jFexFwdElRoI* jFexRoI : * jEM_EDM) {
67 
68  ATH_MSG_DEBUG( "EDM jFex Em Number: "
69  << +jFexRoI->jFexNumber() // returns an 8 bit unsigned integer referring to the jFEX number
70  << " et: "
71  << jFexRoI->et() // returns the et value of the jet in MeV unit
72  << " tobEt: "
73  << jFexRoI->tobEt() // returns the et value of the jet in units of 200 MeV
74  << " globalEta: "
75  << jFexRoI->globalEta() // returns simplified global eta in units of 0.1 (fcal straightened out, not suitable for use in L1TopoSim)
76  << " globalPhi: "
77  << jFexRoI->globalPhi() // returns simplified global phi in units of 0.1 (fcal straightened out, not suitable for use in L1TopoSim)
78  << " tobEMIso: "
79  << +jFexRoI->tobEMIso() // returns isolation bits
80  << " tobEMf1: "
81  << +jFexRoI->tobEMf1() // returns isolation bits
82  << " tobEMf2: "
83  << +jFexRoI->tobEMf2() // returns isolation bits
84  );
85 
86  unsigned int EtTopo = jFexRoI->tobEt()*m_Et_conversion;
87  unsigned int phiTopo = TSU::toTopoPhi(jFexRoI->phi());
88  int etaTopo = TSU::toTopoEta(jFexRoI->eta());
89  unsigned int isolation = jFexRoI->tobEMIso();
90  unsigned int frac1 = jFexRoI->tobEMf2();
91  unsigned int frac2 = jFexRoI->tobEMf1();
92 
93  // Avoid the events with 0 Et (events below threshold)
94  if (EtTopo==0) continue;
95 
96  TCS::jEmTOB jem( EtTopo, etaTopo, phiTopo );
97  jem.setEtDouble( static_cast<double>(EtTopo*m_EtDouble_conversion) );
98  jem.setEtaDouble( static_cast<double>(etaTopo*m_etaDouble_conversion) );
99  jem.setPhiDouble( static_cast<double>(phiTopo*m_phiDouble_conversion) );
100  jem.setIsolation( isolation );
101  jem.setFrac1( frac1 );
102  jem.setFrac2( frac2 );
103 
104  inputEvent.addjEm( jem );
105 
106  auto mon_h_jEmPt = Monitored::Scalar("jEmTOBPt", jem.EtDouble());
107  auto mon_h_jEmIsolation = Monitored::Scalar("jEmTOBIsolation", jem.isolation());
108  auto mon_h_jEmFrac1 = Monitored::Scalar("jEmTOBFrac1", jem.frac1());
109  auto mon_h_jEmFrac2 = Monitored::Scalar("jEmTOBFrac2", jem.frac2());
110  auto mon_h_jEmPhi = Monitored::Scalar("jEmTOBPhi", jem.phi());
111  auto mon_h_jEmEta = Monitored::Scalar("jEmTOBEta", jem.eta());
112  Monitored::Group(m_monTool, mon_h_jEmPt, mon_h_jEmIsolation, mon_h_jEmFrac1, mon_h_jEmFrac2, mon_h_jEmPhi, mon_h_jEmEta);
113  }
114 
115  return StatusCode::SUCCESS;
116 }

◆ fillLRJet()

StatusCode jFexInputProvider::fillLRJet ( TCS::TopoInputEvent inputEvent) const
private

Definition at line 173 of file jFexInputProvider.cxx.

173  {
174  if (m_jLJet_EDMKey.empty()) {
175  ATH_MSG_DEBUG("jFex LJet input disabled, skip filling");
176  return StatusCode::SUCCESS;
177  }
179  ATH_CHECK(jLJet_EDM.isValid());
180 
181  for(const xAOD::jFexLRJetRoI* jFexRoI : * jLJet_EDM) {
182 
183  ATH_MSG_DEBUG( "EDM jFex LJet Number: "
184  << jFexRoI->jFexNumber() // returns an 8 bit unsigned integer referring to the jFEX number
185  << " et: "
186  << jFexRoI->et() // returns the et value of the jet in MeV
187  << " tobEt: "
188  << jFexRoI->tobEt() // returns the et value of the jet in units of 200 MeV
189  << " globalEta: "
190  << jFexRoI->globalEta() // returns simplified global eta in units of 0.1 (fcal straightened out, not suitable for use in L1TopoSim)
191  << " globalPhi: "
192  << jFexRoI->globalPhi() // returns simplified global phi in units of 0.1 (fcal straightened out, not suitable for use in L1TopoSim)
193  );
194 
195  unsigned int EtTopo = jFexRoI->tobEt()*m_Et_conversion;
196  unsigned int phiTopo = TSU::toTopoPhi(jFexRoI->phi());
197  int etaTopo = TSU::toTopoEta(jFexRoI->eta());
198 
199  // Avoid the events with 0 Et (events below threshold)
200  if (EtTopo==0) continue;
201 
202  TCS::jLJetTOB jet( EtTopo, etaTopo, phiTopo );
203  jet.setEtDouble( static_cast<double>(EtTopo*m_EtDouble_conversion) );
204  jet.setEtaDouble( static_cast<double>(etaTopo*m_etaDouble_conversion) );
205  jet.setPhiDouble( static_cast<double>(phiTopo*m_phiDouble_conversion) );
206 
207  inputEvent.addjLJet( jet );
208 
209  auto mon_h_jLJetPt = Monitored::Scalar("jLJetTOBPt", jet.EtDouble());
210  auto mon_h_jLJetPhi = Monitored::Scalar("jLJetTOBPhi", jet.phi());
211  auto mon_h_jLJetEta = Monitored::Scalar("jLJetTOBEta", jet.eta());
212  Monitored::Group(m_monTool, mon_h_jLJetPt, mon_h_jLJetPhi, mon_h_jLJetEta);
213  }
214 
215  return StatusCode::SUCCESS;
216 }

◆ fillSRJet()

StatusCode jFexInputProvider::fillSRJet ( TCS::TopoInputEvent inputEvent) const
private

Definition at line 220 of file jFexInputProvider.cxx.

220  {
221  if (m_jJet_EDMKey.empty()) {
222  ATH_MSG_DEBUG("jFex Jet input disabled, skip filling");
223  return StatusCode::SUCCESS;
224  }
226  ATH_CHECK(jJet_EDM.isValid());
227 
228  for(const xAOD::jFexSRJetRoI* jFexRoI : * jJet_EDM){
229 
230  ATH_MSG_DEBUG( "EDM jFex Jet Number: "
231  << +jFexRoI->jFexNumber() // returns an 8 bit unsigned integer referring to the jFEX number
232  << " et: "
233  << jFexRoI->et() // returns the et value of the jet in MeV
234  << " tobEt: "
235  << jFexRoI->tobEt() // returns the et value of the jet in units of 200 MeV
236  << " globalEta: "
237  << jFexRoI->globalEta() // returns simplified global eta in units of 0.1 (fcal straightened out, not suitable for use in L1TopoSim)
238  << " globalPhi: "
239  << jFexRoI->globalPhi() // returns simplified global phi in units of 0.1 (fcal straightened out, not suitable for use in L1TopoSim)
240  );
241 
242  unsigned int EtTopo = jFexRoI->tobEt()*m_Et_conversion;
243  unsigned int phiTopo = TSU::toTopoPhi(jFexRoI->phi());
244  int etaTopo = TSU::toTopoEta(jFexRoI->eta());
245 
246  // Avoid the events with 0 Et (events below threshold)
247  if (EtTopo==0) continue;
248 
249  TCS::jJetTOB jet( EtTopo, etaTopo, phiTopo );
250  jet.setEtDouble( static_cast<double>(EtTopo*m_EtDouble_conversion) );
251  jet.setEtaDouble( static_cast<double>(etaTopo*m_etaDouble_conversion) );
252  jet.setPhiDouble( static_cast<double>(phiTopo*m_phiDouble_conversion) );
253 
254  inputEvent.addjJet( jet );
255 
256  auto mon_h_jJetPt = Monitored::Scalar("jJetTOBPt", jet.EtDouble());
257  auto mon_h_jJetPhi = Monitored::Scalar("jJetTOBPhi", jet.phi());
258  auto mon_h_jJetEta = Monitored::Scalar("jJetTOBEta", jet.eta());
259  Monitored::Group(m_monTool, mon_h_jJetPt, mon_h_jJetPhi, mon_h_jJetEta);
260 
261  }
262 
263  return StatusCode::SUCCESS;
264 }

◆ fillTau()

StatusCode jFexInputProvider::fillTau ( TCS::TopoInputEvent inputEvent) const
private

Definition at line 120 of file jFexInputProvider.cxx.

120  {
121  if (m_jTau_EDMKey.empty()) {
122  ATH_MSG_DEBUG("jFex Tau input disabled, skip filling");
123  return StatusCode::SUCCESS;
124  }
126  ATH_CHECK(jTau_EDM.isValid());
127 
128  for(const xAOD::jFexTauRoI* jFexRoI : * jTau_EDM) {
129 
130  ATH_MSG_DEBUG( "EDM jFex Tau Number: "
131  << +jFexRoI->jFexNumber() // returns an 8 bit unsigned integer referring to the jFEX number
132  << " et: "
133  << jFexRoI->et() // returns the et value of the jet in MeV unit
134  << " tobEt: "
135  << jFexRoI->tobEt() // returns the et value of the jet in units of 200 MeV
136  << " globalEta: "
137  << jFexRoI->globalEta() // returns simplified global eta in units of 0.1 (fcal straightened out, not suitable for use in L1TopoSim)
138  << " globalPhi: "
139  << jFexRoI->globalPhi() // returns simplified global phi in units of 0.1 (fcal straightened out, not suitable for use in L1TopoSim)
140  << " isolation: "
141  << jFexRoI->tobIso() // returns isolation value in units of 200 MeV
142  );
143 
144  unsigned int EtTopo = jFexRoI->tobEt()*m_Et_conversion;
145  unsigned int phiTopo = TSU::toTopoPhi(jFexRoI->phi());
146  int etaTopo = TSU::toTopoEta(jFexRoI->eta());
147  unsigned int isolation = jFexRoI->tobIso()*m_Et_conversion;
148 
149  // Avoid the events with 0 Et (events below threshold)
150  if (EtTopo==0) continue;
151 
152  TCS::jTauTOB jtau( EtTopo, etaTopo, phiTopo );
153  jtau.setEtDouble( static_cast<double>(EtTopo*m_EtDouble_conversion) );
154  jtau.setEtaDouble( static_cast<double>(etaTopo*m_etaDouble_conversion) );
155  jtau.setPhiDouble( static_cast<double>(phiTopo*m_phiDouble_conversion) );
156  jtau.setEtIso( isolation );
157 
158  inputEvent.addjTau( jtau );
159  inputEvent.addcTau( jtau );
160 
161  auto mon_h_jTauPt = Monitored::Scalar("jTauTOBPt", jtau.EtDouble());
162  auto mon_h_jTauIsolation = Monitored::Scalar("jTauTOBIsolation", jtau.EtIso()*m_EtDouble_conversion);
163  auto mon_h_jTauPhi = Monitored::Scalar("jTauTOBPhi", jtau.phi());
164  auto mon_h_jTauEta = Monitored::Scalar("jTauTOBEta", jtau.eta());
165  Monitored::Group(m_monTool, mon_h_jTauPt, mon_h_jTauIsolation, mon_h_jTauPhi, mon_h_jTauEta);
166  }
167 
168  return StatusCode::SUCCESS;
169 }

◆ fillTE()

StatusCode jFexInputProvider::fillTE ( TCS::TopoInputEvent inputEvent) const
private

Definition at line 351 of file jFexInputProvider.cxx.

351  {
352 
353  if (m_jTE_EDMKey.empty()) {
354  ATH_MSG_DEBUG("jFex TE input disabled, skip filling");
355  return StatusCode::SUCCESS;
356  }
357 
359  ATH_CHECK(jTE_EDM.isValid());
360 
361  int topoTE = 0;
362  bool topoTE_sat = false;
363  // jTE variations include jTEC, jTEFWD, jTEFWDA, jTEFWDC
364  // These quantities are defined according to the jFex module number
365  // FWDA = 5, FWDC = 0, C = 1,2,3,4
366  int topoTEC = 0;
367  int topoTEFWD = 0;
368  int topoTEFWDA = 0;
369  int topoTEFWDC = 0;
370 
371  for(const xAOD::jFexSumETRoI* jFexRoI : *jTE_EDM){
372 
373  // Get the TE components (upper and lower) and convert to 100 MeV units
374  int EtLowerTopo = jFexRoI->Et_lower()*m_sumEt_conversion;
375  int EtUpperTopo = jFexRoI->Et_upper()*m_sumEt_conversion;
376  int jFexNumber = jFexRoI->jFexNumber();
377  int fpgaNumber = jFexRoI->fpgaNumber();
378 
379  int Sat_lower = jFexRoI->tobSat_lower();
380  int Sat_upper = jFexRoI->tobSat_upper();
381 
382  ATH_MSG_DEBUG( "EDM jFex TE Number: "
383  << jFexNumber
384  << " FPGA Number: "
385  << fpgaNumber
386  << " Et_lower: "
387  << EtLowerTopo
388  << " Et_upper: "
389  << EtUpperTopo
390  << " Sat_lower: "
391  << Sat_lower
392  << " Sat_upper: "
393  << Sat_upper
394  );
395 
396  // jTE
397  topoTE += EtLowerTopo;
398  topoTE += EtUpperTopo;
399  topoTE_sat |= Sat_lower;
400  topoTE_sat |= Sat_upper;
401 
402  // jTEC
403  topoTEC += EtLowerTopo;
404  if( jFexNumber!=0 && jFexNumber!=5 )
405  {
406  topoTEC += EtUpperTopo;
407  }
408 
409  // jTEFWD
410  if( jFexNumber==0 || jFexNumber==5 )
411  {
412  topoTEFWD += EtUpperTopo;
413  }
414 
415  // jTEFWDA
416  if( jFexNumber==5 )
417  {
418  topoTEFWDA += EtUpperTopo;
419  }
420 
421  // jTEFWDC
422  if( jFexNumber==0 )
423  {
424  topoTEFWDC += EtUpperTopo;
425  }
426  }
427 
428  TCS::jTETOB jte( static_cast<unsigned int>(topoTE), TCS::JTE );
429  TCS::jTETOB jtec( static_cast<unsigned int>(topoTEC), TCS::JTEC );
430  TCS::jTETOB jtefwd( static_cast<unsigned int>(topoTEFWD), TCS::JTEFWD );
431  TCS::jTETOB jtefwda( static_cast<unsigned int>(topoTEFWDA), TCS::JTEFWDA );
432  TCS::jTETOB jtefwdc( static_cast<unsigned int>(topoTEFWDC), TCS::JTEFWDC );
433 
434  jte.setSaturationFlag( static_cast<double>(topoTE_sat) );
435  jte.setSumEtDouble( static_cast<double>(topoTE*m_sumEtDouble_conversion) );
436  jtec.setSumEtDouble( static_cast<double>(topoTEC*m_sumEtDouble_conversion) );
437  jtefwd.setSumEtDouble( static_cast<double>(topoTEFWD*m_sumEtDouble_conversion) );
438  jtefwda.setSumEtDouble( static_cast<double>(topoTEFWDA*m_sumEtDouble_conversion) );
439  jtefwdc.setSumEtDouble( static_cast<double>(topoTEFWDC*m_sumEtDouble_conversion) );
440 
441  inputEvent.setjTE( jte );
442  inputEvent.setjTEC( jtec );
443  inputEvent.setjTEFWD( jtefwd );
444  inputEvent.setjTEFWDA( jtefwda );
445  inputEvent.setjTEFWDC( jtefwdc );
446 
447  auto mon_h_jTE_saturation = Monitored::Scalar("jTETOBsaturation", jte.saturationFlag());
448  auto mon_h_jTE_sumEt = Monitored::Scalar("jTETOBsumEt", jte.sumEtDouble());
449  auto mon_h_jTEC_sumEt = Monitored::Scalar("jTECTOBsumEt", jtec.sumEtDouble());
450  auto mon_h_jTEFWD_sumEt = Monitored::Scalar("jTEFWDTOBsumEt", jtefwd.sumEtDouble());
451  auto mon_h_jTEFWDA_sumEt = Monitored::Scalar("jTEFWDATOBsumEt", jtefwda.sumEtDouble());
452  auto mon_h_jTEFWDC_sumEt = Monitored::Scalar("jTEFWDCTOBsumEt", jtefwdc.sumEtDouble());
453  Monitored::Group(m_monTool, mon_h_jTE_saturation, mon_h_jTE_sumEt, mon_h_jTEC_sumEt, mon_h_jTEFWD_sumEt, mon_h_jTEFWDA_sumEt, mon_h_jTEFWDC_sumEt);
454 
455  return StatusCode::SUCCESS;
456 }

◆ fillTopoInputEvent()

StatusCode jFexInputProvider::fillTopoInputEvent ( TCS::TopoInputEvent inputEvent) const
finaloverridevirtual

Definition at line 460 of file jFexInputProvider.cxx.

460  {
461  ATH_CHECK(fillEM(inputEvent));
462  ATH_CHECK(fillTau(inputEvent));
463  ATH_CHECK(fillSRJet(inputEvent));
464  ATH_CHECK(fillLRJet(inputEvent));
465  ATH_CHECK(fillXE(inputEvent));
466  ATH_CHECK(fillTE(inputEvent));
467  return StatusCode::SUCCESS;
468 }

◆ fillXE()

StatusCode jFexInputProvider::fillXE ( TCS::TopoInputEvent inputEvent) const
private

Definition at line 268 of file jFexInputProvider.cxx.

268  {
269 
270  if (m_jXE_EDMKey.empty()) {
271  ATH_MSG_DEBUG("jFex XE input disabled, skip filling");
272  return StatusCode::SUCCESS;
273  }
274 
276  ATH_CHECK(jXE_EDM.isValid());
277 
278  int global_ExTopo = 0;
279  int global_EyTopo = 0;
280  int central_ExTopo = 0;
281  int central_EyTopo = 0;
282 
283  for(const xAOD::jFexMETRoI* jFexRoI : *jXE_EDM){
284 
285  // Get the XE components and convert to 100 MeV units
286  int ExTopo = jFexRoI->tobEx()*m_Et_conversion;
287  int EyTopo = jFexRoI->tobEy()*m_Et_conversion;
288  int jFexNumber = jFexRoI->jFexNumber();
289  int fpgaNumber = jFexRoI->fpgaNumber();
290 
291  int hemisphere = fpgaNumber == 0 ? -1 : 1; //Note: flipped to produce the right sign
292 
293  ExTopo = hemisphere * ExTopo;
294  EyTopo = hemisphere * EyTopo;
295 
296  global_ExTopo += ExTopo;
297  global_EyTopo += EyTopo;
298 
299  // jXEC
300  if( jFexNumber!=0 && jFexNumber!=5 ) {
301  central_ExTopo += ExTopo;
302  central_EyTopo += EyTopo;
303  }
304 
305  ATH_MSG_DEBUG( "EDM jFex XE Number: "
306  << jFexNumber
307  << " FPGA Number: "
308  << fpgaNumber
309  << " Ex: "
310  << ExTopo
311  << " Ey: "
312  << EyTopo
313  );
314  }
315 
316  unsigned long long global_ExTopoLong = static_cast<unsigned long long>(global_ExTopo);
317  unsigned long long global_EyTopoLong = static_cast<unsigned long long>(global_EyTopo);
318  unsigned long long central_ExTopoLong = static_cast<unsigned long long>(central_ExTopo);
319  unsigned long long central_EyTopoLong = static_cast<unsigned long long>(central_EyTopo);
320 
321  unsigned long long Et2Topo = global_ExTopoLong*global_ExTopoLong + global_EyTopoLong*global_EyTopoLong;
322  unsigned int EtTopo = std::sqrt( Et2Topo );
323  unsigned long long Et2Topo_central = central_ExTopoLong*central_ExTopoLong + central_EyTopoLong*central_EyTopoLong;
324  unsigned int EtTopo_central = std::sqrt( Et2Topo_central );
325 
326  TCS::jXETOB jxe( global_ExTopo, global_EyTopo, EtTopo, TCS::JXE );
327  TCS::jXETOB jxec( central_ExTopo, central_EyTopo, EtTopo_central, TCS::JXEC );
328 
329  jxe.setExDouble( static_cast<double>(global_ExTopo*m_EtDouble_conversion) );
330  jxe.setEyDouble( static_cast<double>(global_EyTopo*m_EtDouble_conversion) );
331  jxe.setEtDouble( static_cast<double>(EtTopo*m_EtDouble_conversion) );
332  jxe.setEt2( Et2Topo );
333  jxec.setExDouble( static_cast<double>(central_ExTopo*m_EtDouble_conversion) );
334  jxec.setEyDouble( static_cast<double>(central_EyTopo*m_EtDouble_conversion) );
335  jxec.setEtDouble( static_cast<double>(EtTopo_central*m_EtDouble_conversion) );
336  jxec.setEt2( Et2Topo_central );
337 
338  inputEvent.setjXE( jxe );
339  inputEvent.setjXEC( jxec );
340  auto mon_h_jXE_Pt = Monitored::Scalar("jXETOBPt", jxe.EtDouble());
341  auto mon_h_jXE_Phi = Monitored::Scalar("jXETOBPhi", atan2(jxe.Ey(),jxe.Ex()));
342  auto mon_h_jXEC_Pt = Monitored::Scalar("jXECTOBPt", jxec.EtDouble());
343  auto mon_h_jXEC_Phi = Monitored::Scalar("jXECTOBPhi", atan2(jxec.Ey(),jxec.Ex()));
344  Monitored::Group(m_monTool, mon_h_jXE_Pt, mon_h_jXE_Phi, mon_h_jXEC_Pt, mon_h_jXEC_Phi);
345 
346  return StatusCode::SUCCESS;
347 }

◆ initialize()

StatusCode jFexInputProvider::initialize ( )
finaloverridevirtual

Definition at line 43 of file jFexInputProvider.cxx.

43  {
44 
45  CHECK(m_jJet_EDMKey.initialize(SG::AllowEmpty));
46  CHECK(m_jLJet_EDMKey.initialize(SG::AllowEmpty));
47  CHECK(m_jEM_EDMKey.initialize(SG::AllowEmpty));
48  CHECK(m_jTau_EDMKey.initialize(SG::AllowEmpty));
49  CHECK(m_jXE_EDMKey.initialize(SG::AllowEmpty));
50  CHECK(m_jTE_EDMKey.initialize(SG::AllowEmpty));
51 
52  if (!m_monTool.empty()) ATH_CHECK(m_monTool.retrieve());
53 
54  return StatusCode::SUCCESS;
55 }

Member Data Documentation

◆ m_Et_conversion

const int jFexInputProvider::m_Et_conversion = 2
staticprivate

Definition at line 56 of file jFexInputProvider.h.

◆ m_eta_conversion

const int jFexInputProvider::m_eta_conversion = 4
staticprivate

Definition at line 59 of file jFexInputProvider.h.

◆ m_etaDouble_conversion

const double jFexInputProvider::m_etaDouble_conversion = 0.025
staticprivate

Definition at line 64 of file jFexInputProvider.h.

◆ m_EtDouble_conversion

const double jFexInputProvider::m_EtDouble_conversion = 0.1
staticprivate

Definition at line 61 of file jFexInputProvider.h.

◆ m_gFEXJetLoc

StringProperty LVL1::jFexInputProvider::m_gFEXJetLoc {""}
private

Definition at line 46 of file jFexInputProvider.h.

◆ m_jEM_EDMKey

SG::ReadHandleKey<xAOD::jFexFwdElRoIContainer> LVL1::jFexInputProvider::m_jEM_EDMKey {this, "jFexFwdElRoIKey", "L1_jFexFwdElRoI", "jFEX EM EDM"}
private

Definition at line 50 of file jFexInputProvider.h.

◆ m_jJet_EDMKey

SG::ReadHandleKey<xAOD::jFexSRJetRoIContainer> LVL1::jFexInputProvider::m_jJet_EDMKey {this, "jFexSRJetRoIKey", "L1_jFexSRJetRoI", "jFEX Jet EDM"}
private

Definition at line 48 of file jFexInputProvider.h.

◆ m_jLJet_EDMKey

SG::ReadHandleKey<xAOD::jFexLRJetRoIContainer> LVL1::jFexInputProvider::m_jLJet_EDMKey {this, "jFexLRJetRoIKey", "L1_jFexLRJetRoI", "jFEX LJet EDM"}
private

Definition at line 49 of file jFexInputProvider.h.

◆ m_jTau_EDMKey

SG::ReadHandleKey<xAOD::jFexTauRoIContainer> LVL1::jFexInputProvider::m_jTau_EDMKey {this, "jFexTauRoIKey", "L1_jFexTauRoI", "jFEX Tau EDM"}
private

Definition at line 51 of file jFexInputProvider.h.

◆ m_jTE_EDMKey

SG::ReadHandleKey<xAOD::jFexSumETRoIContainer> LVL1::jFexInputProvider::m_jTE_EDMKey {this, "jFexSumETRoIKey", "L1_jFexSumETRoI", "jFEX TE EDM"}
private

Definition at line 53 of file jFexInputProvider.h.

◆ m_jXE_EDMKey

SG::ReadHandleKey<xAOD::jFexMETRoIContainer> LVL1::jFexInputProvider::m_jXE_EDMKey {this, "jFexMETRoIKey", "L1_jFexMETRoI", "jFEX XE EDM"}
private

Definition at line 52 of file jFexInputProvider.h.

◆ m_monTool

ToolHandle<GenericMonitoringTool> LVL1::jFexInputProvider::m_monTool {this, "MonTool", "", "Monitoring tool to create online histograms"}
private

Definition at line 44 of file jFexInputProvider.h.

◆ m_phi_conversion

const int jFexInputProvider::m_phi_conversion = 2
staticprivate

Definition at line 58 of file jFexInputProvider.h.

◆ m_phiDouble_conversion

const double jFexInputProvider::m_phiDouble_conversion = 0.05
staticprivate

Definition at line 63 of file jFexInputProvider.h.

◆ m_sumEt_conversion

const double jFexInputProvider::m_sumEt_conversion = 0.01
staticprivate

Definition at line 57 of file jFexInputProvider.h.

◆ m_sumEtDouble_conversion

const double jFexInputProvider::m_sumEtDouble_conversion = 0.1
staticprivate

Definition at line 62 of file jFexInputProvider.h.


The documentation for this class was generated from the following files:
LVL1::jFexInputProvider::m_etaDouble_conversion
static const double m_etaDouble_conversion
Definition: jFexInputProvider.h:64
LVL1::jFexInputProvider::fillTE
StatusCode fillTE(TCS::TopoInputEvent &inputEvent) const
Definition: jFexInputProvider.cxx:351
xAOD::jFexTauRoI_v1
Class describing properties of a LVL1 jFEX global Trigger Object (TOB) in the xAOD format.
Definition: jFexTauRoI_v1.h:23
xAOD::jFexSRJetRoI_v1
Class describing properties of a LVL1 jFEX global Trigger Object (TOB) in the xAOD format.
Definition: jFexSRJetRoI_v1.h:23
LVL1::jFexInputProvider::fillLRJet
StatusCode fillLRJet(TCS::TopoInputEvent &inputEvent) const
Definition: jFexInputProvider.cxx:173
TrigDefs::Group
Group
Properties of a chain group.
Definition: GroupProperties.h:13
LVL1::jFexInputProvider::m_jEM_EDMKey
SG::ReadHandleKey< xAOD::jFexFwdElRoIContainer > m_jEM_EDMKey
Definition: jFexInputProvider.h:50
LVL1::jFexInputProvider::m_Et_conversion
static const int m_Et_conversion
Definition: jFexInputProvider.h:56
TCS::TopoInputEvent::setjXEC
StatusCode setjXEC(const jXETOB &jXEC)
Definition: TopoInputEvent.cxx:149
TCS::JXE
@ JXE
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/Types.h:27
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
LVL1::jFexInputProvider::m_jTE_EDMKey
SG::ReadHandleKey< xAOD::jFexSumETRoIContainer > m_jTE_EDMKey
Definition: jFexInputProvider.h:53
TCS::TopoInputEvent::setjTE
StatusCode setjTE(const jTETOB &jTE)
Definition: TopoInputEvent.cxx:155
TSU::toTopoEta
int toTopoEta(float eta)
Definition: Conversions.cxx:27
TCS::JTEC
@ JTEC
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/Types.h:31
TCS::TopoInputEvent::setjXE
StatusCode setjXE(const jXETOB &jXE)
Definition: TopoInputEvent.cxx:143
TCS::TopoInputEvent::addjJet
StatusCode addjJet(const jJetTOB &jet)
Definition: TopoInputEvent.cxx:112
xAOD::jFexMETRoI_v1
Class describing properties of a LVL1 jFEX global Trigger Object (TOB) in the xAOD format.
Definition: jFexMETRoI_v1.h:22
TCS::JTEFWDA
@ JTEFWDA
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/Types.h:33
xAOD::jFexLRJetRoI_v1
Class describing properties of a LVL1 jFEX global Trigger Object (TOB) in the xAOD format.
Definition: jFexLRJetRoI_v1.h:23
TCS::TopoInputEvent::setjTEFWDC
StatusCode setjTEFWDC(const jTETOB &jTEFWDC)
Definition: TopoInputEvent.cxx:179
TCS::jJetTOB
Definition: jJetTOB.h:16
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
TCS::jLJetTOB
Definition: jLJetTOB.h:16
TCS::TopoInputEvent::setjTEC
StatusCode setjTEC(const jTETOB &jTEC)
Definition: TopoInputEvent.cxx:161
LVL1::jFexInputProvider::fillEM
StatusCode fillEM(TCS::TopoInputEvent &inputEvent) const
Definition: jFexInputProvider.cxx:58
TCS::JTE
@ JTE
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/Types.h:30
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
LVL1::jFexInputProvider::m_sumEtDouble_conversion
static const double m_sumEtDouble_conversion
Definition: jFexInputProvider.h:62
test_pyathena.parent
parent
Definition: test_pyathena.py:15
TCS::TopoInputEvent::addjTau
StatusCode addjTau(const jTauTOB &tau)
Definition: TopoInputEvent.cxx:87
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
TCS::jTauTOB
Definition: jTauTOB.h:16
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
LVL1::jFexInputProvider::m_jLJet_EDMKey
SG::ReadHandleKey< xAOD::jFexLRJetRoIContainer > m_jLJet_EDMKey
Definition: jFexInputProvider.h:49
TCS::jTETOB
Definition: jTETOB.h:13
TrigConf::name
Definition: HLTChainList.h:35
LVL1::jFexInputProvider::m_jTau_EDMKey
SG::ReadHandleKey< xAOD::jFexTauRoIContainer > m_jTau_EDMKey
Definition: jFexInputProvider.h:51
LVL1::jFexInputProvider::m_jJet_EDMKey
SG::ReadHandleKey< xAOD::jFexSRJetRoIContainer > m_jJet_EDMKey
Definition: jFexInputProvider.h:48
LVL1::jFexInputProvider::fillSRJet
StatusCode fillSRJet(TCS::TopoInputEvent &inputEvent) const
Definition: jFexInputProvider.cxx:220
LVL1::jFexInputProvider::m_jXE_EDMKey
SG::ReadHandleKey< xAOD::jFexMETRoIContainer > m_jXE_EDMKey
Definition: jFexInputProvider.h:52
xAOD::jFexSumETRoI_v1
Class describing properties of a LVL1 jFEX global Trigger Object (TOB) in the xAOD format.
Definition: jFexSumETRoI_v1.h:22
LVL1::jFexInputProvider::m_phiDouble_conversion
static const double m_phiDouble_conversion
Definition: jFexInputProvider.h:63
LVL1::jFexInputProvider::m_monTool
ToolHandle< GenericMonitoringTool > m_monTool
Definition: jFexInputProvider.h:44
LVL1::jFexInputProvider::m_sumEt_conversion
static const double m_sumEt_conversion
Definition: jFexInputProvider.h:57
LVL1::jFexInputProvider::fillTau
StatusCode fillTau(TCS::TopoInputEvent &inputEvent) const
Definition: jFexInputProvider.cxx:120
TCS::JTEFWDC
@ JTEFWDC
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/Types.h:34
TCS::jEmTOB
Definition: jEmTOB.h:16
TCS::JTEFWD
@ JTEFWD
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/Types.h:32
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
TCS::TopoInputEvent::addcTau
StatusCode addcTau(const eTauTOB &eTau)
Definition: TopoInputEvent.cxx:66
TCS::JXEC
@ JXEC
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/Types.h:28
TCS::TopoInputEvent::addjEm
StatusCode addjEm(const jEmTOB &jEm)
Definition: TopoInputEvent.cxx:56
LVL1::jFexInputProvider::m_EtDouble_conversion
static const double m_EtDouble_conversion
Definition: jFexInputProvider.h:61
Monitored::Scalar
Declare a monitored scalar variable.
Definition: MonitoredScalar.h:34
TCS::TopoInputEvent::setjTEFWD
StatusCode setjTEFWD(const jTETOB &jTEFWD)
Definition: TopoInputEvent.cxx:167
SG::AllowEmpty
@ AllowEmpty
Definition: StoreGate/StoreGate/VarHandleKey.h:30
xAOD::jFexFwdElRoI_v1
Class describing properties of a LVL1 jFEX global Trigger Object (TOB) in the xAOD format.
Definition: jFexFwdElRoI_v1.h:23
TCS::jXETOB
Definition: jXETOB.h:13
LVL1::jFexInputProvider::fillXE
StatusCode fillXE(TCS::TopoInputEvent &inputEvent) const
Definition: jFexInputProvider.cxx:268
TSU::toTopoPhi
unsigned int toTopoPhi(float phi)
Definition: Conversions.cxx:20
TCS::TopoInputEvent::setjTEFWDA
StatusCode setjTEFWDA(const jTETOB &jTEFWDA)
Definition: TopoInputEvent.cxx:173
TCS::TopoInputEvent::addjLJet
StatusCode addjLJet(const jLJetTOB &jet)
Definition: TopoInputEvent.cxx:102