Skip to content

Commit

Permalink
Merge pull request #25487 from mbluj/CMSSW_10_2_X_antiEDiscUpdate
Browse files Browse the repository at this point in the history
New training for anti-e tau-Id (102X)
  • Loading branch information
cmsbuild committed Jan 16, 2019
2 parents 2c0a243 + 3acdbb4 commit 6e348b7
Show file tree
Hide file tree
Showing 10 changed files with 326 additions and 15 deletions.
1 change: 1 addition & 0 deletions RecoTauTag/Configuration/python/HPSPFTaus_cff.py
Expand Up @@ -304,6 +304,7 @@
PFTauProducer = cms.InputTag('hpsPFTauProducer'),
Prediscriminants = requireDecayMode.clone(),
loadMVAfromDB = cms.bool(True),
vetoEcalCracks = cms.bool(True),
mvaName_NoEleMatch_woGwoGSF_BL = cms.string("RecoTauTag_antiElectronMVA6v1_gbr_NoEleMatch_woGwoGSF_BL"),
mvaName_NoEleMatch_wGwoGSF_BL = cms.string("RecoTauTag_antiElectronMVA6v1_gbr_NoEleMatch_wGwoGSF_BL"),
mvaName_woGwGSF_BL = cms.string("RecoTauTag_antiElectronMVA6v1_gbr_woGwGSF_BL"),
Expand Down
Expand Up @@ -18,6 +18,7 @@
pfnPrefix = cms.untracked.string( '' ),
)

####
# register tau ID (= isolation) discriminator MVA
tauIdDiscrMVA_trainings = {
'tauIdMVAoldDMwoLT' : "tauIdMVAoldDMwoLT",
Expand Down Expand Up @@ -297,7 +298,8 @@
)

####
# register anti-electron discriminator MVA
## register anti-electron discriminator MVA
# MVA5
antiElectronDiscrMVA5_categories = {
'0' : "gbr_NoEleMatch_woGwoGSF_BL",
'1' : "gbr_NoEleMatch_woGwGSF_BL",
Expand Down Expand Up @@ -335,6 +337,7 @@
)
)

# MVA6v1
antiElectronDiscrMVA6_categories = {
'0' : "gbr_NoEleMatch_woGwoGSF_BL",
'2' : "gbr_NoEleMatch_wGwoGSF_BL",
Expand Down Expand Up @@ -363,7 +366,28 @@
label = cms.untracked.string("RecoTauTag_antiElectronMVA6%s_%s_WP%s" % (antiElectronDiscrMVA6_version, gbrForestName, WP))
)
)
# MVA6v3
# MB: categories as in MVA6v1
antiElectronDiscrMVA6_2017_WPs = [ "eff98", "eff90", "eff80", "eff70", "eff60" ]
antiElectronDiscrMVA6_2017_version = "v3_noeveto"
for category, gbrForestName in antiElectronDiscrMVA6_categories.items():
loadRecoTauTagMVAsFromPrepDB.toGet.append(
cms.PSet(
record = cms.string('GBRWrapperRcd'),
tag = cms.string("RecoTauTag_antiElectronMVA6%s_%s" % (antiElectronDiscrMVA6_2017_version, gbrForestName)),
label = cms.untracked.string("RecoTauTag_antiElectronMVA6%s_%s" % (antiElectronDiscrMVA6_2017_version, gbrForestName))
)
)
for WP in antiElectronDiscrMVA6_2017_WPs:
loadRecoTauTagMVAsFromPrepDB.toGet.append(
cms.PSet(
record = cms.string('PhysicsTGraphPayloadRcd'),
tag = cms.string("RecoTauTag_antiElectronMVA6%s_%s_WP%s" % (antiElectronDiscrMVA6_2017_version, gbrForestName, WP)),
label = cms.untracked.string("RecoTauTag_antiElectronMVA6%s_%s_WP%s" % (antiElectronDiscrMVA6_2017_version, gbrForestName, WP))
)
)

