ATLAS Offline Software
Trigger/TrigT1/TrigT1ZDC/src/ZDCTriggerSim.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "ZDCTriggerSim.h"
6 #include <iostream>
7 #include <stdexcept>
8 
9 //dump stream data
10 void ZDCTriggerSimBase::dump(std::ostream& strm) const
11 {
12  for (auto entry : m_stack) {
13  strm << entry->getType() << ": ";
14  entry->dump(strm);
15  strm << std::endl;
16  }
17 }
18 
19 //Obtain 3 bit output from 4*2 bit arm trigger decisions
21 {
23  if (ptr->getNumData() != 2 || ptr->getNumBits() != 4) throw std::logic_error("Invalid input data in ZDCTriggerSimCombLUT");
24 
25  unsigned int bitsSideA = ptr->getValueTrunc(0);
26  unsigned int bitsSideC = ptr->getValueTrunc(1);
27 
28  unsigned int address = (bitsSideC<<4) + bitsSideA;
29  unsigned int comLUTvalue = m_combLUT.at(address);
30 
31  // ZDCTriggerSim::SimDataPtr uses shared_ptr semantics so cleanup is guaranteed
32  //
34  static_cast<ZDCTriggerSim::CombLUTOutput*>(lutOut_p.get())->setDatum(comLUTvalue);
35 
36  stackPush(lutOut_p);
37 }
38 
39 // Obtain 4x2 bit output from arm energy sums
41 {
43  if (ptr->getNumData() != 2 || ptr->getNumBits() != 12) throw std::logic_error("Invalid input data in ZDCTriggerSimAllLUTs");;
44 
45  unsigned int inputSideA = ptr->getValueTrunc(0);
46  unsigned int inputSideC = ptr->getValueTrunc(1);
47 
48  unsigned int valueA = m_LUTA.at(inputSideA);
49  unsigned int valueC = m_LUTC.at(inputSideC);
50 
51  // ZDCTriggerSim::SimDataPtr uses shared_ptr semantics so cleanup is guaranteed
52  //
54  static_cast<ZDCTriggerSim::CombLUTInputsInt*>(inputs_p.get())->setData({valueA, valueC});
55 
58 }
59 
60 // Obtain arm energy sums from Module by Module Calibrated energies
62 {
64  if (ptr->getNumData() != 8 || ptr->getNumBits() != 12) throw std::logic_error("Invalid input data in ZDCTriggerSimModuleAmpls");
65 
66  unsigned int sumA = 0;
67  for (size_t i = 0; i < 4; i++) {
68  sumA += ptr->getValueTrunc(i);
69  }
70 
71  unsigned int sumC = 0;
72  for (size_t i = 4; i < 8; i++) {
73  sumC += ptr->getValueTrunc(i);
74  }
75 
76  // The sums get divided by 4
77  //
78  sumA /= 4;
79  sumC /= 4;
80 
82  static_cast<ZDCTriggerSim::SideLUTInputsInt*>(inputs_p.get())->setData({sumA, sumC});
83 
85 
87 }
ZDCTriggerSimModuleAmpls::doSimStage
virtual void doSimStage() override
Definition: ForwardDetectors/ZDC/ZdcUtils/Root/ZDCTriggerSim.cxx:66
ZDCTriggerSimBase::m_stack
SimStack m_stack
Definition: ForwardDetectors/ZDC/ZdcUtils/ZdcUtils/ZDCTriggerSim.h:176
ZDCTriggerSim.h
ZDCTriggerSimAllLUTs::doSimStage
virtual void doSimStage() override
Definition: ForwardDetectors/ZDC/ZdcUtils/Root/ZDCTriggerSim.cxx:42
ZDCTriggerSimBase::stackTopData
const ZDCTriggerSim::SimDataCPtr & stackTopData() const
Definition: ForwardDetectors/ZDC/ZdcUtils/ZdcUtils/ZDCTriggerSim.h:185
lumiFormat.i
int i
Definition: lumiFormat.py:92
ZDCTriggerSim::SimDataCPtr
std::shared_ptr< const ZDCTriggerSimDataBase > SimDataCPtr
Definition: ForwardDetectors/ZDC/ZdcUtils/ZdcUtils/ZDCTriggerSim.h:162
ZDCTriggerSim::SimDataPtr
std::shared_ptr< ZDCTriggerSimDataBase > SimDataPtr
Definition: ForwardDetectors/ZDC/ZdcUtils/ZdcUtils/ZDCTriggerSim.h:163
ZDCTriggerSimCombLUT::doSimStage
virtual void doSimStage() override
Definition: ForwardDetectors/ZDC/ZdcUtils/Root/ZDCTriggerSim.cxx:20
ZDCTriggerSimBase::stackPush
void stackPush(const ZDCTriggerSim::SimDataCPtr &ptr)
Definition: ForwardDetectors/ZDC/ZdcUtils/ZdcUtils/ZDCTriggerSim.h:181
GetAllXsec.entry
list entry
Definition: GetAllXsec.py:132
ZDCTriggerSimAllLUTs::m_LUTC
std::array< unsigned int, 4096 > m_LUTC
Definition: ForwardDetectors/ZDC/ZdcUtils/ZdcUtils/ZDCTriggerSim.h:234
ZDCTriggerSimData
Definition: ForwardDetectors/ZDC/ZdcUtils/ZdcUtils/ZDCTriggerSim.h:58
ZDCTriggerSimCombLUT::m_combLUT
std::array< unsigned int, 256 > m_combLUT
Definition: ForwardDetectors/ZDC/ZdcUtils/ZdcUtils/ZDCTriggerSim.h:208
RTTAlgmain.address
address
Definition: RTTAlgmain.py:55
ZDCTriggerSimBase::dump
void dump(std::ostream &strm) const
Definition: ForwardDetectors/ZDC/ZdcUtils/Root/ZDCTriggerSim.cxx:11
ZDCTriggerSimAllLUTs::m_LUTA
std::array< unsigned int, 4096 > m_LUTA
Definition: ForwardDetectors/ZDC/ZdcUtils/ZdcUtils/ZDCTriggerSim.h:233