Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-05-09 22:40:13

0001 import FWCore.ParameterSet.Config as cms
0002 from PhysicsTools.BPHNano.common_cff import *
0003 
0004 ########################### B-> K ll ###########################
0005 
0006 BToKmumu = cms.EDProducer(
0007     'BToTrkLLBuilder',
0008     dileptons = cms.InputTag("MuMu:SelectedDiLeptons"),
0009     leptonTransientTracks = cms.InputTag('muonBPH', 'SelectedTransientMuons'),
0010     dileptonKinVtxs = cms.InputTag('MuMu:SelectedDiLeptonKinVtxs'),
0011     kaons = cms.InputTag('tracksBPH', 'SelectedTracks'),
0012     kaonsTransientTracks = cms.InputTag('tracksBPH', 'SelectedTransientTracks'),
0013     trackMass = cms.double(493.677),
0014     beamSpot = cms.InputTag("offlineBeamSpot"),
0015     PUtracks = cms.InputTag('tracksBPH', 'SelectedTracks'),
0016     preVtxSelection  = cms.string('pt > 5.0'
0017                                   '&& 4.5 < mass && mass < 6.'
0018                                   '&& userFloat("min_dr") > 0.03'),
0019     postVtxSelection = cms.string('4.7 < userFloat("fitted_mass") && userFloat("fitted_mass") < 6.' 
0020                                   '&& userFloat("sv_prob") > 0.001 && -0.045<userFloat("k_svip2d") && userFloat("k_svip2d")<0.045'
0021                                   '&& userFloat("fitted_cos_theta_2D") > 0.9'),
0022     dileptonMassContraint = cms.bool(True)
0023 )
0024 
0025 ########################### Tables ###########################
0026 
0027 BToKmumuTable = cms.EDProducer(
0028     'SimpleCompositeCandidateFlatTableProducer',
0029     src       = cms.InputTag("BToKmumu"),
0030     cut       = cms.string(""),
0031     name      = cms.string("BToKMuMu"),
0032     doc       = cms.string("BToKMuMu Variable"),
0033     singleton = cms.bool(False),
0034     extension = cms.bool(False),
0035     variables = cms.PSet(
0036         # pre-fit quantities
0037         CandVars,
0038         l1_idx = Var("userInt('l1_idx')", int, doc = "leading muon index to the BPH muon collection"),
0039         l2_idx = Var("userInt('l2_idx')", int, doc = "subleading muon index to the BPH muon collection"),
0040         k_idx  = Var("userInt('trk_idx')", int, doc = "track index to the BPH track collection"),
0041         minDR  = Var("userFloat('min_dr')", float, doc = "minimum DeltaR between the kaon and the two muons", precision=10),
0042         maxDR  = Var("userFloat('max_dr')", float, doc = "maximum DeltaR between the kaon and the two muons", precision=10),
0043         # fit and vtx info
0044         svprob   = Var("userFloat('sv_prob')", float, doc = "vertex probability of the B candidate", precision=10),
0045         l_xy     = Var("userFloat('l_xy')", float, doc = "post-fit vertex displacement on transverse plane wrt beamspot", precision=10),
0046         l_xy_unc = Var("userFloat('l_xy_unc')", float, doc = "post-fit vertex uncertainty of displacement on transverse plane wrt beamspot", precision=10),
0047 
0048         vtx_x   = Var("userFloat('vtx_x')", float, doc = "position x of fitted vertex", precision=10),
0049         vtx_y   = Var("userFloat('vtx_y')", float, doc = "position y of fitted vertex", precision=10),
0050         vtx_z   = Var("userFloat('vtx_z')", float, doc = "position z of fitted vertex", precision=10),
0051         vtx_cxx = Var("userFloat('vtx_cxx')", float, doc = "error x of fitted vertex", precision=10),
0052         vtx_cyy = Var("userFloat('vtx_cyy')", float, doc = "error y of fitted vertex", precision=10),
0053         vtx_czz = Var("userFloat('vtx_czz')", float, doc = "error z of fitted vertex", precision=10),
0054         vtx_cyx = Var("userFloat('vtx_cyx')", float, doc = "error yx of fitted vertex", precision=10),
0055         vtx_czx = Var("userFloat('vtx_czx')", float, doc = "error zx of fitted vertex", precision=10),
0056         vtx_czy = Var("userFloat('vtx_czy')", float, doc = "error zy of fitted vertex", precision=10),
0057         # Mll
0058         mll_fullfit = Var("userFloat('fitted_mll')", float, doc = "post-fit mass of the two muons", precision=10),
0059         # Cos(theta)
0060         cos2D     = Var("userFloat('cos_theta_2D')", float, doc = "cos 2D of pre-fit candidate wrt beamspot", precision=10),
0061         fit_cos2D = Var("userFloat('fitted_cos_theta_2D')", float, doc = "cos 2D of fitted vertex wrt beamspot", precision=10),
0062         # post-fit momentum
0063         fit_mass    = Var("userFloat('fitted_mass')", float, doc = "post-fit mass of the B candidate", precision=10),
0064         fit_massErr = Var("userFloat('fitted_massErr')", float, doc = "post-fit uncertainty of the mass of the B candidate", precision=10),
0065         fit_pt      = Var("userFloat('fitted_pt')", float, doc = "post-fit B pT", precision=10),
0066         fit_eta     = Var("userFloat('fitted_eta')", float, doc = "post-fit B eta", precision=10),
0067         fit_phi     = Var("userFloat('fitted_phi')", float, doc = "post-fit B phi", precision=10),
0068         fit_l1_pt   = Var("userFloat('fitted_l1_pt')", float, doc = "post-fit leading mu pT", precision=10),
0069         fit_l1_eta  = Var("userFloat('fitted_l1_eta')", float, doc = "post-fit leading mu eta", precision=10),
0070         fit_l1_phi  = Var("userFloat('fitted_l1_phi')", float, doc = "post-fit leading mu phi", precision=10),
0071         fit_l2_pt   = Var("userFloat('fitted_l2_pt')", float, doc = "post-fit subleading mu pT", precision=10),
0072         fit_l2_eta  = Var("userFloat('fitted_l2_eta')", float, doc = "post-fit subleading mu eta", precision=10),
0073         fit_l2_phi  = Var("userFloat('fitted_l2_phi')", float, doc = "post-fit subleading mu phi", precision=10),
0074         fit_k_pt    = Var("userFloat('fitted_trk_pt')", float, doc = "post-fit track pT", precision=10),
0075         fit_k_eta   = Var("userFloat('fitted_trk_eta')", float, doc = "post-fit track eta", precision=10),
0076         fit_k_phi   = Var("userFloat('fitted_trk_phi')", float, doc = "post-fit track phi", precision=10),
0077         k_svip2d    = Var("userFloat('k_svip2d')", float, doc = "2D IP of the track wrt the dimuon vertex", precision=10),
0078         k_svip2d_err = Var("userFloat('k_svip2d_err')", float, doc = "uncertainty of 2D IP of the track wrt the dimuon vertex", precision=10),
0079         l1_iso04    = Var("userFloat('l1_iso04')", float, doc = "leading mu isolation DR<0.4", precision=10),
0080         l2_iso04    = Var("userFloat('l2_iso04')", float, doc = "subleading mu isolation DR<0.4", precision=10),
0081         k_iso04     = Var("userFloat('trk_iso04')", float, doc = "track isolation DR<0.4", precision=10),
0082         constraint_sv_prob     = Var("userFloat('constraint_sv_prob')", float, doc = "B vertex probability after the dimuon mass constraint", precision=10),
0083         constraint_pt   = Var("userFloat('constraint_pt')", float, doc = "B pt after the dimuon mass constraint", precision=10),
0084         constraint_eta  = Var("userFloat('constraint_eta')", float, doc = "B eta after the dimuon mass constraint", precision=10),
0085         constraint_phi  = Var("userFloat('constraint_phi')", float, doc = "B phi after the dimuon mass constraint", precision=10),
0086         constraint_mass = Var("userFloat('constraint_mass')", float, doc = "B mass after the dimuon mass constraint", precision=10),
0087         constraint_massErr  = Var("userFloat('constraint_massErr')", float, doc = "mass uncertainty of the dimuon mass constraint", precision=10),
0088         constraint_mll  = Var("userFloat('constraint_mll')", float, doc = "dimuon mass after the dimuon mass constraint", precision=10),
0089     )
0090 )
0091 
0092 
0093 CountBToKmumu = cms.EDFilter("PATCandViewCountFilter",
0094     minNumber = cms.uint32(1),
0095     maxNumber = cms.uint32(999999),
0096     src       = cms.InputTag("BToKmumu")
0097 )    
0098 
0099 ########################### Sequencies  ############################
0100 BToKMuMuSequence = cms.Sequence(BToKmumu)
0101 BToKMuMuTables   = cms.Sequence(BToKmumuTable)