Skip to content

Commit

Permalink
namespace to protect anti-e MVA6 variable blocks
Browse files Browse the repository at this point in the history
  • Loading branch information
mbluj committed Jul 9, 2020
1 parent aff43e1 commit 4ee40aa
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 58 deletions.
122 changes: 64 additions & 58 deletions RecoTauTag/RecoTau/interface/AntiElectronIDMVA6.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,57 +33,59 @@

#include <vector>

struct TauVars {
float pt = 0;
float etaAtEcalEntrance = 0;
float phi = 0;
float leadChargedPFCandPt = 0;
float leadChargedPFCandEtaAtEcalEntrance = 0;
float emFraction = 0;
float leadPFChargedHadrHoP = 0;
float leadPFChargedHadrEoP = 0;
float visMassIn = 0;
float dCrackEta = 0;
float dCrackPhi = 0;
float hasGsf = 0;
};
struct TauGammaVecs {
std::vector<float> gammasdEtaInSigCone;
std::vector<float> gammasdPhiInSigCone;
std::vector<float> gammasPtInSigCone;
std::vector<float> gammasdEtaOutSigCone;
std::vector<float> gammasdPhiOutSigCone;
std::vector<float> gammasPtOutSigCone;
};
struct TauGammaMoms {
int signalPFGammaCandsIn = 0;
int signalPFGammaCandsOut = 0;
float gammaEtaMomIn = 0;
float gammaEtaMomOut = 0;
float gammaPhiMomIn = 0;
float gammaPhiMomOut = 0;
float gammaEnFracIn = 0;
float gammaEnFracOut = 0;
};
struct ElecVars {
float eta = 0;
float phi = 0;
float eTotOverPin = 0;
float chi2NormGSF = 0;
float chi2NormKF = 0;
float gsfNumHits = 0;
float kfNumHits = 0;
float gsfTrackResol = 0;
float gsfTracklnPt = 0;
float pIn = 0;
float pOut = 0;
float eEcal = 0;
float deltaEta = 0;
float deltaPhi = 0;
float mvaInSigmaEtaEta = 0;
float mvaInHadEnergy = 0;
float mvaInDeltaEta = 0;
};
namespace antiElecIDMVA6_blocks {
struct TauVars {
float pt = 0;
float etaAtEcalEntrance = 0;
float phi = 0;
float leadChargedPFCandPt = 0;
float leadChargedPFCandEtaAtEcalEntrance = 0;
float emFraction = 0;
float leadPFChargedHadrHoP = 0;
float leadPFChargedHadrEoP = 0;
float visMassIn = 0;
float dCrackEta = 0;
float dCrackPhi = 0;
float hasGsf = 0;
};
struct TauGammaVecs {
std::vector<float> gammasdEtaInSigCone;
std::vector<float> gammasdPhiInSigCone;
std::vector<float> gammasPtInSigCone;
std::vector<float> gammasdEtaOutSigCone;
std::vector<float> gammasdPhiOutSigCone;
std::vector<float> gammasPtOutSigCone;
};
struct TauGammaMoms {
int signalPFGammaCandsIn = 0;
int signalPFGammaCandsOut = 0;
float gammaEtaMomIn = 0;
float gammaEtaMomOut = 0;
float gammaPhiMomIn = 0;
float gammaPhiMomOut = 0;
float gammaEnFracIn = 0;
float gammaEnFracOut = 0;
};
struct ElecVars {
float eta = 0;
float phi = 0;
float eTotOverPin = 0;
float chi2NormGSF = 0;
float chi2NormKF = 0;
float gsfNumHits = 0;
float kfNumHits = 0;
float gsfTrackResol = 0;
float gsfTracklnPt = 0;
float pIn = 0;
float pOut = 0;
float eEcal = 0;
float deltaEta = 0;
float deltaPhi = 0;
float mvaInSigmaEtaEta = 0;
float mvaInHadEnergy = 0;
float mvaInDeltaEta = 0;
};
} // namespace antiElecIDMVA6_blocks

template <class TauType, class ElectronType>
class AntiElectronIDMVA6 {
Expand All @@ -93,21 +95,25 @@ class AntiElectronIDMVA6 {

void beginEvent(const edm::Event&, const edm::EventSetup&);

double MVAValue(const TauVars& tauVars, const TauGammaVecs& tauGammaVecs, const ElecVars& elecVars);
double MVAValue(const antiElecIDMVA6_blocks::TauVars& tauVars,
const antiElecIDMVA6_blocks::TauGammaVecs& tauGammaVecs,
const antiElecIDMVA6_blocks::ElecVars& elecVars);

double MVAValue(const TauVars& tauVars, const TauGammaMoms& tauGammaMoms, const ElecVars& elecVars);
double MVAValue(const antiElecIDMVA6_blocks::TauVars& tauVars,
const antiElecIDMVA6_blocks::TauGammaMoms& tauGammaMoms,
const antiElecIDMVA6_blocks::ElecVars& elecVars);

// this function can be called for all categories
double MVAValue(const TauType& theTau, const ElectronType& theEle);
// this function can be called for category 1 only !!
double MVAValue(const TauType& theTau);

// overloaded method with explicit tau type to avoid partial imlementation of full class
TauVars getTauVarsTypeSpecific(const reco::PFTau& theTau);
TauVars getTauVarsTypeSpecific(const pat::Tau& theTau);
TauVars getTauVars(const TauType& theTau);
TauGammaVecs getTauGammaVecs(const TauType& theTau);
ElecVars getElecVars(const ElectronType& theEle);
antiElecIDMVA6_blocks::TauVars getTauVarsTypeSpecific(const reco::PFTau& theTau);
antiElecIDMVA6_blocks::TauVars getTauVarsTypeSpecific(const pat::Tau& theTau);
antiElecIDMVA6_blocks::TauVars getTauVars(const TauType& theTau);
antiElecIDMVA6_blocks::TauGammaVecs getTauGammaVecs(const TauType& theTau);
antiElecIDMVA6_blocks::ElecVars getElecVars(const ElectronType& theEle);

// track extrapolation to ECAL entrance (used to re-calculate variables that might not be available on miniAOD)
bool atECalEntrance(const reco::Candidate* part, math::XYZPoint& pos);
Expand Down
2 changes: 2 additions & 0 deletions RecoTauTag/RecoTau/src/AntiElectronIDMVA6.cc
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
#include <TFile.h>
#include <array>

using namespace antiElecIDMVA6_blocks;

template <class TauType, class ElectronType>
AntiElectronIDMVA6<TauType, ElectronType>::AntiElectronIDMVA6(const edm::ParameterSet& cfg)
: isInitialized_(false),
Expand Down

0 comments on commit 4ee40aa

Please sign in to comment.