ATLAS Offline Software
Loading...
Searching...
No Matches
DecisionAlg.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 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
15
16
17namespace TCS {
18
19 class Decision;
20
22 public:
23 // default constructor
24 DecisionAlg(const std::string & name) :
26 {};
27
28 virtual ~DecisionAlg();
29
30 virtual TCS::StatusCode process( const std::vector<TCS::TOBArray const *> & input,
31 const std::vector<TCS::TOBArray *> & output,
32 Decision & decison ) = 0;
33
34 virtual TCS::StatusCode processBitCorrect( const std::vector<TCS::TOBArray const *> & input,
35 const std::vector<TCS::TOBArray *> & output,
36 Decision & decison ) = 0;
37
38 unsigned int numberOutputBits() const { return m_numberOutputBits; }
46 DecisionAlg& setHardwareBits(const unsigned int &bitNumber,
47 const bool &valueDecision,
48 const bool &valueOverflow);
52 bool getDecisionHardwareBit(const unsigned int &bitNumber) const;
54 bool getOverflowHardwareBit(const unsigned int &bitNumber) const;
56 DecisionAlg& setFillHistosBasedOnHardware(const bool &value);
58 bool fillHistosBasedOnHardware() const;
60 DecisionAlg& setSkipHistos(const bool &value);
62 bool skipHistos() const;
69 bool fillHistos() const;
70
71 protected:
72 std::vector<std::string> m_histAccept;
73 std::vector<std::string> m_histReject;
74 std::vector<std::string> m_histAcceptM;
75 std::vector<std::string> m_histRejectM;
76 std::vector<std::string> m_histAcceptX;
77 std::vector<std::string> m_histRejectX;
78 std::vector<std::string> m_histAcceptEta1Eta2;
79 std::vector<std::string> m_histRejectEta1Eta2;
80 std::vector<std::string> m_histAcceptEta2Eta3;
81 std::vector<std::string> m_histRejectEta2Eta3;
82 std::vector<std::string> m_histAcceptEta3Eta1;
83 std::vector<std::string> m_histRejectEta3Eta1;
84
85
86 private:
87
88 virtual StatusCode doReset();
89
90 friend class TopoSteering;
91
92 // generic parameter
93 unsigned int m_numberOutputBits {1};
101 bool m_skipHistos {0};
102 };
103
104}
105
106#endif
ConfigurableAlg(const std::string &name, AlgType algType)
const std::string & name() const
std::vector< std::string > m_histAcceptEta1Eta2
Definition DecisionAlg.h:78
std::vector< std::string > m_histRejectEta2Eta3
Definition DecisionAlg.h:81
friend class TopoSteering
Definition DecisionAlg.h:90
virtual TCS::StatusCode process(const std::vector< TCS::TOBArray const * > &input, const std::vector< TCS::TOBArray * > &output, Decision &decison)=0
std::vector< std::string > m_histRejectEta3Eta1
Definition DecisionAlg.h:83
DecisionAlg & setHardwareBits(const unsigned int &bitNumber, const bool &valueDecision, const bool &valueOverflow)
propagate the hardware decision bits for each output bit of this algo
std::vector< std::string > m_histAcceptM
Definition DecisionAlg.h:74
unsigned int m_numberOutputBits
Definition DecisionAlg.h:93
void setNumberOutputBits(unsigned int numberOutputBits)
Definition DecisionAlg.h:39
std::vector< std::string > m_histAcceptEta2Eta3
Definition DecisionAlg.h:80
DecisionAlg(const std::string &name)
Definition DecisionAlg.h:24
std::vector< std::string > m_histRejectEta1Eta2
Definition DecisionAlg.h:79
uint32_t m_hardwareDecisionBits
! decision bits from hardware (assume the algo won't have >31 output bits)
Definition DecisionAlg.h:95
uint32_t m_hardwareOverflowBits
! overflow bits from hardware (assume the algo won't have >31 output bits)
Definition DecisionAlg.h:97
bool fillHistosBasedOnHardware() const
! getter
bool fillHistos() const
whether the monitoring histograms should be filled
bool skipHistos() const
! getter
bool m_skipHistos
! skip filling monitoring histos, used only when m_fillHistosBasedOnHardware==true
std::vector< std::string > m_histRejectX
Definition DecisionAlg.h:77
bool m_fillHistosBasedOnHardware
! fill accept/reject monitoring histos based on hdw decision
Definition DecisionAlg.h:99
std::vector< std::string > m_histAccept
Definition DecisionAlg.h:72
virtual TCS::StatusCode processBitCorrect(const std::vector< TCS::TOBArray const * > &input, const std::vector< TCS::TOBArray * > &output, Decision &decison)=0
bool getOverflowHardwareBit(const unsigned int &bitNumber) const
! get one hardware overflow bit from this algo
std::vector< std::string > m_histReject
Definition DecisionAlg.h:73
std::vector< std::string > m_histAcceptX
Definition DecisionAlg.h:76
unsigned int numberOutputBits() const
Definition DecisionAlg.h:38
virtual ~DecisionAlg()
bool getDecisionHardwareBit(const unsigned int &bitNumber) const
! get one hardware decision bit from this algo
DecisionAlg & setSkipHistos(const bool &value)
! toggle m_skipHistos (see TopoSteering::setOutputAlgosSkipHistograms)
DecisionAlg & setFillHistosBasedOnHardware(const bool &value)
! toggle m_fillHistosBasedOnHardware
virtual StatusCode doReset()
DecisionAlg & resetHardwareBits()
! reset all hardware bits for this algo
std::vector< std::string > m_histAcceptEta3Eta1
Definition DecisionAlg.h:82
std::vector< std::string > m_histRejectM
Definition DecisionAlg.h:75