4 #ifndef PADEMULATORTOOL_H
5 #define PADEMULATORTOOL_H
8 #include "Gaudi/Property.h"
9 #include "GaudiKernel/ConcurrencyFlags.h"
10 #include "GaudiKernel/ITHistSvc.h"
11 #include "GaudiKernel/ServiceHandle.h"
58 std::vector<PadEmulatorTrigger>
filterPriorityEncoder(
const std::vector<PadEmulatorTrigger>& input,
const bool isLarge)
const;
59 std::vector<PadEmulatorTrigger>
filterLowBandIDs(
const std::vector<PadEmulatorTrigger>& input)
const;
60 std::vector<PadEmulatorTrigger>
filterLastPhiOnly(
const std::vector<PadEmulatorTrigger>& input)
const;
61 std::vector<PadEmulatorTrigger>
filterDuplicates(
const std::vector<PadEmulatorTrigger>& input)
const;
64 Gaudi::Property<bool>
m_isMC {
this,
"IsMC",
true,
"This is MC"};
65 Gaudi::Property<bool>
m_doNtuple {
this,
"DoNtuple",
false,
"Save trigger information into the analysis flat ntuple"};
66 Gaudi::Property<unsigned short>
m_stretch {
this,
"BCstretch", 2,
"Number of BCIDs to stretch pad trigger hits"};
67 Gaudi::Property<bool>
m_ignoreBCIDs {
this,
"IgnoreBCIDs",
false,
"Ignore hit BCIDs"};
68 Gaudi::Property<bool>
m_lastPhiOnly {
this,
"LastPhiOnly",
false,
"Have phi bias in real data"};
70 Gaudi::Property<bool>
m_noDuplicates {
this,
"noDuplicates",
false,
"Remove trigger candidate duplicates"};
71 Gaudi::Property<std::string>
m_triggerLogic {
this,
"triggerLogic",
"specific5over8",
"Other options: 3and1, 2and2, 4over8, specific4over8, 5over8, superspecific5over8, 6over8, 2x3over4, 8over8"};
74 PathResolver::find_calib_file(
"sTGCPadTriggerSim/patterns_corrected_large_19_12_2023_impr_07_03_2024_forFW.vhdl"),
"Name of the vhdl file with pad patterns for LARGE sectors"};
76 PathResolver::find_calib_file(
"sTGCPadTriggerSim/patterns_corrected_small_19_12_2023_impr_07_03_2024_forFW.vhdl"),
"Name of the vhdl file with pad patterns for SMALL sectors"};
90 std::shared_ptr<MuonVal::VectorBranch<int> > m_padTrigger_digits_sector
ATLAS_THREAD_SAFE {};
93 std::shared_ptr<MuonVal::VectorBranch<int> > m_padTrigger_digits_multilayer
ATLAS_THREAD_SAFE {};
94 std::shared_ptr<MuonVal::VectorBranch<int> > m_padTrigger_digits_gasgap
ATLAS_THREAD_SAFE {};
95 std::shared_ptr<MuonVal::VectorBranch<uint32_t> > m_padTrigger_digits_source_id
ATLAS_THREAD_SAFE {};
96 std::shared_ptr<MuonVal::VectorBranch<uint32_t> > m_padTrigger_digits_pfeb
ATLAS_THREAD_SAFE {};
97 std::shared_ptr<MuonVal::VectorBranch<uint32_t> > m_padTrigger_digits_pad_channel
ATLAS_THREAD_SAFE {};
98 std::shared_ptr<MuonVal::VectorBranch<uint32_t> > m_padTrigger_digits_relbcid
ATLAS_THREAD_SAFE {};
99 std::shared_ptr<MuonVal::VectorBranch<uint8_t> > m_padTrigger_TP_R_id_init
ATLAS_THREAD_SAFE {};
100 std::shared_ptr<MuonVal::VectorBranch<uint8_t> > m_padTrigger_TP_phi_id_init
ATLAS_THREAD_SAFE {};
101 std::shared_ptr<MuonVal::VectorBranch<uint32_t> > m_padTrigger_TP_relbcid_init
ATLAS_THREAD_SAFE {};