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

TensorFlow-based DeepDoubleB tagger integration #23033

Merged
merged 38 commits into from Jun 2, 2018
Merged
Show file tree
Hide file tree
Changes from 37 commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
55696f8
add double-b features
Dec 6, 2017
5b29ed0
rearrange files
Dec 14, 2017
4e89f23
update src and interface
cvernier Dec 21, 2017
4f583de
define templates in .h, instantiate in .cc
kpedro88 Dec 22, 2017
a3c8752
update tensor shape; fix tensor filler
Jan 6, 2018
59d9c01
fix double-b inputs, except for slight diff in tau1_flightDistance2dS…
Jan 11, 2018
d5bed9e
fix packed candidate loop for AK8 jets (double loop)
jmduarte Mar 16, 2018
a9d5636
add ptratio to charged candidate
jmduarte Mar 26, 2018
b322d5c
make jet radius configurable for drmin
jmduarte Mar 26, 2018
9cf3a23
fix producer for RECO/AOD
jmduarte Mar 30, 2018
e00f90c
testing from MINIAOD
jmduarte Mar 30, 2018
5bd87bc
remove vertex_associator from deepdoubleb in jetTools
jmduarte Apr 4, 2018
de5426a
rm printouts and vertex associator
jmduarte Apr 4, 2018
4e0dba2
testing configs
jmduarte Apr 4, 2018
2c5da18
update default model file with pt cut and mass sculpting penalty
jmduarte Apr 19, 2018
3c5dd9e
enable DeepDoubleB tagger in MINIAOD
jmduarte Apr 24, 2018
fb855f9
add class versions
jmduarte May 9, 2018
682a77d
add comment that these variables should match the content of DataForm…
jmduarte May 9, 2018
17f139d
factorize deep b-tagging on top of MINIAOD into applyDeepBtagging_cff.py
jmduarte May 9, 2018
8e920d8
remove unnecessary tags in BuildFile.xml; fix indenting
jmduarte May 9, 2018
a4e89c8
fix naming conventions for converter classes, functions, and include …
jmduarte May 9, 2018
0c08ec1
double jetR -> float jetR
jmduarte May 9, 2018
0baa490
add comment on unused variable
jmduarte May 9, 2018
98f4300
remove commented out code
jmduarte May 10, 2018
b825564
generalize range for different jetR
jmduarte May 10, 2018
2d5846c
add newline for readability
jmduarte May 10, 2018
89d8406
moved unnecessary includes for interface from .h to .cc
jmduarte May 10, 2018
a23111c
fix indentation in deep_helpers
jmduarte May 10, 2018
95211f0
clang-format DeepDoubleBTagInfoProducer
jmduarte May 10, 2018
b9f24c6
mv RecoBTag/DeepFlavour -> RecoBTag/TensorFlow
jmduarte May 10, 2018
63ff44b
mv RecoBTag/DeepFlavour -> RecoBTag/TensorFlow
jmduarte May 10, 2018
05ba24f
remove pointer to reco candidate; small fix to applyDeepBtagging_cff.py
jmduarte May 19, 2018
dd2a595
reapply Puppi JECs for slimmedAK8 jets after double-b tagging
jmduarte May 20, 2018
12e9800
add back buildfile
jmduarte May 29, 2018
5e2cfe5
sVToFeatures -> svToFeatures
jmduarte May 29, 2018
15d011e
move reco_cand and rename pv local variable
jmduarte May 29, 2018
2f77331
mv sorting_modules
jmduarte May 31, 2018
a3fceea
remove multiple definition of jetToFeatures
jmduarte Jun 1, 2018
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
44 changes: 44 additions & 0 deletions DataFormats/BTauReco/interface/BoostedDoubleSVTagInfoFeatures.h
@@ -0,0 +1,44 @@
#ifndef DataFormats_BTauReco_BoostedDoubleSVTagInfoFeatures_h
#define DataFormats_BTauReco_BoostedDoubleSVTagInfoFeatures_h

