diff --git a/Reconstruction/tauRec/python/TauAlgorithmsHolder.py b/Reconstruction/tauRec/python/TauAlgorithmsHolder.py index 55ce81b9aabb8d145366cc306a13ef928b8e9262..9e3316a7fac354c584f94c193680f452cb767e0c 100644 --- a/Reconstruction/tauRec/python/TauAlgorithmsHolder.py +++ b/Reconstruction/tauRec/python/TauAlgorithmsHolder.py @@ -309,9 +309,6 @@ def getTauSubstructure(): from tauRecTools.tauRecToolsConf import TauSubstructureVariables TauSubstructureVariables = TauSubstructureVariables( name = _name, - # parameters for CaloIsoCorrected variable - maxPileUpCorrection = 4000., #MeV - pileUpAlpha = 1.0, VertexCorrection = True, IncShowerSubtr = tauFlags.useShowerSubClusters() ) diff --git a/Reconstruction/tauRecTools/Root/CaloClusterVariables.cxx b/Reconstruction/tauRecTools/Root/CaloClusterVariables.cxx index c78183810d0b34f07005840b4875236b530151fa..2f3f5e5a07d0e2262f72fb977150753ffc8561a8 100644 --- a/Reconstruction/tauRecTools/Root/CaloClusterVariables.cxx +++ b/Reconstruction/tauRecTools/Root/CaloClusterVariables.cxx @@ -32,7 +32,7 @@ m_incShowerSubtr(true){ bool CaloClusterVariables::update(const xAOD::TauJet& pTau) { - const xAOD::Jet* pSeed = *pTau.jetLink(); + const xAOD::Jet* pSeed = pTau.jet(); if(!pSeed) return false; // Loop through jets, get links to clusters @@ -43,7 +43,7 @@ bool CaloClusterVariables::update(const xAOD::TauJet& pTau) { for (auto pCluster : clusterList){ // correct cluster if (pTau.vertexLink() && m_doVertexCorrection) - constituents.emplace_back (*pCluster, (*pTau.vertexLink())->position()); + constituents.emplace_back (*pCluster, pTau.vertex()->position()); else constituents.emplace_back (*pCluster); } @@ -95,7 +95,7 @@ bool CaloClusterVariables::update(const xAOD::TauJet& pTau) { if (this->m_numConstit < 2) this->m_totMass = DEFAULT; else { double mass2 = sum_e * sum_e - (sum_px * sum_px + sum_py * sum_py + sum_pz * sum_pz); - this->m_totMass = mass2 > 0 ? sqrt(mass2) : -sqrt(-mass2); + this->m_totMass = mass2 > 0 ? std::sqrt(mass2) : -std::sqrt(-mass2); } // Calculate the average radius of the constituents wrt the tau centroid @@ -149,7 +149,7 @@ bool CaloClusterVariables::update(const xAOD::TauJet& pTau) { if (this->m_effNumConstit_int < 2) this->m_effMass = DEFAULT; else { double mass2 = sum_e * sum_e - (sum_px * sum_px + sum_py * sum_py + sum_pz * sum_pz); - this->m_effMass = mass2 > 0 ? sqrt(mass2) : -sqrt(-mass2); + this->m_effMass = mass2 > 0 ? std::sqrt(mass2) : -std::sqrt(-mass2); } // Calculate the average radius of the constituents wrt the tau centroid @@ -175,7 +175,7 @@ TLorentzVector CaloClusterVariables::calculateTauCentroid(int nConst, const std: current_px = c.p4().Px(); current_py = c.p4().Py(); current_pz = c.p4().Pz(); - modulus = sqrt(current_px * current_px + current_py * current_py + current_pz * current_pz); + modulus = std::sqrt(current_px * current_px + current_py * current_py + current_pz * current_pz); px += current_px / modulus; py += current_py / modulus; pz += current_pz / modulus; diff --git a/Reconstruction/tauRecTools/Root/MvaTESVariableDecorator.cxx b/Reconstruction/tauRecTools/Root/MvaTESVariableDecorator.cxx index 486a8c32090486001e7295b6819fa74e7a3a2915..e109b2cac42cb4852fc95532360fa66701ab7fdf 100644 --- a/Reconstruction/tauRecTools/Root/MvaTESVariableDecorator.cxx +++ b/Reconstruction/tauRecTools/Root/MvaTESVariableDecorator.cxx @@ -31,10 +31,6 @@ StatusCode MvaTESVariableDecorator::initialize() { return StatusCode::SUCCESS; } -StatusCode MvaTESVariableDecorator::finalize() { - return StatusCode::SUCCESS; -} - //_____________________________________________________________________________ StatusCode MvaTESVariableDecorator::execute(xAOD::TauJet& xTau) const { @@ -85,8 +81,7 @@ StatusCode MvaTESVariableDecorator::execute(xAOD::TauJet& xTau) const { TLorentzVector clusters_had_P4; clusters_had_P4.SetPtEtaPhiM(0,0,0,0); - TLorentzVector LC_P4; - LC_P4.SetPtEtaPhiM(xTau.ptDetectorAxis(), xTau.etaDetectorAxis(), xTau.phiDetectorAxis(), xTau.m()); + const TLorentzVector& LC_P4 = xTau.p4(xAOD::TauJetParameters::DetectorAxis); // Loop through jets, get links to clusters std::vector<const xAOD::CaloCluster*> clusterList; @@ -111,8 +106,8 @@ StatusCode MvaTESVariableDecorator::execute(xAOD::TauJet& xTau) const { if(cl->retrieveMoment(xAOD::CaloCluster::MomentType::EM_PROBABILITY,em_probability)) { mean_em_probability += clE*em_probability; - if(em_probability>0.5) clusters_EM_P4 += (TLorentzVector) cl->p4(xAOD::CaloCluster::State::CALIBRATED); - else clusters_had_P4 += (TLorentzVector) cl->p4(xAOD::CaloCluster::State::CALIBRATED); + if(em_probability>0.5) clusters_EM_P4 += cl->p4(xAOD::CaloCluster::State::CALIBRATED); + else clusters_had_P4 += cl->p4(xAOD::CaloCluster::State::CALIBRATED); } else ATH_MSG_WARNING("Failed to retrieve moment: EM_PROBABILITY"); @@ -167,8 +162,8 @@ StatusCode MvaTESVariableDecorator::execute(xAOD::TauJet& xTau) const { Pi0_totalP4.SetPtEtaPhiM(0,0,0,0); for(size_t i=0; i<xTau.nPi0PFOs(); i++){ - Pi0_totalP4 += (TLorentzVector)xTau.pi0PFO(i)->p4(); - }; + Pi0_totalP4 += xTau.pi0PFO(i)->p4(); + } double Pi0_totalE = Pi0_totalP4.E(); @@ -177,8 +172,8 @@ StatusCode MvaTESVariableDecorator::execute(xAOD::TauJet& xTau) const { charged_totalP4.SetPtEtaPhiM(0,0,0,0); for(size_t i=0; i<xTau.nChargedPFOs(); i++){ - charged_totalP4 += (TLorentzVector)xTau.chargedPFO(i)->p4(); - }; + charged_totalP4 += xTau.chargedPFO(i)->p4(); + } double charged_totalE = charged_totalP4.E(); @@ -189,13 +184,5 @@ StatusCode MvaTESVariableDecorator::execute(xAOD::TauJet& xTau) const { } xTau.setDetail(xAOD::TauJetParameters::PFOEngRelDiff, (float) relDiff); - // calculate interpolated pT - double pt_pantau = xTau.ptPanTauCellBased(); - double pt_LC = xTau.ptDetectorAxis(); - double interpolWeight = 0.5 * ( 1. + TMath::TanH( ( pt_LC/GeV - 250. ) / 20. ) ); - double LC_pantau_interpolPt = interpolWeight*pt_LC + (1.-interpolWeight)*pt_pantau; - - xTau.setDetail(xAOD::TauJetParameters::LC_pantau_interpolPt, (float) LC_pantau_interpolPt); - return StatusCode::SUCCESS; } diff --git a/Reconstruction/tauRecTools/Root/TauCalibrateLC.cxx b/Reconstruction/tauRecTools/Root/TauCalibrateLC.cxx index 4f0ce6b99e77c9aeb7b6421bfe3fa129fc69564c..6f281362bd8876533487736d4a1a319180bb272d 100644 --- a/Reconstruction/tauRecTools/Root/TauCalibrateLC.cxx +++ b/Reconstruction/tauRecTools/Root/TauCalibrateLC.cxx @@ -63,9 +63,9 @@ StatusCode TauCalibrateLC::initialize() { //retrieve number of eta bins from file m_nEtaBins = m_etaBinHist->GetNbinsX(); //member var if (m_nEtaBins==6) - ATH_MSG_INFO("using 2011 tau energy calibration"); + ATH_MSG_INFO("using tau energy calibration with 6 eta bins"); else if (m_nEtaBins==5) - ATH_MSG_INFO("using 2012 tau energy calibration"); + ATH_MSG_INFO("using tau energy calibration with 5 eta bins"); else { ATH_MSG_FATAL("Wrong or broken tau energy calibration file"); return StatusCode::FAILURE; @@ -142,13 +142,11 @@ StatusCode TauCalibrateLC::execute(xAOD::TauJet& pTau) const if (m_doEnergyCorr) { // get detector axis values - double eta = pTau.etaDetectorAxis(); - double absEta = std::abs(eta); + double absEta = std::abs( pTau.etaDetectorAxis() ); int etaBin = m_etaBinHist->GetXaxis()->FindBin(absEta) - 1; if (etaBin>=m_nEtaBins) etaBin = m_nEtaBins-1; // correction from last bin should be applied on all taus outside stored eta range - int nVertex = 0; // Obtain pileup @@ -220,7 +218,7 @@ StatusCode TauCalibrateLC::execute(xAOD::TauJet& pTau) const double energyFinal = energyPileupCorr / calibConst; - if (not m_doPtResponse) energyFinal /= cosh(pTau.eta()) ; + if (not m_doPtResponse) energyFinal /= std::cosh(pTau.eta()) ; pTau.setP4( energyFinal * GeV, pTau.eta(), pTau.phi(), pTau.m()); ATH_MSG_DEBUG("Energy at LC scale = " << energyLC << " pile-up offset " << offset << " calib. const. = " << calibConst << " final energy = " << energyFinal); @@ -252,7 +250,7 @@ StatusCode TauCalibrateLC::execute(xAOD::TauJet& pTau) const } ATH_MSG_DEBUG("eta " << eta << "; corrected eta = " << etaCorr << " ; phi " << phi << "; corrected phi " << phiCorr ); - pTau.setP4( pTau.e() / cosh( etaCorr ), etaCorr, phiCorr, pTau.m()); + pTau.setP4( pTau.e() / std::cosh( etaCorr ), etaCorr, phiCorr, pTau.m()); pTau.setP4(xAOD::TauJetParameters::TauEtaCalib, pTau.pt(), pTau.eta(), pTau.phi(), pTau.m()); } @@ -262,11 +260,3 @@ StatusCode TauCalibrateLC::execute(xAOD::TauJet& pTau) const return StatusCode::SUCCESS; } - -//----------------------------------------------------------------------------- -// Finalize -//----------------------------------------------------------------------------- - -StatusCode TauCalibrateLC::finalize() { - return StatusCode::SUCCESS; -} diff --git a/Reconstruction/tauRecTools/Root/TauCommonCalcVars.cxx b/Reconstruction/tauRecTools/Root/TauCommonCalcVars.cxx index a69c9f87a354ff8a843f08afeab2c883754d7737..d41d276f0df466bda0c31f0ca6012461f0431a7d 100644 --- a/Reconstruction/tauRecTools/Root/TauCommonCalcVars.cxx +++ b/Reconstruction/tauRecTools/Root/TauCommonCalcVars.cxx @@ -9,22 +9,19 @@ // date: 2008-05-18 // // This class calculates tau variables after core seed reconstruction -// -// 17/03/2010: (AK) change to P4Helpers -// 16/05/2011: (FF) fix if primaryVertexContainer==NULL (coverity 21734) -// Dez 2011: (FF) switch to full LC calibrated tau 4-vector for some variables //----------------------------------------------------------------------------- #include "tauRecTools/TauCommonCalcVars.h" #include "tauRecTools/KineUtils.h" #include <vector> + //----------------------------------------------------------------------------- // Constructor //----------------------------------------------------------------------------- TauCommonCalcVars::TauCommonCalcVars(const std::string &name) : -TauRecToolBase(name) { - //if TauTrackClassifier is not run, wide&passTrkSelector==classifiedIsolation==modifiedIsolationTrack - declareProperty("isolationTrackType", m_isolationTrackType=xAOD::TauJetParameters::modifiedIsolationTrack); + TauRecToolBase(name) { + //if TauTrackClassifier is not run, wide&passTrkSelector==classifiedIsolation==modifiedIsolationTrack + declareProperty("isolationTrackType", m_isolationTrackType=xAOD::TauJetParameters::modifiedIsolationTrack); } //----------------------------------------------------------------------------- @@ -34,180 +31,134 @@ TauRecToolBase(name) { TauCommonCalcVars::~TauCommonCalcVars() { } - -//----------------------------------------------------------------------------- -// Initializer -//----------------------------------------------------------------------------- - -StatusCode TauCommonCalcVars::initialize() { - return StatusCode::SUCCESS; -} - - -//----------------------------------------------------------------------------- -// Finalizer -//----------------------------------------------------------------------------- - -StatusCode TauCommonCalcVars::finalize() { - return StatusCode::SUCCESS; -} - - //----------------------------------------------------------------------------- // Execution //----------------------------------------------------------------------------- StatusCode TauCommonCalcVars::execute(xAOD::TauJet& pTau) const { - ///////////////////////////////////////////////// - // Calculate variables that are always valid - //////////////////////////////////////////////// + ///////////////////////////////////////////////// + // Calculate variables that are always valid + //////////////////////////////////////////////// - //init some vars - pTau.setDetail( xAOD::TauJetParameters::SumPtTrkFrac, static_cast<float>( 0 ) ); + //init some vars + pTau.setDetail( xAOD::TauJetParameters::SumPtTrkFrac, (float) 0. ); - // Leading track pT and et/pt(lead track) - if (pTau.nTracks() > 0) { - pTau.setDetail( xAOD::TauJetParameters::leadTrkPt, static_cast<float>( pTau.track(0)->pt() ) ); + // Leading track pT and et/pt(lead track) + if (pTau.nTracks() > 0) { + pTau.setDetail( xAOD::TauJetParameters::leadTrkPt, static_cast<float>( pTau.track(0)->pt() ) ); - float emscale_ptEM = 0; - float emscale_ptHad = 0; + float emscale_ptEM = 0.; + float emscale_ptHad = 0.; - if ( !pTau.detail( xAOD::TauJetParameters::etEMAtEMScale, emscale_ptEM ) ) - { - ATH_MSG_DEBUG("retrieval of tau detail failed. stopping calculation of further variables"); - return StatusCode::SUCCESS; - } - - if ( !pTau.detail( xAOD::TauJetParameters::etHadAtEMScale, emscale_ptHad ) ) - { - ATH_MSG_DEBUG("retrieval of tau detail failed. stopping calculation of further variables"); - return StatusCode::SUCCESS; - } + if ( !pTau.detail( xAOD::TauJetParameters::etEMAtEMScale, emscale_ptEM ) ) + { + ATH_MSG_DEBUG("retrieval of tau detail failed. stopping calculation of further variables"); + return StatusCode::SUCCESS; + } + + if ( !pTau.detail( xAOD::TauJetParameters::etHadAtEMScale, emscale_ptHad ) ) + { + ATH_MSG_DEBUG("retrieval of tau detail failed. stopping calculation of further variables"); + return StatusCode::SUCCESS; + } - pTau.setDetail( xAOD::TauJetParameters::etOverPtLeadTrk, static_cast<float>( (emscale_ptEM + emscale_ptHad) / pTau.track(0)->pt() ) ); - } + pTau.setDetail( xAOD::TauJetParameters::etOverPtLeadTrk, static_cast<float>( (emscale_ptEM + emscale_ptHad) / pTau.track(0)->pt() ) ); + } - // invariant mass of track system - std::vector<const xAOD::TauTrack*> tauTracks = pTau.tracks(xAOD::TauJetParameters::TauTrackFlag::classifiedCharged); - for( const xAOD::TauTrack* trk : pTau.tracks((xAOD::TauJetParameters::TauTrackFlag) m_isolationTrackType) ) tauTracks.push_back(trk); - if (tauTracks.size()> 0) { - - TLorentzVector sumOfTrackVector; - TLorentzVector tempTrackVector; - - for (const xAOD::TauTrack* tauTrk : tauTracks) - { - tempTrackVector=tauTrk->p4(); - sumOfTrackVector += tempTrackVector; - } - pTau.setDetail( xAOD::TauJetParameters::massTrkSys, static_cast<float>( sumOfTrackVector.M() ) ); - float tempfloat = 0; - if ( pTau.detail( xAOD::TauJetParameters::massTrkSys, tempfloat ) ) - ATH_MSG_VERBOSE("set massTrkSys " << tempfloat); - } + // invariant mass of track system + std::vector<const xAOD::TauTrack*> tauTracks = pTau.tracks(xAOD::TauJetParameters::TauTrackFlag::classifiedCharged); + for( const xAOD::TauTrack* trk : pTau.tracks((xAOD::TauJetParameters::TauTrackFlag) m_isolationTrackType) ) tauTracks.push_back(trk); + if (tauTracks.size()> 0) { - if (tauTracks.size()> 0 && pTau.nTracks()>1) { + TLorentzVector sumOfTrackVector; - double leadTrkPhi = pTau.track(0)->phi();//fix this depending on how we choose to define this - double leadTrkEta = pTau.track(0)->eta();//dito. new TauJet_v3 track sorting doesn't guarantee this will be the same track + for (const xAOD::TauTrack* tauTrk : tauTracks) + { + sumOfTrackVector += tauTrk->p4(); + } + pTau.setDetail( xAOD::TauJetParameters::massTrkSys, static_cast<float>( sumOfTrackVector.M() ) ); + } - double ptSum = 0; - double sumWeightedDR = 0; - double sumWeightedDR2 = 0; + if (tauTracks.size()> 0 && pTau.nTracks()>1) { + // BUG? + // this is equivalent to: if (pTau.nTracks()>1) + // shouldn't it be: if (tauTracks.size()> 1 && pTau.nTracks()>0) ? + // currently, 1-prong taus are skipped + double ptSum = 0.; + double sumWeightedDR = 0.; + double sumWeightedDR2 = 0.; - for (const xAOD::TauTrack* tauTrk : tauTracks){ + for (const xAOD::TauTrack* tauTrk : tauTracks) { - double deltaR = Tau1P3PKineUtils::deltaR(leadTrkEta, leadTrkPhi, tauTrk->eta(), tauTrk->phi() ); + double deltaR = pTau.track(0)->p4().DeltaR(tauTrk->p4()); - ptSum += tauTrk->pt(); - sumWeightedDR += deltaR * (tauTrk->pt()); - sumWeightedDR2 += deltaR * deltaR * (tauTrk->pt()); + ptSum += tauTrk->pt(); + sumWeightedDR += deltaR * tauTrk->pt(); + sumWeightedDR2 += deltaR * deltaR * tauTrk->pt(); + } - } + double trkWidth2 = (ptSum!=0.) ? (sumWeightedDR2/ptSum - std::pow(sumWeightedDR/ptSum, 2.)) : 0.; - double trkWidth2 = sumWeightedDR2 / ptSum - sumWeightedDR * sumWeightedDR / ptSum / ptSum; + if (trkWidth2 > 0.) pTau.setDetail( xAOD::TauJetParameters::trkWidth2, static_cast<float>( trkWidth2 ) ); + else pTau.setDetail( xAOD::TauJetParameters::trkWidth2, (float) 0. ); + } - if (trkWidth2 > 0.) pTau.setDetail( xAOD::TauJetParameters::trkWidth2, static_cast<float>( trkWidth2 ) ); - else pTau.setDetail( xAOD::TauJetParameters::trkWidth2, static_cast<float>( 0. ) ); - } + if (tauTracks.size()> 0) { + + double ptSum = 0; + double innerPtSum = 0; + double sumWeightedDR = 0; + double innerSumWeightedDR = 0; + double sumWeightedDR2 = 0; - if (tauTracks.size()> 0) { - - double ptSum = 0; - double innerPtSum = 0; - double sumWeightedDR = 0; - double innerSumWeightedDR = 0; - double sumWeightedDR2 = 0; - - - for (const xAOD::TauTrack* tauTrk : tauTracks){ - - double deltaR = Tau1P3PKineUtils::deltaR( ( inTrigger() ? pTau.eta() : pTau.etaIntermediateAxis()), pTau.phi(), tauTrk->eta(), tauTrk->phi() ); - - ptSum += tauTrk->pt(); - sumWeightedDR += deltaR * (tauTrk->pt()); - sumWeightedDR2 += deltaR * deltaR * (tauTrk->pt()); - - //add calculation of innerTrkAvgDist - if(tauTrk->flag(xAOD::TauJetParameters::TauTrackFlag::classifiedCharged)){ - innerPtSum += tauTrk->pt(); - innerSumWeightedDR += deltaR * (tauTrk->pt()); - } - } - - if (ptSum > 0.0001) { - // seedCalo_trkAvgDist - pTau.setDetail( xAOD::TauJetParameters::trkAvgDist, static_cast<float>( sumWeightedDR / ptSum ) ); - - float tempfloat; - if ( pTau.detail( xAOD::TauJetParameters::trkAvgDist, tempfloat ) ) - ATH_MSG_VERBOSE("set seedCalo_trkAvgDist " << tempfloat ); - - // seedCalo_trkRmsDist - double trkRmsDist2 = sumWeightedDR2 / ptSum - sumWeightedDR * sumWeightedDR / ptSum / ptSum; - if (trkRmsDist2 > 0) { - pTau.setDetail( xAOD::TauJetParameters::trkRmsDist, static_cast<float>( sqrt(trkRmsDist2) ) ); - } else { - pTau.setDetail( xAOD::TauJetParameters::trkRmsDist, static_cast<float>( 0. ) ); - } - if ( pTau.detail( xAOD::TauJetParameters::trkRmsDist, tempfloat ) ) - ATH_MSG_VERBOSE("set seedCalo_trkRmsDist " << tempfloat ); - } - - if (ptSum > 0.0) { - - // SumPtTrkFrac - pTau.setDetail( xAOD::TauJetParameters::SumPtTrkFrac, static_cast<float>( 1. - innerPtSum/ptSum ) ); - // FIXME!!! put pileup correction here once availabe - // FIXME!!! for now set corrected version same as uncorrected - pTau.setDetail( xAOD::TauJetParameters::SumPtTrkFracCorrected, static_cast<float>( 1. - innerPtSum/ptSum ) ); + for (const xAOD::TauTrack* tauTrk : tauTracks){ + // BUG! should consistently use phiIntermediateAxis - will be fixed in a separate MR + double deltaR = Tau1P3PKineUtils::deltaR( ( inTrigger() ? pTau.eta() : pTau.etaIntermediateAxis()), pTau.phi(), tauTrk->eta(), tauTrk->phi() ); + // will become: + // double deltaR = inTrigger() ? pTau.p4().DeltaR(tauTrk->p4()) : pTau.p4(xAOD::TauJetParameters::IntermediateAxis).DeltaR(tauTrk->p4()); - } else { - - pTau.setDetail( xAOD::TauJetParameters::SumPtTrkFrac, static_cast<float>( 0.0 ) ); - pTau.setDetail( xAOD::TauJetParameters::SumPtTrkFracCorrected, static_cast<float>( 0.0 ) ); - - } - - if (ptSum > 0.00 && innerPtSum > 0.0) { - - ATH_MSG_DEBUG("innerSumWeightedDR = " << innerSumWeightedDR << " innerPtSum = " << innerPtSum << " ptSum = " << ptSum ); - - // InnerTrkAvgDist - pTau.setDetail( xAOD::TauJetParameters::innerTrkAvgDist, static_cast<float>( innerSumWeightedDR / innerPtSum ) ); - // FIXME!!! put pileup correction here once availabe - // FIXME!!! for now set corrected version same as uncorrected - pTau.setDetail( xAOD::TauJetParameters::innerTrkAvgDistCorrected, static_cast<float>( innerSumWeightedDR / innerPtSum ) ); - - } else { - pTau.setDetail( xAOD::TauJetParameters::innerTrkAvgDist, static_cast<float>( 0.0 )); - pTau.setDetail( xAOD::TauJetParameters::innerTrkAvgDistCorrected, static_cast<float>( 0.0 )); - } + ptSum += tauTrk->pt(); + sumWeightedDR += deltaR * tauTrk->pt(); + sumWeightedDR2 += deltaR * deltaR * tauTrk->pt(); + + //add calculation of innerTrkAvgDist + if(tauTrk->flag(xAOD::TauJetParameters::TauTrackFlag::classifiedCharged)){ + innerPtSum += tauTrk->pt(); + innerSumWeightedDR += deltaR * tauTrk->pt(); + } + } + if (ptSum > 0.) { + // seedCalo_trkAvgDist + pTau.setDetail( xAOD::TauJetParameters::trkAvgDist, static_cast<float>( sumWeightedDR / ptSum ) ); + + // seedCalo_trkRmsDist + double trkRmsDist2 = sumWeightedDR2 / ptSum - pow(sumWeightedDR/ptSum, 2.); + if (trkRmsDist2 > 0.) { + pTau.setDetail( xAOD::TauJetParameters::trkRmsDist, static_cast<float>( std::sqrt(trkRmsDist2) ) ); + } + else { + pTau.setDetail( xAOD::TauJetParameters::trkRmsDist, (float) 0. ); + } + + // SumPtTrkFrac + pTau.setDetail( xAOD::TauJetParameters::SumPtTrkFrac, static_cast<float>( 1. - innerPtSum/ptSum ) ); + } + else { + pTau.setDetail( xAOD::TauJetParameters::trkAvgDist, (float) 0. ); + pTau.setDetail( xAOD::TauJetParameters::SumPtTrkFrac, (float) 0. ); } - return StatusCode::SUCCESS; -} + if (innerPtSum > 0.) { + // InnerTrkAvgDist + pTau.setDetail( xAOD::TauJetParameters::innerTrkAvgDist, static_cast<float>( innerSumWeightedDR / innerPtSum ) ); + } + else { + pTau.setDetail( xAOD::TauJetParameters::innerTrkAvgDist, (float) 0. ); + } + } + return StatusCode::SUCCESS; +} diff --git a/Reconstruction/tauRecTools/Root/TauEleOLRDecorator.cxx b/Reconstruction/tauRecTools/Root/TauEleOLRDecorator.cxx index 028b99cd08634f595941ff19778ff76c9a7fafeb..e21dacbdddb7daf33ee1a8b17e0997ffa69271c0 100644 --- a/Reconstruction/tauRecTools/Root/TauEleOLRDecorator.cxx +++ b/Reconstruction/tauRecTools/Root/TauEleOLRDecorator.cxx @@ -99,11 +99,6 @@ StatusCode TauEleOLRDecorator::execute(xAOD::TauJet& tau) const return StatusCode::SUCCESS; } -StatusCode TauEleOLRDecorator::finalize() -{ - return StatusCode::SUCCESS; -} - float TauEleOLRDecorator::getCutVal(float fEta, float fPt) const { if(fPt>1900) fPt=1900; diff --git a/Reconstruction/tauRecTools/Root/TauIDVarCalculator.cxx b/Reconstruction/tauRecTools/Root/TauIDVarCalculator.cxx index 4fb22ecafd8be8b58ce2ba0f2fd7df2a939079b1..b5bd887590eb22bf2f9352da4d017b1fdb608d27 100644 --- a/Reconstruction/tauRecTools/Root/TauIDVarCalculator.cxx +++ b/Reconstruction/tauRecTools/Root/TauIDVarCalculator.cxx @@ -114,13 +114,13 @@ StatusCode TauIDVarCalculator::execute(xAOD::TauJet& tau) const CaloSampling::HEC0, CaloSampling::TileBar0, CaloSampling::TileGap1, CaloSampling::TileExt0}; // Get Clusters via Jet Seed - const xAOD::Jet *jetSeed = (*tau.jetLink()); + const xAOD::Jet *jetSeed = tau.jet(); if (!jetSeed) { ATH_MSG_ERROR("Tau jet link is invalid."); return StatusCode::FAILURE; } - auto p4IntAxis = tau.p4(xAOD::TauJetParameters::IntermediateAxis); + const TLorentzVector& p4IntAxis = tau.p4(xAOD::TauJetParameters::IntermediateAxis); float eEMAtEMScaleFixed = 0; float eHadAtEMScaleFixed = 0; float eHad1AtEMScaleFixed = 0; @@ -145,8 +145,7 @@ StatusCode TauIDVarCalculator::execute(xAOD::TauJet& tau) const eEMAtEMScaleFixed / ( eEMAtEMScaleFixed + eHadAtEMScaleFixed ) : LOW_NUMBER; if(tau.nTracks() > 0){ - const xAOD::TrackParticle* track = 0; - track = tau.track(0)->track(); + const xAOD::TrackParticle* track = tau.track(0)->track(); acc_absEtaLead(tau) = std::abs( track->eta() ); acc_leadTrackEta(tau) = std::abs( track->eta() ); acc_absDeltaEta(tau) = std::abs( track->eta() - tau.eta() ); @@ -229,8 +228,3 @@ StatusCode TauIDVarCalculator::execute(xAOD::TauJet& tau) const return StatusCode::SUCCESS; } - -StatusCode TauIDVarCalculator::finalize() -{ - return StatusCode::SUCCESS; -} diff --git a/Reconstruction/tauRecTools/Root/TauJetBDTEvaluator.cxx b/Reconstruction/tauRecTools/Root/TauJetBDTEvaluator.cxx index d1bf07dc4a10eb3234e7713e4052fbaef2d3a9ce..99eabc40800227b2721c20b6cc6f5801bc3e3cd0 100644 --- a/Reconstruction/tauRecTools/Root/TauJetBDTEvaluator.cxx +++ b/Reconstruction/tauRecTools/Root/TauJetBDTEvaluator.cxx @@ -64,8 +64,3 @@ StatusCode TauJetBDTEvaluator::execute(xAOD::TauJet& xTau) const { return StatusCode::SUCCESS; } - -//________________________________________ -StatusCode TauJetBDTEvaluator::finalize(){ - return StatusCode::SUCCESS; -} diff --git a/Reconstruction/tauRecTools/Root/TauJetRNNEvaluator.cxx b/Reconstruction/tauRecTools/Root/TauJetRNNEvaluator.cxx index a46f5e6c6e75f397c5599c1061c7b45d39222324..bfa52f0a8e0308628854b135ec6d26b4356828d7 100644 --- a/Reconstruction/tauRecTools/Root/TauJetRNNEvaluator.cxx +++ b/Reconstruction/tauRecTools/Root/TauJetRNNEvaluator.cxx @@ -177,7 +177,7 @@ StatusCode TauJetRNNEvaluator::get_tracks( StatusCode TauJetRNNEvaluator::get_clusters( const xAOD::TauJet &tau, std::vector<const xAOD::CaloCluster *> &out) const { - const xAOD::Jet *jet_seed = *tau.jetLink(); + const xAOD::Jet *jet_seed = tau.jet(); if (!jet_seed) { ATH_MSG_ERROR("Tau jet link is invalid."); return StatusCode::FAILURE; diff --git a/Reconstruction/tauRecTools/Root/TauPi0ScoreCalculator.cxx b/Reconstruction/tauRecTools/Root/TauPi0ScoreCalculator.cxx index 2f77020605c5c44fa06abfbce0a2be6dac36a460..1adadc66ea3637a3f1e7d51944c462132c4e110f 100644 --- a/Reconstruction/tauRecTools/Root/TauPi0ScoreCalculator.cxx +++ b/Reconstruction/tauRecTools/Root/TauPi0ScoreCalculator.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ //----------------------------------------------------------------------------- @@ -7,27 +7,21 @@ // package: Reconstruction/tauRec // authors: Benedict Winter, Will Davey // date: 2012-10-09 -// //----------------------------------------------------------------------------- -#include <vector> - #include "tauRecTools/TauPi0ScoreCalculator.h" #include "tauRecTools/HelperFunctions.h" #include "xAODPFlow/PFO.h" -using std::vector; -using std::string; - //------------------------------------------------------------------------- // Constructor //------------------------------------------------------------------------- -TauPi0ScoreCalculator::TauPi0ScoreCalculator( const string& name ) : +TauPi0ScoreCalculator::TauPi0ScoreCalculator(const std::string& name) : TauRecToolBase(name), m_mvaBDT(nullptr) { - declareProperty("BDTWeightFile", m_weightfile); + declareProperty("BDTWeightFile", m_weightfile); } //------------------------------------------------------------------------- @@ -38,7 +32,6 @@ TauPi0ScoreCalculator::~TauPi0ScoreCalculator() { } - StatusCode TauPi0ScoreCalculator::initialize() { std::string weightFile = find_file(m_weightfile); @@ -49,12 +42,6 @@ StatusCode TauPi0ScoreCalculator::initialize() return StatusCode::SUCCESS; } -StatusCode TauPi0ScoreCalculator::finalize() -{ - return StatusCode::SUCCESS; -} - - StatusCode TauPi0ScoreCalculator::executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer) const { //--------------------------------------------------------------------- @@ -79,7 +66,6 @@ StatusCode TauPi0ScoreCalculator::executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOCo return StatusCode::SUCCESS; } - float TauPi0ScoreCalculator::calculateScore(const xAOD::PFO* neutralPFO) const { std::map<TString, float> availableVariables; // map of the variable name to its value diff --git a/Reconstruction/tauRecTools/Root/TauPi0Selector.cxx b/Reconstruction/tauRecTools/Root/TauPi0Selector.cxx index 1fe30b074506cebb1fe7128e97c6b0b5c82ac188..6c80984f9de6337c9e235fa280909587a2196c83 100644 --- a/Reconstruction/tauRecTools/Root/TauPi0Selector.cxx +++ b/Reconstruction/tauRecTools/Root/TauPi0Selector.cxx @@ -7,18 +7,15 @@ // package: Reconstruction/tauRec // authors: Benedict Winter, Will Davey // date: 2012-10-09 -// //----------------------------------------------------------------------------- #include "tauRecTools/TauPi0Selector.h" -using std::string; - //------------------------------------------------------------------------- // Constructor //------------------------------------------------------------------------- -TauPi0Selector::TauPi0Selector( const string& name ) : +TauPi0Selector::TauPi0Selector(const std::string& name) : TauRecToolBase(name) { declareProperty("ClusterEtCut", m_clusterEtCut); @@ -34,29 +31,19 @@ TauPi0Selector::~TauPi0Selector() { } -StatusCode TauPi0Selector::initialize() -{ - return StatusCode::SUCCESS; -} - -StatusCode TauPi0Selector::finalize() -{ - return StatusCode::SUCCESS; -} - StatusCode TauPi0Selector::executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer) const { // decay mode enum auto kDecayModeProto = xAOD::TauJetParameters::PanTau_DecayModeProto; // Clear vector of cell-based pi0 PFO Links. Required when rerunning on xAOD level. pTau.clearProtoPi0PFOLinks(); - // Set proto decay mode to "not set". Will be overwritten for taus with 1-5 tracks - pTau.setPanTauDetail(kDecayModeProto, xAOD::TauJetParameters::DecayMode::Mode_NotSet); //--------------------------------------------------------------------- // only run on 1-5 prong taus //--------------------------------------------------------------------- if (pTau.nTracks() == 0 || pTau.nTracks() >5 ) { + // Set proto decay mode to "not set". Will be overwritten for taus with 1-5 tracks + pTau.setPanTauDetail(kDecayModeProto, xAOD::TauJetParameters::DecayMode::Mode_NotSet); return StatusCode::SUCCESS; } @@ -153,8 +140,8 @@ TLorentzVector TauPi0Selector::getP4(const xAOD::TauJet& pTau) const const xAOD::PFO* pi0PFO = (*pi0PFOLink); // assign neutral pion mass double mass = 134.9766; - double p = std::sqrt(pow(pi0PFO->e(),2) - pow(mass,2)); - double pt = p/cosh(pi0PFO->eta()); + double p = std::sqrt(std::pow(pi0PFO->e(),2) - std::pow(mass,2)); + double pt = p/std::cosh(pi0PFO->eta()); TLorentzVector pi0_corrP4; pi0_corrP4.SetPtEtaPhiM(pt,pi0PFO->eta(),pi0PFO->phi(),mass); p4+=pi0_corrP4; diff --git a/Reconstruction/tauRecTools/Root/TauSubstructureVariables.cxx b/Reconstruction/tauRecTools/Root/TauSubstructureVariables.cxx index 1d5fdd5d5edbd88f79fc76c6f8ff3ea657d9d2d9..05437d8655be4ff3cc9e0e3669772a55ef34ffb3 100644 --- a/Reconstruction/tauRecTools/Root/TauSubstructureVariables.cxx +++ b/Reconstruction/tauRecTools/Root/TauSubstructureVariables.cxx @@ -18,26 +18,21 @@ #include "tauRecTools/CaloClusterVariables.h" #include "tauRecTools/TauSubstructureVariables.h" - -#include "tauRecTools/KineUtils.h" #include "tauRecTools/HelperFunctions.h" #define GeV 1000 -const double TauSubstructureVariables::DEFAULT = -1111.; +const float TauSubstructureVariables::DEFAULT = -1111.; //********************************** // Constructor //********************************** TauSubstructureVariables::TauSubstructureVariables( const std::string& name ) - : TauRecToolBase(name) { - declareProperty("maxPileUpCorrection", m_maxPileUpCorrection = 4 * GeV); - declareProperty("pileUpAlpha", m_pileUpAlpha = 1.0); - declareProperty("VertexCorrection", m_doVertexCorrection = false); - declareProperty("IncShowerSubtr", m_incShowerSubtr = true); + : TauRecToolBase(name) { + declareProperty("VertexCorrection", m_doVertexCorrection = false); + declareProperty("IncShowerSubtr", m_incShowerSubtr = true); } - //********************************** // Destructor //********************************** @@ -45,301 +40,190 @@ TauSubstructureVariables::TauSubstructureVariables( const std::string& name ) TauSubstructureVariables::~TauSubstructureVariables() { } - -//*********************************** -// Initialize method -//*********************************** - -StatusCode TauSubstructureVariables::initialize() { - return StatusCode::SUCCESS; -} - -//*********************************** -// Finalize method -//*********************************** - -StatusCode TauSubstructureVariables::finalize() { - return StatusCode::SUCCESS; -} - - //************************************ // Execute method //************************************ StatusCode TauSubstructureVariables::execute(xAOD::TauJet& pTau) const { - const xAOD::Jet* taujetseed = (*pTau.jetLink()); - if (!taujetseed) { - ATH_MSG_ERROR("Tau jet link is invalid."); - return StatusCode::FAILURE; - } - - //***************************************************** - // calculate some tau substructure variables - //***************************************************** - - CaloClusterVariables CaloClusterVariablesTool; - CaloClusterVariablesTool.setVertexCorrection(m_doVertexCorrection); - CaloClusterVariablesTool.setIncSub(m_incShowerSubtr); - - bool isFilled = CaloClusterVariablesTool.update(pTau); - - if (!isFilled) { - ATH_MSG_DEBUG("problem in calculating calo cluster variables -> will be set to -1111"); - - pTau.setDetail(xAOD::TauJetParameters::numTopoClusters , static_cast<int>(DEFAULT) ); - pTau.setDetail(xAOD::TauJetParameters::numEffTopoClusters , static_cast<float>(DEFAULT) ); - pTau.setDetail(xAOD::TauJetParameters::topoInvMass, static_cast<float>(DEFAULT) ); - pTau.setDetail(xAOD::TauJetParameters::effTopoInvMass, static_cast<float>(DEFAULT) ); - pTau.setDetail(xAOD::TauJetParameters::topoMeanDeltaR, static_cast<float>(DEFAULT) ); - pTau.setDetail(xAOD::TauJetParameters::effTopoMeanDeltaR, static_cast<float>(DEFAULT) ); - - } else { - // Getting the variables - //----------------------- - double TopoInvMass = CaloClusterVariablesTool.totalMass(); - double EffTopoInvMass = CaloClusterVariablesTool.effectiveMass(); - unsigned int NumTopoClusters = CaloClusterVariablesTool.numConstituents(); - double NumEffTopoClusters = CaloClusterVariablesTool.effectiveNumConstituents(); - double TopoMeanDeltaR = CaloClusterVariablesTool.averageRadius(); - double EffTopoMeanDeltaR = CaloClusterVariablesTool.averageEffectiveRadius(); - - ATH_MSG_VERBOSE(" Substructure variables: "); - ATH_MSG_VERBOSE("-------------------------"); - ATH_MSG_VERBOSE(" TopoInvMass: " << TopoInvMass); - ATH_MSG_VERBOSE(" EffTopoInvMass: " << EffTopoInvMass); - ATH_MSG_VERBOSE(" NumTopoClusters: " << NumTopoClusters); - ATH_MSG_VERBOSE("NumEffTopoClusters: " << NumEffTopoClusters); - ATH_MSG_VERBOSE(" TopoMeanDeltaR: " << TopoMeanDeltaR); - ATH_MSG_VERBOSE(" EffTopoMeanDeltaR: " << EffTopoMeanDeltaR); - - //Record the variables - //--------------------- - - pTau.setDetail(xAOD::TauJetParameters::numTopoClusters , static_cast<int> (NumTopoClusters) ); - pTau.setDetail(xAOD::TauJetParameters::numEffTopoClusters , static_cast<float>(NumEffTopoClusters) ); - pTau.setDetail(xAOD::TauJetParameters::topoInvMass , static_cast<float>(TopoInvMass) ); - pTau.setDetail(xAOD::TauJetParameters::effTopoInvMass , static_cast<float>(EffTopoInvMass) ); - pTau.setDetail(xAOD::TauJetParameters::topoMeanDeltaR , static_cast<float>(TopoMeanDeltaR) ); - pTau.setDetail(xAOD::TauJetParameters::effTopoMeanDeltaR , static_cast<float>(EffTopoMeanDeltaR) ); - - } - - //***************************************************** - // calculate some new cluster based ID variables - //***************************************************** - // New cluster-based variables - float totalEnergy(0.); - float calo_iso(0.); - float dr(0.); - - unsigned int num_clusters(0); - - TLorentzVector leadClusVec; - TLorentzVector subLeadClusVec; - TLorentzVector approxSubstructure4Vec; - double clusELead = -1111.0; - double clusESubLead = -1111.0; - - // Loop through jets, get links to clusters - std::vector<const xAOD::CaloCluster*> vClusters; - ATH_CHECK(tauRecTools::GetJetClusterList(taujetseed, vClusters, m_incShowerSubtr)); - - for (auto incluster : vClusters){ - ++num_clusters; - - // calc total energy - totalEnergy += incluster->e(); + const xAOD::Jet* taujetseed = pTau.jet(); + if (!taujetseed) { + ATH_MSG_ERROR("Tau jet link is invalid."); + return StatusCode::FAILURE; + } + + //***************************************************** + // calculate some tau substructure variables + //***************************************************** + + CaloClusterVariables CaloClusterVariablesTool; + CaloClusterVariablesTool.setVertexCorrection(m_doVertexCorrection); + CaloClusterVariablesTool.setIncSub(m_incShowerSubtr); + + bool isFilled = CaloClusterVariablesTool.update(pTau); + + if (!isFilled) { + ATH_MSG_DEBUG("problem in calculating calo cluster variables -> will be set to -1111"); + + pTau.setDetail(xAOD::TauJetParameters::numTopoClusters, static_cast<int>(DEFAULT)); + pTau.setDetail(xAOD::TauJetParameters::numEffTopoClusters, DEFAULT); + pTau.setDetail(xAOD::TauJetParameters::topoInvMass, DEFAULT); + pTau.setDetail(xAOD::TauJetParameters::effTopoInvMass, DEFAULT); + pTau.setDetail(xAOD::TauJetParameters::topoMeanDeltaR, DEFAULT); + pTau.setDetail(xAOD::TauJetParameters::effTopoMeanDeltaR, DEFAULT); + } + else { + pTau.setDetail(xAOD::TauJetParameters::numTopoClusters, static_cast<int>(CaloClusterVariablesTool.numConstituents())); + pTau.setDetail(xAOD::TauJetParameters::numEffTopoClusters, static_cast<float>(CaloClusterVariablesTool.effectiveNumConstituents())); + pTau.setDetail(xAOD::TauJetParameters::topoInvMass, static_cast<float>(CaloClusterVariablesTool.totalMass())); + pTau.setDetail(xAOD::TauJetParameters::effTopoInvMass, static_cast<float>(CaloClusterVariablesTool.effectiveMass())); + pTau.setDetail(xAOD::TauJetParameters::topoMeanDeltaR, static_cast<float>(CaloClusterVariablesTool.averageRadius())); + pTau.setDetail(xAOD::TauJetParameters::effTopoMeanDeltaR, static_cast<float>(CaloClusterVariablesTool.averageEffectiveRadius())); + } + + //***************************************************** + // calculate some new cluster based ID variables + //***************************************************** + // New cluster-based variables + float totalEnergy(0.); + float calo_iso(0.); + float dr(0.); + + TLorentzVector leadClusVec; + TLorentzVector subLeadClusVec; + TLorentzVector approxSubstructure4Vec; + double clusELead = DEFAULT; + double clusESubLead = DEFAULT; + + // Loop through jets, get links to clusters + std::vector<const xAOD::CaloCluster*> vClusters; + ATH_CHECK(tauRecTools::GetJetClusterList(taujetseed, vClusters, m_incShowerSubtr)); + + for (auto incluster : vClusters){ + + // calc total energy + totalEnergy += incluster->e(); - //apply Vertex correction on a temporary - TLorentzVector tempclusvec; - if (m_doVertexCorrection && pTau.vertexLink()) - tempclusvec = CaloVertexedClusterType(*incluster, (*pTau.vertexLink())->position()).p4(); - else - tempclusvec = CaloVertexedClusterType(*incluster).p4(); - - dr = Tau1P3PKineUtils::deltaR(pTau.eta(),pTau.phi(), tempclusvec.Eta(), tempclusvec.Phi()); - if (0.2 <= dr && dr < 0.4) - { - calo_iso += tempclusvec.Et(); - } - else if (dr < 0.2) - { - double clusEnergyBE = ( incluster->energyBE(0) + incluster->energyBE(1) + incluster->energyBE(2) ); + //apply Vertex correction on a temporary + TLorentzVector tempclusvec; + if (m_doVertexCorrection && pTau.vertexLink()) + tempclusvec = CaloVertexedClusterType(*incluster, pTau.vertex()->position()).p4(); + else + tempclusvec = CaloVertexedClusterType(*incluster).p4(); + + dr = pTau.p4().DeltaR(tempclusvec); + if (0.2 <= dr && dr < 0.4) + { + calo_iso += tempclusvec.Et(); + } + else if (dr < 0.2) + { + double clusEnergyBE = ( incluster->energyBE(0) + incluster->energyBE(1) + incluster->energyBE(2) ); - if (clusEnergyBE > clusELead) - { - //change current leading cluster to subleading - clusESubLead = clusELead; - subLeadClusVec = leadClusVec; - - //set energy and 4-vector of leading cluster - clusELead = clusEnergyBE; - leadClusVec.SetPtEtaPhiM(clusELead/cosh(tempclusvec.Eta()), tempclusvec.Eta(), tempclusvec.Phi(), 0); - } - else if (clusEnergyBE > clusESubLead) - { - //set energy and 4-vector of subleading cluster only - clusESubLead = clusEnergyBE; - subLeadClusVec.SetPtEtaPhiM(clusESubLead/cosh(tempclusvec.Eta()), tempclusvec.Eta(), tempclusvec.Phi(), 0); - } - - } - - } - - if (clusELead > 0.) { - approxSubstructure4Vec += leadClusVec; - } - if (clusESubLead > 0.) { - approxSubstructure4Vec += subLeadClusVec; + if (clusEnergyBE > clusELead) + { + //change current leading cluster to subleading + clusESubLead = clusELead; + subLeadClusVec = leadClusVec; + + //set energy and 4-vector of leading cluster + clusELead = clusEnergyBE; + leadClusVec.SetPtEtaPhiM(clusELead/std::cosh(tempclusvec.Eta()), tempclusvec.Eta(), tempclusvec.Phi(), 0.); + } + else if (clusEnergyBE > clusESubLead) + { + //set energy and 4-vector of subleading cluster only + clusESubLead = clusEnergyBE; + subLeadClusVec.SetPtEtaPhiM(clusESubLead/std::cosh(tempclusvec.Eta()), tempclusvec.Eta(), tempclusvec.Phi(), 0.); } - // now sort cluster by energy - std::sort(vClusters.begin(), vClusters.end(), DefCaloClusterCompare()); - - // determine energy sum of leading 2 and leading 3 clusters - float sum2LeadClusterE(0.); - float sum3LeadClusterE(0.); - std::vector<const xAOD::CaloCluster*>::const_iterator icluster(vClusters.begin()); - std::vector<const xAOD::CaloCluster*>::const_iterator icluster_end(vClusters.end()); - - for (; icluster != icluster_end && icluster != vClusters.begin() + 3; ++icluster) { - if (icluster < vClusters.begin() + 2) { - sum2LeadClusterE += (*icluster)->e(); - } - sum3LeadClusterE += (*icluster)->e(); - } - - //record variables - if (totalEnergy != 0) { - ATH_MSG_VERBOSE(" lead2ClusterEOverAllClusterE: " << sum2LeadClusterE / totalEnergy); - ATH_MSG_VERBOSE(" lead3ClusterEOverAllClusterE: " << sum3LeadClusterE / totalEnergy); - - pTau.setDetail(xAOD::TauJetParameters::lead2ClusterEOverAllClusterE, static_cast<float>(sum2LeadClusterE / totalEnergy) ); - pTau.setDetail(xAOD::TauJetParameters::lead3ClusterEOverAllClusterE, static_cast<float>(sum3LeadClusterE / totalEnergy) ); - } - - ATH_MSG_VERBOSE(" caloIso: " << calo_iso); - pTau.setDetail(xAOD::TauJetParameters::caloIso, static_cast<float>(calo_iso) ); - - // calculate calorimeter energies in different layers - float PSSEnergy(0.); - float EMEnergy(0.); - float HADEnergy(0.); - icluster = vClusters.begin(); - for (; icluster != icluster_end; ++icluster) { - float clEnergy = (*icluster)->e(); - - //Calculate the fractions of energy in different calorimeter layers - const xAOD::CaloCluster *cl = *icluster; - float PreSampler = cl->eSample(CaloSampling::PreSamplerB) + cl->eSample(CaloSampling::PreSamplerE); - float EMLayer1 = cl->eSample(CaloSampling::EMB1) + cl->eSample(CaloSampling::EME1); - float EMLayer2 = cl->eSample(CaloSampling::EMB2) + cl->eSample(CaloSampling::EME2); - - float Energy = cl->rawE(); - float PSSF = Energy != 0 ? (PreSampler + EMLayer1) / Energy : 0; - float EM2F = Energy != 0 ? EMLayer2 / Energy : 0; - float EMF = PSSF + EM2F; - - PSSEnergy += PSSF * clEnergy; - EMEnergy += EMF * clEnergy; - HADEnergy += (Energy != 0) ? (1 - EMF) * clEnergy : 0; - } - - // calculate trk momentum - float trkSysMomentum(0.); - for (unsigned int i(0); i < pTau.nTracks(); ++i) { - trkSysMomentum += pTau.track(i)->pt() * cosh(pTau.track(i)->eta()); - - //adding the core tracks to the approximate substructure 4 vector - approxSubstructure4Vec += pTau.track(i)->p4(); - } - - // set new approximate energy flow variables for tau ID - pTau.setDetail(xAOD::TauJetParameters::ptRatioEflowApprox, static_cast<float>(approxSubstructure4Vec.Pt()/ pTau.ptDetectorAxis()) ); - pTau.setDetail(xAOD::TauJetParameters::mEflowApprox, static_cast<float>(approxSubstructure4Vec.M()) ); - - - float fPSSFraction = (totalEnergy != 0) ? PSSEnergy / totalEnergy : DEFAULT; - float fChPIEMEOverCaloEME = (EMEnergy != 0) ? (trkSysMomentum - HADEnergy) / EMEnergy : DEFAULT; - float fEMPOverTrkSysP = DEFAULT; - if (pTau.nTracks() > 0) fEMPOverTrkSysP = (trkSysMomentum != 0) ? EMEnergy / trkSysMomentum : DEFAULT; - - pTau.setDetail(xAOD::TauJetParameters::PSSFraction, static_cast<float>(fPSSFraction)); - pTau.setDetail(xAOD::TauJetParameters::ChPiEMEOverCaloEME, static_cast<float>(fChPIEMEOverCaloEME)); - pTau.setDetail(xAOD::TauJetParameters::EMPOverTrkSysP, static_cast<float>(fEMPOverTrkSysP)); - - // jvf and sumPtTrk are now a vector and the old run1-type jvf value is stored in the 0-th element - // sumPtTrk is calculated wrt Vertices - - float jvf(0.0); - float sumPtTrk(0.0); - - // for tau trigger: JVF and sumPtTrack are not available - if (!inTrigger()) - { - std::vector<float> sumPtTrkvec; - std::vector<float> jvfvec; - - // ToDo still need to check if the 500MeV threshold is correct - taujetseed->getAttribute(xAOD::JetAttribute::SumPtTrkPt500, sumPtTrkvec); - taujetseed->getAttribute(xAOD::JetAttribute::JVF, jvfvec); - - if (!jvfvec.empty() && !sumPtTrkvec.empty()) { - // ToDo need to check if first vertex is the vertex we want to use here! - jvf = jvfvec[0]; - sumPtTrk = sumPtTrkvec[0]; - } - else { - ATH_MSG_WARNING("jvf value vector and/or sumPtTrk vector returned from seed jet is empty!"); - } - } - - float pt_pileup = (1.0 - jvf) * sumPtTrk; - - const float max_pileup_correction = m_maxPileUpCorrection; - const float alpha = m_pileUpAlpha; - float pileup_correction = alpha * pt_pileup; - - ATH_MSG_VERBOSE(" --------------------------------------"); - ATH_MSG_VERBOSE(" Pile-up correction parameter"); - ATH_MSG_VERBOSE(" -> sumPtTrk: " << sumPtTrk); - ATH_MSG_VERBOSE(" -> jvf: " << jvf); - ATH_MSG_VERBOSE(" -> pt_pileup: " << pt_pileup); - ATH_MSG_VERBOSE(" -> alpha: " << alpha); - ATH_MSG_VERBOSE(" -> max pileup corr: " << max_pileup_correction); - - if (pileup_correction > max_pileup_correction) { - pileup_correction = max_pileup_correction; - } - const float calo_iso_corrected = calo_iso - pileup_correction; - - ATH_MSG_VERBOSE(" -> pileup corr: " << pileup_correction); - ATH_MSG_VERBOSE(" --------------------------------------"); - - //record variable - ATH_MSG_VERBOSE(" caloIsoCorrected: " << calo_iso_corrected); - pTau.setDetail(xAOD::TauJetParameters::caloIsoCorrected, static_cast<float>(calo_iso_corrected) ); - - // calculate dRMax - unsigned int numTrack(pTau.nTracks()); - if (numTrack > 0) { - float dRmin = -1 * -1111; - float dRmax = -1111; - float dR; - - for (unsigned int i(0); i < numTrack; ++i) { - if (pTau.track(i) == 0) continue; - dR = Tau1P3PKineUtils::deltaR( pTau.track(i)->eta(), pTau.track(i)->phi(), pTau.eta(), pTau.phi() ); - if (dRmin > dR) dRmin = dR; - if (dRmax < dR) dRmax = dR; - } - //record variable - ATH_MSG_VERBOSE(" dRmax: " << dRmax); - pTau.setDetail(xAOD::TauJetParameters::dRmax, static_cast<float>(dRmax) ); - } - - return StatusCode::SUCCESS; + } + + } + + if (clusELead > 0.) { + approxSubstructure4Vec += leadClusVec; + } + if (clusESubLead > 0.) { + approxSubstructure4Vec += subLeadClusVec; + } + + // now sort cluster by energy + std::sort(vClusters.begin(), vClusters.end(), DefCaloClusterCompare()); + + // determine energy sum of leading 2 and leading 3 clusters + float sum2LeadClusterE = 0.; + if(vClusters.size()>0) { + sum2LeadClusterE = vClusters.at(0)->e(); + if(vClusters.size()>1) sum2LeadClusterE += vClusters.at(1)->e(); + } + float sum3LeadClusterE = sum2LeadClusterE; + if(vClusters.size()>2) sum3LeadClusterE += vClusters.at(2)->e(); + + if (totalEnergy != 0.) { + pTau.setDetail(xAOD::TauJetParameters::lead2ClusterEOverAllClusterE, (sum2LeadClusterE / totalEnergy) ); + pTau.setDetail(xAOD::TauJetParameters::lead3ClusterEOverAllClusterE, (sum3LeadClusterE / totalEnergy) ); + } + + pTau.setDetail(xAOD::TauJetParameters::caloIso, calo_iso); + + // calculate calorimeter energies in different layers + float PSSEnergy(0.); + float EMEnergy(0.); + float HADEnergy(0.); + + for (auto cl : vClusters) { + float clEnergy = cl->e(); + + //Calculate the fractions of energy in different calorimeter layers + float PreSampler = cl->eSample(CaloSampling::PreSamplerB) + cl->eSample(CaloSampling::PreSamplerE); + float EMLayer1 = cl->eSample(CaloSampling::EMB1) + cl->eSample(CaloSampling::EME1); + float EMLayer2 = cl->eSample(CaloSampling::EMB2) + cl->eSample(CaloSampling::EME2); + + float Energy = cl->rawE(); + float PSSF = Energy != 0 ? (PreSampler + EMLayer1) / Energy : 0; + float EM2F = Energy != 0 ? EMLayer2 / Energy : 0; + float EMF = PSSF + EM2F; + + PSSEnergy += PSSF * clEnergy; + EMEnergy += EMF * clEnergy; + HADEnergy += (Energy != 0) ? (1 - EMF) * clEnergy : 0; + } + + // calculate trk momentum + float trkSysMomentum(0.); + for (size_t i=0; i < pTau.nTracks(); ++i) { + trkSysMomentum += pTau.track(i)->pt() * std::cosh(pTau.track(i)->eta()); + + //adding the core tracks to the approximate substructure 4 vector + approxSubstructure4Vec += pTau.track(i)->p4(); + } + + // set new approximate energy flow variables for tau ID + pTau.setDetail(xAOD::TauJetParameters::ptRatioEflowApprox, static_cast<float>(approxSubstructure4Vec.Pt()/ pTau.ptDetectorAxis()) ); + pTau.setDetail(xAOD::TauJetParameters::mEflowApprox, static_cast<float>(approxSubstructure4Vec.M()) ); + + float fPSSFraction = (totalEnergy != 0.) ? PSSEnergy / totalEnergy : DEFAULT; + float fChPIEMEOverCaloEME = (EMEnergy != 0.) ? (trkSysMomentum - HADEnergy) / EMEnergy : DEFAULT; + float fEMPOverTrkSysP = DEFAULT; + if (pTau.nTracks() > 0) fEMPOverTrkSysP = (trkSysMomentum != 0.) ? EMEnergy / trkSysMomentum : DEFAULT; + + pTau.setDetail(xAOD::TauJetParameters::PSSFraction, fPSSFraction); + pTau.setDetail(xAOD::TauJetParameters::ChPiEMEOverCaloEME, fChPIEMEOverCaloEME); + pTau.setDetail(xAOD::TauJetParameters::EMPOverTrkSysP, fEMPOverTrkSysP); + + // calculate dRMax + size_t numTrack = pTau.nTracks(); + if (numTrack > 0) { + float dRmax = 0.; + float dR = 0.; + + for (size_t i=0; i < numTrack; ++i) { + dR = pTau.track(i)->p4().DeltaR(pTau.p4()); + if (dR > dRmax) dRmax = dR; + } + pTau.setDetail(xAOD::TauJetParameters::dRmax, dRmax); + } + + return StatusCode::SUCCESS; } diff --git a/Reconstruction/tauRecTools/Root/TauTrackClassifier.cxx b/Reconstruction/tauRecTools/Root/TauTrackClassifier.cxx index 5150e1ca4ffc76d2e6461baf29144d7792f7c3be..7268663e5c9158c18b1288c4fabde082dc4cb0d3 100644 --- a/Reconstruction/tauRecTools/Root/TauTrackClassifier.cxx +++ b/Reconstruction/tauRecTools/Root/TauTrackClassifier.cxx @@ -45,13 +45,6 @@ StatusCode TauTrackClassifier::initialize() return StatusCode::SUCCESS; } - -StatusCode TauTrackClassifier::finalize() -{ - return StatusCode::SUCCESS; -} - - //______________________________________________________________________________ StatusCode TauTrackClassifier::executeTrackClassifier(xAOD::TauJet& xTau, xAOD::TauTrackContainer& tauTrackCon) const { @@ -130,66 +123,67 @@ StatusCode TrackMVABDT::finalize() //______________________________________________________________________________ StatusCode TrackMVABDT::initialize() { - m_mAvailableVars={{"TracksAuxDyn.tauPt", new float(0)} - , {"TracksAuxDyn.jetSeedPt", new float(0)} - , {"TracksAuxDyn.tauEta", new float(0)} - , {"TracksAuxDyn.trackEta", new float(0)} - , {"TracksAuxDyn.z0sinThetaTJVA", new float(0)} - , {"TracksAuxDyn.rConv", new float(0)} - , {"TracksAuxDyn.rConvII", new float(0)} - , {"TauTracksAuxDyn.rConv/TauTracksAuxDyn.rConvII", new float(0)} - , {"TracksAuxDyn.DRJetSeedAxis", new float(0)} - , {"TracksAuxDyn.dRJetSeedAxis", new float(0)} - , {"TracksAux.d0", new float(0)} - , {"TracksAux.qOverP", new float(0)} - , {"TracksAux.theta", new float(0)} - , {"TracksAux.eProbabilityHT", new float(0)} - , {"TracksAux.numberOfInnermostPixelLayerHits", new float(0)} - , {"TracksAux.numberOfPixelHits", new float(0)} - , {"TracksAux.numberOfPixelDeadSensors", new float(0)} - , {"TracksAux.numberOfPixelSharedHits", new float(0)} - , {"TracksAux.numberOfSCTHits", new float(0)} - , {"TracksAux.numberOfSCTDeadSensors", new float(0)} - , {"TracksAux.numberOfSCTSharedHits", new float(0)} - , {"TracksAux.numberOfTRTHighThresholdHits", new float(0)} - , {"TracksAux.numberOfTRTHits", new float(0)} - , {"TracksAux.numberOfPixelHits+TracksAux.numberOfPixelDeadSensors", new float(0)} - , {"TracksAux.numberOfPixelHits+TracksAux.numberOfPixelDeadSensors+TracksAux.numberOfSCTHits+TracksAux.numberOfSCTDeadSensors", new float(0)} - - , {"TauTracksAuxDyn.tauPt", new float(0)} - , {"TauTracksAuxDyn.jetSeedPt", new float(0)} - , {"TauTracksAuxDyn.tauEta", new float(0)} - , {"TauTracksAuxDyn.trackEta", new float(0)} - , {"TauTracksAuxDyn.z0sinThetaTJVA", new float(0)} - , {"TauTracksAuxDyn.rConv", new float(0)} - , {"TauTracksAuxDyn.rConvII", new float(0)} - , {"TauTracksAuxDyn.dRJetSeedAxis", new float(0)} - , {"TauTracksAuxDyn.d0", new float(0)} - , {"TauTracksAuxDyn.qOverP", new float(0)} - , {"TauTracksAuxDyn.theta", new float(0)} - , {"TauTracksAuxDyn.eProbabilityHT", new float(0)} - , {"TauTracksAuxDyn.numberOfInnermostPixelLayerHits", new float(0)} - , {"TauTracksAuxDyn.numberOfPixelHits", new float(0)} - , {"TauTracksAuxDyn.numberOfPixelDeadSensors", new float(0)} - , {"TauTracksAuxDyn.numberOfPixelSharedHits", new float(0)} - , {"TauTracksAuxDyn.numberOfSCTHits", new float(0)} - , {"TauTracksAuxDyn.numberOfSCTDeadSensors", new float(0)} - , {"TauTracksAuxDyn.numberOfSCTSharedHits", new float(0)} - , {"TauTracksAuxDyn.numberOfTRTHighThresholdHits", new float(0)} - , {"TauTracksAuxDyn.numberOfTRTHits", new float(0)} - , {"TauTracksAuxDyn.numberOfPixelHits+TauTracksAuxDyn.numberOfPixelDeadSensors", new float(0)} - , {"TauTracksAuxDyn.numberOfPixelHits+TauTracksAuxDyn.numberOfPixelDeadSensors+TauTracksAuxDyn.numberOfSCTHits+TauTracksAuxDyn.numberOfSCTDeadSensors", new float(0)} - - - , {"1/(TauTracksAuxDyn.trackPt)", new float(0)} - , {"fabs(TauTracksAuxDyn.qOverP)", new float(0)} - , {"TauTracksAuxDyn.numberOfContribPixelLayers", new float(0)} - , {"TauTracksAuxDyn.numberOfPixelHits+TauTracksAuxDyn.numberOfPixelDeadSensors+TauTracksAuxDyn.numberOfPixelHoles", new float(0)} - , {"TauTracksAuxDyn.numberOfPixelHits+TauTracksAuxDyn.numberOfPixelDeadSensors+TauTracksAuxDyn.numberOfPixelHoles+TauTracksAuxDyn.numberOfSCTHits+TauTracksAuxDyn.numberOfSCTDeadSensors+TauTracksAuxDyn.numberOfSCTHoles", new float(0)} - , {"TauTracksAuxDyn.numberOfPixelHoles", new float(0)} - , {"TauTracksAuxDyn.numberOfPixelHoles+TauTracksAuxDyn.numberOfSCTHoles", new float(0)} - , {"TauTracksAuxDyn.numberOfSCTHoles", new float(0)} - , {"TauTracksAux.pt", new float(0)} + m_mAvailableVars={ + {"TracksAuxDyn.tauPt", new float(0)} + , {"TracksAuxDyn.jetSeedPt", new float(0)} + , {"TracksAuxDyn.tauEta", new float(0)} + , {"TracksAuxDyn.trackEta", new float(0)} + , {"TracksAuxDyn.z0sinThetaTJVA", new float(0)} + , {"TracksAuxDyn.rConv", new float(0)} + , {"TracksAuxDyn.rConvII", new float(0)} + , {"TauTracksAuxDyn.rConv/TauTracksAuxDyn.rConvII", new float(0)} + , {"TracksAuxDyn.DRJetSeedAxis", new float(0)} + , {"TracksAuxDyn.dRJetSeedAxis", new float(0)} + , {"TracksAux.d0", new float(0)} + , {"TracksAux.qOverP", new float(0)} + , {"TracksAux.theta", new float(0)} + , {"TracksAux.eProbabilityHT", new float(0)} + , {"TracksAux.numberOfInnermostPixelLayerHits", new float(0)} + , {"TracksAux.numberOfPixelHits", new float(0)} + , {"TracksAux.numberOfPixelDeadSensors", new float(0)} + , {"TracksAux.numberOfPixelSharedHits", new float(0)} + , {"TracksAux.numberOfSCTHits", new float(0)} + , {"TracksAux.numberOfSCTDeadSensors", new float(0)} + , {"TracksAux.numberOfSCTSharedHits", new float(0)} + , {"TracksAux.numberOfTRTHighThresholdHits", new float(0)} + , {"TracksAux.numberOfTRTHits", new float(0)} + , {"TracksAux.numberOfPixelHits+TracksAux.numberOfPixelDeadSensors", new float(0)} + , {"TracksAux.numberOfPixelHits+TracksAux.numberOfPixelDeadSensors+TracksAux.numberOfSCTHits+TracksAux.numberOfSCTDeadSensors", new float(0)} + + , {"TauTracksAuxDyn.tauPt", new float(0)} + , {"TauTracksAuxDyn.jetSeedPt", new float(0)} + , {"TauTracksAuxDyn.tauEta", new float(0)} + , {"TauTracksAuxDyn.trackEta", new float(0)} + , {"TauTracksAuxDyn.z0sinThetaTJVA", new float(0)} + , {"TauTracksAuxDyn.rConv", new float(0)} + , {"TauTracksAuxDyn.rConvII", new float(0)} + , {"TauTracksAuxDyn.dRJetSeedAxis", new float(0)} + , {"TauTracksAuxDyn.d0", new float(0)} + , {"TauTracksAuxDyn.qOverP", new float(0)} + , {"TauTracksAuxDyn.theta", new float(0)} + , {"TauTracksAuxDyn.eProbabilityHT", new float(0)} + , {"TauTracksAuxDyn.numberOfInnermostPixelLayerHits", new float(0)} + , {"TauTracksAuxDyn.numberOfPixelHits", new float(0)} + , {"TauTracksAuxDyn.numberOfPixelDeadSensors", new float(0)} + , {"TauTracksAuxDyn.numberOfPixelSharedHits", new float(0)} + , {"TauTracksAuxDyn.numberOfSCTHits", new float(0)} + , {"TauTracksAuxDyn.numberOfSCTDeadSensors", new float(0)} + , {"TauTracksAuxDyn.numberOfSCTSharedHits", new float(0)} + , {"TauTracksAuxDyn.numberOfTRTHighThresholdHits", new float(0)} + , {"TauTracksAuxDyn.numberOfTRTHits", new float(0)} + , {"TauTracksAuxDyn.numberOfPixelHits+TauTracksAuxDyn.numberOfPixelDeadSensors", new float(0)} + , {"TauTracksAuxDyn.numberOfPixelHits+TauTracksAuxDyn.numberOfPixelDeadSensors+TauTracksAuxDyn.numberOfSCTHits+TauTracksAuxDyn.numberOfSCTDeadSensors", new float(0)} + + + , {"1/(TauTracksAuxDyn.trackPt)", new float(0)} + , {"fabs(TauTracksAuxDyn.qOverP)", new float(0)} + , {"TauTracksAuxDyn.numberOfContribPixelLayers", new float(0)} + , {"TauTracksAuxDyn.numberOfPixelHits+TauTracksAuxDyn.numberOfPixelDeadSensors+TauTracksAuxDyn.numberOfPixelHoles", new float(0)} + , {"TauTracksAuxDyn.numberOfPixelHits+TauTracksAuxDyn.numberOfPixelDeadSensors+TauTracksAuxDyn.numberOfPixelHoles+TauTracksAuxDyn.numberOfSCTHits+TauTracksAuxDyn.numberOfSCTDeadSensors+TauTracksAuxDyn.numberOfSCTHoles", new float(0)} + , {"TauTracksAuxDyn.numberOfPixelHoles", new float(0)} + , {"TauTracksAuxDyn.numberOfPixelHoles+TauTracksAuxDyn.numberOfSCTHoles", new float(0)} + , {"TauTracksAuxDyn.numberOfSCTHoles", new float(0)} + , {"TauTracksAux.pt", new float(0)} }; ATH_CHECK(addWeightsFile()); @@ -331,6 +325,5 @@ StatusCode TrackMVABDT::setVars(const xAOD::TauTrack& xTrack, const xAOD::TauJet setVar("TauTracksAuxDyn.numberOfSCTHoles") = fNumberOfSCTHoles; setVar("TauTracksAux.pt") = xTrackParticle->pt(); - return StatusCode::SUCCESS; - + return StatusCode::SUCCESS; } diff --git a/Reconstruction/tauRecTools/Root/TauWPDecorator.cxx b/Reconstruction/tauRecTools/Root/TauWPDecorator.cxx index cab8bec41f24d8a3f4f69420f1897349fd3a562c..94e7daaf6ef7ac89d8063483c35f53bb89172d30 100644 --- a/Reconstruction/tauRecTools/Root/TauWPDecorator.cxx +++ b/Reconstruction/tauRecTools/Root/TauWPDecorator.cxx @@ -10,8 +10,7 @@ #include "TFile.h" #include "TH2.h" - - +//______________________________________________________________________________ TauWPDecorator::TauWPDecorator(const std::string& name) : TauRecToolBase(name) { declareProperty("UseEleBDT", m_electronMode = false); @@ -34,13 +33,11 @@ TauWPDecorator::TauWPDecorator(const std::string& name) : declareProperty("DecorWPCutEffs3P", m_decorWPEffs3p); } - - +//______________________________________________________________________________ TauWPDecorator::~TauWPDecorator() { } - - +//______________________________________________________________________________ StatusCode TauWPDecorator::retrieveHistos(int nProng) { // Find and open file std::string fileName; @@ -91,8 +88,7 @@ StatusCode TauWPDecorator::retrieveHistos(int nProng) { return StatusCode::SUCCESS; } - - +//______________________________________________________________________________ StatusCode TauWPDecorator::storeLimits(int nProng) { std::shared_ptr<std::vector<m_pair_t>> histArray = nullptr; if (nProng == 0) { @@ -131,14 +127,14 @@ StatusCode TauWPDecorator::storeLimits(int nProng) { return StatusCode::SUCCESS; } +//______________________________________________________________________________ double TauWPDecorator::transformScore(double score, double cutLow, double effLow, double cutHigh, double effHigh) const { double efficiency = effLow + (score - cutLow)/(cutHigh - cutLow) * (effHigh - effLow); double scoreTrans = 1.0 - efficiency; return scoreTrans; } - - +//______________________________________________________________________________ StatusCode TauWPDecorator::initialize() { ATH_CHECK( m_aveIntPerXKey.initialize() ); @@ -172,8 +168,7 @@ StatusCode TauWPDecorator::initialize() { return StatusCode::SUCCESS; } - - +//______________________________________________________________________________ StatusCode TauWPDecorator::execute(xAOD::TauJet& pTau) const { // obtain the dependent variables of the efficiency // -- x variable is tau pt @@ -305,9 +300,3 @@ StatusCode TauWPDecorator::execute(xAOD::TauJet& pTau) const { return StatusCode::SUCCESS; } - - - -StatusCode TauWPDecorator::finalize() { - return StatusCode::SUCCESS; -} diff --git a/Reconstruction/tauRecTools/src/JetSeedBuilder.cxx b/Reconstruction/tauRecTools/src/JetSeedBuilder.cxx index cf349446aa11f0dae3b0b2cac4b9da378a55feb4..17950599553cb8cc64ff9831b5bfac38aba15e62 100644 --- a/Reconstruction/tauRecTools/src/JetSeedBuilder.cxx +++ b/Reconstruction/tauRecTools/src/JetSeedBuilder.cxx @@ -12,38 +12,23 @@ #include "xAODTau/TauJetAuxContainer.h" #include "xAODTau/TauJet.h" - - +//______________________________________________________________________________ JetSeedBuilder::JetSeedBuilder(const std::string& name) : TauRecToolBase(name) { } - - +//______________________________________________________________________________ JetSeedBuilder::~JetSeedBuilder() { } - - -StatusCode JetSeedBuilder::initialize() { - return StatusCode::SUCCESS; -} - - - -StatusCode JetSeedBuilder::finalize() { - return StatusCode::SUCCESS; -} - - - +//______________________________________________________________________________ StatusCode JetSeedBuilder::execute(xAOD::TauJet& pTau) const { ATH_MSG_DEBUG("Starting execute"); const xAOD::Jet* jetSeed = nullptr; if (pTau.jetLink().isValid()) { - jetSeed = * pTau.jetLink(); + jetSeed = pTau.jet(); } else { ATH_MSG_ERROR("seed is not a jet -> tau will not be reconstructed"); @@ -76,4 +61,3 @@ StatusCode JetSeedBuilder::execute(xAOD::TauJet& pTau) const { } #endif - diff --git a/Reconstruction/tauRecTools/src/JetSeedBuilder.h b/Reconstruction/tauRecTools/src/JetSeedBuilder.h index ea014e431d1246640c93ee81c3ef6539714ea955..f52c5f533eff6999ce76f890810212d7c00701db 100644 --- a/Reconstruction/tauRecTools/src/JetSeedBuilder.h +++ b/Reconstruction/tauRecTools/src/JetSeedBuilder.h @@ -26,14 +26,8 @@ class JetSeedBuilder : public TauRecToolBase { /** @brief Destructor */ virtual ~JetSeedBuilder(); - /** @brief Initialization of this tool */ - virtual StatusCode initialize() override; - /** @brief Executation of this tool */ virtual StatusCode execute(xAOD::TauJet& pTau) const override; - - /** @brief Finalization of this tool */ - virtual StatusCode finalize() override; }; #endif /* JETSEEDBUILDER_H */ diff --git a/Reconstruction/tauRecTools/src/TauAxisSetter.cxx b/Reconstruction/tauRecTools/src/TauAxisSetter.cxx index 7713d7b53bfb6e6035229435832646acd427a4a1..281811a695e9593fd0dde1870d755904d3ca3dcf 100644 --- a/Reconstruction/tauRecTools/src/TauAxisSetter.cxx +++ b/Reconstruction/tauRecTools/src/TauAxisSetter.cxx @@ -12,28 +12,19 @@ #include "xAODTau/TauJet.h" #include "CaloUtils/CaloVertexedCluster.h" - - +//______________________________________________________________________________ TauAxisSetter::TauAxisSetter(const std::string& name) : TauRecToolBase(name) { } - - +//______________________________________________________________________________ TauAxisSetter::~TauAxisSetter() { } - - -StatusCode TauAxisSetter::initialize() { - return StatusCode::SUCCESS; -} - - - +//______________________________________________________________________________ StatusCode TauAxisSetter::execute(xAOD::TauJet& pTau) const { - const xAOD::Jet* pJetSeed = (*pTau.jetLink()); + const xAOD::Jet* pJetSeed = pTau.jet(); if (!pJetSeed) { ATH_MSG_ERROR("Tau jet link is invalid."); return StatusCode::FAILURE; @@ -91,7 +82,7 @@ StatusCode TauAxisSetter::execute(xAOD::TauJet& pTau) const { ATH_CHECK(tauRecTools::GetJetClusterList(pJetSeed, clusterList, m_incShowerSubtr, baryCenter, m_clusterCone)); for (auto cluster : clusterList){ if (pTau.vertexLink()) { - tauInterAxis += xAOD::CaloVertexedCluster(*cluster, (*pTau.vertexLink())->position()).p4(); + tauInterAxis += xAOD::CaloVertexedCluster(*cluster, pTau.vertex()->position()).p4(); } else { tauInterAxis += xAOD::CaloVertexedCluster(*cluster).p4(); @@ -106,10 +97,4 @@ StatusCode TauAxisSetter::execute(xAOD::TauJet& pTau) const { return StatusCode::SUCCESS; } - - -StatusCode TauAxisSetter::finalize() { - return StatusCode::SUCCESS; -} - #endif diff --git a/Reconstruction/tauRecTools/src/TauAxisSetter.h b/Reconstruction/tauRecTools/src/TauAxisSetter.h index 2f239a426f25900dbc5f2397a3bac3b39a0a774d..09095467f33a74abe6e8c59c9f0d20d0482f9aea 100644 --- a/Reconstruction/tauRecTools/src/TauAxisSetter.h +++ b/Reconstruction/tauRecTools/src/TauAxisSetter.h @@ -33,14 +33,8 @@ class TauAxisSetter : public TauRecToolBase { /** @brief Destructor */ ~TauAxisSetter(); - /** @brief Initialization of this tool */ - virtual StatusCode initialize() override; - /** @brief Execution of this tool */ virtual StatusCode execute(xAOD::TauJet& pTau) const override; - - /** @brief Finalization of this tool */ - virtual StatusCode finalize() override; private: diff --git a/Reconstruction/tauRecTools/src/TauCellVariables.cxx b/Reconstruction/tauRecTools/src/TauCellVariables.cxx index f43b65e91fd8a67107e5e363de34eae07e4c28cd..ddceb6ffbfb6e4589382325c22fb66094f1f970b 100644 --- a/Reconstruction/tauRecTools/src/TauCellVariables.cxx +++ b/Reconstruction/tauRecTools/src/TauCellVariables.cxx @@ -15,34 +15,19 @@ #include <cmath> #include <vector> - - +//______________________________________________________________________________ TauCellVariables::TauCellVariables(const std::string& name) : TauRecToolBase(name) { } - - +//______________________________________________________________________________ TauCellVariables::~TauCellVariables() { } - - -StatusCode TauCellVariables::finalize() { - return StatusCode::SUCCESS; -} - - - -StatusCode TauCellVariables::initialize() { - return StatusCode::SUCCESS; -} - - - +//______________________________________________________________________________ StatusCode TauCellVariables::execute(xAOD::TauJet& pTau) const { - const xAOD::Jet* pJetSeed = (*pTau.jetLink()); + const xAOD::Jet* pJetSeed = pTau.jet(); if (!pJetSeed) { ATH_MSG_ERROR("tau does not have jet seed for cell variable calculation"); return StatusCode::FAILURE; @@ -94,7 +79,7 @@ StatusCode TauCellVariables::execute(xAOD::TauJet& pTau) const { // correct cell four momentum based on tau vertex if (m_doVertexCorrection && pTau.vertexLink()) { - CaloVertexedCell vxCell (*cell, (*pTau.vertexLink())->position()); + CaloVertexedCell vxCell (*cell, pTau.vertex()->position()); cellPhi = vxCell.phi(); cellEta = vxCell.eta(); cellET = vxCell.et(); @@ -202,4 +187,3 @@ StatusCode TauCellVariables::execute(xAOD::TauJet& pTau) const { } #endif - diff --git a/Reconstruction/tauRecTools/src/TauCellVariables.h b/Reconstruction/tauRecTools/src/TauCellVariables.h index 13119d343b6a79ee91afac4f6783d5b62baab14b..0d2c2336a454a3f6a76dcfd8a38f344ec8d77193 100644 --- a/Reconstruction/tauRecTools/src/TauCellVariables.h +++ b/Reconstruction/tauRecTools/src/TauCellVariables.h @@ -25,12 +25,6 @@ class TauCellVariables : public TauRecToolBase { /** @brief Destructor */ ~TauCellVariables(); - /** @brief Initialization of this tool */ - virtual StatusCode initialize() override; - - /** @brief Finalization of this tool */ - virtual StatusCode finalize() override; - /** @brief Perform the calculation of cell variables for each tau candidate */ virtual StatusCode execute(xAOD::TauJet& pTau) const override; @@ -49,8 +43,7 @@ class TauCellVariables : public TauRecToolBase { Gaudi::Property<bool> m_incShowerSubtr {this, "IncShowerSubtr", true, "use shower subtracted clusters in calo calculations"}; }; - - +//______________________________________________________________________________ inline bool TauCellVariables::isEMLayer(const CaloSampling::CaloSample& calo) const { if ((calo == CaloSampling::PreSamplerB) || (calo == CaloSampling::PreSamplerE) || @@ -65,8 +58,7 @@ inline bool TauCellVariables::isEMLayer(const CaloSampling::CaloSample& calo) co } } - - +//______________________________________________________________________________ inline bool TauCellVariables::isStripLayer(const CaloSampling::CaloSample& calo) const { if ((calo == CaloSampling::EMB1) || (calo == CaloSampling::EME1)) { @@ -78,4 +70,3 @@ inline bool TauCellVariables::isStripLayer(const CaloSampling::CaloSample& calo) } #endif /* TAUREC_TAUCELLVARIABLES_H */ - diff --git a/Reconstruction/tauRecTools/src/TauElectronVetoVariables.cxx b/Reconstruction/tauRecTools/src/TauElectronVetoVariables.cxx index 6f2eccd2cd574e6f8818c20cabb0106fe802b158..a47162cb0ab48d388adf8de3023aad79eb59a0d7 100644 --- a/Reconstruction/tauRecTools/src/TauElectronVetoVariables.cxx +++ b/Reconstruction/tauRecTools/src/TauElectronVetoVariables.cxx @@ -3,24 +3,6 @@ */ #ifndef XAOD_ANALYSIS -//----------------------------------------------------------------------------- -// file: tau1p3pEleVeto.cxx -// package: Reconstruction/tauRec -// authors: Zofia Czyczula -// date: 2006-09-27 -// -// -// This tool veto electrons. -// -// MODIFIED: -// 02-04-2007 - (AK) protection against missing egamma Collection -// 25-03-2008 - (AK for ZC) upgade of the code -// 28-03-1008 - (AK) fix for protection against missing egamma Collection -// ERROR->WARNING -// 15/04/2008 - (AK) fixing compilation warning bug #35463 -// 03-10-2008 - (ZC) upgarade of the code -// 16/03/2010 - (AK) use the cell id instead of the pointer -//----------------------------------------------------------------------------- #include <algorithm> #include <cmath> @@ -52,14 +34,6 @@ TauRecToolBase(name) { //------------------------------------------------------------------------- TauElectronVetoVariables::~TauElectronVetoVariables() { } -//------------------------------------------------------------------------- -// Finalizer -//------------------------------------------------------------------------- -StatusCode TauElectronVetoVariables::finalize() -{ - return StatusCode::SUCCESS; -} - //------------------------------------------------------------------------- // Initializer //------------------------------------------------------------------------- @@ -194,7 +168,7 @@ StatusCode TauElectronVetoVariables::execute(xAOD::TauJet& pTau) const } } - const xAOD::Jet* pJetSeed = (*pTau.jetLink()); + const xAOD::Jet* pJetSeed = pTau.jet(); if (!pJetSeed) { ATH_MSG_ERROR("tau does not have jet seed for electron veto cell variable calculation"); return StatusCode::FAILURE; @@ -220,7 +194,7 @@ StatusCode TauElectronVetoVariables::execute(xAOD::TauJet& pTau) const else cellSeen.set(pCell->caloDDE()->calo_hash()); if (m_doVertexCorrection && pTau.vertexLink()) { - CaloVertexedCell vxCell (*pCell, (*pTau.vertexLink())->position()); + CaloVertexedCell vxCell (*pCell, pTau.vertex()->position()); cellPhi = vxCell.phi(); cellEta = vxCell.eta(); cellET = vxCell.et(); diff --git a/Reconstruction/tauRecTools/src/TauElectronVetoVariables.h b/Reconstruction/tauRecTools/src/TauElectronVetoVariables.h index d239719254f93975e1b5353826ac117ed7ff4899..975c731e44038d589252291598133738cfe5b376 100644 --- a/Reconstruction/tauRecTools/src/TauElectronVetoVariables.h +++ b/Reconstruction/tauRecTools/src/TauElectronVetoVariables.h @@ -31,7 +31,6 @@ public: virtual ~TauElectronVetoVariables(); virtual StatusCode execute(xAOD::TauJet& pTau) const override; virtual StatusCode initialize() override; - virtual StatusCode finalize() override; private: Gaudi::Property<bool> m_doVertexCorrection {this, "VertexCorrection", false, "switch of vertex correction"}; diff --git a/Reconstruction/tauRecTools/src/TauPi0ClusterCreator.cxx b/Reconstruction/tauRecTools/src/TauPi0ClusterCreator.cxx index 3cf2711b00d2f34fb39cc47a34495bda68391628..eed20fb0e6a3d2aa44d5b79837eb43b6f4c49223 100644 --- a/Reconstruction/tauRecTools/src/TauPi0ClusterCreator.cxx +++ b/Reconstruction/tauRecTools/src/TauPi0ClusterCreator.cxx @@ -8,7 +8,6 @@ // package: Reconstruction/tauEvent // authors: Benedict Winter, Will Davey, Stephanie Yuen // date: 2012-10-09 -// //----------------------------------------------------------------------------- #include "CaloUtils/CaloClusterStoreHelper.h" @@ -18,14 +17,11 @@ #include "TauPi0ClusterCreator.h" #include "tauRecTools/HelperFunctions.h" -using std::vector; -using std::string; - //------------------------------------------------------------------------- // Constructor //------------------------------------------------------------------------- -TauPi0ClusterCreator::TauPi0ClusterCreator( const string& name) : +TauPi0ClusterCreator::TauPi0ClusterCreator(const std::string& name) : TauRecToolBase(name) { } @@ -37,24 +33,14 @@ TauPi0ClusterCreator::~TauPi0ClusterCreator() { } - -StatusCode TauPi0ClusterCreator::initialize() -{ - return StatusCode::SUCCESS; -} - -StatusCode TauPi0ClusterCreator::finalize() -{ - return StatusCode::SUCCESS; -} - +//______________________________________________________________________________ StatusCode TauPi0ClusterCreator::executePi0ClusterCreator(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer, xAOD::PFOContainer& hadronicClusterPFOContainer, xAOD::CaloClusterContainer& pi0CaloClusterContainer, const xAOD::CaloClusterContainer& pPi0ClusterContainer) const { // Any tau needs to have PFO vectors. Set empty vectors before nTrack cut - vector<ElementLink<xAOD::PFOContainer> > empty; + std::vector<ElementLink<xAOD::PFOContainer> > empty; pTau.setProtoChargedPFOLinks(empty); pTau.setProtoNeutralPFOLinks(empty); pTau.setProtoPi0PFOLinks(empty); @@ -100,9 +86,9 @@ StatusCode TauPi0ClusterCreator::executePi0ClusterCreator(xAOD::TauJet& pTau, xA // calorimeter is required. float EM1CoreFrac = getEM1CoreFrac(pPi0Cluster); int NHitsInEM1 = getNPhotons(shotVector, shotsInCluster); - vector<int> NPosECellsInLayer = getNPosECells(pPi0Cluster); - vector<float> firstEtaWRTClusterPositionInLayer = get1stEtaMomWRTCluster(pPi0Cluster); - vector<float> secondEtaWRTClusterPositionInLayer = get2ndEtaMomWRTCluster(pPi0Cluster); + std::vector<int> NPosECellsInLayer = getNPosECells(pPi0Cluster); + std::vector<float> firstEtaWRTClusterPositionInLayer = get1stEtaMomWRTCluster(pPi0Cluster); + std::vector<float> secondEtaWRTClusterPositionInLayer = get2ndEtaMomWRTCluster(pPi0Cluster); // Retrieve cluster moments that are used for fake supression and that are not stored in AOD // for every cluster. Do this after applying the vertex correction, since the moments @@ -209,6 +195,7 @@ StatusCode TauPi0ClusterCreator::executePi0ClusterCreator(xAOD::TauJet& pTau, xA return StatusCode::SUCCESS; } +//______________________________________________________________________________ // Functions used to calculate BDT variables other than those provided by the CaloClusterMomentsMaker float TauPi0ClusterCreator::getEM1CoreFrac(const xAOD::CaloCluster* pi0Candidate) const { @@ -234,6 +221,7 @@ float TauPi0ClusterCreator::getEM1CoreFrac(const xAOD::CaloCluster* pi0Candidate return coreEnergy/sumEPosCellsEM1; } +//______________________________________________________________________________ // Do cluster to shot matching. // A cluster is matched to a shot if the seed cell of the shot is in the cluster std::map<unsigned, xAOD::CaloCluster*> TauPi0ClusterCreator::getClusterToShotMap(const std::vector<const xAOD::PFO*>& shotVector, @@ -292,6 +280,7 @@ std::map<unsigned, xAOD::CaloCluster*> TauPi0ClusterCreator::getClusterToShotMap return clusterToShotMap; } +//______________________________________________________________________________ std::vector<unsigned> TauPi0ClusterCreator::getShotsMatchedToCluster(const std::vector<const xAOD::PFO*>& shotVector, const std::map<unsigned, xAOD::CaloCluster*>& clusterToShotMap, const xAOD::CaloCluster* pPi0Cluster) const @@ -306,6 +295,7 @@ std::vector<unsigned> TauPi0ClusterCreator::getShotsMatchedToCluster(const std:: return shotsMatchedToCluster; } +//______________________________________________________________________________ int TauPi0ClusterCreator::getNPhotons(const std::vector<const xAOD::PFO*>& shotVector, const std::vector<unsigned>& shotsInCluster ) const { @@ -319,9 +309,10 @@ int TauPi0ClusterCreator::getNPhotons(const std::vector<const xAOD::PFO*>& shotV return nPhotons; } -vector<int> TauPi0ClusterCreator::getNPosECells(const xAOD::CaloCluster* pi0Candidate) const +//______________________________________________________________________________ +std::vector<int> TauPi0ClusterCreator::getNPosECells(const xAOD::CaloCluster* pi0Candidate) const { - vector<int> nPosECellsInLayer(3,0); // 3 layers initialised with 0 +ve cells + std::vector<int> nPosECellsInLayer(3,0); // 3 layers initialised with 0 +ve cells const CaloClusterCellLink* theCellLink = pi0Candidate->getCellLinks(); CaloClusterCellLink::const_iterator cellInClusterItr = theCellLink->begin(); @@ -338,11 +329,11 @@ vector<int> TauPi0ClusterCreator::getNPosECells(const xAOD::CaloCluster* pi0Cand return nPosECellsInLayer; } - -vector<float> TauPi0ClusterCreator::get1stEtaMomWRTCluster(const xAOD::CaloCluster* pi0Candidate) const +//______________________________________________________________________________ +std::vector<float> TauPi0ClusterCreator::get1stEtaMomWRTCluster(const xAOD::CaloCluster* pi0Candidate) const { - vector<float> firstEtaWRTClusterPositionInLayer (4, 0.); //init with 0. for 0-3 layers - vector<float> sumEInLayer (4, 0.); //init with 0. for 0-3 layers + std::vector<float> firstEtaWRTClusterPositionInLayer (4, 0.); //init with 0. for 0-3 layers + std::vector<float> sumEInLayer (4, 0.); //init with 0. for 0-3 layers const CaloClusterCellLink* theCellLink = pi0Candidate->getCellLinks(); CaloClusterCellLink::const_iterator cellInClusterItr = theCellLink->begin(); @@ -370,10 +361,11 @@ vector<float> TauPi0ClusterCreator::get1stEtaMomWRTCluster(const xAOD::CaloClust return firstEtaWRTClusterPositionInLayer; } -vector<float> TauPi0ClusterCreator::get2ndEtaMomWRTCluster( const xAOD::CaloCluster* pi0Candidate) const +//______________________________________________________________________________ +std::vector<float> TauPi0ClusterCreator::get2ndEtaMomWRTCluster( const xAOD::CaloCluster* pi0Candidate) const { - vector<float> secondEtaWRTClusterPositionInLayer (4, 0.); //init with 0. for 0-3 layers - vector<float> sumEInLayer (4, 0.); //init with 0. for 0-3 layers + std::vector<float> secondEtaWRTClusterPositionInLayer (4, 0.); //init with 0. for 0-3 layers + std::vector<float> sumEInLayer (4, 0.); //init with 0. for 0-3 layers const CaloClusterCellLink* theCellLinks = pi0Candidate->getCellLinks(); @@ -398,9 +390,10 @@ vector<float> TauPi0ClusterCreator::get2ndEtaMomWRTCluster( const xAOD::CaloClus return secondEtaWRTClusterPositionInLayer; } +//______________________________________________________________________________ bool TauPi0ClusterCreator::setHadronicClusterPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& pHadronPFOContainer) const { - const xAOD::Jet* tauJetSeed = (*pTau.jetLink()); + const xAOD::Jet* tauJetSeed = pTau.jet(); if (!tauJetSeed) { ATH_MSG_ERROR("Could not retrieve tau jet seed"); return false; diff --git a/Reconstruction/tauRecTools/src/TauPi0ClusterCreator.h b/Reconstruction/tauRecTools/src/TauPi0ClusterCreator.h index ef90efafbb2a1fd4a6445c106f2234eccdfa08a3..6185d81cb347e34cf20499c4311132618e1b9cd1 100644 --- a/Reconstruction/tauRecTools/src/TauPi0ClusterCreator.h +++ b/Reconstruction/tauRecTools/src/TauPi0ClusterCreator.h @@ -26,8 +26,6 @@ public: ASG_TOOL_CLASS2(TauPi0ClusterCreator, TauRecToolBase, ITauToolBase); virtual ~TauPi0ClusterCreator(); - virtual StatusCode initialize() override; - virtual StatusCode finalize() override; virtual StatusCode executePi0ClusterCreator(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer, xAOD::PFOContainer& hadronicClusterPFOContainer, xAOD::CaloClusterContainer& pi0CaloClusContainer, diff --git a/Reconstruction/tauRecTools/src/TauPi0ClusterScaler.cxx b/Reconstruction/tauRecTools/src/TauPi0ClusterScaler.cxx index e20747d4892432a2ad095d6add4ef07c3f32bf93..ff5fa8094347dcae034adf5f07fd43c74d0ba5d9 100644 --- a/Reconstruction/tauRecTools/src/TauPi0ClusterScaler.cxx +++ b/Reconstruction/tauRecTools/src/TauPi0ClusterScaler.cxx @@ -7,7 +7,6 @@ // package: Reconstruction/tauRec // authors: Stephanie Yuen, Benedict Winter, Will Davey // date: 2014-08-04 -// //----------------------------------------------------------------------------- #include <vector> @@ -19,14 +18,11 @@ #include "FourMomUtils/xAODP4Helpers.h" #include "xAODCaloEvent/CaloVertexedTopoCluster.h" -using std::vector; -using std::string; - //------------------------------------------------------------------------- // Constructor //------------------------------------------------------------------------- -TauPi0ClusterScaler::TauPi0ClusterScaler( const string& name ) : +TauPi0ClusterScaler::TauPi0ClusterScaler(const std::string& name) : TauRecToolBase(name) { } @@ -39,18 +35,7 @@ TauPi0ClusterScaler::~TauPi0ClusterScaler() { } - -StatusCode TauPi0ClusterScaler::initialize() -{ - return StatusCode::SUCCESS; -} - -StatusCode TauPi0ClusterScaler::finalize() -{ - return StatusCode::SUCCESS; -} - - +//______________________________________________________________________________ StatusCode TauPi0ClusterScaler::executePi0ClusterScaler(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer, xAOD::PFOContainer& chargedPFOContainer) const { // Clear vector of cell-based charged PFO Links. @@ -82,6 +67,7 @@ StatusCode TauPi0ClusterScaler::executePi0ClusterScaler(xAOD::TauJet& pTau, xAOD return StatusCode::SUCCESS; } +//______________________________________________________________________________ void TauPi0ClusterScaler::resetNeutralPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer) const { // Set neutral PFO kinematics to vertex corrected cluster @@ -92,7 +78,7 @@ void TauPi0ClusterScaler::resetNeutralPFOs(xAOD::TauJet& pTau, xAOD::PFOContaine // apply cluster vertex correction if(pTau.vertexLink()){ - auto clcorr = xAOD::CaloVertexedTopoCluster(*cl, (*pTau.vertexLink())->position()); + auto clcorr = xAOD::CaloVertexedTopoCluster(*cl, pTau.vertex()->position()); pfo->setP4(clcorr.pt(), clcorr.eta(), clcorr.phi(), 0.0); } else{ @@ -107,8 +93,7 @@ void TauPi0ClusterScaler::resetNeutralPFOs(xAOD::TauJet& pTau, xAOD::PFOContaine } } - - +//______________________________________________________________________________ void TauPi0ClusterScaler::createChargedPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& cPFOContainer) const { ATH_MSG_DEBUG("Creating charged PFOs"); @@ -137,6 +122,7 @@ void TauPi0ClusterScaler::createChargedPFOs(xAOD::TauJet& pTau, xAOD::PFOContain } } +//______________________________________________________________________________ void TauPi0ClusterScaler::associateHadronicToChargedPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& chargedPFOContainer) const { ATH_MSG_DEBUG("Associating hadronic PFOs to charged PFOs"); @@ -215,6 +201,7 @@ void TauPi0ClusterScaler::associateHadronicToChargedPFOs(xAOD::TauJet& pTau, xAO } } +//______________________________________________________________________________ void TauPi0ClusterScaler::associateChargedToNeutralPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer) const { ATH_MSG_DEBUG("Associating charged PFOs to neutral PFOs"); @@ -293,7 +280,7 @@ void TauPi0ClusterScaler::associateChargedToNeutralPFOs(xAOD::TauJet& pTau, xAOD } } - +//______________________________________________________________________________ void TauPi0ClusterScaler::subtractChargedEnergyFromNeutralPFOs(xAOD::PFOContainer& neutralPFOContainer) const { ATH_MSG_DEBUG("Subtracting charged energy from neutral PFOs"); @@ -328,11 +315,10 @@ void TauPi0ClusterScaler::subtractChargedEnergyFromNeutralPFOs(xAOD::PFOContaine neutralEnergy -= chargedEMEnergy; ATH_MSG_DEBUG("Subtracting charged energy: " << chargedEMEnergy ); } - float neutralPt = neutralEnergy / cosh(neutralPFO->eta()); + float neutralPt = neutralEnergy / std::cosh(neutralPFO->eta()); if(neutralPt <= 100.) neutralPt = 100.0; ATH_MSG_DEBUG("Neutral PFO pt, orig: " << neutralPFO->pt() << " new: " << neutralPt); neutralPFO->setP4(neutralPt , neutralPFO->eta(), neutralPFO->phi(), neutralPFO->m()); } } - diff --git a/Reconstruction/tauRecTools/src/TauPi0ClusterScaler.h b/Reconstruction/tauRecTools/src/TauPi0ClusterScaler.h index 9bfe5c51c5b7f6aec079a542688c67d3b4c1b52b..bb05d81d099398cdb304e1982152bafd45383e1c 100644 --- a/Reconstruction/tauRecTools/src/TauPi0ClusterScaler.h +++ b/Reconstruction/tauRecTools/src/TauPi0ClusterScaler.h @@ -28,8 +28,6 @@ public: ASG_TOOL_CLASS2(TauPi0ClusterScaler, TauRecToolBase, ITauToolBase) virtual ~TauPi0ClusterScaler(); - virtual StatusCode initialize() override; - virtual StatusCode finalize() override; virtual StatusCode executePi0ClusterScaler(xAOD::TauJet& pTau, xAOD::PFOContainer& pNeutralPFOContainer, xAOD::PFOContainer& pChargedPFOContainer) const override; private: diff --git a/Reconstruction/tauRecTools/src/TauPi0CreateROI.cxx b/Reconstruction/tauRecTools/src/TauPi0CreateROI.cxx index f96b1d173c2b7eee80c3199f2f74f70e45ab9e45..b372dffc1ae1ae3efbcbd7b148ff6ba9640d1169 100644 --- a/Reconstruction/tauRecTools/src/TauPi0CreateROI.cxx +++ b/Reconstruction/tauRecTools/src/TauPi0CreateROI.cxx @@ -15,14 +15,11 @@ #include <boost/scoped_ptr.hpp> -using std::vector; -using std::string; - //------------------------------------------------------------------------- // Constructor //------------------------------------------------------------------------- -TauPi0CreateROI::TauPi0CreateROI( const string& name ) : +TauPi0CreateROI::TauPi0CreateROI(const std::string& name) : TauRecToolBase(name) { } @@ -44,6 +41,7 @@ StatusCode TauPi0CreateROI::initialize() { return StatusCode::SUCCESS; } +//______________________________________________________________________________ StatusCode TauPi0CreateROI::executePi0CreateROI(xAOD::TauJet& pTau, CaloCellContainer& pPi0CellContainer, std::vector<CaloCell*>& addedCellsMap) { //--------------------------------------------------------------------- @@ -67,7 +65,7 @@ StatusCode TauPi0CreateROI::executePi0CreateROI(xAOD::TauJet& pTau, CaloCellCont pCellContainer = caloCellInHandle.cptr(); // get only EM cells within dR<0.4 - vector<CaloCell_ID::SUBCALO> emSubCaloBlocks; + std::vector<CaloCell_ID::SUBCALO> emSubCaloBlocks; emSubCaloBlocks.push_back(CaloCell_ID::LAREM); boost::scoped_ptr<CaloCellList> pCells(new CaloCellList(pCellContainer,emSubCaloBlocks)); pCells->select(pTau.eta(), pTau.phi(), 0.4); // TODO: change hardcoded 0.4 to tau cone variable, (or func. from TauJet)? @@ -98,8 +96,4 @@ StatusCode TauPi0CreateROI::executePi0CreateROI(xAOD::TauJet& pTau, CaloCellCont return StatusCode::SUCCESS; } -StatusCode TauPi0CreateROI::finalize() { - return StatusCode::SUCCESS; -} - #endif diff --git a/Reconstruction/tauRecTools/src/TauPi0CreateROI.h b/Reconstruction/tauRecTools/src/TauPi0CreateROI.h index cc30fd6204aa74f61289351148f4e38e1ca52ee9..b5b7a1fe055f115607037062b0b28ea7d9e66309 100644 --- a/Reconstruction/tauRecTools/src/TauPi0CreateROI.h +++ b/Reconstruction/tauRecTools/src/TauPi0CreateROI.h @@ -32,7 +32,6 @@ public: virtual StatusCode initialize() override; virtual StatusCode executePi0CreateROI(xAOD::TauJet& pTau, CaloCellContainer& Pi0CellContainer, std::vector<CaloCell*>& map) override; - virtual StatusCode finalize() override; private: SG::ReadHandleKey<CaloCellContainer> m_caloCellInputContainer{this,"Key_caloCellInputContainer", "AllCalo", "input vertex container key"}; diff --git a/Reconstruction/tauRecTools/src/TauShotFinder.cxx b/Reconstruction/tauRecTools/src/TauShotFinder.cxx index 86bcd2660353fce4fb1ec567c7ec39d982f2414e..1ebb673a60f559186064b3904bd4600e691c6f5b 100644 --- a/Reconstruction/tauRecTools/src/TauShotFinder.cxx +++ b/Reconstruction/tauRecTools/src/TauShotFinder.cxx @@ -8,7 +8,6 @@ // package: Reconstruction/tauRec // authors: Will Davey, Benedict Winter, Stephanie Yuen // date: 2013-05-22 -// //----------------------------------------------------------------------------- #include <boost/scoped_ptr.hpp> @@ -23,14 +22,11 @@ #include "xAODPFlow/PFOAuxContainer.h" #include "xAODPFlow/PFO.h" -using std::vector; -using std::string; - //------------------------------------------------------------------------- // Constructor //------------------------------------------------------------------------- -TauShotFinder::TauShotFinder( const string& name ) : +TauShotFinder::TauShotFinder(const std::string& name) : TauRecToolBase(name) { } @@ -41,6 +37,7 @@ TauShotFinder::TauShotFinder( const string& name ) : TauShotFinder::~TauShotFinder() { } +//______________________________________________________________________________ StatusCode TauShotFinder::initialize() { // retrieve tools @@ -55,17 +52,13 @@ StatusCode TauShotFinder::initialize() { return StatusCode::SUCCESS; } -StatusCode TauShotFinder::finalize() -{ - return StatusCode::SUCCESS; -} - +//______________________________________________________________________________ StatusCode TauShotFinder::executeShotFinder(xAOD::TauJet& pTau, xAOD::CaloClusterContainer& tauShotClusterContainer, xAOD::PFOContainer& tauShotPFOContainer) const { ATH_MSG_DEBUG("execute"); // Any tau needs to have shot PFO vectors. Set empty vectors before nTrack cut - vector<ElementLink<xAOD::PFOContainer> > empty; + std::vector<ElementLink<xAOD::PFOContainer> > empty; pTau.setShotPFOLinks(empty); //--------------------------------------------------------------------- @@ -86,7 +79,7 @@ StatusCode TauShotFinder::executeShotFinder(xAOD::TauJet& pTau, xAOD::CaloCluste const CaloCellContainer *pCellContainer = caloCellInHandle.cptr();; // get only EM cells within dR<0.4 - vector<CaloCell_ID::SUBCALO> emSubCaloBlocks; + std::vector<CaloCell_ID::SUBCALO> emSubCaloBlocks; emSubCaloBlocks.push_back(CaloCell_ID::LAREM); boost::scoped_ptr<CaloCellList> pCells(new CaloCellList(pCellContainer,emSubCaloBlocks)); pCells->select(pTau.eta(), pTau.phi(), 0.4); @@ -254,7 +247,7 @@ StatusCode TauShotFinder::executeShotFinder(xAOD::TauJet& pTau, xAOD::CaloCluste shot->setAttribute<int>(xAOD::PFODetails::PFOAttributes::tauShots_nPhotons, nPhotons); // remove shot(s) from list - vector<const CaloCell*>::iterator cellItrNonConst; + std::vector<const CaloCell*>::iterator cellItrNonConst; cellItrNonConst = std::find(seedCells.begin(),seedCells.end(),cell); seedCells.erase(cellItrNonConst); if( mergePhi ){ @@ -267,6 +260,7 @@ StatusCode TauShotFinder::executeShotFinder(xAOD::TauJet& pTau, xAOD::CaloCluste return StatusCode::SUCCESS; } +//______________________________________________________________________________ std::vector<const CaloCell*> TauShotFinder::getNeighbours(const CaloCellContainer* pCellContainer, const CaloCell* cell, int maxDepth) const @@ -277,6 +271,7 @@ std::vector<const CaloCell*> TauShotFinder::getNeighbours(const CaloCellContaine return cells; } +//______________________________________________________________________________ void TauShotFinder::addNeighbours(const CaloCellContainer* pCellContainer, const CaloCell* cell, std::vector<const CaloCell*>& cells, @@ -306,6 +301,7 @@ void TauShotFinder::addNeighbours(const CaloCellContainer* pCellContainer, } } +//______________________________________________________________________________ bool TauShotFinder::isPhiNeighbour(IdentifierHash cell1Hash, IdentifierHash cell2Hash, bool next) const{ std::vector<IdentifierHash> neigHashes; if( next ) m_calo_id->get_neighbours(cell1Hash,LArNeighbours::nextInPhi,neigHashes); @@ -317,6 +313,7 @@ bool TauShotFinder::isPhiNeighbour(IdentifierHash cell1Hash, IdentifierHash cell return false; } +//______________________________________________________________________________ float TauShotFinder::getEtaBin(float seedEta) const { float absSeedEta=std::abs(seedEta); if(absSeedEta < 0.80) return 0; // Central Barrel @@ -326,6 +323,7 @@ float TauShotFinder::getEtaBin(float seedEta) const { else return 4; // endcap, coarse granularity } +//______________________________________________________________________________ float TauShotFinder::getNPhotons(int etaBin, float seedEnergy) const { // no photon counting in crack region, e.g. [1.39, 1.51] if(etaBin==2) return 0; @@ -340,6 +338,7 @@ float TauShotFinder::getNPhotons(int etaBin, float seedEnergy) const { return 1; } +//______________________________________________________________________________ // some really slick c++ way of doing sort (since we need to use the member m_caloWeightTool) TauShotFinder::ptSort::ptSort( const TauShotFinder& info ) : m_info(info) { } bool TauShotFinder::ptSort::operator()( const CaloCell* c1, const CaloCell* c2 ){ diff --git a/Reconstruction/tauRecTools/src/TauShotFinder.h b/Reconstruction/tauRecTools/src/TauShotFinder.h index b0a70569b20ecbfefd917d990a0389bfa7b8733f..6273fc619692164dbf2885e079f0f6b2b258ac24 100644 --- a/Reconstruction/tauRecTools/src/TauShotFinder.h +++ b/Reconstruction/tauRecTools/src/TauShotFinder.h @@ -22,7 +22,6 @@ public: virtual StatusCode initialize() override; virtual StatusCode executeShotFinder(xAOD::TauJet& pTau, xAOD::CaloClusterContainer& tauShotCaloClusContainer, xAOD::PFOContainer& tauShotPFOContainer) const override; - virtual StatusCode finalize() override; private: diff --git a/Reconstruction/tauRecTools/src/TauTrackFinder.cxx b/Reconstruction/tauRecTools/src/TauTrackFinder.cxx index 2ab38a0bae2b2909fe74894ff1b0d5c7974a071a..996718a98892b9aa059143981d187fb63b6f2820 100644 --- a/Reconstruction/tauRecTools/src/TauTrackFinder.cxx +++ b/Reconstruction/tauRecTools/src/TauTrackFinder.cxx @@ -11,12 +11,11 @@ #include "xAODTau/TauTrackContainer.h" #include "TauTrackFinder.h" -#include "tauRecTools/KineUtils.h" #include "tauRecTools/TrackSort.h" -TauTrackFinder::TauTrackFinder(const std::string& name ) : - TauRecToolBase(name) { +TauTrackFinder::TauTrackFinder(const std::string& name) : + TauRecToolBase(name) { m_EMSamplings = {CaloSampling::EME1, CaloSampling::EMB1}; m_HadSamplings = {CaloSampling::TileBar1, CaloSampling::HEC1, CaloSampling::TileExt1}; } @@ -41,11 +40,6 @@ StatusCode TauTrackFinder::initialize() { return StatusCode::SUCCESS; } -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -StatusCode TauTrackFinder::finalize() { - return StatusCode::SUCCESS; -} - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * StatusCode TauTrackFinder::executeTrackFinder(xAOD::TauJet& pTau, xAOD::TauTrackContainer& tauTrackCon, const xAOD::TrackParticleContainer* trackContainer) const { @@ -74,7 +68,7 @@ StatusCode TauTrackFinder::executeTrackFinder(xAOD::TauJet& pTau, xAOD::TauTrack } // get the primary vertex - const xAOD::Vertex* pVertex = pTau.vertexLink()!=0 ? (*pTau.vertexLink()) : NULL; + const xAOD::Vertex* pVertex = pTau.vertexLink() ? pTau.vertex() : nullptr; // retrieve tracks wrt a vertex // as a vertex is used: tau origin / PV / beamspot / 0,0,0 (in this order, depending on availability) @@ -224,7 +218,7 @@ TauTrackFinder::TauTrackType TauTrackFinder::tauTrackType( const xAOD::TauJet& p const xAOD::TrackParticle& trackParticle, const xAOD::Vertex* primaryVertex) const { - double dR = Tau1P3PKineUtils::deltaR(pTau.eta(),pTau.phi(),trackParticle.eta(),trackParticle.phi()); + double dR = pTau.p4().DeltaR(trackParticle.p4()); if (dR > m_maxJetDr_wide) return NotTauTrack; diff --git a/Reconstruction/tauRecTools/src/TauTrackFinder.h b/Reconstruction/tauRecTools/src/TauTrackFinder.h index 23e0d0f223425707b9c845623fc7cac6a2d8757f..42888b9073833d5985a4689dedb7aa273e40fade 100644 --- a/Reconstruction/tauRecTools/src/TauTrackFinder.h +++ b/Reconstruction/tauRecTools/src/TauTrackFinder.h @@ -59,7 +59,6 @@ public: //------------------------------------------------------------- virtual StatusCode initialize() override; virtual StatusCode executeTrackFinder(xAOD::TauJet& pTau, xAOD::TauTrackContainer& tauTrackCon, const xAOD::TrackParticleContainer* trackContainer = nullptr) const override; - virtual StatusCode finalize() override; private: //------------------------------------------------------------- diff --git a/Reconstruction/tauRecTools/src/TauVertexFinder.cxx b/Reconstruction/tauRecTools/src/TauVertexFinder.cxx index e50ff0a9793e261afd29a5cdf94dc0b986d1c08b..a40c2bb93fec6e9a3c20178bc7b99293d7421280 100644 --- a/Reconstruction/tauRecTools/src/TauVertexFinder.cxx +++ b/Reconstruction/tauRecTools/src/TauVertexFinder.cxx @@ -35,17 +35,12 @@ StatusCode TauVertexFinder::initialize() { return StatusCode::SUCCESS; } -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -StatusCode TauVertexFinder::finalize() { - return StatusCode::SUCCESS; -} - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * StatusCode TauVertexFinder::executeVertexFinder(xAOD::TauJet& pTau, const xAOD::VertexContainer* vertexContainer, const xAOD::TrackParticleContainer* trackContainer) const { - const xAOD::VertexContainer * vxContainer = 0; + const xAOD::VertexContainer * vxContainer = nullptr; if (!m_vertexInputContainer.empty()) { SG::ReadHandle<xAOD::VertexContainer> vertexInHandle( m_vertexInputContainer ); @@ -119,14 +114,14 @@ TauVertexFinder::getPV_TJVA(const xAOD::TauJet& pTau, const xAOD::TrackParticleContainer * trackContainer, float& maxJVF) const { - const xAOD::Jet* pJetSeed = (*pTau.jetLink()); + const xAOD::Jet* pJetSeed = pTau.jet(); std::vector<const xAOD::TrackParticle*> tracksForTJVA; const double dDeltaRMax(0.2); std::vector<const xAOD::Vertex*> matchedVertexOnline; // the implementation follows closely the example given in modifyJet(...) in https://svnweb.cern.ch/trac/atlasoff/browser/Reconstruction/Jet/JetMomentTools/trunk/Root/JetVertexFractionTool.cxx#15 - const xAOD::TrackParticleContainer* trackParticleCont = 0; + const xAOD::TrackParticleContainer* trackParticleCont = nullptr; std::vector<const xAOD::TrackParticle*> assocTracks; if (inTrigger()) { @@ -170,7 +165,7 @@ TauVertexFinder::getPV_TJVA(const xAOD::TauJet& pTau, } // Get the TVA object - const jet::TrackVertexAssociation* tva = NULL; + const jet::TrackVertexAssociation* tva = nullptr; // ATR-15665 for trigger: reimplementation of TrackVertexAssociationTool::buildTrackVertexAssociation_custom if(inTrigger()){ @@ -277,6 +272,7 @@ float TauVertexFinder::getJetVertexFraction(const xAOD::Vertex* vertex, const st } return sumTrackAll!=0 ? sumTrackPV/sumTrackAll : 0; } + // for online ATR-15665: reimplementation needed for online because the tva doesn't work. The size of the track collection from TE is not the same as the max track index float TauVertexFinder::getJetVertexFraction(const xAOD::Vertex* vertex, const std::vector<const xAOD::TrackParticle*>& tracks, diff --git a/Reconstruction/tauRecTools/src/TauVertexFinder.h b/Reconstruction/tauRecTools/src/TauVertexFinder.h index 2ba24f28d96ee0834bdc4da828cc82235076f0d7..0896967c6d07cf0ca5b5ec9e80e2660c4f7b09b3 100644 --- a/Reconstruction/tauRecTools/src/TauVertexFinder.h +++ b/Reconstruction/tauRecTools/src/TauVertexFinder.h @@ -12,8 +12,6 @@ #include "JetEDM/TrackVertexAssociation.h" #include "InDetTrackSelectionTool/IInDetTrackSelectionTool.h" - - ///////////////////////////////////////////////////////////////////////////// /** @@ -44,8 +42,6 @@ public: const xAOD::VertexContainer* vertexContainer = nullptr, const xAOD::TrackParticleContainer* trackContainer = nullptr) const override; - StatusCode finalize() override; - private: ElementLink<xAOD::VertexContainer> getPV_TJVA(const xAOD::TauJet& tauJet, diff --git a/Reconstruction/tauRecTools/src/TauVertexVariables.cxx b/Reconstruction/tauRecTools/src/TauVertexVariables.cxx index a5df906bd86ea44ce083a4c61ca8293fc8c62a29..19586dc894c945b4c23de7e65233b543b36d778d 100644 --- a/Reconstruction/tauRecTools/src/TauVertexVariables.cxx +++ b/Reconstruction/tauRecTools/src/TauVertexVariables.cxx @@ -46,13 +46,6 @@ StatusCode TauVertexVariables::initialize() { return StatusCode::SUCCESS; } -//----------------------------------------------------------------------------- -// Finalizer -//----------------------------------------------------------------------------- -StatusCode TauVertexVariables::finalize() { - return StatusCode::SUCCESS; -} - //----------------------------------------------------------------------------- // Execution //----------------------------------------------------------------------------- @@ -82,7 +75,7 @@ StatusCode TauVertexVariables::executeVertexVariables(xAOD::TauJet& pTau, xAOD:: } } else if (pTau.vertexLink()) { // offline: obtain tau vertex by link - vxcand = *(pTau.vertexLink()) ; + vxcand = pTau.vertex() ; //check if vertex has a valid type (skip if vertex has type NoVtx) if (vxcand->vertexType() != xAOD::VxType::NoVtx) { myIPandSigma = std::unique_ptr<const Trk::ImpactParametersAndSigma>(m_trackToVertexIPEstimator->estimate(pTau.track(0)->track(), vxcand)); @@ -152,7 +145,7 @@ StatusCode TauVertexVariables::executeVertexVariables(xAOD::TauJet& pTau, xAOD:: } // get the starting point for the fit using Trk::Tracks - Amg::Vector3D seedPoint = m_SeedFinder->findSeed(origTracks); + const Amg::Vector3D& seedPoint = m_SeedFinder->findSeed(origTracks); ATH_MSG_VERBOSE("seedPoint x/y/perp=" << seedPoint.x() << " " << seedPoint.y() << " "<< seedPoint.z() << " " << TMath::Sqrt(seedPoint.x()*seedPoint.x()+seedPoint.y()+seedPoint.y())); // fitting the vertex itself @@ -163,7 +156,7 @@ StatusCode TauVertexVariables::executeVertexVariables(xAOD::TauJet& pTau, xAOD:: } // get the transverse flight path significance - float trFlightPS = trFlightPathSig(pTau, *xAODvertex); + double trFlightPS = trFlightPathSig(pTau, *xAODvertex); pTau.setDetail(xAOD::TauJetParameters::trFlightPathSig, (float)(trFlightPS)); ATH_MSG_VERBOSE("transverse flight path significance="<<trFlightPS); @@ -187,7 +180,7 @@ StatusCode TauVertexVariables::executeVertexVariables(xAOD::TauJet& pTau, xAOD:: double TauVertexVariables::trFlightPathSig(const xAOD::TauJet& pTau, const xAOD::Vertex& secVertex) const { const xAOD::Vertex* pVertex = nullptr; - if (pTau.vertexLink()) pVertex = *pTau.vertexLink(); + if (pTau.vertexLink()) pVertex = pTau.vertex(); if (!pVertex) { ATH_MSG_WARNING("No primary vertex information for calculation of transverse flight path significance"); return -11111.; diff --git a/Reconstruction/tauRecTools/src/TauVertexVariables.h b/Reconstruction/tauRecTools/src/TauVertexVariables.h index a426c446073ce832b209f69508759ed3ce47babb..a54aadb3ad39dbc09b47520b8099d5bb1a7e97c7 100644 --- a/Reconstruction/tauRecTools/src/TauVertexVariables.h +++ b/Reconstruction/tauRecTools/src/TauVertexVariables.h @@ -15,7 +15,6 @@ #include "TrkVertexFitterInterfaces/IVertexFitter.h" #include "TrkVertexFitterInterfaces/IVertexSeedFinder.h" - /** * * @brief Class for calculating vertex variables. @@ -34,7 +33,7 @@ public: virtual StatusCode initialize() override; virtual StatusCode executeVertexVariables(xAOD::TauJet& pTau, xAOD::VertexContainer& pVertexContainer) const override; - virtual StatusCode finalize() override; + //------------------------------------------------------------- //! determines the transverse flight path significance from //! the primary vertex and the secondary vertex of tau candidate diff --git a/Reconstruction/tauRecTools/tauRecTools/MvaTESVariableDecorator.h b/Reconstruction/tauRecTools/tauRecTools/MvaTESVariableDecorator.h index 93d7d8edb817ad2eeffaab719c54cd65149ffb69..d59716827b4b296ce4cf69b92bf21013949aa0cd 100644 --- a/Reconstruction/tauRecTools/tauRecTools/MvaTESVariableDecorator.h +++ b/Reconstruction/tauRecTools/tauRecTools/MvaTESVariableDecorator.h @@ -24,7 +24,6 @@ class MvaTESVariableDecorator virtual StatusCode initialize() override; virtual StatusCode execute(xAOD::TauJet& xTau) const override; - virtual StatusCode finalize() override; private: diff --git a/Reconstruction/tauRecTools/tauRecTools/TauCalibrateLC.h b/Reconstruction/tauRecTools/tauRecTools/TauCalibrateLC.h index b7f4766733dc1be54f8cca73db72d2d64d468ea1..3c28f8472a3678ac97a990c4fbf3b2793de31d93 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauCalibrateLC.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauCalibrateLC.h @@ -33,7 +33,6 @@ class TauCalibrateLC : public TauRecToolBase { ~TauCalibrateLC(); virtual StatusCode initialize() override; - virtual StatusCode finalize() override; virtual StatusCode execute(xAOD::TauJet& pTau) const override; diff --git a/Reconstruction/tauRecTools/tauRecTools/TauCommonCalcVars.h b/Reconstruction/tauRecTools/tauRecTools/TauCommonCalcVars.h index 78080de6cb94ab3a6dd6bed3597814a6df2e3c37..ab075be1b33adfe6fafb784925dd19ba5da86a34 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauCommonCalcVars.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauCommonCalcVars.h @@ -26,9 +26,7 @@ public: ASG_TOOL_CLASS2(TauCommonCalcVars, TauRecToolBase, ITauToolBase) ~TauCommonCalcVars(); - virtual StatusCode initialize() override; virtual StatusCode execute(xAOD::TauJet& pTau) const override; - virtual StatusCode finalize() override; private: int m_isolationTrackType; diff --git a/Reconstruction/tauRecTools/tauRecTools/TauEleOLRDecorator.h b/Reconstruction/tauRecTools/tauRecTools/TauEleOLRDecorator.h index ed65691fe12b40e87d4148e2508e4bd59cdf2532..465ec125de7c4de667231675870fb0c9e85b8571 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauEleOLRDecorator.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauEleOLRDecorator.h @@ -31,7 +31,6 @@ class TauEleOLRDecorator: virtual public TauRecToolBase virtual StatusCode initialize() override; virtual StatusCode execute(xAOD::TauJet&) const override; - virtual StatusCode finalize() override; private: float getCutVal(float fEta, float fPt) const; diff --git a/Reconstruction/tauRecTools/tauRecTools/TauIDVarCalculator.h b/Reconstruction/tauRecTools/tauRecTools/TauIDVarCalculator.h index 854b58f9f428b1963aeec93f6be46eee68041842..a4618e291a15d60c5f5e37ef865d5348a02efdc2 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauIDVarCalculator.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauIDVarCalculator.h @@ -27,7 +27,6 @@ class TauIDVarCalculator: public TauRecToolBase virtual StatusCode initialize() override; virtual StatusCode execute(xAOD::TauJet&) const override; - virtual StatusCode finalize() override; static const float LOW_NUMBER; diff --git a/Reconstruction/tauRecTools/tauRecTools/TauJetBDTEvaluator.h b/Reconstruction/tauRecTools/tauRecTools/TauJetBDTEvaluator.h index 60498a34e217b2fc3b0ae57bfebf086579239bc1..f7854ea3c9ba8b7d5fc9ff0809bd1bebdd9b0b02 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauJetBDTEvaluator.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauJetBDTEvaluator.h @@ -29,7 +29,6 @@ class TauJetBDTEvaluator virtual StatusCode initialize() override; virtual StatusCode execute(xAOD::TauJet& xTau) const override; - virtual StatusCode finalize() override; private: std::unique_ptr<tauRecTools::BDTHelper> m_mvaBDT; diff --git a/Reconstruction/tauRecTools/tauRecTools/TauPi0ScoreCalculator.h b/Reconstruction/tauRecTools/tauRecTools/TauPi0ScoreCalculator.h index fe9732e26f1eae2452517108855b0d00691e26e3..ba8b377e9a6fba52417b92dfe37cc0160df8533f 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauPi0ScoreCalculator.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauPi0ScoreCalculator.h @@ -27,7 +27,6 @@ public: virtual ~TauPi0ScoreCalculator(); virtual StatusCode initialize() override; - virtual StatusCode finalize() override; virtual StatusCode executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOContainer& pNeutralPFOContainer) const override; private: diff --git a/Reconstruction/tauRecTools/tauRecTools/TauPi0Selector.h b/Reconstruction/tauRecTools/tauRecTools/TauPi0Selector.h index 954b67647253af6843c8c7fcec4235ea17903ac0..16506a71f5ff79b3a3ddd5793e51e152b648b367 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauPi0Selector.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauPi0Selector.h @@ -21,8 +21,6 @@ public: TauPi0Selector(const std::string& name); ASG_TOOL_CLASS2(TauPi0Selector, TauRecToolBase, ITauToolBase) virtual ~TauPi0Selector(); - virtual StatusCode initialize() override; - virtual StatusCode finalize() override; virtual StatusCode executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOContainer& pNeutralPFOContainer) const override; private: diff --git a/Reconstruction/tauRecTools/tauRecTools/TauSubstructureVariables.h b/Reconstruction/tauRecTools/tauRecTools/TauSubstructureVariables.h index 5e2a31aaacc0b9e1ffdae84a219080471ba1f1d8..3530a60331afc8e7515e683ad080a1f6adf94138 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauSubstructureVariables.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauSubstructureVariables.h @@ -20,22 +20,15 @@ class TauSubstructureVariables : public TauRecToolBase public: ASG_TOOL_CLASS2(TauSubstructureVariables, TauRecToolBase, ITauToolBase) - static const double DEFAULT; + static const float DEFAULT; TauSubstructureVariables(const std::string& name="TauSubstructureVariables"); ~TauSubstructureVariables(); virtual StatusCode execute(xAOD::TauJet& pTau) const override; - virtual StatusCode initialize() override; - virtual StatusCode finalize() override; private: - // Maximal pile up correction in GeV for a tau candidate. - // Used for the caloIso corrected variable. - double m_maxPileUpCorrection; - double m_pileUpAlpha; //!< slope of the pileup correction - // enable cell origin correction // eta and phi of the cells are corrected wrt to the origin of the tau vertex bool m_doVertexCorrection; diff --git a/Reconstruction/tauRecTools/tauRecTools/TauTrackClassifier.h b/Reconstruction/tauRecTools/tauRecTools/TauTrackClassifier.h index 3c296e293165fcb5ce376b7e1803386166956476..219c1a34a6b1e410d1528919c816b60526791c40 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauTrackClassifier.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauTrackClassifier.h @@ -43,12 +43,11 @@ public: virtual StatusCode initialize() override; virtual StatusCode executeTrackClassifier(xAOD::TauJet& pTau, xAOD::TauTrackContainer& tauTrackContainer ) const override; - virtual StatusCode finalize() override; private: ToolHandleArray<TrackMVABDT> m_vClassifier; std::vector<std::string> m_vClassifierNames;//optional - + }; // class TauTrackClassifier //______________________________________________________________________________ @@ -91,10 +90,8 @@ private: std::unique_ptr<MVAUtils::BDT> m_rReader; //! - // std::map<int, std::string> m_mParsedVarsBDT; //! std::map<TString, float*> m_mAvailableVars; //! inline float& setVar(const TString& var) { return *(m_mAvailableVars[var]); } //!< not-stateless, many such examples need to be fixed for r22 - std::vector<float*> m_vars; //!< points to floats in m_mAvailableVars that are used in BDT }; // class TrackMVABDT diff --git a/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h b/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h index 290230663bc9c6d2fcb5314086b38eb0804ccdb9..edd7691ba2b9c6f90d7f977c10a426b45d0a4886 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h @@ -48,9 +48,6 @@ class TauWPDecorator : public TauRecToolBase { /** @brief Executation of this tool */ virtual StatusCode execute(xAOD::TauJet& pTau) const override; - /** @brief Finalization of this tool */ - virtual StatusCode finalize() override; - private: /** diff --git a/Trigger/TrigAlgorithms/TrigTauRec/python/TrigTauAlgorithmsHolder.py b/Trigger/TrigAlgorithms/TrigTauRec/python/TrigTauAlgorithmsHolder.py index 7f8a260eb7572bea85ae45f0acf07a47bafff314..027f7c4515e4d1465e8e5de05e46cf9256bdc7ea 100644 --- a/Trigger/TrigAlgorithms/TrigTauRec/python/TrigTauAlgorithmsHolder.py +++ b/Trigger/TrigAlgorithms/TrigTauRec/python/TrigTauAlgorithmsHolder.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration ################################################################################ ## @@ -357,9 +357,6 @@ def getTauSubstructure(): from tauRecTools.tauRecToolsConf import TauSubstructureVariables TauSubstructureVariables = TauSubstructureVariables( name = _name, - # parameters for CaloIsoCorrected variable - maxPileUpCorrection = 4000., #MeV - pileUpAlpha = 1.0, VertexCorrection = doVertexCorrection )