Commit dd9f852d authored by Graeme Stewart's avatar Graeme Stewart
Browse files

Reconstruction/PanTau/PanTauUtils deleted from master

parent cc8ea7be
################################################################################
# Package: PanTauUtils
################################################################################
# Declare the package name:
atlas_subdir( PanTauUtils )
# Declare the package's dependencies:
atlas_depends_on_subdirs( PUBLIC
Reconstruction/PanTau/PanTauEvent
PRIVATE
GaudiKernel
PhysicsAnalysis/TauID/TauTrackEvent
Reconstruction/tauEvent )
# Component(s) in the package:
atlas_add_library( PanTauUtils
src/*.cxx
PUBLIC_HEADERS PanTauUtils
LINK_LIBRARIES PanTauEvent
PRIVATE_LINK_LIBRARIES GaudiKernel TauTrackEvent tauEvent )
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
///////////////////////////////////////////////////////////////////
// TauClassificationUtility.h, (c) ATLAS Detector software
///////////////////////////////////////////////////////////////////
#ifndef PANTAUALGS_TAUCLASSIFICATIONUTILITY_H
#define PANTAUALGS_TAUCLASSIFICATIONUTILITY_H
#include "PanTauEvent/TauClassificationTypes.h" // enum
//#include "GaudiKernel/MsgStream.h"
class MsgStream;
namespace TauID{
class TruthTau;
}
namespace Analysis{
class TauJet;
}
namespace PanTau {
class TauSeed;
/** @class TauClassificationUtility
This utility classifies TruthTaus, TauSeeds and TauJets.
@author Sebastian Fleischmann <Sebastian.Fleischmann@cern.ch>
*/
class TauClassificationUtility {
public:
/** Standard Constructor */
TauClassificationUtility() {};
/** Default Destructor */
~TauClassificationUtility() {};
/** get truth tau type */
TauClassificationTypes::TruthTauType getTruthTauType(const TauID::TruthTau& truthTau, MsgStream& log ) const;
/** get tau seed type */
TauClassificationTypes::PanTauRecoMode getSeedTauType(const PanTau::TauSeed& seed, MsgStream& log ) const;
/** get tau seed type of TauJet*/
TauClassificationTypes::PanTauRecoMode getSeedTauType(const Analysis::TauJet& tauJet, MsgStream& log) const;
};
} // end of namespace
#endif //PANTAUALGS_TAUCLASSIFICATIONUTILITY_H
package PanTauUtils
author Sebastian Fleischmann <sebastian.fleischmann@cern.ch>
use AtlasPolicy AtlasPolicy-*
use PanTauEvent PanTauEvent-* Reconstruction/PanTau
private
use GaudiInterface GaudiInterface-* External
use tauEvent tauEvent-* Reconstruction
use TauTrackEvent TauTrackEvent-* PhysicsAnalysis/TauID
public
apply_pattern installed_library
library PanTauUtils *.cxx
private
#macro cppdebugflags '$(cppdebugflags_s)'
#macro_remove componentshr_linkopts "-Wl,-s"
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
/**
* @mainpage The PanTauUtils package
* The utils package for PanTau.
*
* @author Sebastian.Fleischmann@cern.ch
*
* @section introductionPanTauUtils Introduction
*
* This package contains the utility classes for PanTau.
*
* @section PanTauUtilsOverview Class Overview
* The PanTauUtils package contains the following classes:
*
* - PanTau::TauClassificationUtility : Classifies TauSeeds and TruthTaus
*
* @section ExtrasPanTauUtils Extra Pages
*
* - @ref UsedPanTauUtils
* - @ref requirementsPanTauUtils
* */
/**
* @page UsedPanTauUtils Used Packages
* @htmlinclude used_packages.html
* */
/**
* @page requirementsPanTauUtils Requirements
* @include requirements
* */
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
///////////////////////////////////////////////////////////////////
// TauClassificationUtility.cxx, (c) ATLAS Detector software
///////////////////////////////////////////////////////////////////
#include "PanTauEvent/TauSeed.h"
#include "TauTrackEvent/TruthTau.h"
#include "PanTauUtils/TauClassificationUtility.h"
#include "GaudiKernel/MsgStream.h"
#include "tauEvent/TauJet.h"
#include "PanTauEvent/PanTauDetails.h"
PanTau::TauClassificationTypes::TruthTauType PanTau::TauClassificationUtility::getTruthTauType(const TauID::TruthTau& truthTau, MsgStream& log) const {
TauClassificationTypes::TruthTauType truthTypeIndex = TauClassificationTypes::NumberOfTruthTauTypes;
// For the moment we put all decays with Kaons in the Kaon class and do not count them as 1- or 3-prong!
if (truthTau.type(TauID::TruthTau::Kaon)) {
truthTypeIndex = TauClassificationTypes::TruthKaon;
} else if (truthTau.type(TauID::TruthTau::OneProng)) {
truthTypeIndex = (truthTau.type(TauID::TruthTau::Neutrals) ? TauClassificationTypes::TruthOneProngNeutrals : TauClassificationTypes::TruthOneProng);
} else if (truthTau.type(TauID::TruthTau::ThreeProng)) {
truthTypeIndex = (truthTau.type(TauID::TruthTau::Neutrals) ? TauClassificationTypes::TruthThreeProngNeutrals : TauClassificationTypes::TruthThreeProng);
} else if (truthTau.type(TauID::TruthTau::Electron)) {
truthTypeIndex = TauClassificationTypes::TruthElectron;
} else if (truthTau.type(TauID::TruthTau::Muon)) {
truthTypeIndex = TauClassificationTypes::TruthMuon;
} else if (truthTau.type(TauID::TruthTau::FiveProng)) {
truthTypeIndex = TauClassificationTypes::TruthOther;
} else {
log << MSG::WARNING << "Something is wrong, could not identify truth tau type of " << truthTau.dumpType() << " BC =" << truthTau.barcode() << endreq;
log << MSG::WARNING << "Resonance: " << truthTau.resonancePdgId() << ", charged daughters: " << endreq;
std::vector< const TruthParticle * >::const_iterator chargedProdIter = truthTau.chargedProducts().begin();
for (; chargedProdIter != truthTau.chargedProducts().end(); chargedProdIter++) {
log << MSG::WARNING << " * BC " << (*chargedProdIter)->barcode() << ", PDG ID " << (*chargedProdIter)->pdgId() << endreq;
}
}
return truthTypeIndex;
}
PanTau::TauClassificationTypes::PanTauRecoMode PanTau::TauClassificationUtility::getSeedTauType(const PanTau::TauSeed& seed, MsgStream& log) const
{
TauClassificationTypes::PanTauRecoMode seedTypeIndex = seed.getRecoModeLoose();
log << MSG::VERBOSE << "tau type is: " << seedTypeIndex << endreq;
return seedTypeIndex;
}
PanTau::TauClassificationTypes::PanTauRecoMode PanTau::TauClassificationUtility::getSeedTauType(const Analysis::TauJet& tauJet, MsgStream& log) const {
TauClassificationTypes::PanTauRecoMode candTypeIndex = TauClassificationTypes::Reco_Error;
const PanTauDetails* tauDetails = tauJet.details<PanTauDetails>();
if (tauDetails) {
// the PanTau case: Use PanTau::TauSeed to identify the type
const TauSeed* tauSeed = tauDetails->seed();
if (!tauSeed) {
log << MSG::WARNING << "Could not get TauSeed for PanTau TauJet! Cannot identify its reconstructed type" << endreq;
} else {
candTypeIndex = this->getSeedTauType(*tauSeed, log);
} // end if (!tauSeed)
}
return candTypeIndex;
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment