ATLAS Offline Software
Loading...
Searching...
No Matches
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
15
16#include <iostream>
17
18namespace TCS {
19
20 class Decision;
21
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;
57 DecisionAlg& setFillHistosBasedOnHardware(const bool &value);
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
ConfigurableAlg(const std::string &name, AlgType algType)
const std::string & name() const
std::vector< std::string > m_histAcceptEta1Eta2
Definition DecisionAlg.h:79
std::vector< std::string > m_histRejectEta2Eta3
Definition DecisionAlg.h:82
friend class TopoSteering
Definition DecisionAlg.h:91
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:84
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:75
unsigned int m_numberOutputBits
Definition DecisionAlg.h:94
void setNumberOutputBits(unsigned int numberOutputBits)
Definition DecisionAlg.h:40
std::vector< std::string > m_histAcceptEta2Eta3
Definition DecisionAlg.h:81
DecisionAlg(const std::string &name)
Definition DecisionAlg.h:25
std::vector< std::string > m_histRejectEta1Eta2
Definition DecisionAlg.h:80
uint32_t m_hardwareDecisionBits
! decision bits from hardware (assume the algo won't have >31 output bits)
Definition DecisionAlg.h:96
uint32_t m_hardwareOverflowBits
! overflow bits from hardware (assume the algo won't have >31 output bits)
Definition DecisionAlg.h:98
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:78
bool m_fillHistosBasedOnHardware
! fill accept/reject monitoring histos based on hdw decision
std::vector< std::string > m_histAccept
Definition DecisionAlg.h:73
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:74
std::vector< std::string > m_histAcceptX
Definition DecisionAlg.h:77
unsigned int numberOutputBits() const
Definition DecisionAlg.h:39
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:83
std::vector< std::string > m_histRejectM
Definition DecisionAlg.h:76