5#ifndef TRIGMUONHYPO_TRIGMUCOMBHYPOTOOL_H
6#define TRIGMUONHYPO_TRIGMUCOMBHYPOTOOL_H 1
9#include "GaudiKernel/SystemOfUnits.h"
36 const std::string & name,
37 const IInterface* parent );
62 virtual StatusCode
decide(std::vector<TrigmuCombHypoTool::CombinedMuonInfo>& toolInput)
const;
68 StatusCode
inclusiveSelection(std::vector<TrigmuCombHypoTool::CombinedMuonInfo>& input)
const;
72 StatusCode
applyOverlapRemoval(std::vector<TrigmuCombHypoTool::CombinedMuonInfo>& toolInput)
const;
73 StatusCode
checkOverlap(std::vector<TrigmuCombHypoTool::CombinedMuonInfo*>& input)
const;
75 double dR(
double eta1,
double phi1,
double eta2,
double phi2)
const;
76 double invMass(
double m1,
double pt1,
double eta1,
double phi1,
77 double m2,
double pt2,
double eta2,
double phi2)
const;
78 StatusCode
chooseBestMuon(std::vector<TrigmuCombHypoTool::CombinedMuonInfo*>& input,
const std::vector<unsigned int>& mucombResult)
const;
82 ToolHandle< GenericMonitoringTool >
m_monTool {
this,
"MonTool",
"",
"Monitoring tool" };
84 Gaudi::Property< std::vector<std::vector<double>> >
m_ptBins {
85 this,
"PtBins", { {0, 2.5} },
"Bins range of each pT threshold" };
88 this,
"PtThresholds", { {5.83 * Gaudi::Units::GeV} },
"Track pT requirement ( separate threshold for each muon )" };
91 this,
"AcceptAll",
false,
"Ignore selection" };
95 this,
"ApplyPikCuts",
false,
"Enable pi/k decay rejection" };
98 this,
"MaxPtToApplyPik", 25.,
"" };
101 this,
"MaxChi2IDPik", 3.5,
"" };
104 this,
"numMuonThreshold", 50,
"Threshold of the number of muons" };
114 this,
"ApplyStrategyDependentCuts",
false,
"" };
117 this,
"StrategyDependentPtCuts",{ 0.0, 0.0, 0.0, -3.0 },
"" };
124 this,
"DecisionPerCluster",
true,
"Is multiplicity requirement refering to muons ( false ) or RoIs/clusters with muons ( false ), relevant only in when multiplicity > 1" };
129 this,
"ApplyOR",
false,
"apply overlap removal for mucomb" };
132 this,
"RequireDR",
true,
"require or not DR cut for overlap removal"};
135 this,
"RequireMufastDR",
true,
"require or not mufast DR cut for overlap removal"};
138 this,
"RequireMass",
true,
"require or not mass cut for overlap removal"};
141 this,
"RequireSameSign",
true,
"require or not charge cut for overlap removal"};
144 this,
"EtaBins", {0, 1.9, 2.1, 9.9},
"eta bins of DR and mass thresholds"};
147 this,
"DRThres", {0.06, 0.05, 0.05},
"DR threshold"};
150 this,
"MufastDRThres", {0.06, 0.05, 0.05},
"mufast DR threshold"};
153 this,
"MassThres", {0.20, 0.15, 0.10},
"mass threshold"};
156 this,
"MinimumD0", 0.,
"lower d0 cut (mm)"};
void decisionIDs(const Decision *d, DecisionIDContainer &id)
Extracts DecisionIDs stored in the Decision object.
The Athena Transient Store API.
xAOD::TrigComposite Decision
std::set< DecisionID > DecisionIDContainer
L2CombinedMuon_v1 L2CombinedMuon
Define the latest version of the muon CB class.
L2StandAloneMuon_v2 L2StandAloneMuon
Define the latest version of the muon SA class.