ATLAS Offline Software
Trigger/TrigT1/L1Topo/L1TopoInterfaces/L1TopoInterfaces/DecisionAlg.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
3 */
4 // DecisionAlg.h
5 // TopoCore
6 // Created by Joerg Stelzer on 11/15/12.
7 
8 #ifndef TCS_DecisionAlg
9 #define TCS_DecisionAlg
10 
12 #include "L1TopoEvent/TOBArray.h"
15 
16 #include <iostream>
17 
18 namespace TCS {
19 
20  class Decision;
21 
22  class DecisionAlg : public ConfigurableAlg {
23  public:
24  // default constructor
25  DecisionAlg(const std::string & name) :
27  {};
28 
29  virtual ~DecisionAlg();
30 
31  virtual TCS::StatusCode process( const std::vector<TCS::TOBArray const *> & input,
32  const std::vector<TCS::TOBArray *> & output,
33  Decision & decison ) = 0;
34 
35  virtual TCS::StatusCode processBitCorrect( const std::vector<TCS::TOBArray const *> & input,
36  const std::vector<TCS::TOBArray *> & output,
37  Decision & decison ) = 0;
38 
39  unsigned int numberOutputBits() const { return m_numberOutputBits; }
47  DecisionAlg& setHardwareBits(const unsigned int &bitNumber,
48  const bool &valueDecision,
49  const bool &valueOverflow);
53  bool getDecisionHardwareBit(const unsigned int &bitNumber) const;
55  bool getOverflowHardwareBit(const unsigned int &bitNumber) const;
59  bool fillHistosBasedOnHardware() const;
61  DecisionAlg& setSkipHistos(const bool &value);
63  bool skipHistos() const;
70  bool fillHistos() const;
71 
72  protected:
73  std::vector<std::string> m_histAccept;
74  std::vector<std::string> m_histReject;
75  std::vector<std::string> m_histAcceptM;
76  std::vector<std::string> m_histRejectM;
77  std::vector<std::string> m_histAcceptX;
78  std::vector<std::string> m_histRejectX;
79  std::vector<std::string> m_histAcceptEta1Eta2;
80  std::vector<std::string> m_histRejectEta1Eta2;
81  std::vector<std::string> m_histAcceptEta2Eta3;
82  std::vector<std::string> m_histRejectEta2Eta3;
83  std::vector<std::string> m_histAcceptEta3Eta1;
84  std::vector<std::string> m_histRejectEta3Eta1;
85 
86 
87  private:
88 
89  virtual StatusCode doReset();
90 
91  friend class TopoSteering;
92 
93  // generic parameter
94  unsigned int m_numberOutputBits {1};
102  bool m_skipHistos {0};
103  };
104 
105 }
106 
107 #endif
TCS::DecisionAlg::m_histRejectEta1Eta2
std::vector< std::string > m_histRejectEta1Eta2
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/L1TopoInterfaces/DecisionAlg.h:80
TCS::DecisionAlg::m_histRejectEta2Eta3
std::vector< std::string > m_histRejectEta2Eta3
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/L1TopoInterfaces/DecisionAlg.h:82
TCS::DecisionAlg::m_fillHistosBasedOnHardware
bool m_fillHistosBasedOnHardware
! fill accept/reject monitoring histos based on hdw decision
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/L1TopoInterfaces/DecisionAlg.h:100
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
TCS::DecisionAlg::DecisionAlg
DecisionAlg(const std::string &name)
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/L1TopoInterfaces/DecisionAlg.h:25
CompositeTOB.h
TCS::DecisionAlg::fillHistosBasedOnHardware
bool fillHistosBasedOnHardware() const
! getter
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/Root/DecisionAlg.cxx:84
TCS::DecisionAlg::setFillHistosBasedOnHardware
DecisionAlg & setFillHistosBasedOnHardware(const bool &value)
! toggle m_fillHistosBasedOnHardware
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/Root/DecisionAlg.cxx:78
ConfigurableAlg.h
athena.value
value
Definition: athena.py:122
TCS::DecisionAlg::m_histAcceptEta1Eta2
std::vector< std::string > m_histAcceptEta1Eta2
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/L1TopoInterfaces/DecisionAlg.h:79
TCS::DecisionAlg::numberOutputBits
unsigned int numberOutputBits() const
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/L1TopoInterfaces/DecisionAlg.h:39
TCS::DecisionAlg::setSkipHistos
DecisionAlg & setSkipHistos(const bool &value)
! toggle m_skipHistos (see TopoSteering::setOutputAlgosSkipHistograms)
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/Root/DecisionAlg.cxx:89
TCS::DecisionAlg::m_histReject
std::vector< std::string > m_histReject
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/L1TopoInterfaces/DecisionAlg.h:74
TCS::DecisionAlg
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/L1TopoInterfaces/DecisionAlg.h:22
TCS::DecisionAlg::getDecisionHardwareBit
bool getDecisionHardwareBit(const unsigned int &bitNumber) const
! get one hardware decision bit from this algo
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/Root/DecisionAlg.cxx:52
TCS::DecisionAlg::m_histAcceptEta2Eta3
std::vector< std::string > m_histAcceptEta2Eta3
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/L1TopoInterfaces/DecisionAlg.h:81
TCS::DecisionAlg::m_histRejectEta3Eta1
std::vector< std::string > m_histRejectEta3Eta1
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/L1TopoInterfaces/DecisionAlg.h:84
TCS::ConfigurableAlg::name
const std::string & name() const
Definition: ConfigurableAlg.h:48
TCS::DecisionAlg::setHardwareBits
DecisionAlg & setHardwareBits(const unsigned int &bitNumber, const bool &valueDecision, const bool &valueOverflow)
propagate the hardware decision bits for each output bit of this algo
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/Root/DecisionAlg.cxx:25
TCS::DecisionAlg::process
virtual TCS::StatusCode process(const std::vector< TCS::TOBArray const * > &input, const std::vector< TCS::TOBArray * > &output, Decision &decison)=0
StatusCode.h
TCS::DecisionAlg::m_histAccept
std::vector< std::string > m_histAccept
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/L1TopoInterfaces/DecisionAlg.h:73
TCS::DecisionAlg::fillHistos
bool fillHistos() const
whether the monitoring histograms should be filled
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/Root/DecisionAlg.cxx:100
TCS::DecisionAlg::~DecisionAlg
virtual ~DecisionAlg()
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/Root/DecisionAlg.cxx:15
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
TCS::DecisionAlg::m_histAcceptX
std::vector< std::string > m_histAcceptX
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/L1TopoInterfaces/DecisionAlg.h:77
TOBArray.h
TCS::DecisionAlg::m_hardwareOverflowBits
uint32_t m_hardwareOverflowBits
! overflow bits from hardware (assume the algo won't have >31 output bits)
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/L1TopoInterfaces/DecisionAlg.h:98
TCS::DecisionAlg::m_histAcceptEta3Eta1
std::vector< std::string > m_histAcceptEta3Eta1
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/L1TopoInterfaces/DecisionAlg.h:83
TCS::DecisionAlg::m_histRejectM
std::vector< std::string > m_histRejectM
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/L1TopoInterfaces/DecisionAlg.h:76
TCS::DecisionAlg::m_numberOutputBits
unsigned int m_numberOutputBits
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/L1TopoInterfaces/DecisionAlg.h:94
TCS::Decision
Definition: L1Topo/L1TopoInterfaces/L1TopoInterfaces/Decision.h:19
TCS::DecisionAlg::m_histAcceptM
std::vector< std::string > m_histAcceptM
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/L1TopoInterfaces/DecisionAlg.h:75
merge.output
output
Definition: merge.py:17
TCS::TopoSteering
Definition: TopoSteering.h:46
TCS::ConfigurableAlg
Definition: ConfigurableAlg.h:30
TCS::DecisionAlg::m_hardwareDecisionBits
uint32_t m_hardwareDecisionBits
! decision bits from hardware (assume the algo won't have >31 output bits)
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/L1TopoInterfaces/DecisionAlg.h:96
TrigCompositeUtils::Decision
xAOD::TrigComposite Decision
Definition: Event/xAOD/xAODTrigger/xAODTrigger/TrigComposite.h:20
TCS::DecisionAlg::resetHardwareBits
DecisionAlg & resetHardwareBits()
! reset all hardware bits for this algo
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/Root/DecisionAlg.cxx:45
TCS::DecisionAlg::m_histRejectX
std::vector< std::string > m_histRejectX
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/L1TopoInterfaces/DecisionAlg.h:78
TCS
Definition: Global/GlobalSimulation/src/IO/Decision.h:18
TCS::DecisionAlg::doReset
virtual StatusCode doReset()
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/Root/DecisionAlg.cxx:11
TCS::DecisionAlg::setNumberOutputBits
void setNumberOutputBits(unsigned int numberOutputBits)
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/L1TopoInterfaces/DecisionAlg.h:40
TCS::DecisionAlg::processBitCorrect
virtual TCS::StatusCode processBitCorrect(const std::vector< TCS::TOBArray const * > &input, const std::vector< TCS::TOBArray * > &output, Decision &decison)=0
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/Root/DecisionAlg.cxx:18
TCS::ConfigurableAlg::DECISION
@ DECISION
Definition: ConfigurableAlg.h:32
TCS::DecisionAlg::skipHistos
bool skipHistos() const
! getter
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/Root/DecisionAlg.cxx:95
TCS::StatusCode
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/StatusCode.h:15
TCS::DecisionAlg::m_skipHistos
bool m_skipHistos
! skip filling monitoring histos, used only when m_fillHistosBasedOnHardware==true
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/L1TopoInterfaces/DecisionAlg.h:102
TCS::DecisionAlg::getOverflowHardwareBit
bool getOverflowHardwareBit(const unsigned int &bitNumber) const
! get one hardware overflow bit from this algo
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/Root/DecisionAlg.cxx:65