Skip to content
Snippets Groups Projects
Commit 28f5dbc7 authored by Tomasz Bold's avatar Tomasz Bold
Browse files

Const fixes for executePi0ClusterCreator

parent 713e3f7e
No related branches found
No related tags found
No related merge requests found
...@@ -182,7 +182,7 @@ StatusCode TauRecToolBase::executeShotFinder(xAOD::TauJet& /*pTau*/, xAOD::CaloC ...@@ -182,7 +182,7 @@ StatusCode TauRecToolBase::executeShotFinder(xAOD::TauJet& /*pTau*/, xAOD::CaloC
StatusCode TauRecToolBase::executePi0ClusterCreator(xAOD::TauJet& /*pTau*/, xAOD::PFOContainer& /*neutralPFOContainer*/, StatusCode TauRecToolBase::executePi0ClusterCreator(xAOD::TauJet& /*pTau*/, xAOD::PFOContainer& /*neutralPFOContainer*/,
xAOD::PFOContainer& /*hadronicPFOContainer*/, xAOD::PFOContainer& /*hadronicPFOContainer*/,
xAOD::CaloClusterContainer& /*caloClusterContainer*/, xAOD::CaloClusterContainer& /*caloClusterContainer*/,
const xAOD::CaloClusterContainer& /*pCaloClusterContainer*/ ) { const xAOD::CaloClusterContainer& /*pCaloClusterContainer*/ ) const {
ATH_MSG_ERROR("function not implemented"); ATH_MSG_ERROR("function not implemented");
return StatusCode::FAILURE; return StatusCode::FAILURE;
} }
......
...@@ -51,7 +51,7 @@ StatusCode TauPi0ClusterCreator::finalize() ...@@ -51,7 +51,7 @@ StatusCode TauPi0ClusterCreator::finalize()
StatusCode TauPi0ClusterCreator::executePi0ClusterCreator(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer, StatusCode TauPi0ClusterCreator::executePi0ClusterCreator(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer,
xAOD::PFOContainer& hadronicClusterPFOContainer, xAOD::PFOContainer& hadronicClusterPFOContainer,
xAOD::CaloClusterContainer& pi0CaloClusterContainer, xAOD::CaloClusterContainer& pi0CaloClusterContainer,
const xAOD::CaloClusterContainer& pPi0ClusterContainer) const xAOD::CaloClusterContainer& pPi0ClusterContainer) const
{ {
// Any tau needs to have PFO vectors. Set empty vectors before nTrack cut // Any tau needs to have PFO vectors. Set empty vectors before nTrack cut
vector<ElementLink<xAOD::PFOContainer> > empty; vector<ElementLink<xAOD::PFOContainer> > empty;
...@@ -79,22 +79,20 @@ StatusCode TauPi0ClusterCreator::executePi0ClusterCreator(xAOD::TauJet& pTau, xA ...@@ -79,22 +79,20 @@ StatusCode TauPi0ClusterCreator::executePi0ClusterCreator(xAOD::TauJet& pTau, xA
} }
std::map<unsigned, xAOD::CaloCluster*> clusterToShotMap = getClusterToShotMap(shotVector, pPi0ClusterContainer, pTau); std::map<unsigned, xAOD::CaloCluster*> clusterToShotMap = getClusterToShotMap(shotVector, pPi0ClusterContainer, pTau);
xAOD::CaloClusterContainer::const_iterator clusterItr (pPi0ClusterContainer.begin()), for (auto cluster: pPi0ClusterContainer){
clusterItrEnd(pPi0ClusterContainer.end());
for (; clusterItr != clusterItrEnd; ++clusterItr){
// selection // selection
if ((*clusterItr)->pt() < m_clusterEtCut) continue; if (cluster->pt() < m_clusterEtCut) continue;
// Cluster container has clusters for all taus. // Cluster container has clusters for all taus.
// Only run on clusters that belong to this tau // Only run on clusters that belong to this tau
if ((*clusterItr)->p4().DeltaR(pTau.p4()) > .4) continue; if (cluster->p4().DeltaR(pTau.p4()) > .4) continue;
// Get shots in this cluster. Need to use (CaloCluster*) (*clusterItr) // Get shots in this cluster. Need to use (CaloCluster*) (*clusterItr)
// (not a copy!) since the pointer will otherwise be different than in clusterToShotMap // (not a copy!) since the pointer will otherwise be different than in clusterToShotMap
std::vector<unsigned> shotsInCluster = getShotsMatchedToCluster( shotVector, clusterToShotMap, (xAOD::CaloCluster*) (*clusterItr)); std::vector<unsigned> shotsInCluster = getShotsMatchedToCluster( shotVector, clusterToShotMap, cluster);
// Make a copy of the cluster to store in output container. // Make a copy of the cluster to store in output container.
xAOD::CaloCluster* pPi0Cluster = new xAOD::CaloCluster( *(*clusterItr) ); xAOD::CaloCluster* pPi0Cluster = new xAOD::CaloCluster( *cluster );
// store pi0 calo cluster in the output container // store pi0 calo cluster in the output container
pi0CaloClusterContainer.push_back(pPi0Cluster); pi0CaloClusterContainer.push_back(pPi0Cluster);
...@@ -215,8 +213,7 @@ StatusCode TauPi0ClusterCreator::executePi0ClusterCreator(xAOD::TauJet& pTau, xA ...@@ -215,8 +213,7 @@ StatusCode TauPi0ClusterCreator::executePi0ClusterCreator(xAOD::TauJet& pTau, xA
} }
// Functions used to calculate BDT variables other than those provided by the CaloClusterMomentsMaker // Functions used to calculate BDT variables other than those provided by the CaloClusterMomentsMaker
float TauPi0ClusterCreator::getEM1CoreFrac( float TauPi0ClusterCreator::getEM1CoreFrac(const xAOD::CaloCluster* pi0Candidate) const
const xAOD::CaloCluster* pi0Candidate)
{ {
float coreEnergy=0.; float coreEnergy=0.;
float sumEPosCellsEM1=0.; float sumEPosCellsEM1=0.;
...@@ -242,10 +239,9 @@ float TauPi0ClusterCreator::getEM1CoreFrac( ...@@ -242,10 +239,9 @@ float TauPi0ClusterCreator::getEM1CoreFrac(
// Do cluster to shot matching. // Do cluster to shot matching.
// A cluster is matched to a shot if the seed cell of the shot is in the cluster // 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( std::map<unsigned, xAOD::CaloCluster*> TauPi0ClusterCreator::getClusterToShotMap(const std::vector<const xAOD::PFO*>& shotVector,
const std::vector<const xAOD::PFO*> shotVector, const xAOD::CaloClusterContainer& pPi0ClusterContainer,
const xAOD::CaloClusterContainer& pPi0ClusterContainer, const xAOD::TauJet &pTau) const
const xAOD::TauJet &pTau)
{ {
std::map<unsigned, xAOD::CaloCluster*> clusterToShotMap; std::map<unsigned, xAOD::CaloCluster*> clusterToShotMap;
for(unsigned iShot = 0;iShot<shotVector.size();++iShot){ for(unsigned iShot = 0;iShot<shotVector.size();++iShot){
...@@ -299,14 +295,13 @@ std::map<unsigned, xAOD::CaloCluster*> TauPi0ClusterCreator::getClusterToShotMap ...@@ -299,14 +295,13 @@ std::map<unsigned, xAOD::CaloCluster*> TauPi0ClusterCreator::getClusterToShotMap
return clusterToShotMap; return clusterToShotMap;
} }
std::vector<unsigned> TauPi0ClusterCreator::getShotsMatchedToCluster( std::vector<unsigned> TauPi0ClusterCreator::getShotsMatchedToCluster(const std::vector<const xAOD::PFO*>& shotVector,
const std::vector<const xAOD::PFO*> shotVector, const std::map<unsigned, xAOD::CaloCluster*>& clusterToShotMap,
std::map<unsigned, xAOD::CaloCluster*> clusterToShotMap, const xAOD::CaloCluster* pPi0Cluster) const
xAOD::CaloCluster* pPi0Cluster)
{ {
std::vector<unsigned> shotsMatchedToCluster; std::vector<unsigned> shotsMatchedToCluster;
for(unsigned iShot = 0;iShot<shotVector.size();++iShot){ for(unsigned iShot = 0;iShot<shotVector.size();++iShot){
std::map<unsigned, xAOD::CaloCluster*>::iterator itr = clusterToShotMap.find(iShot); auto itr = clusterToShotMap.find(iShot);
if(itr==clusterToShotMap.end()) continue; if(itr==clusterToShotMap.end()) continue;
if(itr->second!=pPi0Cluster) continue; if(itr->second!=pPi0Cluster) continue;
shotsMatchedToCluster.push_back(iShot); shotsMatchedToCluster.push_back(iShot);
...@@ -314,10 +309,8 @@ std::vector<unsigned> TauPi0ClusterCreator::getShotsMatchedToCluster( ...@@ -314,10 +309,8 @@ std::vector<unsigned> TauPi0ClusterCreator::getShotsMatchedToCluster(
return shotsMatchedToCluster; return shotsMatchedToCluster;
} }
int TauPi0ClusterCreator::getNPhotons( int TauPi0ClusterCreator::getNPhotons(const std::vector<const xAOD::PFO*>& shotVector,
const std::vector<const xAOD::PFO*> shotVector, const std::vector<unsigned>& shotsInCluster ) const
std::vector<unsigned> shotsInCluster
)
{ {
int nPhotons = 0; int nPhotons = 0;
for(unsigned iShot = 0;iShot<shotsInCluster.size();++iShot){ for(unsigned iShot = 0;iShot<shotsInCluster.size();++iShot){
...@@ -329,8 +322,7 @@ int TauPi0ClusterCreator::getNPhotons( ...@@ -329,8 +322,7 @@ int TauPi0ClusterCreator::getNPhotons(
return nPhotons; return nPhotons;
} }
vector<int> TauPi0ClusterCreator::getNPosECells( vector<int> TauPi0ClusterCreator::getNPosECells(const xAOD::CaloCluster* pi0Candidate) const
const xAOD::CaloCluster* pi0Candidate)
{ {
vector<int> nPosECellsInLayer(3,0); // 3 layers initialised with 0 +ve cells vector<int> nPosECellsInLayer(3,0); // 3 layers initialised with 0 +ve cells
...@@ -339,7 +331,7 @@ vector<int> TauPi0ClusterCreator::getNPosECells( ...@@ -339,7 +331,7 @@ vector<int> TauPi0ClusterCreator::getNPosECells(
CaloClusterCellLink::const_iterator cellInClusterItrE = theCellLink->end(); CaloClusterCellLink::const_iterator cellInClusterItrE = theCellLink->end();
for(;cellInClusterItr!=cellInClusterItrE; ++cellInClusterItr){ for(;cellInClusterItr!=cellInClusterItrE; ++cellInClusterItr){
CaloCell* cellInCluster = (CaloCell*) *cellInClusterItr; const CaloCell* cellInCluster = static_cast<const CaloCell*>( *cellInClusterItr);
int sampling = cellInCluster->caloDDE()->getSampling(); int sampling = cellInCluster->caloDDE()->getSampling();
// Get cell layer: PSB and PSE belong to layer 0, // Get cell layer: PSB and PSE belong to layer 0,
// EMB1 and EME1 to layer 1, EMB2 and EME2 to layer 2. // EMB1 and EME1 to layer 1, EMB2 and EME2 to layer 2.
...@@ -350,8 +342,7 @@ vector<int> TauPi0ClusterCreator::getNPosECells( ...@@ -350,8 +342,7 @@ vector<int> TauPi0ClusterCreator::getNPosECells(
} }
vector<float> TauPi0ClusterCreator::get1stEtaMomWRTCluster( vector<float> TauPi0ClusterCreator::get1stEtaMomWRTCluster(const xAOD::CaloCluster* pi0Candidate) const
const xAOD::CaloCluster* pi0Candidate)
{ {
vector<float> firstEtaWRTClusterPositionInLayer (4, 0.); //init with 0. for 0-3 layers vector<float> firstEtaWRTClusterPositionInLayer (4, 0.); //init with 0. for 0-3 layers
vector<float> sumEInLayer (4, 0.); //init with 0. for 0-3 layers vector<float> sumEInLayer (4, 0.); //init with 0. for 0-3 layers
...@@ -382,18 +373,14 @@ vector<float> TauPi0ClusterCreator::get1stEtaMomWRTCluster( ...@@ -382,18 +373,14 @@ vector<float> TauPi0ClusterCreator::get1stEtaMomWRTCluster(
return firstEtaWRTClusterPositionInLayer; return firstEtaWRTClusterPositionInLayer;
} }
vector<float> TauPi0ClusterCreator::get2ndEtaMomWRTCluster( vector<float> TauPi0ClusterCreator::get2ndEtaMomWRTCluster( const xAOD::CaloCluster* pi0Candidate) const
const xAOD::CaloCluster* pi0Candidate)
{ {
vector<float> secondEtaWRTClusterPositionInLayer (4, 0.); //init with 0. for 0-3 layers vector<float> secondEtaWRTClusterPositionInLayer (4, 0.); //init with 0. for 0-3 layers
vector<float> sumEInLayer (4, 0.); //init with 0. for 0-3 layers vector<float> sumEInLayer (4, 0.); //init with 0. for 0-3 layers
const CaloClusterCellLink* theCellLink = pi0Candidate->getCellLinks(); const CaloClusterCellLink* theCellLinks = pi0Candidate->getCellLinks();
CaloClusterCellLink::const_iterator cellInClusterItr = theCellLink->begin();
CaloClusterCellLink::const_iterator cellInClusterItrE = theCellLink->end();
for(;cellInClusterItr!=cellInClusterItrE;++cellInClusterItr){ for(const CaloCell* cellInCluster: *theCellLinks){
CaloCell* cellInCluster = (CaloCell*) *cellInClusterItr;
int sampling = cellInCluster->caloDDE()->getSampling(); int sampling = cellInCluster->caloDDE()->getSampling();
// Get cell layer: PSB and PSE belong to layer 0, // Get cell layer: PSB and PSE belong to layer 0,
// EMB1 and EME1 to layer 1, EMB2 and EME2 to layer 2. // EMB1 and EME1 to layer 1, EMB2 and EME2 to layer 2.
...@@ -414,7 +401,7 @@ vector<float> TauPi0ClusterCreator::get2ndEtaMomWRTCluster( ...@@ -414,7 +401,7 @@ vector<float> TauPi0ClusterCreator::get2ndEtaMomWRTCluster(
return secondEtaWRTClusterPositionInLayer; return secondEtaWRTClusterPositionInLayer;
} }
bool TauPi0ClusterCreator::setHadronicClusterPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& pHadronPFOContainer) bool TauPi0ClusterCreator::setHadronicClusterPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& pHadronPFOContainer) const
{ {
const xAOD::Jet* tauJetSeed = (*pTau.jetLink()); const xAOD::Jet* tauJetSeed = (*pTau.jetLink());
if (!tauJetSeed) { if (!tauJetSeed) {
...@@ -440,11 +427,12 @@ bool TauPi0ClusterCreator::setHadronicClusterPFOs(xAOD::TauJet& pTau, xAOD::PFOC ...@@ -440,11 +427,12 @@ bool TauPi0ClusterCreator::setHadronicClusterPFOs(xAOD::TauJet& pTau, xAOD::PFOC
// Loop over cells to calculate cluster energy in Hcal // Loop over cells to calculate cluster energy in Hcal
double clusterE_Hcal=0.; double clusterE_Hcal=0.;
const CaloClusterCellLink* theCellLink = cluster->getCellLinks(); const CaloClusterCellLink* theCellLink = cluster->getCellLinks();
CaloClusterCellLink::const_iterator cellInClusterItr = theCellLink->begin(); CaloClusterCellLink::const_iterator cellInClusterItr = theCellLink->begin();
CaloClusterCellLink::const_iterator cellInClusterItrE = theCellLink->end(); CaloClusterCellLink::const_iterator cellInClusterItrE = theCellLink->end();
for(;cellInClusterItr!=cellInClusterItrE;++cellInClusterItr){
CaloCell* cellInCluster = (CaloCell*) *cellInClusterItr; for(; cellInClusterItr != cellInClusterItrE; ++cellInClusterItr){
const CaloCell* cellInCluster = static_cast<const CaloCell*> (*cellInClusterItr);
//Get only HCAL cells //Get only HCAL cells
int sampling = cellInCluster->caloDDE()->getSampling(); int sampling = cellInCluster->caloDDE()->getSampling();
......
...@@ -31,36 +31,36 @@ public: ...@@ -31,36 +31,36 @@ public:
virtual StatusCode executePi0ClusterCreator(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer, virtual StatusCode executePi0ClusterCreator(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer,
xAOD::PFOContainer& hadronicClusterPFOContainer, xAOD::PFOContainer& hadronicClusterPFOContainer,
xAOD::CaloClusterContainer& pi0CaloClusContainer, xAOD::CaloClusterContainer& pi0CaloClusContainer,
const xAOD::CaloClusterContainer& pPi0CaloClusContainer) override; const xAOD::CaloClusterContainer& pPi0CaloClusContainer) const override;
private: private:
/** @brief fraction of cluster enegry in central EM1 cells */ /** @brief fraction of cluster enegry in central EM1 cells */
float getEM1CoreFrac( const xAOD::CaloCluster* /*pi0Candidate*/); float getEM1CoreFrac( const xAOD::CaloCluster* pi0Candidate) const;
/** @brief number of cells from cluster with positive energy in PS, EM1 and EM2 */ /** @brief number of cells from cluster with positive energy in PS, EM1 and EM2 */
std::vector<int> getNPosECells( const xAOD::CaloCluster* /*pi0Candidate*/); std::vector<int> getNPosECells( const xAOD::CaloCluster* pi0Candidate) const;
std::map<unsigned, xAOD::CaloCluster*> getClusterToShotMap( std::map<unsigned, xAOD::CaloCluster*> getClusterToShotMap(
const std::vector<const xAOD::PFO*> shotVector, const std::vector<const xAOD::PFO*>& shotVector,
const xAOD::CaloClusterContainer& pPi0ClusterContainer, const xAOD::CaloClusterContainer& pPi0ClusterContainer,
const xAOD::TauJet &pTau); const xAOD::TauJet &pTau) const;
std::vector<unsigned> getShotsMatchedToCluster( std::vector<unsigned> getShotsMatchedToCluster(
const std::vector<const xAOD::PFO*> shotVector, const std::vector<const xAOD::PFO*>& shotVector,
std::map<unsigned, xAOD::CaloCluster*> clusterToShotMap, const std::map<unsigned, xAOD::CaloCluster*>& clusterToShotMap,
xAOD::CaloCluster* pPi0Cluster); const xAOD::CaloCluster* pPi0Cluster) const;
int getNPhotons( const std::vector<const xAOD::PFO*> /*shotVector*/, int getNPhotons( const std::vector<const xAOD::PFO*>& shotVector,
std::vector<unsigned> /*shotsInCluster*/); const std::vector<unsigned>& shotsInCluster) const;
/** @brief first eta moment in PS, EM1 and EM2 w.r.t cluster eta: (eta_i - eta_cluster) */ /** @brief first eta moment in PS, EM1 and EM2 w.r.t cluster eta: (eta_i - eta_cluster) */
std::vector<float> get1stEtaMomWRTCluster( const xAOD::CaloCluster* /*pi0Candidate*/); std::vector<float> get1stEtaMomWRTCluster( const xAOD::CaloCluster* pi0Candidate) const;
/** @brief second eta moment in PS, EM1 and EM2 w.r.t cluster eta: (eta_i - eta_cluster)^2 */ /** @brief second eta moment in PS, EM1 and EM2 w.r.t cluster eta: (eta_i - eta_cluster)^2 */
std::vector<float> get2ndEtaMomWRTCluster(const xAOD::CaloCluster* /*pi0Candidate*/); std::vector<float> get2ndEtaMomWRTCluster(const xAOD::CaloCluster* pi0Candidate) const;
/** @brief get hadronic cluster PFOs*/ /** @brief get hadronic cluster PFOs*/
bool setHadronicClusterPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& pHadronicClusterContainer); bool setHadronicClusterPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& pHadronicClusterContainer) const;
/** @brief pt threshold for pi0 candidate clusters */ /** @brief pt threshold for pi0 candidate clusters */
Gaudi::Property<double> m_clusterEtCut {this, "ClusterEtCut", 0.5 * Gaudi::Units::GeV, "Et threshould for pi0 candidate clusters"}; Gaudi::Property<double> m_clusterEtCut {this, "ClusterEtCut", 0.5 * Gaudi::Units::GeV, "Et threshould for pi0 candidate clusters"};
......
...@@ -58,7 +58,7 @@ class ITauToolBase : virtual public asg::IAsgTool ...@@ -58,7 +58,7 @@ class ITauToolBase : virtual public asg::IAsgTool
virtual StatusCode executePi0ClusterCreator(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer, virtual StatusCode executePi0ClusterCreator(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer,
xAOD::PFOContainer& hadronicPFOContainer, xAOD::PFOContainer& hadronicPFOContainer,
xAOD::CaloClusterContainer& caloClusterContainer, xAOD::CaloClusterContainer& caloClusterContainer,
const xAOD::CaloClusterContainer& pCaloClusterContainer ) = 0; const xAOD::CaloClusterContainer& pCaloClusterContainer ) const = 0;
virtual StatusCode executeVertexVariables(xAOD::TauJet& pTau, xAOD::VertexContainer& vertexContainer ) const = 0; virtual StatusCode executeVertexVariables(xAOD::TauJet& pTau, xAOD::VertexContainer& vertexContainer ) const = 0;
virtual StatusCode executePi0ClusterScaler(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer, xAOD::PFOContainer& chargedPFOContainer ) = 0; virtual StatusCode executePi0ClusterScaler(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer, xAOD::PFOContainer& chargedPFOContainer ) = 0;
virtual StatusCode executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer) = 0; virtual StatusCode executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer) = 0;
......
...@@ -55,7 +55,7 @@ class TauRecToolBase : public asg::AsgTool, virtual public ITauToolBase { ...@@ -55,7 +55,7 @@ class TauRecToolBase : public asg::AsgTool, virtual public ITauToolBase {
virtual StatusCode executePi0ClusterCreator(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer, virtual StatusCode executePi0ClusterCreator(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer,
xAOD::PFOContainer& hadronicPFOContainer, xAOD::PFOContainer& hadronicPFOContainer,
xAOD::CaloClusterContainer& caloClusterContainer, xAOD::CaloClusterContainer& caloClusterContainer,
const xAOD::CaloClusterContainer& pCaloClusterContainer ) override; const xAOD::CaloClusterContainer& pCaloClusterContainer ) const override;
virtual StatusCode executeVertexVariables(xAOD::TauJet& pTau, xAOD::VertexContainer& vertexContainer ) const override; virtual StatusCode executeVertexVariables(xAOD::TauJet& pTau, xAOD::VertexContainer& vertexContainer ) const override;
virtual StatusCode executePi0ClusterScaler(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer, xAOD::PFOContainer& chargedPFOContainer ) override; virtual StatusCode executePi0ClusterScaler(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer, xAOD::PFOContainer& chargedPFOContainer ) override;
virtual StatusCode executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer) override; virtual StatusCode executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer) override;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment