diff --git a/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/ParticleJetTools/CopyTruthJetParticles.h b/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/ParticleJetTools/CopyTruthJetParticles.h index 9aa29d4fbf968dd725f2301799aeb4c84c2fcf18..33d505a297559d920945160e91c0062eafc71800 100644 --- a/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/ParticleJetTools/CopyTruthJetParticles.h +++ b/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/ParticleJetTools/CopyTruthJetParticles.h @@ -14,11 +14,6 @@ #include <vector> #include <map> -#include <mutex> // std::call_once, std::once_flag - -std::once_flag metaDataFlag; - - class CopyTruthJetParticles : public CopyTruthParticles { ASG_TOOL_CLASS2(CopyTruthJetParticles, CopyTruthParticles, IJetExecuteTool) public: diff --git a/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/Root/CopyTruthJetParticles.cxx b/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/Root/CopyTruthJetParticles.cxx index 61ae79b79ea576aed397ea105b71c406f17c951c..b16a225bfb870ea667da46f7a6eec5e3d83efc44 100644 --- a/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/Root/CopyTruthJetParticles.cxx +++ b/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/Root/CopyTruthJetParticles.cxx @@ -15,6 +15,8 @@ #include "AsgDataHandles/WriteHandle.h" #include "AsgMessaging/Check.h" +#include <mutex> // std::call_once, std::once_flag + #ifndef XAOD_STANDALONE // Usage of metadata is for now only possible in Athena... //#include "CoralBase/AttributeListException.h" @@ -256,6 +258,7 @@ int CopyTruthJetParticles::execute() const { // std::call_once(metaDataFlag,&CopyTruthJetParticles::basicMetaDataCheck,this,barcodeOffset); // this call happens only once and it modifies m_barcodeOffset // Note that catching the return value of this is rather complicated, so it throws rather than returning errors + static std::once_flag metaDataFlag; std::call_once(metaDataFlag,&CopyTruthJetParticles::setBarCodeFromMetaDataCheck, this); std::vector<const xAOD::TruthParticle*> promptLeptons;