namespace btagbtvdeep {

class BoostedDoubleSVTagInfoFeatures {

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's worth to add a comment that these variables are (supposed to be) matching the content of DataFormats/BTauReco/interface/TaggingVariable.h

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added in 7932110

// Note: these variables are intended to match the variables defined in DataFormats/BTauReco/interface/TaggingVariable.h

public:
float jetNTracks; // tracks associated to jet
float jetNSecondaryVertices; // number of reconstructed possible secondary vertices in jet
float trackSip3dSig_0; // 1st largest track 3D signed impact parameter significance
float trackSip3dSig_1; // 2nd largest track 3D signed impact parameter significance
float trackSip3dSig_2; // 3rd largest track 3D signed impact parameter significance
float trackSip3dSig_3; // 4th largest track 3D signed impact parameter significance
float tau1_trackSip3dSig_0; // 1st largest track 3D signed impact parameter significance associated to the 1st N-subjettiness axis
float tau1_trackSip3dSig_1; // 2nd largest track 3D signed impact parameter significance associated to the 1st N-subjettiness axis
float tau2_trackSip3dSig_0; // 1st largest track 3D signed impact parameter significance associated to the 2nd N-subjettiness axis
float tau2_trackSip3dSig_1; // 2nd largest track 3D signed impact parameter significance associated to the 2nd N-subjettiness axis
float trackSip2dSigAboveBottom_0;// track 2D signed impact parameter significance of 1st track lifting mass above bottom
float trackSip2dSigAboveBottom_1;// track 2D signed impact parameter significance of 2nd track lifting mass above bottom
float trackSip2dSigAboveCharm; // track 2D signed impact parameter significance of first track lifting mass above charm
float tau1_trackEtaRel_0; // 1st smallest track pseudorapidity, relative to the jet axis, associated to the 1st N-subjettiness axis
float tau1_trackEtaRel_1; // 2nd smallest track pseudorapidity, relative to the jet axis, associated to the 1st N-subjettiness axis
float tau1_trackEtaRel_2; // 3rd smallest track pseudorapidity, relative to the jet axis, associated to the 1st N-subjettiness axis
float tau2_trackEtaRel_0; // 1st smallest track pseudorapidity, relative to the jet axis, associated to the 2nd N-subjettiness axis
float tau2_trackEtaRel_1; // 2nd smallest track pseudorapidity, relative to the jet axis, associated to the 2nd N-subjettiness axis
float tau2_trackEtaRel_2; // 3rd smallest track pseudorapidity, relative to the jet axis, associated to the 2nd N-subjettiness axis
float tau1_vertexMass; // mass of track sum at secondary vertex associated to the 1st N-subjettiness axis
float tau1_vertexEnergyRatio; // ratio of energy at secondary vertex over total energy associated to the 1st N-subjettiness axis
float tau1_flightDistance2dSig; // transverse distance significance between primary and secondary vertex associated to the 1st N-subjettiness axis
float tau1_vertexDeltaR; // pseudoangular distance between the 1st N-subjettiness axis and secondary vertex direction
float tau2_vertexMass; // mass of track sum at secondary vertex associated to the 2nd N-subjettiness axis
float tau2_vertexEnergyRatio; // ratio of energy at secondary vertex over total energy associated to the 2nd N-subjettiness axis
float tau2_flightDistance2dSig; // transverse distance significance between primary and secondary vertex associated to the 2nd N-subjettiness axis
float tau2_vertexDeltaR; // pseudoangular distance between the 2nd N-subjettiness axis and secondary vertex direction (NOT USED!)
float z_ratio; // z ratio

};

}

#endif //DataFormats_BTauReco_BoostedDoubleSVTagInfoFeatures_h
1 change: 1 addition & 0 deletions DataFormats/BTauReco/interface/ChargedCandidateFeatures.h
Expand Up @@ -13,6 +13,7 @@ class ChargedCandidateFeatures {

float btagPf_trackEtaRel;
float btagPf_trackPtRel;
float btagPf_trackPtRatio;
float btagPf_trackPPar;
float btagPf_trackDeltaR;
float btagPf_trackPParRatio;
Expand Down
29 changes: 29 additions & 0 deletions DataFormats/BTauReco/interface/DeepDoubleBFeatures.h
@@ -0,0 +1,29 @@
#ifndef DataFormats_BTauReco_DeepDoubleBFeatures_h
#define DataFormats_BTauReco_DeepDoubleBFeatures_h

#include <vector>

#include "DataFormats/BTauReco/interface/JetFeatures.h"
#include "DataFormats/BTauReco/interface/SecondaryVertexFeatures.h"
#include "DataFormats/BTauReco/interface/BoostedDoubleSVTagInfoFeatures.h"
#include "DataFormats/BTauReco/interface/ChargedCandidateFeatures.h"

namespace btagbtvdeep {

class DeepDoubleBFeatures {

public:
JetFeatures jet_features;
BoostedDoubleSVTagInfoFeatures tag_info_features;

std::vector<SecondaryVertexFeatures> sv_features;

std::vector<ChargedCandidateFeatures> c_pf_features;

std::size_t npv; // used by deep flavour
};


}

#endif //DataFormats_BTauReco_DeepDoubleBFeatures_h
19 changes: 19 additions & 0 deletions DataFormats/BTauReco/interface/DeepDoubleBTagInfo.h
@@ -0,0 +1,19 @@
#ifndef DataFormats_BTauReco_DeepDoubleBTagInfo_h
#define DataFormats_BTauReco_DeepDoubleBTagInfo_h

#include "DataFormats/Common/interface/CMS_CLASS_VERSION.h"
#include "DataFormats/BTauReco/interface/BaseTagInfo.h"
#include "DataFormats/BTauReco/interface/DeepFlavourTagInfo.h"
#include "DataFormats/BTauReco/interface/DeepDoubleBFeatures.h"

#include "DataFormats/PatCandidates/interface/Jet.h"

namespace reco {

typedef FeaturesTagInfo<btagbtvdeep::DeepDoubleBFeatures> DeepDoubleBTagInfo;

DECLARE_EDM_REFS( DeepDoubleBTagInfo )

}

#endif // DataFormats_BTauReco_DeepDoubleBTagInfo_h
15 changes: 15 additions & 0 deletions DataFormats/BTauReco/src/classes.h
Expand Up @@ -33,6 +33,7 @@
#include "DataFormats/BTauReco/interface/SecondaryVertexTagInfo.h"
#include "DataFormats/BTauReco/interface/CandSecondaryVertexTagInfo.h"
#include "DataFormats/BTauReco/interface/BoostedDoubleSVTagInfo.h"
#include "DataFormats/BTauReco/interface/BoostedDoubleSVTagInfoFeatures.h"
#include "DataFormats/BTauReco/interface/ShallowTagInfo.h"
#include "DataFormats/BTauReco/interface/SoftLeptonTagInfo.h"
#include "DataFormats/BTauReco/interface/CandSoftLeptonTagInfo.h"
Expand All @@ -53,6 +54,9 @@
#include "DataFormats/BTauReco/interface/ChargedCandidateFeatures.h"
#include "DataFormats/BTauReco/interface/DeepFlavourFeatures.h"
#include "DataFormats/BTauReco/interface/DeepFlavourTagInfo.h"
#include "DataFormats/BTauReco/interface/DeepDoubleBFeatures.h"
#include "DataFormats/BTauReco/interface/DeepDoubleBTagInfo.h"


namespace reco {
typedef TrackTauImpactParameterAssociationCollection::map_type TrackTauImpactParameterAssociationMapType;
Expand Down Expand Up @@ -412,5 +416,16 @@ namespace DataFormats_BTauReco {
reco::DeepFlavourTagInfoRefProd deep_flavour_tag_info_collection_ref_prod;
reco::DeepFlavourTagInfoRefVector deep_flavour_tag_info_collection_ref_vector;
edm::Wrapper<reco::DeepFlavourTagInfoCollection> deep_flavour_tag_info_collection_edm_wrapper;

btagbtvdeep::BoostedDoubleSVTagInfoFeatures boosted_double_sv_tag_info_features;
btagbtvdeep::DeepDoubleBFeatures deep_doubleb_features;
reco::DeepDoubleBTagInfo deep_doubleb_tag_info;
reco::DeepDoubleBTagInfoCollection deep_doubleb_tag_info_collection;
reco::DeepDoubleBTagInfoRef deep_doubleb_tag_info_collection_ref;
reco::DeepDoubleBTagInfoFwdRef deep_doubleb_tag_info_collection_fwd_ref;
reco::DeepDoubleBTagInfoRefProd deep_doubleb_tag_info_collection_ref_prod;
reco::DeepDoubleBTagInfoRefVector deep_doubleb_tag_info_collection_ref_vector;
edm::Wrapper<reco::DeepDoubleBTagInfoCollection> deep_doubleb_tag_info_collection_edm_wrapper;

};
}
19 changes: 18 additions & 1 deletion DataFormats/BTauReco/src/classes_def.xml
Expand Up @@ -70,6 +70,7 @@
<class name="reco::BoostedDoubleSVTagInfoRefProd"/>
<class name="reco::BoostedDoubleSVTagInfoRefVector"/>
<class name="edm::Wrapper<reco::BoostedDoubleSVTagInfoCollection>"/>
<class name="edm::Wrapper<std::vector<reco::BoostedDoubleSVTagInfo> >"/>

<class name="reco::ShallowTagInfo" ClassVersion="3">
<version ClassVersion="3" checksum="3904302444"/>
Expand Down Expand Up @@ -439,12 +440,20 @@
<class name="btagbtvdeep::NeutralCandidateFeatures" ClassVersion="3">
<version ClassVersion="3" checksum="938442516"/>
</class>
<class name="btagbtvdeep::ChargedCandidateFeatures" ClassVersion="3">
<class name="btagbtvdeep::ChargedCandidateFeatures" ClassVersion="4">
<version ClassVersion="4" checksum="2173116472"/>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

old version should be kept in the list.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 63f21e4

<version ClassVersion="3" checksum="1302021141"/>
</class>
<class name="btagbtvdeep::DeepFlavourFeatures" ClassVersion="3">
<version ClassVersion="3" checksum="2487956635"/>
</class>
<class name="btagbtvdeep::DeepDoubleBFeatures" ClassVersion="3">
<version ClassVersion="3" checksum="2060552560"/>
</class>
<class name="btagbtvdeep::BoostedDoubleSVTagInfoFeatures" ClassVersion="3">
<version ClassVersion="3" checksum="683471882"/>
</class>


<class name="reco::DeepFlavourTagInfo"/>
<class name="reco::DeepFlavourTagInfoCollection"/>
Expand All @@ -454,4 +463,12 @@
<class name="reco::DeepFlavourTagInfoRefVector"/>
<class name="edm::Wrapper<reco::DeepFlavourTagInfoCollection>"/>

<class name="reco::DeepDoubleBTagInfo"/>
<class name="reco::DeepDoubleBTagInfoCollection"/>
<class name="reco::DeepDoubleBTagInfoRef"/>
<class name="reco::DeepDoubleBTagInfoFwdRef"/>
<class name="reco::DeepDoubleBTagInfoRefProd"/>
<class name="reco::DeepDoubleBTagInfoRefVector"/>
<class name="edm::Wrapper<reco::DeepDoubleBTagInfoCollection>"/>

</lcgdict>
4 changes: 4 additions & 0 deletions PhysicsTools/PatAlgos/python/recoLayer0/bTagging_cff.py
Expand Up @@ -41,6 +41,8 @@
# DeepFlavour tag infos
, 'pfDeepFlavourTagInfos'
, 'pfNegativeDeepFlavourTagInfos'
# DeepDoubleB tag infos
, 'pfDeepDoubleBTagInfos'
]
# extend for "internal use" in PAT/MINIAOD (renaming)
supportedBtagInfos.append( 'caTopTagInfosPAT' )
Expand Down Expand Up @@ -185,6 +187,8 @@
, 'pfNegativeDeepFlavourJetTags:probc' : [["pfNegativeDeepFlavourTagInfos"], ['pfDeepCSVNegativeTagInfos', "pfImpactParameterTagInfos", 'pfInclusiveSecondaryVertexFinderNegativeTagInfos']]
, 'pfNegativeDeepFlavourJetTags:probuds' : [["pfNegativeDeepFlavourTagInfos"], ['pfDeepCSVNegativeTagInfos', "pfImpactParameterTagInfos", 'pfInclusiveSecondaryVertexFinderNegativeTagInfos']]
, 'pfNegativeDeepFlavourJetTags:probg' : [["pfNegativeDeepFlavourTagInfos"], ['pfDeepCSVNegativeTagInfos', "pfImpactParameterTagInfos", 'pfInclusiveSecondaryVertexFinderNegativeTagInfos']]
, 'pfDeepDoubleBJetTags:probQ' : [["pfDeepDoubleBTagInfos"], ['pfBoostedDoubleSVAK8TagInfos', "pfImpactParameterAK8TagInfos", 'pfInclusiveSecondaryVertexFinderAK8TagInfos']]
, 'pfDeepDoubleBJetTags:probH' : [["pfDeepDoubleBTagInfos"], ['pfBoostedDoubleSVAK8TagInfos', "pfImpactParameterAK8TagInfos", 'pfInclusiveSecondaryVertexFinderAK8TagInfos']]
}

