27 JetTrackFilterTool::JetTrackFilterTool(
const std::string&
name) :
28 InDetTrackSystematicsTool(
name),
29 m_trackOriginTool(
"InDet::InDetTrackTruthOriginTool", this)
32 #ifndef XAOD_STANDALONE
33 declareInterface<IJetTrackFilterTool>(
this);
37 declareProperty(
"DeltaR", m_deltaR,
"Delta-R cut in which to apply jet-track efficiency rejection");
38 declareProperty(
"trkEffSystScale", m_trkEffSystScale,
"Option to scale the effect of the systematic (default 1)");
39 declareProperty(
"FakeUncertainty", m_fakeUncertTIDE,
"Option to set the fake uncertainty");
40 declareProperty(
"FLostUncertainty", m_effUncertTIDE,
"Option to set the uncertainty on FLost");
41 declareProperty(
"calibFileNomEff", m_calibFileNomEff =
"InDetTrackSystematicsTools/CalibData_22.0_2022-v00/TrackingRecommendations_prelim_rel22.root");
48 m_rnd = std::make_unique<TRandom3>(m_seed);
52 "EfficiencyVSEtaPt_AfterRebinningNominal_Loose" ) );
56 ATH_CHECK ( m_trackOriginTool.retrieve() );
60 return StatusCode::SUCCESS;
64 JetTrackFilterTool::~JetTrackFilterTool()
66 delete m_trkNomEff; m_trkNomEff =
nullptr;
72 if (
track ==
nullptr) {
76 if (
jet ==
nullptr ) {
82 constexpr
bool useRapidity =
false;
85 if ( isActive( TRK_EFF_LOOSE_TIDE ) ) {
88 float probDrop = std::fabs(m_trkEffSystScale);
89 probDrop *= m_effUncertTIDE;
90 probDrop *= getNomTrkEff(
track );
91 if ( m_rnd->Uniform(0, 1) < probDrop )
return false;
94 int origin = m_trackOriginTool->getTrackOrigin(
track);
96 if( isActive( TRK_FAKE_RATE_LOOSE_TIDE ) ){
98 if(m_rnd->Uniform(0, 1) < m_fakeUncertTIDE)
return false;
102 if( isActive( TRK_FAKE_RATE_TIGHT_TIDE ) ){
104 ATH_MSG_DEBUG(
"Track fakes in jets uncertainty (Tight) covered by inclusive (Tight) uncertainty - operating in pass-through mode...");
114 if (
jets ==
nullptr ) {
119 for (
const auto*
jet : *
jets ) {
127 if (m_trkNomEff ==
nullptr) {
128 ATH_MSG_ERROR(
"Nominal track efficiency histogram is not property initialized!" );
133 return m_trkNomEff->GetBinContent(std::as_const(m_trkNomEff)->
FindBin(
track->pt()*1
e-3,
track->eta()));
138 return InDetTrackSystematicsTool::isAffectedBySystematic( syst );
143 return FilterSystematics;
148 return InDetTrackSystematicsTool::recommendedSystematics();
153 return InDetTrackSystematicsTool::applySystematicVariation(systs);