Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New training for anti-e tau-Id (94X) #25488

Merged
merged 6 commits into from Jan 16, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions RecoTauTag/Configuration/python/HPSPFTaus_cff.py
Expand Up @@ -294,6 +294,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 @@ -20,6 +20,7 @@
pfnPrefix = cms.untracked.string( '' ),
)

####
# register tau ID (= isolation) discriminator MVA
tauIdDiscrMVA_trainings = {
'tauIdMVAoldDMwoLT' : "tauIdMVAoldDMwoLT",
Expand Down Expand Up @@ -299,7 +300,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 @@ -337,6 +339,7 @@
)
)

# MVA6v1
antiElectronDiscrMVA6_categories = {
'0' : "gbr_NoEleMatch_woGwoGSF_BL",
'2' : "gbr_NoEleMatch_wGwoGSF_BL",
Expand Down Expand Up @@ -365,7 +368,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)
)