16 m_trigdec(
"Trig::TrigDecisionTool/TrigDecisionTool")
48 return StatusCode::SUCCESS;
62 return StatusCode::SUCCESS;
66 return StatusCode::SUCCESS;
73 return StatusCode::SUCCESS;
82 for (
const auto el : *offElectrons)
86 ATH_MSG_DEBUG(
"Offline Electron cluster object is "<< el->caloCluster());
98 auto emu_accept =
m_emulatorTool->emulate( dec, info.trigger, valid );
100 ATH_MSG_DEBUG(
"trigger : " << info.trigger <<
" (tdt/emu)");
101 ATH_MSG_DEBUG(
"L1Calo : " << accept.getCutResult(0) <<
" / " << emu_accept.getCutResult(0));
102 ATH_MSG_DEBUG(
"L2Calo : " << accept.getCutResult(1) <<
" / " << emu_accept.getCutResult(1));
103 ATH_MSG_DEBUG(
"L2 : " << accept.getCutResult(2) <<
" / " << emu_accept.getCutResult(2));
104 ATH_MSG_DEBUG(
"EFCalo : " << accept.getCutResult(3) <<
" / " << emu_accept.getCutResult(3));
105 ATH_MSG_DEBUG(
"EFTrack : " << accept.getCutResult(4) <<
" / " << emu_accept.getCutResult(4));
106 ATH_MSG_DEBUG(
"HLT : " << accept.getCutResult(5) <<
" / " << emu_accept.getCutResult(5));
108 auto monGroup =
getGroup( trigger );
112 if (accept.getCutResult(0)){
113 fillLabel(monGroup,
"decisions",
"L1Calo");
114 if (accept.getCutResult(1)){
115 fillLabel(monGroup,
"decisions",
"L2Calo");
116 if(accept.getCutResult(2)){
118 if(accept.getCutResult(3)){
119 fillLabel(monGroup,
"decisions",
"EFCalo");
120 if(accept.getCutResult(5)){
129 if (emu_accept.getCutResult(0)){
130 fillLabel(monGroup,
"emulations",
"L1Calo");
131 if (emu_accept.getCutResult(1)){
132 fillLabel(monGroup,
"emulations",
"L2Calo");
133 if(emu_accept.getCutResult(2)){
135 if(emu_accept.getCutResult(3)){
136 fillLabel(monGroup,
"emulations",
"EFCalo");
137 if(emu_accept.getCutResult(5)){
138 fillLabel(monGroup,
"emulations",
"HLT");
152 ATH_MSG_DEBUG(
"================= End Event =================");
154 return StatusCode::SUCCESS;
171 bool passedL1Calo=
false;
172 bool passedL2Calo=
false;
173 bool passedEFCalo=
false;
175 bool passedEFTrk=
false;
180 auto trigger = info.trigger;
191 if(info.type ==
"electron"){
192 std::string key =
m_matchTool->key(
"FastElectrons");
193 if(info.lrt) key =
m_matchTool->key(
"FastElectrons_LRT");
195 }
else if(info.type ==
"photon"){
203 std::string key =
m_matchTool->key(
"PrecisionCalo");
204 if(info.lrt) key =
m_matchTool->key(
"PrecisionCalo_LRT");
213 if(info.type ==
"electron"){
215 if( info.etcut || info.idperf){
219 if(info.lrt) key =
m_matchTool->key(
"Electrons_LRT");
220 if(info.gsf) key =
m_matchTool->key(
"Electrons_GSF");
224 }
else if(info.type ==
"photon"){
260 std::string
type =
"electron";
261 std::vector<std::string> strs;
262 boost::split(strs,trigger,boost::is_any_of(
"_"));
263 if(boost::contains(trigger,
"HLT_e"))
type =
"electron";
264 else if(boost::contains(trigger,
"HLT_g"))
type =
"photon";
265 bool idperf = boost::contains(trigger,
"idperf");
266 bool etcut = boost::contains(trigger,
"etcut");
267 bool lrt = boost::contains(trigger,
"lrt");
268 bool gsf = boost::contains(trigger,
"gsf");
269 std::string str_thr = strs.at(1);
271 float et = atof(str_thr.c_str());
288 const std::string &histname,
289 const std::string &
label )
const
292 fill( groupHandle, mon );
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
const ToolHandle< GenericMonitoringTool > & getGroup(const std::string &name) const
Get a specific monitoring tool from the tool handle array.
virtual StatusCode initialize() override
initialize
SG::ReadHandle< xAOD::EventInfo > GetEventInfo(const EventContext &) const
Return a ReadHandle for an EventInfo object (get run/event numbers, etc.)
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Declare a monitored scalar variable.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
void setCutResult(const std::string &cutName, bool cutResult)
Set the result of a cut, based on the cut name (safer)
@ LAr
The LAr calorimeter.
@ Error
The sub-detector issued an error.
void fill(const ToolHandle< GenericMonitoringTool > &groupHandle, std::vector< std::reference_wrapper< Monitored::IMonitoredVariable > > &&variables) const
Fills a vector of variables to a group by reference.
std::string label(const std::string &format, int i)
xAOD::TrigComposite Decision
static const unsigned int includeFailedDecisions
Run3 synonym of alsoDeactivateTEs.
static const unsigned int Physics
PhotonContainer_v1 PhotonContainer
Definition of the current "photon container version".
TrigElectronContainer_v1 TrigElectronContainer
Declare the latest version of the container.
ElectronContainer_v1 ElectronContainer
Definition of the current "electron container version".
TrigEMClusterContainer_v1 TrigEMClusterContainer
Define the latest version of the trigger EM cluster container.
TrigPhotonContainer_v1 TrigPhotonContainer
Declare the latest version of the container.
CaloClusterContainer_v1 CaloClusterContainer
Define the latest version of the calorimeter cluster container.
Extra patterns decribing particle interation process.