ATLAS Offline Software
Loading...
Searching...
No Matches
MbtsHypoTool.h
Go to the documentation of this file.
1/*
2Copyright! (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4#ifndef TRIGMINBIAS_MbtsHypoTool_H
5#define TRIGMINBIAS_MbtsHypoTool_H
6
7#include "Gaudi/Property.h"
13
14class MbtsHypoTool : virtual public ::AthAlgTool
15{
16public:
17 MbtsHypoTool(const std::string &type,
18 const std::string &name,
19 const IInterface *parent);
20
21 virtual StatusCode initialize() override;
22
29
30 StatusCode decide(MbtsHypoInfo &decisions) const;
31
32private:
33 bool applyCut(const Gaudi::Property<int> &threshold, const xAOD::TrigComposite *composit) const;
35 Gaudi::Property<bool> m_acceptAll{this, "AcceptAll", false, "Accept all events"};
36
37 Gaudi::Property<unsigned int> m_mbtsCounters{this, "MbtsCounters", 2, "The number of MBTS counters required to be above threshold"};
38
39 Gaudi::Property<bool> m_coincidence{this, "Coincidence", false, "A flag to control if this is a coincidence requirement or not"};
40
41 Gaudi::Property<bool> m_or{this, "Or", false, "Flag extending above choice to do Or between the two sides of MBTS"};
42
43 Gaudi::Property<bool> m_veto{this, "Veto", false, "Flag to select lower than threshold multiplicities"};
44
45 Gaudi::Property<int> m_mbtsmode{this, "MBTSMode", 0, "Flag to count multiplicities only on inner or outer MBTS modules (1, inner, 2 outer, 0 all) "};
46
47 Gaudi::Property<float> m_threshold{this, "Threshold", 40.0 / 222.0, "Energy threshold in pC"};
48
49 Gaudi::Property<float> m_timeCut{this, "TimeCut", -1.0, "A time cut in ns. Values <= 0 disable the time cut"};
50
51 Gaudi::Property<float> m_globalTimeOffset{this, "GlobalTimeOffset", 0, "A global time offset in ns about which the time window cuts"};
52
53 Gaudi::Property<std::vector<float>> m_timeOffsets{this, "TimeOffset", std::vector<float>(32), "Offsets with respect to the global offset of all counters. (A0-15 then C0-C15) "};
54
55 ToolHandle<GenericMonitoringTool> m_monTool{this, "MonTool", "", "Monitoring tool"};
56 struct Counts
57 {
58 size_t sideA;
59 size_t sideC;
60 };
62};
63
64#endif //> !TRIGMINBIAS_MbtsHypoTool_H
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Gaudi::Property< bool > m_or
Gaudi::Property< int > m_mbtsmode
Gaudi::Property< bool > m_acceptAll
Gaudi::Property< float > m_timeCut
Gaudi::Property< float > m_threshold
Gaudi::Property< std::vector< float > > m_timeOffsets
MbtsHypoTool(const std::string &type, const std::string &name, const IInterface *parent)
bool applyCut(const Gaudi::Property< int > &threshold, const xAOD::TrigComposite *composit) const
Gaudi::Property< bool > m_coincidence
Gaudi::Property< float > m_globalTimeOffset
Gaudi::Property< bool > m_veto
Gaudi::Property< unsigned int > m_mbtsCounters
HLT::Identifier m_decisionId
StatusCode decide(MbtsHypoInfo &decisions) const
Counts calculateMultiplicities(const xAOD::TrigT2MbtsBits *t2mbtsBits) const
ToolHandle< GenericMonitoringTool > m_monTool
virtual StatusCode initialize() override
std::set< DecisionID > DecisionIDContainer
TrigComposite_v1 TrigComposite
Declare the latest version of the class.
TrigCompositeUtils::Decision * decision
const TrigCompositeUtils::DecisionIDContainer previousDecisionIDs
const xAOD::TrigT2MbtsBits * mbtsBits