#meta-taggers are simple arithmetic on top of other taggers, they are stored here
Expand Down
Expand Up @@ -14,6 +14,8 @@
# drop content created by MINIAOD DeepFlavour production
'drop recoBaseTagInfosOwned_slimmedJets_*_*',
'keep *_slimmedJetsAK8_*_*',
# drop content created by MINIAOD DeepDoubleB production
'drop recoBaseTagInfosOwned_slimmedJetsAK8_*_*',
'keep *_slimmedJetsPuppi_*_*',
'keep *_slimmedMETs_*_*',
'keep *_slimmedMETsNoHF_*_*',
Expand Down
76 changes: 76 additions & 0 deletions PhysicsTools/PatAlgos/python/slimming/applyDeepBtagging_cff.py
@@ -0,0 +1,76 @@
import FWCore.ParameterSet.Config as cms

from PhysicsTools.PatAlgos.tools.helpers import getPatAlgosToolsTask, addToProcessAndTask

def applyDeepBtagging( process, postfix="" ) :

task = getPatAlgosToolsTask(process)

from PhysicsTools.PatAlgos.tools.jetTools import updateJetCollection

process.load('PhysicsTools.PatAlgos.slimming.slimmedJets_cfi')

# update slimmed jets to include DeepFlavour (keep same name)
# make clone for DeepFlavour-less slimmed jets, so output name is preserved
addToProcessAndTask('slimmedJetsNoDeepFlavour', process.slimmedJets.clone(), process, task)
updateJetCollection(
process,
jetSource = cms.InputTag('slimmedJetsNoDeepFlavour'),
# updateJetCollection defaults to MiniAOD inputs but
# here it is made explicit (as in training or MINIAOD redoing)
pvSource = cms.InputTag('offlineSlimmedPrimaryVertices'),
pfCandidates = cms.InputTag('packedPFCandidates'),
svSource = cms.InputTag('slimmedSecondaryVertices'),
muSource = cms.InputTag('slimmedMuons'),
elSource = cms.InputTag('slimmedElectrons'),
jetCorrections = ('AK4PFchs', cms.vstring(['L1FastJet', 'L2Relative', 'L3Absolute']), 'None'),
btagDiscriminators = [
'pfDeepFlavourJetTags:probb',
'pfDeepFlavourJetTags:probbb',
'pfDeepFlavourJetTags:problepb',
'pfDeepFlavourJetTags:probc',
'pfDeepFlavourJetTags:probuds',
'pfDeepFlavourJetTags:probg',
],
postfix = 'SlimmedDeepFlavour'+postfix,
printWarning = False
)