####
# register anti-muon discriminator MVA
antiMuonDiscrMVA_WPs = [ "eff99_5", "eff99_0", "eff98_0" ]
antiMuonDiscrMVA_version = "v1"
Expand Down
Expand Up @@ -147,6 +147,9 @@ PATTauDiscriminantCutMultiplexer::PATTauDiscriminantCutMultiplexer(const edm::Pa
key_ = cfg.getParameter<edm::InputTag>("key");
key_token = consumes<pat::PATTauDiscriminator>(key_);

verbosity_ = ( cfg.exists("verbosity") ) ?
cfg.getParameter<int>("verbosity") : 0;

loadMVAfromDB_ = cfg.exists("loadMVAfromDB") ? cfg.getParameter<bool>("loadMVAfromDB") : false;
if ( !loadMVAfromDB_ ) {
if(cfg.exists("inputFileName")){
Expand Down Expand Up @@ -179,7 +182,7 @@ PATTauDiscriminantCutMultiplexer::PATTauDiscriminantCutMultiplexer(const edm::Pa
}
cuts_[category] = std::move(cut);
}
verbosity_ = ( cfg.exists("verbosity") ) ? cfg.getParameter<int>("verbosity") : 0;

if(verbosity_) std::cout << "constructed " << moduleLabel_ << std::endl;
}

Expand All @@ -194,7 +197,7 @@ void PATTauDiscriminantCutMultiplexer::beginEvent(const edm::Event& evt, const e
//Only open the file once and we can close it when this routine is done
// since all objects gotten from the file will have been copied
std::unique_ptr<TFile> inputFile;
if ( mvaOutputNormalizationName_ != "" ) {
if ( !mvaOutputNormalizationName_.empty() ) {
if ( !loadMVAfromDB_ ) {
inputFile = openInputFile(inputFileName_);
mvaOutput_normalization_ = loadObjectFromFile<TFormula>(*inputFile, mvaOutputNormalizationName_);
Expand Down
Expand Up @@ -33,6 +33,7 @@ class PATTauDiscriminationAgainstElectronMVA6 : public PATTauDiscriminationProdu

srcElectrons = cfg.getParameter<edm::InputTag>("srcElectrons");
electronToken = consumes<pat::ElectronCollection>(srcElectrons);
vetoEcalCracks_ = cfg.getParameter<bool>("vetoEcalCracks");
verbosity_ = ( cfg.exists("verbosity") ) ?
cfg.getParameter<int>("verbosity") : 0;

Expand Down Expand Up @@ -60,7 +61,9 @@ class PATTauDiscriminationAgainstElectronMVA6 : public PATTauDiscriminationProdu
edm::Handle<TauCollection> taus_;

std::unique_ptr<PATTauDiscriminator> category_output_;


bool vetoEcalCracks_;

int verbosity_;
};

Expand Down Expand Up @@ -110,7 +113,7 @@ double PATTauDiscriminationAgainstElectronMVA6::discriminate(const TauRef& theTa
hasGsfTrack = theElectron.gsfTrack().isNonnull();

// veto taus that go to Ecal crack
if ( isInEcalCrack(tauEtaAtEcalEntrance) || isInEcalCrack(leadChargedPFCandEtaAtEcalEntrance) ) {
if ( vetoEcalCracks_ && (isInEcalCrack(tauEtaAtEcalEntrance) || isInEcalCrack(leadChargedPFCandEtaAtEcalEntrance)) ) {
// add category index
category_output_->setValue(tauIndex_, category);
// return MVA output value
Expand Down Expand Up @@ -145,7 +148,7 @@ double PATTauDiscriminationAgainstElectronMVA6::discriminate(const TauRef& theTa
if( abs(packedLeadTauCand->pdgId()) == 11 ) hasGsfTrack = true;

// veto taus that go to Ecal crack
if ( isInEcalCrack(tauEtaAtEcalEntrance) || isInEcalCrack(leadChargedPFCandEtaAtEcalEntrance) ) {
if ( vetoEcalCracks_ && (isInEcalCrack(tauEtaAtEcalEntrance) || isInEcalCrack(leadChargedPFCandEtaAtEcalEntrance)) ) {
// add category index
category_output_->setValue(tauIndex_, category);
// return MVA output value
Expand Down
Expand Up @@ -36,7 +36,7 @@ class PFRecoTauDiscriminationAgainstElectronMVA6 : public PFTauDiscriminationPro

srcGsfElectrons_ = cfg.getParameter<edm::InputTag>("srcGsfElectrons");
GsfElectrons_token = consumes<reco::GsfElectronCollection>(srcGsfElectrons_);

vetoEcalCracks_ = cfg.getParameter<bool>("vetoEcalCracks");
verbosity_ = ( cfg.exists("verbosity") ) ?
cfg.getParameter<int>("verbosity") : 0;

Expand Down Expand Up @@ -65,6 +65,8 @@ class PFRecoTauDiscriminationAgainstElectronMVA6 : public PFTauDiscriminationPro

std::unique_ptr<PFTauDiscriminator> category_output_;

bool vetoEcalCracks_;

int verbosity_;
};

Expand Down Expand Up @@ -144,7 +146,7 @@ double PFRecoTauDiscriminationAgainstElectronMVA6::discriminate(const PFTauRef&
hasGsfTrack = theGsfElectron.gsfTrack().isNonnull();

//// Veto taus that go to Ecal crack
if ( isInEcalCrack(tauEtaAtEcalEntrance) || isInEcalCrack(leadChargedPFCandEtaAtEcalEntrance) ) {
if ( vetoEcalCracks_ && (isInEcalCrack(tauEtaAtEcalEntrance) || isInEcalCrack(leadChargedPFCandEtaAtEcalEntrance)) ) {
// add category index
category_output_->setValue(tauIndex_, category);
// return MVA output value
Expand Down Expand Up @@ -179,7 +181,7 @@ double PFRecoTauDiscriminationAgainstElectronMVA6::discriminate(const PFTauRef&
bool hasGsfTrack = thePFTauRef->leadPFChargedHadrCand()->gsfTrackRef().isNonnull();

//// Veto taus that go to Ecal crack
if ( isInEcalCrack(tauEtaAtEcalEntrance) || isInEcalCrack(leadChargedPFCandEtaAtEcalEntrance) ) {
if ( vetoEcalCracks_ && (isInEcalCrack(tauEtaAtEcalEntrance) || isInEcalCrack(leadChargedPFCandEtaAtEcalEntrance)) ) {
// add category index
category_output_->setValue(tauIndex_, category);
// return MVA output value
Expand Down
Expand Up @@ -148,7 +148,6 @@ RecoTauDiscriminantCutMultiplexer::RecoTauDiscriminantCutMultiplexer(const edm::
verbosity_ = ( cfg.exists("verbosity") ) ?
cfg.getParameter<int>("verbosity") : 0;


loadMVAfromDB_ = cfg.exists("loadMVAfromDB") ? cfg.getParameter<bool>("loadMVAfromDB") : false;
if ( !loadMVAfromDB_ ) {
if(cfg.exists("inputFileName")){
Expand Down Expand Up @@ -182,8 +181,6 @@ RecoTauDiscriminantCutMultiplexer::RecoTauDiscriminantCutMultiplexer(const edm::
cuts_[category] = std::move(cut);
}

verbosity_ = ( cfg.exists("verbosity") ) ?
cfg.getParameter<int>("verbosity") : 0;
if(verbosity_) std::cout << "constructed " << moduleLabel_ << std::endl;
}

Expand All @@ -198,7 +195,7 @@ void RecoTauDiscriminantCutMultiplexer::beginEvent(const edm::Event& evt, const
//Only open the file once and we can close it when this routine is done
// since all objects gotten from the file will have been copied
std::unique_ptr<TFile> inputFile;
if ( mvaOutputNormalizationName_ != "" ) {
if ( !mvaOutputNormalizationName_.empty() ) {
if ( !loadMVAfromDB_ ) {
inputFile = openInputFile(inputFileName_);
mvaOutput_normalization_ = loadObjectFromFile<TFormula>(*inputFile, mvaOutputNormalizationName_);
Expand Down
Expand Up @@ -34,5 +34,6 @@
minMVAWgWgsfEC = cms.double(0.0),

srcElectrons = cms.InputTag('slimmedElectrons'),
vetoEcalCracks = cms.bool(True),
usePhiAtEcalEntranceExtrapolation = cms.bool(False)
)
Expand Up @@ -35,5 +35,6 @@
minMVAWgWgsfEC = cms.double(0.0),

srcGsfElectrons = cms.InputTag('gedGsfElectrons'),
vetoEcalCracks = cms.bool(True),
usePhiAtEcalEntranceExtrapolation = cms.bool(False)
)

0 comments on commit 6e348b7

Please sign in to comment.