diff --git a/Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/PanTauSeed.h b/Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/PanTauSeed.h index 3f8798d9a79332d430256ed6724da122e1f6fe8f..54292e507c4de771119bd737c024150d9283fb9b 100644 --- a/Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/PanTauSeed.h +++ b/Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/PanTauSeed.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration */ #ifndef PANTAUALGS_PANTAUSEED_H @@ -115,7 +115,7 @@ namespace PanTau { /** Main constructor to be used */ PanTauSeed( std::string nameInputAlgorithm, - const xAOD::TauJet* tauJet, + xAOD::TauJet* tauJet, std::vector tauConstituents, std::vector tauConstituentsWithUnselected, std::vector pantauSeed_TechnicalQuality @@ -124,13 +124,15 @@ namespace PanTau { /** Constructor for invalid seeds */ PanTauSeed( std::string nameInputAlgorithm, - const xAOD::TauJet* tauJet, + xAOD::TauJet* tauJet, std::vector pantauSeed_TechnicalQuality ); std::string getNameInputAlgorithm() const; const xAOD::TauJet* getTauJet() const; - PanTau::TauFeature* getFeatures() const; + xAOD::TauJet* getTauJet(); + const PanTau::TauFeature* getFeatures() const; + PanTau::TauFeature* getFeatures(); TLorentzVector getProtoMomentumCore() const; TLorentzVector getProtoMomentumWide() const; @@ -160,12 +162,8 @@ namespace PanTau { private: - /// Cached 4-momentum object - mutable FourMom_t m_p4; - /// - - /// Cache state of the internal 4-momentum (reset from the streamer) - mutable bool m_p4Cached; + /// 4-momentum object + FourMom_t m_p4; protected: @@ -178,7 +176,7 @@ namespace PanTau { std::string m_NameInputAlgorithm; //pointer to the TauJet this PanTauSeed was build from (pointer not owned by PanTauSeed) - const xAOD::TauJet* m_TauJet; + xAOD::TauJet* m_TauJet; //for each type of tauConstituent, a list of constituents (of that type) // the TauConstituent objects are owned by PanTauSeed (this class), so they need to be deleted in the destructor @@ -228,7 +226,9 @@ namespace PanTau { inline std::string PanTau::PanTauSeed::getNameInputAlgorithm() const {return m_NameInputAlgorithm;} inline const xAOD::TauJet* PanTau::PanTauSeed::getTauJet() const {return m_TauJet;} -inline PanTau::TauFeature* PanTau::PanTauSeed::getFeatures() const {return m_Features;} +inline xAOD::TauJet* PanTau::PanTauSeed::getTauJet() {return m_TauJet;} +inline const PanTau::TauFeature* PanTau::PanTauSeed::getFeatures() const {return m_Features;} +inline PanTau::TauFeature* PanTau::PanTauSeed::getFeatures() {return m_Features;} inline TLorentzVector PanTau::PanTauSeed::getProtoMomentumWide() const {return m_ProtoMomentum_Wide;} inline TLorentzVector PanTau::PanTauSeed::getProtoMomentumCore() const {return m_ProtoMomentum_Core;} inline std::vector< std::vector > PanTau::PanTauSeed::getConstituents() const {return m_Constituents;} diff --git a/Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/TauConstituent.h b/Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/TauConstituent.h index bff44eddea1ccd7a86e9a26db23476c2b80ef3cf..b2cc0dc5e98839bd3bf621f2031bfa4a5c8fdd09 100644 --- a/Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/TauConstituent.h +++ b/Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/TauConstituent.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration */ /////////////////////////////////////////////////////////////////// @@ -150,7 +150,7 @@ namespace PanTau { bool isOfType(TauConstituent::Type aType) const; double getBDTValue() const; int getCharge() const; - xAOD::PFO* getPFO() const; + const xAOD::PFO* getPFO() const; void addShot(TauConstituent* shot); std::vector getShots(); @@ -161,13 +161,8 @@ namespace PanTau { private: - /// Cached 4-momentum object - mutable FourMom_t m_p4; - /// - - /// Cache state of the internal 4-momentum (reset from the streamer) - mutable bool m_p4Cached; - + /// 4-momentum object + FourMom_t m_p4; protected: diff --git a/Reconstruction/PanTau/PanTauAlgs/Root/PanTauSeed.cxx b/Reconstruction/PanTau/PanTauAlgs/Root/PanTauSeed.cxx index 8c0b6816a625d83c76b3051279150653f125d960..75619cf0b9b2d3d07fed60abb6017955b64c45f9 100644 --- a/Reconstruction/PanTau/PanTauAlgs/Root/PanTauSeed.cxx +++ b/Reconstruction/PanTau/PanTauAlgs/Root/PanTauSeed.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration */ #include "PanTauAlgs/PanTauSeed.h" @@ -10,7 +10,7 @@ PanTau::PanTauSeed::PanTauSeed() : IParticle(), - m_p4(), m_p4Cached( false ), + m_p4(), m_IsValidSeed(false), m_TechnicalQuality(), m_NameInputAlgorithm("InvalidAlg"), @@ -58,7 +58,7 @@ PanTau::PanTauSeed::~PanTauSeed() PanTau::PanTauSeed::PanTauSeed(const PanTau::PanTauSeed& rhs) : IParticle(rhs), - m_p4(rhs.m_p4), m_p4Cached(rhs.m_p4Cached), + m_p4(rhs.m_p4), m_IsValidSeed(rhs.m_IsValidSeed), m_TechnicalQuality(rhs.m_TechnicalQuality), m_NameInputAlgorithm(rhs.m_NameInputAlgorithm), @@ -87,7 +87,6 @@ PanTau::PanTauSeed& PanTau::PanTauSeed::operator=(const PanTau::PanTauSeed& seed } this->IParticle::operator=( seed ); this->m_p4 = seed.m_p4; - this->m_p4Cached = seed.m_p4Cached; m_IsValidSeed = seed.m_IsValidSeed; m_TechnicalQuality = seed.m_TechnicalQuality; m_NameInputAlgorithm = seed.m_NameInputAlgorithm; @@ -140,10 +139,6 @@ double PanTau::PanTauSeed::rapidity() const { } PanTau::PanTauSeed::FourMom_t PanTau::PanTauSeed::p4() const { - if( ! m_p4Cached ) { - m_p4.SetPtEtaPhiM( pt(), eta(), phi(),m()); - m_p4Cached=true; - } return m_p4; } @@ -156,37 +151,36 @@ void PanTau::PanTauSeed::setP4(float pt, float eta, float phi, float m){ acc3( *this ) = phi; static const Accessor< float > acc4( "m" ); acc4( *this ) = m; - //Need to recalculate m_p4 if requested after update - m_p4Cached=false; - + //Need to recalculate m_p4 + m_p4.SetPtEtaPhiM( pt, eta, phi, m); } void PanTau::PanTauSeed::setPt(float pt){ static const Accessor< float > acc( "pt" ); acc( *this ) = pt; - //Need to recalculate m_p4 if requested after update - m_p4Cached=false; + //Need to recalculate m_p4 + m_p4.SetPtEtaPhiM( pt, eta(), phi(), m()); } void PanTau::PanTauSeed::setEta(float eta){ static const Accessor< float > acc( "eta" ); acc( *this ) = eta; - //Need to recalculate m_p4 if requested after update - m_p4Cached=false; + //Need to recalculate m_p4 + m_p4.SetPtEtaPhiM( pt(), eta, phi(), m()); } void PanTau::PanTauSeed::setPhi(float phi){ static const Accessor< float > acc( "phi" ); acc( *this ) = phi; - //Need to recalculate m_p4 if requested after update - m_p4Cached=false; + //Need to recalculate m_p4 + m_p4.SetPtEtaPhiM( pt(), eta(), phi, m()); } void PanTau::PanTauSeed::setM(float m){ static const Accessor< float > acc( "m" ); acc( *this ) = m; - //Need to recalculate m_p4 if requested after update - m_p4Cached=false; + //Need to recalculate m_p4 + m_p4.SetPtEtaPhiM( pt(), eta(), phi(), m); } @@ -198,7 +192,7 @@ xAOD::Type::ObjectType PanTau::PanTauSeed::type() const { /** Main constructor to be used */ PanTau::PanTauSeed::PanTauSeed( std::string nameInputAlgorithm, - const xAOD::TauJet* tauJet, + xAOD::TauJet* tauJet, std::vector tauConstituents, std::vector tauConstituentsAll, std::vector pantauSeed_TechnicalQuality @@ -210,7 +204,6 @@ PanTau::PanTauSeed::PanTauSeed( std::string nameInpu // *This may be a bug!!! change to Set*Pt*EtaPhiM?? *** // PanTau::SetP4EEtaPhiM( m_p4, tauJet->ptIntermediateAxis() * cosh( tauJet->etaIntermediateAxis() ), tauJet->etaIntermediateAxis(), tauJet->phiIntermediateAxis(), tauJet->mIntermediateAxis() ); m_p4.SetPtEtaPhiM(tauJet->ptIntermediateAxis(), tauJet->etaIntermediateAxis(), tauJet->phiIntermediateAxis(), tauJet->mIntermediateAxis() ); - m_p4Cached=true; m_IsValidSeed = true; m_TechnicalQuality = pantauSeed_TechnicalQuality; m_NameInputAlgorithm = nameInputAlgorithm; @@ -291,7 +284,7 @@ PanTau::PanTauSeed::PanTauSeed( std::string nameInpu /** Constructor for invalid seeds */ PanTau::PanTauSeed::PanTauSeed(std::string nameInputAlgorithm, - const xAOD::TauJet* tauJet, + xAOD::TauJet* tauJet, std::vector pantauSeed_TechnicalQuality) : IParticle(), @@ -306,7 +299,6 @@ PanTau::PanTauSeed::PanTauSeed(std::string nameInputAlgorithm, // *This may be a bug!!! change to Set*Pt*EtaPhiM?? *** // PanTau::SetP4EEtaPhiM( m_p4, tauJet->ptIntermediateAxis() * cosh( tauJet->etaIntermediateAxis() ), tauJet->etaIntermediateAxis(), tauJet->phiIntermediateAxis(), tauJet->mIntermediateAxis() ); m_p4.SetPtEtaPhiM(tauJet->ptIntermediateAxis(), tauJet->etaIntermediateAxis(), tauJet->phiIntermediateAxis(), tauJet->mIntermediateAxis() ); - m_p4Cached=true; m_IsValidSeed = false; m_TechnicalQuality = pantauSeed_TechnicalQuality; m_NameInputAlgorithm = nameInputAlgorithm; diff --git a/Reconstruction/PanTau/PanTauAlgs/Root/TauConstituent.cxx b/Reconstruction/PanTau/PanTauAlgs/Root/TauConstituent.cxx index e52c746268ff157a299e5917f4773b2e8ae76eb9..d8565dc6ce429c21cd6ae98a2c9413d1aadcf2df 100644 --- a/Reconstruction/PanTau/PanTauAlgs/Root/TauConstituent.cxx +++ b/Reconstruction/PanTau/PanTauAlgs/Root/TauConstituent.cxx @@ -1,12 +1,12 @@ /* - Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration */ #include "PanTauAlgs/TauConstituent.h" PanTau::TauConstituent::TauConstituent() : IParticle(), - m_p4(), m_p4Cached( false ), + m_p4(), m_TypeFlags(), m_BDTValue(PanTau::TauConstituent::DefaultBDTValue()), m_Charge(PanTau::TauConstituent::DefaultCharge()), @@ -23,7 +23,7 @@ PanTau::TauConstituent::TauConstituent(TLorentzVector itsMomentum, double itsBDTValue, xAOD::PFO* itsPFO) : IParticle(), - m_p4(itsMomentum), m_p4Cached(true), + m_p4(itsMomentum), m_TypeFlags(itsType), m_BDTValue(itsBDTValue), m_Charge(itsCharge), @@ -36,7 +36,7 @@ PanTau::TauConstituent::TauConstituent(TLorentzVector itsMomentum, PanTau::TauConstituent::TauConstituent(const PanTau::TauConstituent& rhs) : IParticle(rhs), - m_p4(rhs.m_p4), m_p4Cached(rhs.m_p4Cached), + m_p4(rhs.m_p4), m_TypeFlags(rhs.m_TypeFlags), m_BDTValue(rhs.m_BDTValue), m_Charge(rhs.m_Charge), @@ -66,7 +66,6 @@ PanTau::TauConstituent& PanTau::TauConstituent::operator=(const PanTau::TauConst } this->IParticle::operator=( tauConst ); this->m_p4 = tauConst.m_p4; - this->m_p4Cached = tauConst.m_p4Cached; m_TypeFlags = tauConst.m_TypeFlags; m_BDTValue = tauConst.m_BDTValue; m_Charge = tauConst.m_Charge; @@ -107,10 +106,6 @@ double PanTau::TauConstituent::rapidity() const { } PanTau::TauConstituent::FourMom_t PanTau::TauConstituent::p4() const { - if( ! m_p4Cached ) { - m_p4.SetPtEtaPhiM( pt(), eta(), phi(),m()); - m_p4Cached=true; - } return m_p4; } @@ -123,36 +118,36 @@ void PanTau::TauConstituent::setP4(float pt, float eta, float phi, float m){ acc3( *this ) = phi; static const Accessor< float > acc4( "m" ); acc4( *this ) = m; - //Need to recalculate m_p4 if requested after update - m_p4Cached=false; + //Need to recalculate m_p4 + m_p4.SetPtEtaPhiM( pt, eta, phi, m); } void PanTau::TauConstituent::setPt(float pt){ static const Accessor< float > acc( "pt" ); acc( *this ) = pt; - //Need to recalculate m_p4 if requested after update - m_p4Cached=false; + //Need to recalculate m_p4 + m_p4.SetPtEtaPhiM( pt, eta(), phi(), m()); } void PanTau::TauConstituent::setEta(float eta){ static const Accessor< float > acc( "eta" ); acc( *this ) = eta; - //Need to recalculate m_p4 if requested after update - m_p4Cached=false; + //Need to recalculate m_p4 + m_p4.SetPtEtaPhiM( pt(), eta, phi(), m()); } void PanTau::TauConstituent::setPhi(float phi){ static const Accessor< float > acc( "phi" ); acc( *this ) = phi; - //Need to recalculate m_p4 if requested after update - m_p4Cached=false; + //Need to recalculate m_p4 + m_p4.SetPtEtaPhiM( pt(), eta(), phi, m()); } void PanTau::TauConstituent::setM(float m){ static const Accessor< float > acc( "m" ); acc( *this ) = m; - //Need to recalculate m_p4 if requested after update - m_p4Cached=false; + //Need to recalculate m_p4 + m_p4.SetPtEtaPhiM( pt(), eta(), phi(), m); } @@ -263,7 +258,7 @@ int PanTau::TauConstituent::getCharge() const { } -xAOD::PFO* PanTau::TauConstituent::getPFO() const { +const xAOD::PFO* PanTau::TauConstituent::getPFO() const { return m_PFOLink; } diff --git a/Reconstruction/PanTau/PanTauAlgs/Root/Tool_DecayModeDeterminator.cxx b/Reconstruction/PanTau/PanTauAlgs/Root/Tool_DecayModeDeterminator.cxx index dd5fe8b54faee4eaf9b1e4a3ac8ad1203dcd5455..983a2d86f3da01f1a3115fe74ba523a07e2ab999 100644 --- a/Reconstruction/PanTau/PanTauAlgs/Root/Tool_DecayModeDeterminator.cxx +++ b/Reconstruction/PanTau/PanTauAlgs/Root/Tool_DecayModeDeterminator.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration */ #include "PanTauAlgs/Tool_DecayModeDeterminator.h" @@ -74,7 +74,7 @@ StatusCode PanTau::Tool_DecayModeDeterminator::execute(PanTau::PanTauSeed* inSee bool invalidForDecayMode = (noValidInput || noAnyConstituents || noSelConstituents || badPt); int decayMode_PanTauExtended = PanTau::PanTauSeed::t_ExtModeNotSet; - xAOD::TauJet* tauJet = const_cast(inSeed->getTauJet()); + xAOD::TauJet* tauJet = inSeed->getTauJet(); if(invalidForDecayMode) { ATH_MSG_DEBUG("Seed has no constituents assigned and/or input seed has no substructure info - use NotSet mode for this"); diff --git a/Reconstruction/PanTau/PanTauAlgs/Root/Tool_DetailsArranger.cxx b/Reconstruction/PanTau/PanTauAlgs/Root/Tool_DetailsArranger.cxx index 051100e9357f14dd510030a263631093cdd7778e..2d67f8cd89eabf63eb52e2994b31953b274c4c7e 100644 --- a/Reconstruction/PanTau/PanTauAlgs/Root/Tool_DetailsArranger.cxx +++ b/Reconstruction/PanTau/PanTauAlgs/Root/Tool_DetailsArranger.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration */ #include @@ -132,7 +132,7 @@ void PanTau::Tool_DetailsArranger::addPanTauDetailToTauJet(PanTauSeed* PanTauDetailsType detailType) const { bool isValid; - PanTau::TauFeature* features = inSeed->getFeatures(); + const PanTau::TauFeature* features = inSeed->getFeatures(); std::string fullFeatName = inSeed->getNameInputAlgorithm() + "_" + featName; double theValue = features->value(fullFeatName, isValid);