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 BToKshortMuMu = cms.EDProducer(
0007     'BToV0LLBuilder',
0008     dileptons = cms.InputTag("MuMu:SelectedDiLeptons"),
0009     leptonTransientTracks = cms.InputTag('muonBPH', 'SelectedTransientMuons'),
0010     v0s = cms.InputTag('KshortToPiPi','SelectedV0Collection'),
0011     v0TransientTracks = cms.InputTag('KshortToPiPi', 'SelectedV0TransientCollection'),
0012     tracks = cms.InputTag("packedPFCandidates"),
0013     PUtracks = cms.InputTag('tracksBPH', 'SelectedTracks'),
0014     beamSpot = cms.InputTag("offlineBeamSpot"),
0015     preVtxSelection  = cms.string('pt > 5.0 '
0016                                   '&& 4.5 < mass && mass < 6. '
0017                                   '&& userFloat("min_dr") > 0.03'),
0018     postVtxSelection = cms.string('4.7 < userFloat("fitted_mass") && userFloat("fitted_mass") < 6. '
0019                                   '&& userFloat("sv_prob") > 0.001 && -0.045<userFloat("v0_svip2d") && userFloat("v0_svip2d")<0.045'),
0020     dileptonMassContraint = cms.bool(True)
0021 )
0022 
0023 LambdabToLambdaMuMu = cms.EDProducer(
0024     'BToV0LLBuilder',
0025     dileptons = cms.InputTag("MuMu:SelectedDiLeptons"),
0026     leptonTransientTracks = cms.InputTag('muonBPH', 'SelectedTransientMuons'),
0027     v0s = cms.InputTag('LambdaToProtonPi','SelectedV0Collection'),
0028     v0TransientTracks = cms.InputTag('LambdaToProtonPi', 'SelectedV0TransientCollection'),
0029     tracks = cms.InputTag("packedPFCandidates"),
0030     PUtracks = cms.InputTag('tracksBPH', 'SelectedTracks'),
0031     beamSpot = cms.InputTag("offlineBeamSpot"),
0032     preVtxSelection  = cms.string('pt > 5.0 '
0033                                   '&& 4.5 < mass && mass < 6.5 '
0034                                   '&& userFloat("min_dr") > 0.03'),
0035     postVtxSelection = cms.string('4.9 < userFloat("fitted_mass") && userFloat("fitted_mass") < 6.3 '
0036                                   '&& userFloat("sv_prob") > 0.001 && -0.045<userFloat("v0_svip2d") && userFloat("v0_svip2d")<0.045'
0037                                   '&& userFloat("fitted_cos_theta_2D") > 0.9'),
0038     dileptonMassContraint = cms.bool(True)
0039 )
0040 
0041 
0042 ########################### Tables ###########################
0043 
0044 BToKshortMuMuTable = cms.EDProducer(
0045     'SimpleCompositeCandidateFlatTableProducer',
0046     src       = cms.InputTag("BToKshortMuMu"),
0047     cut       = cms.string(""),
0048     name      = cms.string("BToKshortMuMu"),
0049     doc       = cms.string("BToKshortMuMu Variables"),
0050     singleton = cms.bool(False),
0051     extension = cms.bool(False),
0052     variables = cms.PSet(
0053         # pre-fit quantities
0054         CandVars,
0055         l1_idx      = Var("userInt('l1_idx')", int, doc = "leading muon index to the BPH muon collection"),
0056         l2_idx      = Var("userInt('l2_idx')", int, doc = "subleading muon index to the BPH muon collection"),
0057         V0_idx  = Var("userInt('v0_idx')", int, doc = "V0 index to the V0 collection"),
0058         min_dr      = Var("userFloat('min_dr')", float, doc = "minimum DeltaR between the V0 and the two muons", precision=10),
0059         max_dr      = Var("userFloat('max_dr')", float, doc = "maximum DeltaR between the V0 and the two muons", precision=10),
0060         # fit and vtx info
0061         chi2      = Var("userFloat('sv_chi2')", float, doc = "vertex chi^2 of the B candidate", precision=10),
0062         svprob    = Var("userFloat('sv_prob')", float, doc = "vertex probability of the B candidate", precision=10),
0063         l_xy      = Var("userFloat('l_xy')", float, doc = "post-fit vertex displacement on transverse plane wrt beamspot", precision=10),
0064         l_xy_unc  = Var("userFloat('l_xy_unc')", float, doc = "post-fit uncertainty of the vertex displacement on transverse plane wrt beamspot", precision=10),
0065         cos2D     = Var("userFloat('cos_theta_2D')", float, doc = "cos 2D of pre-fit candidate wrt beamspot", precision=10),
0066         fit_cos2D = Var("userFloat('fitted_cos_theta_2D')", float, doc = "cos 2D of fitted vertex wrt beamspot", precision=10),
0067         vtx_x     = Var("userFloat('vtx_x')", float, doc = "position x of fitted vertex", precision=10),
0068         vtx_y     = Var("userFloat('vtx_y')", float, doc = "position y of fitted vertex", precision=10),
0069         vtx_z     = Var("userFloat('vtx_z')", float, doc = "position z of fitted vertex", precision=10),
0070         vtx_cxx   = Var("userFloat('vtx_cxx')", float, doc = "error x of fitted vertex", precision=10),
0071         vtx_cyy   = Var("userFloat('vtx_cyy')", float, doc = "error y of fitted vertex", precision=10),
0072         vtx_czz   = Var("userFloat('vtx_czz')", float, doc = "error z of fitted vertex", precision=10),
0073         vtx_cyx   = Var("userFloat('vtx_cyx')", float, doc = "error yx of fitted vertex", precision=10),
0074         vtx_czx   = Var("userFloat('vtx_czx')", float, doc = "error zx of fitted vertex", precision=10),
0075         vtx_czy   = Var("userFloat('vtx_czy')", float, doc = "error zy of fitted vertex", precision=10),
0076         # post fit properties
0077         mll_fullfit     = Var("userFloat('fitted_mll')", float, doc = "post-fit mass of the two muons", precision=10),
0078         mV0_fullfit = Var("userFloat('fitted_v0_mass')", float, doc = "mass of the V0 candidate", precision=10),
0079         fit_mass        = Var("userFloat('fitted_mass')", float, doc = "post-fit mass of the B candidate", precision=10),
0080         fit_massErr     = Var("userFloat('fitted_massErr')", float, doc = "post-fit uncertainty of the mass of the B candidate", precision=10),
0081         fit_pt          = Var("userFloat('fitted_pt')", float, doc = "post-fit B pT", precision=10),
0082         fit_eta         = Var("userFloat('fitted_eta')", float, doc = "post-fit B eta", precision=10),
0083         fit_phi         = Var("userFloat('fitted_phi')", float, doc = "post-fit B phi", precision=10),
0084         # post-fit tracks/leptons
0085         #l1
0086         fit_l1_pt  = Var("userFloat('fitted_l1_pt')", float, doc = "post-fit leading mu pT", precision=10),
0087         fit_l1_eta = Var("userFloat('fitted_l1_eta')", float, doc = "post-fit leading mu eta", precision=10),
0088         fit_l1_phi = Var("userFloat('fitted_l1_phi')", float, doc = "post-fit leading mu phi", precision=10),
0089         #l2
0090         fit_l2_pt  = Var("userFloat('fitted_l2_pt')", float, doc = "post-fit subleading mu pT", precision=10),
0091         fit_l2_eta = Var("userFloat('fitted_l2_eta')", float, doc = "post-fit subleading mu eta", precision=10),
0092         fit_l2_phi = Var("userFloat('fitted_l2_phi')", float, doc = "post-fit subleading mu phi", precision=10),
0093         #V0
0094         fit_V0_pt  = Var("userFloat('fitted_v0_pt')", float, doc = "post-fit V0 pT", precision=10),
0095         fit_V0_eta = Var("userFloat('fitted_v0_eta')", float, doc = "post-fit V0 pT", precision=10),
0096         fit_V0_phi = Var("userFloat('fitted_v0_phi')", float, doc = "post-fit V0 pT", precision=10),
0097         # isolation and ipd2d
0098         V0_svip2d     = Var("userFloat('v0_svip2d')", float, doc = "2D IP of the V0 wrt the dimuon vertex", precision=10),
0099         V0_svip2d_err = Var("userFloat('v0_svip2d_err')", float, doc = "uncertainty of 2D IP of the V0 wrt the dimuon vertex", precision=10),
0100         l1_iso04          = Var("userFloat('l1_iso04')", float, doc = "leading muon isolation DR<0.4", precision=10),
0101         l2_iso04          = Var("userFloat('l2_iso04')", float, doc = "suleading muon isolation DR<0.4", precision=10),
0102         V0_iso04      = Var("userFloat('v0_iso04')", float, doc = "V0 isolation DR<0.4", precision=10),
0103         # constraint properties
0104         constraint_pt       = ufloat('cstr_pt', 10),
0105         constraint_eta      = ufloat('cstr_eta', 10),
0106         constraint_phi      = ufloat('cstr_phi', 10),
0107         constraint_sv_prob  = ufloat('cstr_sv_prob', 10),
0108         constraint_mass     = ufloat('cstr_mass', 10),
0109         constraint_massErr  = ufloat('cstr_massErr', 10),
0110         constraint_vtx_x    = ufloat('cstr_vtx_x', 10),
0111         constraint_vtx_y    = ufloat('cstr_vtx_y', 10),
0112         constraint_vtx_z    = ufloat('cstr_vtx_z', 10),
0113         constraint_vtx_cxx  = ufloat('cstr_vtx_cxx', 10),
0114         constraint_vtx_cyy  = ufloat('cstr_vtx_cyy', 10),
0115         constraint_vtx_czz  = ufloat('cstr_vtx_czz', 10),
0116         constraint_vtx_cyx  = ufloat('cstr_vtx_cyx', 10),
0117         constraint_vtx_czx  = ufloat('cstr_vtx_czx', 10),
0118         constraint_vtx_czy  = ufloat('cstr_vtx_czy', 10),
0119         constraint_l1_pt      = ufloat('cstr_fitted_l1_pt', 10),
0120         constraint_l1_eta     = ufloat('cstr_fitted_l1_eta', 10),
0121         constraint_l1_phi     = ufloat('cstr_fitted_l1_phi', 10),
0122         constraint_l2_pt      = ufloat('cstr_fitted_l2_pt', 10),
0123         constraint_l2_eta     = ufloat('cstr_fitted_l2_eta', 10),
0124         constraint_l2_phi     = ufloat('cstr_fitted_l2_phi', 10),
0125         constraint_v0_pt  = ufloat('cstr_fitted_v0_pt', 10),
0126         constraint_v0_eta = ufloat('cstr_fitted_v0_eta', 10),
0127         constraint_v0_phi = ufloat('cstr_fitted_v0_phi', 10),
0128         mv0_cstrfit = ufloat('cstr_v0_mass', 10),
0129         constraint_cos2D = ufloat('cstr_cos_theta_2D', 10)
0130     )
0131 )
0132 
0133 LambdabToLambdaMuMuTable = BToKshortMuMuTable.clone(
0134     src = cms.InputTag("LambdabToLambdaMuMu"),
0135     name = cms.string("LambdabToLambdaMuMu"),
0136     doc = cms.string("LambdabToLambdaMuMu Variable")
0137 )
0138 
0139 CountBToKshortMuMu = cms.EDFilter("PATCandViewCountFilter",
0140     minNumber = cms.uint32(1),
0141     maxNumber = cms.uint32(999999),
0142     src       = cms.InputTag("BToKshortMuMu")
0143 )
0144 
0145 CountLambdabToLambdaMuMu = cms.EDFilter("PATCandViewCountFilter",
0146     minNumber = cms.uint32(1),
0147     maxNumber = cms.uint32(999999),
0148     src       = cms.InputTag("LambdabToLambdaMuMu")
0149 )
0150 
0151 
0152 
0153 ########################### Sequencies  ############################
0154 BToKshortMuMuSequence = cms.Sequence( BToKshortMuMu )
0155 BToKshortMuMuTables   = cms.Sequence( BToKshortMuMuTable )
0156 
0157 LambdabToLambdaMuMuSequence = cms.Sequence( LambdabToLambdaMuMu )
0158 LambdabToLambdaMuMuTables  = cms.Sequence(LambdabToLambdaMuMuTable )
0159 
0160 
0161