File indexing completed on 2023-03-17 11:16:47
0001 import FWCore.ParameterSet.Config as cms
0002
0003
0004
0005
0006
0007
0008
0009
0010 MC_flag = False
0011
0012 GLOBAL_TAG = 'GR_R_39X_V4::All'
0013 OUTPUT_FILE_NAME = "Photon_tagProbeTree.root"
0014 HLTPath1 = "HLT_Photon50_Cleaned_L1R_v1"
0015 HLTPath2 = "HLT_Photon30_Cleaned_L1R_v1"
0016 HLTPath3 = "HLT_Photon20_Cleaned_L1R"
0017
0018 InputTagProcess = "HLT"
0019 RECOProcess = "RECO"
0020 JET_COLL = "ak5PFJets"
0021 JET_CUTS = "abs(eta)<2.6 && chargedHadronEnergyFraction>0 && electronEnergyFraction<0.1 && nConstituents>1 && neutralHadronEnergyFraction<0.99 && neutralEmEnergyFraction<0.99 && pt>15.0"
0022 ELECTRON_ET_CUT_MIN = 20.0
0023 ELECTRON_COLL = "gsfElectrons"
0024 ELECTRON_CUTS = "ecalDrivenSeed==1 && (abs(superCluster.eta)<2.5) && !(1.4442<abs(superCluster.eta)<1.566) && (ecalEnergy*sin(superClusterPosition.theta)>" + str(ELECTRON_ET_CUT_MIN) + ")"
0025
0026
0027
0028
0029
0030
0031
0032 process = cms.Process("TagProbe")
0033
0034 process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
0035 process.GlobalTag.globaltag = GLOBAL_TAG
0036 process.load('FWCore.MessageService.MessageLogger_cfi')
0037 process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi")
0038
0039
0040
0041 process.MessageLogger.cerr.FwkReport.reportEvery = 1000
0042
0043
0044
0045
0046
0047
0048
0049
0050 readFiles = cms.untracked.vstring()
0051
0052 process.source = cms.Source("PoolSource",
0053 fileNames = readFiles
0054 )
0055 readFiles.extend([
0056
0057 ])
0058
0059 process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) )
0060 process.source.inputCommands = cms.untracked.vstring("keep *","drop *_MEtoEDMConverter_*_*")
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074 process.probePhotons = cms.EDProducer("TrackMatchedPhotonProducer",
0075 srcObject = cms.InputTag("photons", "", RECOProcess),
0076 srcObjectsToMatch = cms.VInputTag(cms.InputTag("generalTracks")),
0077 srcObjectSelection = cms.string("et>20.0 && abs(eta)<2.5"),
0078 srcObjectsToMatchSelection = cms.string('pt > 20.0 && quality("highPurity")'),
0079 deltaRMax = cms.double(0.3)
0080 )
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091 process.photonIsolation = cms.EDFilter("PhotonRefSelector",
0092 src = cms.InputTag("probePhotons"),
0093 cut = cms.string(
0094 "(ecalRecHitSumEtConeDR04 < (0.006*pt + 4.2))"
0095 " && (hcalTowerSumEtConeDR04 < (0.0025*pt + 2.2 ))"
0096 )
0097 )
0098
0099
0100
0101
0102
0103
0104
0105
0106 process.photonIDsusydiphoton = process.photonIsolation.clone()
0107 process.photonIDsusydiphoton.cut = cms.string(
0108 "(hadronicOverEm < 0.05) && (trkSumPtHollowConeDR04 < (0.001*pt + 2.0)"
0109 " && (sigmaIetaIeta < 0.013))"
0110 )
0111
0112 process.photonIDiso = process.photonIsolation.clone()
0113 process.photonIDiso.cut = cms.string(
0114 "hadronicOverEm < 0.05 && ecalRecHitSumEtConeDR04 < 2.4"
0115 "&& hcalTowerSumEtConeDR04 < 1.0 && trkSumPtHollowConeDR04 < 0.9"
0116 " &&sigmaIetaIeta > 0.001"
0117 )
0118
0119 process.photonIDreliso = process.photonIsolation.clone()
0120 process.photonIDreliso.cut = cms.string(
0121 "hadronicOverEm < 0.05 && ecalRecHitSumEtConeDR04 < 4.2+0.001*pt"
0122 " && hcalTowerSumEtConeDR04 < 2.2+0.003*pt"
0123 " && trkSumPtHollowConeDR04 < 2+0.001*pt && sigmaIetaIeta > 0.001"
0124 )
0125
0126 process.photonIDreliso2 = process.photonIsolation.clone()
0127 process.photonIDreliso2.cut = cms.string(
0128 "hadronicOverEm < 0.05 && ecalRecHitSumEtConeDR04 < 4.2+0.001*pt"
0129 " && hcalTowerSumEtConeDR04 < 2.2+0.003*pt && sigmaIetaIeta > 0.001"
0130 )
0131
0132
0133
0134
0135
0136
0137
0138
0139
0140 process.probePhotonsPassingHLT = cms.EDProducer(
0141 "trgMatchedPhotonProducer",
0142 InputProducer = cms.InputTag("probePhotons"),
0143 hltTags = cms.VInputTag(
0144 cms.InputTag(HLTPath1,"",InputTagProcess),
0145 cms.InputTag(HLTPath2,"",InputTagProcess),
0146 cms.InputTag(HLTPath3,"",InputTagProcess),
0147 ),
0148 triggerEventTag = cms.untracked.InputTag("hltTriggerSummaryAOD","",InputTagProcess),
0149 triggerResultsTag = cms.untracked.InputTag("TriggerResults", "", InputTagProcess)
0150 )
0151
0152
0153
0154
0155
0156
0157
0158
0159
0160
0161
0162 process.cleanJets = cms.EDProducer("JetViewCleaner",
0163 srcObject = cms.InputTag(JET_COLL, "", "RECO"),
0164 srcObjectSelection = cms.string(JET_CUTS),
0165 srcObjectsToRemove = cms.VInputTag( cms.InputTag("photons", "", RECOProcess)),
0166 deltaRMin = cms.double(0.5)
0167 )
0168
0169
0170
0171 process.photonDRToNearestJet = cms.EDProducer("DeltaRNearestJetComputer",
0172 probes = cms.InputTag("probePhotons"),
0173
0174
0175 objects = cms.InputTag("cleanJets"),
0176 objectSelection = cms.string(JET_CUTS)
0177 )
0178
0179
0180
0181 process.JetMultiplicity = cms.EDProducer("CandMultiplicityCounter",
0182 probes = cms.InputTag("probePhotons"),
0183 objects = cms.InputTag("cleanJets"),
0184 objectSelection = cms.string(JET_CUTS),
0185 )
0186
0187
0188 process.ext_ToNearestJet_sequence = cms.Sequence(
0189 process.cleanJets +
0190 process.photonDRToNearestJet +
0191 process.JetMultiplicity
0192 )
0193
0194
0195
0196
0197
0198
0199
0200
0201
0202
0203 process.ElectronPassingWP80 = cms.EDFilter("GsfElectronRefSelector",
0204 src = cms.InputTag( ELECTRON_COLL ),
0205 cut = cms.string( ELECTRON_CUTS +
0206 " && (gsfTrack.hitPattern().numberOfLostHits(\'MISSING_INNER_HITS\') == 0 && !(-0.02<convDist<0.02 && -0.02<convDcot<0.02))"
0207 " && ((isEB"
0208 " && ( dr03TkSumPt/p4.Pt <0.09 && dr03EcalRecHitSumEt/p4.Pt < 0.07 && dr03HcalTowerSumEt/p4.Pt < 0.1 )"
0209 " && (sigmaIetaIeta<0.01)"
0210 " && ( -0.06<deltaPhiSuperClusterTrackAtVtx<0.06 )"
0211 " && ( -0.004<deltaEtaSuperClusterTrackAtVtx<0.004 )"
0212 " && (hadronicOverEm<0.04)"
0213 ")"
0214 " || (isEE"
0215 " && ( dr03TkSumPt/p4.Pt <0.04 && dr03EcalRecHitSumEt/p4.Pt < 0.05 && dr03HcalTowerSumEt/p4.Pt < 0.025 )"
0216 " && (sigmaIetaIeta<0.03)"
0217 " && ( -0.03<deltaPhiSuperClusterTrackAtVtx<0.03 )"
0218 " && ( -0.007<deltaEtaSuperClusterTrackAtVtx<0.007 )"
0219 " && (hadronicOverEm<0.025) "
0220 "))"
0221 )
0222 )
0223
0224 process.Tag = process.ElectronPassingWP80.clone()
0225 process.photon_sequence = cms.Sequence(
0226 process.probePhotons +
0227 process.photonIsolation +
0228 process.photonIDsusydiphoton +
0229 process.photonIDiso +
0230 process.photonIDreliso +
0231 process.photonIDreliso2 +
0232 process.probePhotonsPassingHLT +
0233 process.ElectronPassingWP80 +
0234 process.Tag
0235 )
0236
0237
0238
0239
0240
0241
0242
0243
0244
0245
0246 process.tagPhoton = cms.EDProducer("CandViewShallowCloneCombiner",
0247 decay = cms.string("Tag probePhotons"),
0248 checkCharge = cms.bool(False),
0249 cut = cms.string("60 < mass < 120")
0250 )
0251 process.tagphotonIDsusydiphoton = process.tagPhoton.clone()
0252 process.tagphotonIDsusydiphoton.decay = cms.string("Tag photonIDsusydiphoton")
0253 process.tagphotonIDiso = process.tagPhoton.clone()
0254 process.tagphotonIDiso.decay = cms.string("Tag photonIDiso")
0255 process.tagphotonIDreliso = process.tagPhoton.clone()
0256 process.tagphotonIDreliso.decay = cms.string("Tag photonIDreliso")
0257 process.tagphotonIDreliso2 = process.tagPhoton.clone()
0258 process.tagphotonIDreliso2.decay = cms.string("Tag photonIDreliso2")
0259
0260 process.allTagsAndProbes = cms.Sequence(
0261 process.tagPhoton +
0262 process.tagphotonIDsusydiphoton +
0263 process.tagphotonIDiso +
0264 process.tagphotonIDreliso +
0265 process.tagphotonIDreliso2
0266 )
0267
0268
0269
0270
0271
0272
0273
0274
0275
0276 process.McMatchTag = cms.EDFilter("MCTruthDeltaRMatcherNew",
0277 matchPDGId = cms.vint32(11),
0278 src = cms.InputTag("Tag"),
0279 distMin = cms.double(0.3),
0280 matched = cms.InputTag("genParticles"),
0281 checkCharge = cms.bool(True)
0282 )
0283 process.McMatchPhoton = process.McMatchTag.clone()
0284 process.McMatchPhoton.src = cms.InputTag("probePhotons")
0285 process.McMatchId_susy_diphoton = process.McMatchTag.clone()
0286 process.McMatchId_susy_diphoton.src = cms.InputTag("photonIDsusydiphoton")
0287 process.McMatchId_iso = process.McMatchTag.clone()
0288 process.McMatchId_iso.src = cms.InputTag("photonIDiso")
0289 process.McMatchId_rel_iso = process.McMatchTag.clone()
0290 process.McMatchId_rel_iso.src = cms.InputTag("photonIDreliso")
0291 process.McMatchId_rel_iso_2 = process.McMatchTag.clone()
0292 process.McMatchId_rel_iso_2.src = cms.InputTag("photonIDreliso2")
0293 process.McMatchHLT = process.McMatchTag.clone()
0294 process.McMatchHLT.src = cms.InputTag("probePhotonsPassingHLT")
0295
0296 process.mc_sequence = cms.Sequence(
0297 process.McMatchTag +
0298 process.McMatchPhoton +
0299 process.McMatchId_susy_diphoton +
0300 process.McMatchId_iso +
0301 process.McMatchId_rel_iso +
0302 process.McMatchId_rel_iso_2 +
0303 process.McMatchHLT
0304 )
0305
0306
0307
0308
0309
0310
0311
0312
0313
0314
0315
0316
0317
0318
0319
0320
0321
0322
0323
0324
0325 ZVariablesToStore = cms.PSet(
0326 eta = cms.string("eta"),
0327 pt = cms.string("pt"),
0328 phi = cms.string("phi"),
0329 et = cms.string("et"),
0330 e = cms.string("energy"),
0331 p = cms.string("p"),
0332 px = cms.string("px"),
0333 py = cms.string("py"),
0334 pz = cms.string("pz"),
0335 theta = cms.string("theta"),
0336 vx = cms.string("vx"),
0337 vy = cms.string("vy"),
0338 vz = cms.string("vz"),
0339 rapidity = cms.string("rapidity"),
0340 mass = cms.string("mass"),
0341 mt = cms.string("mt"),
0342 )
0343
0344
0345 TagPhotonVariablesToStore = cms.PSet(
0346 eta = cms.string("eta"),
0347 pt = cms.string("pt"),
0348 phi = cms.string("phi"),
0349 px = cms.string("px"),
0350 py = cms.string("py"),
0351 pz = cms.string("pz"),
0352
0353 sc_energy = cms.string("superCluster.energy"),
0354 sc_et = cms.string("superCluster.energy*sin(superCluster.position.theta)"),
0355 sc_eta = cms.string("superCluster.eta"),
0356 sc_phi = cms.string("superCluster.phi"),
0357 )
0358
0359
0360 ProbePhotonVariablesToStore = cms.PSet(
0361 probe_eta = cms.string("eta"),
0362 probe_phi = cms.string("phi"),
0363 probe_et = cms.string("et"),
0364 probe_px = cms.string("px"),
0365 probe_py = cms.string("py"),
0366 probe_pz = cms.string("pz"),
0367
0368 probe_trkSumPtHollowConeDR03 = cms.string("trkSumPtHollowConeDR03"),
0369 probe_ecalRecHitSumEtConeDR03 = cms.string("ecalRecHitSumEtConeDR03"),
0370 probe_hcalTowerSumEtConeDR03 = cms.string("hcalTowerSumEtConeDR03"),
0371 probe_trkSumPtHollowConeDR04 = cms.string("trkSumPtHollowConeDR04"),
0372 probe_ecalRecHitSumEtConeDR04 = cms.string("ecalRecHitSumEtConeDR04"),
0373 probe_hcalTowerSumEtConeDR04 = cms.string("hcalTowerSumEtConeDR04"),
0374
0375 probe_isPhoton = cms.string("isPhoton"),
0376
0377
0378 probe_hadronicOverEm = cms.string("hadronicOverEm"),
0379
0380 probe_sigmaIetaIeta = cms.string("sigmaIetaIeta"),
0381
0382 probe_hasPixelSeed = cms.string("hasPixelSeed")
0383 )
0384
0385
0386 CommonStuffForPhotonProbe = cms.PSet(
0387 variables = cms.PSet(ProbePhotonVariablesToStore),
0388
0389 addRunLumiInfo = cms.bool (True),
0390 addEventVariablesInfo = cms.bool (True),
0391 pairVariables = cms.PSet(ZVariablesToStore),
0392 pairFlags = cms.PSet(
0393 mass60to120 = cms.string("60 < mass < 120")
0394 ),
0395 tagVariables = cms.PSet(TagPhotonVariablesToStore),
0396 tagFlags = cms.PSet(
0397 flag = cms.string("pt>0")
0398 ),
0399 )
0400
0401
0402
0403 if MC_flag:
0404 mcTruthCommonStuff = cms.PSet(
0405 isMC = cms.bool(MC_flag),
0406 tagMatches = cms.InputTag("McMatchTag"),
0407 motherPdgId = cms.vint32(22,23),
0408 makeMCUnbiasTree = cms.bool(MC_flag),
0409 checkMotherInUnbiasEff = cms.bool(MC_flag),
0410 mcVariables = cms.PSet(
0411 probe_eta = cms.string("eta"),
0412 probe_pt = cms.string("pt"),
0413 probe_phi = cms.string("phi"),
0414 probe_et = cms.string("et"),
0415 probe_e = cms.string("energy"),
0416 probe_p = cms.string("p"),
0417 probe_px = cms.string("px"),
0418 probe_py = cms.string("py"),
0419 probe_pz = cms.string("pz"),
0420 probe_theta = cms.string("theta"),
0421 probe_vx = cms.string("vx"),
0422 probe_vy = cms.string("vy"),
0423 probe_vz = cms.string("vz"),
0424 probe_charge = cms.string("charge"),
0425 probe_rapidity = cms.string("rapidity"),
0426 probe_mass = cms.string("mass"),
0427 probe_mt = cms.string("mt"),
0428 ),
0429 mcFlags = cms.PSet(
0430 probe_flag = cms.string("pt>0")
0431 ),
0432 )
0433 else:
0434 mcTruthCommonStuff = cms.PSet(
0435 isMC = cms.bool(False)
0436 )
0437
0438
0439
0440
0441
0442
0443
0444
0445
0446
0447 process.PhotonToIsoId = cms.EDAnalyzer("TagProbeFitTreeProducer",
0448
0449 mcTruthCommonStuff,
0450 CommonStuffForPhotonProbe,
0451
0452 tagProbePairs = cms.InputTag("tagPhoton"),
0453 arbitration = cms.string("None"),
0454 flags = cms.PSet(
0455 probe_passingIso = cms.InputTag("photonIsolation"),
0456 probe_passingHLT = cms.InputTag("probePhotonsPassingHLT"),
0457 probe_passingId_susy_diphoton = cms.InputTag("photonIDsusydiphoton"),
0458 probe_passingId_iso = cms.InputTag("photonIDiso"),
0459 probe_passingId_rel_iso = cms.InputTag("photonIDreliso"),
0460 probe_passingId_rel_iso_2 = cms.InputTag("photonIDreliso2"),
0461 ),
0462 probeMatches = cms.InputTag("McMatchPhoton"),
0463 allProbes = cms.InputTag("probePhotons")
0464 )
0465 process.PhotonToIsoId.variables.probe_dRjet = cms.InputTag("photonDRToNearestJet")
0466 process.PhotonToIsoId.variables.probe_nJets = cms.InputTag("JetMultiplicity")
0467
0468
0469
0470
0471
0472
0473
0474
0475
0476
0477 if MC_flag:
0478 HLTmcTruthCommonStuff = cms.PSet(
0479 isMC = cms.bool(MC_flag),
0480 tagMatches = cms.InputTag("McMatchTag"),
0481 motherPdgId = cms.vint32(22,23),
0482 makeMCUnbiasTree = cms.bool(MC_flag),
0483 checkMotherInUnbiasEff = cms.bool(MC_flag),
0484 mcVariables = cms.PSet(
0485 probe_eta = cms.string("eta"),
0486 probe_phi = cms.string("phi"),
0487 probe_et = cms.string("et"),
0488 probe_charge = cms.string("charge"),
0489 ),
0490 mcFlags = cms.PSet(
0491 probe_flag = cms.string("pt>0")
0492 ),
0493 )
0494 else:
0495 HLTmcTruthCommonStuff = cms.PSet(
0496 isMC = cms.bool(False)
0497 )
0498
0499
0500 process.photonIDsusydiphotonToHLT = cms.EDAnalyzer("TagProbeFitTreeProducer",
0501 HLTmcTruthCommonStuff,
0502 variables = cms.PSet(
0503 probe_eta = cms.string("eta"),
0504 probe_phi = cms.string("phi"),
0505 probe_et = cms.string("et"),
0506 ),
0507 addRunLumiInfo = cms.bool (False),
0508 addEventVariablesInfo = cms.bool (False),
0509 tagProbePairs = cms.InputTag("tagphotonIDsusydiphoton"),
0510 arbitration = cms.string("None"),
0511 flags = cms.PSet(
0512 probe_passingHLT = cms.InputTag("probePhotonsPassingHLT")
0513 ),
0514 probeMatches = cms.InputTag("McMatchId_susy_diphoton"),
0515 allProbes = cms.InputTag("photonIDsusydiphoton")
0516 )
0517
0518 process.photonIDisoToHLT = process.photonIDsusydiphotonToHLT.clone()
0519 process.photonIDisoToHLT.tagProbePairs = cms.InputTag("tagphotonIDiso")
0520 process.photonIDisoToHLT.probeMatches = cms.InputTag("McMatchId_iso")
0521 process.photonIDisoToHLT.allProbes = cms.InputTag("photonIDiso")
0522
0523 process.photonIDrelisoToHLT = process.photonIDsusydiphotonToHLT.clone()
0524 process.photonIDrelisoToHLT.tagProbePairs = cms.InputTag("tagphotonIDreliso")
0525 process.photonIDrelisoToHLT.probeMatches = cms.InputTag("McMatchId_rel_iso")
0526 process.photonIDrelisoToHLT.allProbes = cms.InputTag("photonIDreliso")
0527
0528 process.photonIDreliso2ToHLT = process.photonIDsusydiphotonToHLT.clone()
0529 process.photonIDreliso2ToHLT.tagProbePairs = cms.InputTag("tagphotonIDreliso2")
0530 process.photonIDreliso2ToHLT.probeMatches = cms.InputTag("McMatchId_rel_iso_2")
0531 process.photonIDreliso2ToHLT.allProbes = cms.InputTag("photonIDreliso2")
0532
0533
0534
0535 process.tree_sequence = cms.Sequence(
0536 process.PhotonToIsoId +
0537 process.photonIDsusydiphotonToHLT +
0538 process.photonIDisoToHLT +
0539 process.photonIDrelisoToHLT +
0540 process.photonIDreliso2ToHLT
0541 )
0542
0543
0544
0545
0546
0547
0548
0549
0550 if MC_flag:
0551 process.tagAndProbe = cms.Path(
0552 process.photon_sequence +
0553 process.ext_ToNearestJet_sequence +
0554 process.allTagsAndProbes +
0555 process.mc_sequence +
0556 process.tree_sequence
0557 )
0558 else:
0559 process.tagAndProbe = cms.Path(
0560 process.photon_sequence +
0561 process.ext_ToNearestJet_sequence +
0562 process.allTagsAndProbes +
0563 process.tree_sequence
0564 )
0565
0566 process.TFileService = cms.Service("TFileService",
0567 fileName = cms.string(OUTPUT_FILE_NAME)
0568 )