# slimmedJets with DeepFlavour (remove DeepFlavour-less)
delattr(process, 'slimmedJets')
addToProcessAndTask('slimmedJets', getattr(process,'selectedUpdatedPatJetsSlimmedDeepFlavour'+postfix).clone(), process, task)
# delete module not used anymore (slimmedJets substitutes)
delattr(process, 'selectedUpdatedPatJetsSlimmedDeepFlavour'+postfix)



# update slimmed jets to include DeepFlavour (keep same name)
# make clone for DeepDoubleB-less slimmed AK8 jets, so output name is preserved
addToProcessAndTask('slimmedJetsAK8NoDeepDoubleB', process.slimmedJetsAK8.clone(), process, task)
updateJetCollection(
process,
jetSource = cms.InputTag('slimmedJetsAK8NoDeepDoubleB'),
# updateJetCollection defaults to MiniAOD inputs but
# here it is made explicit (as in training or MINIAOD redoing)
pvSource = cms.InputTag('offlineSlimmedPrimaryVertices'),
pfCandidates = cms.InputTag('packedPFCandidates'),
svSource = cms.InputTag('slimmedSecondaryVertices'),
muSource = cms.InputTag('slimmedMuons'),
elSource = cms.InputTag('slimmedElectrons'),
rParam = 0.8,
jetCorrections = ('AK8PFPuppi', cms.vstring(['L1FastJet', 'L2Relative', 'L3Absolute']), 'None'),
btagDiscriminators = [
'pfDeepDoubleBJetTags:probQ',
'pfDeepDoubleBJetTags:probH',
],
postfix = 'SlimmedAK8DeepDoubleB'+postfix,
printWarning = False
)

# slimmedJetsAK8 with DeepDoubleB (remove DeepDoubleB-less)
delattr(process, 'slimmedJetsAK8')
addToProcessAndTask('slimmedJetsAK8', getattr(process,'selectedUpdatedPatJetsSlimmedAK8DeepDoubleB'+postfix).clone(), process, task)
# delete module not used anymore (slimmedJetsAK8 substitutes)
delattr(process, 'selectedUpdatedPatJetsSlimmedAK8DeepDoubleB'+postfix)


41 changes: 3 additions & 38 deletions PhysicsTools/PatAlgos/python/slimming/miniAOD_tools.py
Expand Up @@ -390,50 +390,15 @@ def miniAOD_customizeCommon(process):

process.selectedPatJetsPuppi.cut = cms.string("pt > 15")

process.load('PhysicsTools.PatAlgos.slimming.slimmedJets_cfi')

# update slimmed jets to include DeepFlavour (keep same name)
from PhysicsTools.PatAlgos.tools.jetTools import updateJetCollection
# make clone for DeepFlavour-less slimmed jets, so output name is preserved
process.slimmedJetsNoDeepFlavour = process.slimmedJets.clone()
task.add(process.slimmedJetsNoDeepFlavour)
updateJetCollection(
process,
jetSource = cms.InputTag('slimmedJetsNoDeepFlavour'),
# updateJetCollection defaults to MiniAOD inputs but
# here it is made explicit (as in training or MINIAOD redoing)
pvSource = cms.InputTag('offlineSlimmedPrimaryVertices'),
pfCandidates = cms.InputTag('packedPFCandidates'),
svSource = cms.InputTag('slimmedSecondaryVertices'),
muSource = cms.InputTag('slimmedMuons'),
elSource = cms.InputTag('slimmedElectrons'),
jetCorrections = ('AK4PFchs', cms.vstring(['L1FastJet', 'L2Relative', 'L3Absolute']), 'None'),
btagDiscriminators = [
'pfDeepFlavourJetTags:probb',
'pfDeepFlavourJetTags:probbb',
'pfDeepFlavourJetTags:problepb',
'pfDeepFlavourJetTags:probc',
'pfDeepFlavourJetTags:probuds',
'pfDeepFlavourJetTags:probg',
],
postfix = 'SlimmedDeepFlavour',
printWarning = False
)

