Skip to content
Snippets Groups Projects
Commit d844f978 authored by Adam Edward Barton's avatar Adam Edward Barton
Browse files

Merge branch 'tauEVeto_R22' into 'master'

added new vars needed in the tauEVeto r22 version

See merge request !45353
parents 1b97caf7 0d283d0d
No related branches found
No related tags found
5 merge requests!58791DataQualityConfigurations: Modify L1Calo config for web display,!51674Fixing hotSpotInHIST for Run3 HIST,!46784MuonCondInterface: Enable thread-safety checking.,!46776Updated LArMonitoring config file for WD to match new files produced using MT,!45353added new vars needed in the tauEVeto r22 version
......@@ -121,6 +121,7 @@ std::unique_ptr<VarCalc> get_default_calculator() {
calc->insert("absleadTrackEta", Variables::absleadTrackEta );
calc->insert("leadTrackDeltaEta", Variables::leadTrackDeltaEta);
calc->insert("leadTrackDeltaPhi", Variables::leadTrackDeltaPhi);
calc->insert("leadTrackProbNNorHT", Variables::leadTrackProbNNorHT);
calc->insert("EMFracFixed", Variables::EMFracFixed );
calc->insert("etHotShotWinOverPtLeadTrk", Variables::etHotShotWinOverPtLeadTrk);
calc->insert("hadLeakFracFixed", Variables::hadLeakFracFixed);
......@@ -149,6 +150,7 @@ std::unique_ptr<VarCalc> get_default_calculator() {
calc->insert("nSCTHitsPlusDeadSensors", Variables::Track::nSCTHitsPlusDeadSensors);
calc->insert("eProbabilityHT", Variables::Track::eProbabilityHT);
calc->insert("eProbabilityNN", Variables::Track::eProbabilityNN);
calc->insert("eProbabilityNNorHT", Variables::Track::eProbabilityNNorHT);
// Cluster variable calculator functions
calc->insert("et_log", Variables::Cluster::et_log);
......@@ -288,6 +290,42 @@ bool leadTrackDeltaPhi(const xAOD::TauJet &tau, double &out){
return true;
}
bool leadTrackProbNNorHT(const xAOD::TauJet &tau, double &out){
// Track variables
auto tracks = tau.allTracks();
// Sort tracks in descending pt order
auto cmp_pt = [](const xAOD::TauTrack *lhs, const xAOD::TauTrack *rhs) {
return lhs->pt() > rhs->pt();
};
std::sort(tracks.begin(), tracks.end(), cmp_pt);
// Filter tracks
std::vector<const xAOD::TauTrack *> tracks_filtered;
for (auto tautrack : tracks) {
// skip tau tracks with invalid link to ID track
static const SG::AuxElement::ConstAccessor< xAOD::TauTrack::TrackParticleLinks_t > trackAcc( "trackLinks" );
if (!(trackAcc(*tautrack)[0])) {
//ATH_MSG_WARNING("Skipping track with invalid element link");
continue;
}
tracks_filtered.push_back(tautrack);
}
const xAOD::TauTrack* tauLeadTrack(0);
if (tracks_filtered.size()>0){
tauLeadTrack = tracks_filtered.at(0);
float eProbabilityHT = tauLeadTrack->track()->summaryValue(eProbabilityHT, xAOD::eProbabilityHT);
static const SG::AuxElement::ConstAccessor<float> acc_eProbabilityNN("eProbabilityNN");
const xAOD::TrackParticle* xTrackParticle = tauLeadTrack->track();
float eProbabilityNN = acc_eProbabilityNN(*xTrackParticle);
out = (tauLeadTrack->pt()>2000.) ? eProbabilityNN : eProbabilityHT;
}else {
out = 0.;
}
return true;
}
bool EMFracFixed(const xAOD::TauJet &tau, double &out){
static const SG::AuxElement::ConstAccessor<float> acc_emFracFixed("EMFracFixed");
float emFracFixed = acc_emFracFixed(tau);
......@@ -468,6 +506,15 @@ bool eProbabilityNN(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, do
return true;
}
bool eProbabilityNNorHT(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
auto atrack = track.track();
float eProbabilityHT = atrack->summaryValue(eProbabilityHT, xAOD::eProbabilityHT);
static const SG::AuxElement::ConstAccessor<float> acc_eProbabilityNN("eProbabilityNN");
float eProbabilityNN = acc_eProbabilityNN(*atrack);
out = (atrack->pt()>2000.) ? eProbabilityNN : eProbabilityHT;
return true;
}
} // namespace Track
......
......@@ -111,6 +111,7 @@ bool ptJetSeed_log (const xAOD::TauJet &tau, double &out);
bool absleadTrackEta (const xAOD::TauJet &tau, double &out);
bool leadTrackDeltaEta (const xAOD::TauJet &tau, double &out);
bool leadTrackDeltaPhi (const xAOD::TauJet &tau, double &out);
bool leadTrackProbNNorHT (const xAOD::TauJet &tau, double &out);
bool EMFracFixed (const xAOD::TauJet &tau, double &out);
bool etHotShotWinOverPtLeadTrk (const xAOD::TauJet &tau, double &out);
bool hadLeakFracFixed (const xAOD::TauJet &tau, double &out);
......@@ -186,6 +187,9 @@ bool eProbabilityHT(
bool eProbabilityNN(
const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out);
bool eProbabilityNNorHT(
const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out);
} // namespace Track
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment