Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:24:33

0001 #include "FWCore/Framework/interface/ModuleFactory.h"
0002 #include "FWCore/Framework/interface/MakerMacros.h"
0003 
0004 #include "DataFormats/BTauReco/interface/TrackIPTagInfo.h"
0005 #include "DataFormats/BTauReco/interface/SecondaryVertexTagInfo.h"
0006 #include "DataFormats/BTauReco/interface/SoftLeptonTagInfo.h"
0007 
0008 #include "RecoBTau/JetTagComputer/interface/JetTagComputerESProducer.h"
0009 #include "RecoBTau/JetTagComputer/interface/GenericMVAJetTagComputerWrapper.h"
0010 
0011 #include "RecoBTag/SecondaryVertex/interface/CandidateBoostedDoubleSecondaryVertexComputer.h"
0012 #include "RecoBTag/SecondaryVertex/interface/CombinedSVComputer.h"
0013 #include "RecoBTag/SecondaryVertex/interface/CombinedSVSoftLeptonComputer.h"
0014 #include "RecoBTag/SecondaryVertex/interface/GhostTrackComputer.h"
0015 #include "RecoBTag/SecondaryVertex/interface/CandidateSimpleSecondaryVertexComputer.h"
0016 #include "RecoBTag/SecondaryVertex/interface/SimpleSecondaryVertexComputer.h"
0017 
0018 namespace {  // C++ template pointer want "external" linkage, so here we go
0019   extern const char ipTagInfos[] = "ipTagInfos";
0020   extern const char svTagInfos[] = "svTagInfos";
0021   extern const char muonTagInfos[] = "muonTagInfos";
0022   extern const char elecTagInfos[] = "elecTagInfos";
0023 }  // namespace
0024 
0025 typedef GenericMVAJetTagComputerWrapper<CombinedSVComputer,
0026                                         reco::TrackIPTagInfo,
0027                                         ipTagInfos,
0028                                         reco::SecondaryVertexTagInfo,
0029                                         svTagInfos>
0030     CombinedSVJetTagComputer;
0031 
0032 typedef GenericMVAJetTagComputerWrapper<CombinedSVComputer,
0033                                         reco::CandIPTagInfo,
0034                                         ipTagInfos,
0035                                         reco::CandSecondaryVertexTagInfo,
0036                                         svTagInfos>
0037     CandidateCombinedSVJetTagComputer;
0038 
0039 //this one is actually not fully non-candidate based anymore (no backward compatibility with old SL taginfos for the moment)
0040 typedef GenericMVAJetTagComputerWrapper<CombinedSVSoftLeptonComputer,
0041                                         reco::TrackIPTagInfo,
0042                                         ipTagInfos,
0043                                         reco::SecondaryVertexTagInfo,
0044                                         svTagInfos,
0045                                         reco::CandSoftLeptonTagInfo,
0046                                         muonTagInfos,
0047                                         reco::CandSoftLeptonTagInfo,
0048                                         elecTagInfos>
0049     CombinedSVSoftLeptonJetTagComputer;
0050 
0051 typedef GenericMVAJetTagComputerWrapper<CombinedSVSoftLeptonComputer,
0052                                         reco::CandIPTagInfo,
0053                                         ipTagInfos,
0054                                         reco::CandSecondaryVertexTagInfo,
0055                                         svTagInfos,
0056                                         reco::CandSoftLeptonTagInfo,
0057                                         muonTagInfos,
0058                                         reco::CandSoftLeptonTagInfo,
0059                                         elecTagInfos>
0060     CandidateCombinedSVSoftLeptonJetTagComputer;
0061 
0062 typedef GenericMVAJetTagComputerWrapper<GhostTrackComputer,
0063                                         reco::TrackIPTagInfo,
0064                                         ipTagInfos,
0065                                         reco::SecondaryVertexTagInfo,
0066                                         svTagInfos>
0067     GhostTrackJetTagComputer;
0068 
0069 typedef GenericMVAJetTagComputerWrapper<GhostTrackComputer,
0070                                         reco::CandIPTagInfo,
0071                                         ipTagInfos,
0072                                         reco::CandSecondaryVertexTagInfo,
0073                                         svTagInfos>
0074     CandidateGhostTrackJetTagComputer;
0075 
0076 typedef GenericMVAJetTagComputerWrapper<CombinedSVSoftLeptonComputer,
0077                                         reco::CandIPTagInfo,
0078                                         ipTagInfos,
0079                                         reco::CandSecondaryVertexTagInfo,
0080                                         svTagInfos,
0081                                         reco::CandSoftLeptonTagInfo,
0082                                         muonTagInfos,
0083                                         reco::CandSoftLeptonTagInfo,
0084                                         elecTagInfos>
0085     CandidateCombinedSVSoftLeptonJetTagComputer;
0086 
0087 typedef JetTagComputerESProducer<CandidateCombinedSVJetTagComputer> CandidateCombinedSecondaryVertexESProducer;
0088 DEFINE_FWK_EVENTSETUP_MODULE(CandidateCombinedSecondaryVertexESProducer);
0089 
0090 typedef JetTagComputerESProducer<CombinedSVJetTagComputer> CombinedSecondaryVertexESProducer;
0091 DEFINE_FWK_EVENTSETUP_MODULE(CombinedSecondaryVertexESProducer);
0092 
0093 typedef JetTagComputerESProducer<CandidateCombinedSVSoftLeptonJetTagComputer>
0094     CandidateCombinedSecondaryVertexSoftLeptonESProducer;
0095 DEFINE_FWK_EVENTSETUP_MODULE(CandidateCombinedSecondaryVertexSoftLeptonESProducer);
0096 
0097 typedef JetTagComputerESProducer<CombinedSVSoftLeptonJetTagComputer> CombinedSecondaryVertexSoftLeptonESProducer;
0098 DEFINE_FWK_EVENTSETUP_MODULE(CombinedSecondaryVertexSoftLeptonESProducer);
0099 
0100 typedef JetTagComputerESProducer<GhostTrackJetTagComputer> GhostTrackESProducer;
0101 DEFINE_FWK_EVENTSETUP_MODULE(GhostTrackESProducer);
0102 
0103 typedef JetTagComputerESProducer<CandidateGhostTrackJetTagComputer> CandidateGhostTrackESProducer;
0104 DEFINE_FWK_EVENTSETUP_MODULE(CandidateGhostTrackESProducer);
0105 
0106 typedef JetTagComputerESProducer<CandidateSimpleSecondaryVertexComputer> CandidateSimpleSecondaryVertexESProducer;
0107 DEFINE_FWK_EVENTSETUP_MODULE(CandidateSimpleSecondaryVertexESProducer);
0108 
0109 typedef JetTagComputerESProducer<SimpleSecondaryVertexComputer> SimpleSecondaryVertexESProducer;
0110 DEFINE_FWK_EVENTSETUP_MODULE(SimpleSecondaryVertexESProducer);
0111 
0112 typedef JetTagComputerESProducer<CandidateCombinedSVSoftLeptonJetTagComputer>
0113     CandidateCombinedSecondaryVertexSoftLeptonCvsLESProducer;
0114 DEFINE_FWK_EVENTSETUP_MODULE(CandidateCombinedSecondaryVertexSoftLeptonCvsLESProducer);
0115 
0116 typedef JetTagComputerESProducer<CandidateBoostedDoubleSecondaryVertexComputer>
0117     CandidateBoostedDoubleSecondaryVertexESProducer;
0118 DEFINE_FWK_EVENTSETUP_MODULE(CandidateBoostedDoubleSecondaryVertexESProducer);