# slimmedJets with DeepFlavour (remove DeepFlavour-less)
delattr(process, 'slimmedJets')
process.slimmedJets = process.selectedUpdatedPatJetsSlimmedDeepFlavour.clone()
# delete module not used anymore (slimmedJets substitutes)
delattr(process, 'selectedUpdatedPatJetsSlimmedDeepFlavour')

task.add(process.slimmedJets)
task.add(process.slimmedJetsAK8)
from PhysicsTools.PatAlgos.slimming.applyDeepBtagging_cff import applyDeepBtagging
applyDeepBtagging( process )

addToProcessAndTask('slimmedJetsPuppiNoMultiplicities', process.slimmedJetsNoDeepFlavour.clone(), process, task)
process.slimmedJetsPuppiNoMultiplicities.src = cms.InputTag("selectedPatJetsPuppi")
process.slimmedJetsPuppiNoMultiplicities.packedPFCandidates = cms.InputTag("packedPFCandidates")

from PhysicsTools.PatAlgos.patPuppiJetSpecificProducer_cfi import patPuppiJetSpecificProducer
from PhysicsTools.PatAlgos.tools.jetTools import updateJetCollection
process.patPuppiJetSpecificProducer = patPuppiJetSpecificProducer.clone(
src=cms.InputTag("slimmedJetsPuppiNoMultiplicities"),
)
Expand Down
10 changes: 10 additions & 0 deletions PhysicsTools/PatAlgos/python/tools/jetTools.py
Expand Up @@ -572,6 +572,16 @@ def setupBTagging(process, jetSource, pfCandidates, explicitJTA, pvSource, svSou
vertex_associator = vertex_associator,
),
process, task)

if btagInfo == 'pfDeepDoubleBTagInfos':
addToProcessAndTask(btagPrefix+btagInfo+labelName+postfix,
btag.pfDeepDoubleBTagInfos.clone(
jets = jetSource,
vertices=pvSource,
secondary_vertices=svSource,
shallow_tag_infos = cms.InputTag(btagPrefix+'pfBoostedDoubleSVAK8TagInfos'+labelName+postfix),
),
process, task)

acceptedTagInfos.append(btagInfo)
elif hasattr(toptag, btagInfo) :
Expand Down
2 changes: 1 addition & 1 deletion RecoBTag/Configuration/python/RecoBTag_cff.py
Expand Up @@ -7,7 +7,7 @@
from RecoBTag.Combined.combinedMVA_cff import *
from RecoBTag.CTagging.RecoCTagging_cff import *
from RecoBTag.Combined.deepFlavour_cff import *
from RecoBTag.DeepFlavour.pfDeepFlavour_cff import *
from RecoBTag.TensorFlow.pfDeepFlavour_cff import *
from RecoVertex.AdaptiveVertexFinder.inclusiveVertexing_cff import *

legacyBTaggingTask = cms.Task(
Expand Down