File indexing completed on 2024-04-06 12:24:15
0001 import FWCore.ParameterSet.Config as cms
0002
0003 process = cms.Process("TagProbe")
0004 process.source = cms.Source("EmptySource")
0005 process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(1) )
0006
0007 process.load("FWCore.MessageService.MessageLogger_cfi")
0008 process.MessageLogger.cerr.FwkReport.reportEvery = 1000
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 isMC = True
0021 InputFileName = "testNewWrite.root"
0022 OutputFilePrefix = "efficiency-data-"
0023
0024
0025
0026
0027 HLTDef = "probe_passingHLT"
0028 PDFName = "pdfSignalPlusBackground"
0029
0030 if isMC:
0031 PDFName = ""
0032 OutputFilePrefix = "efficiency-mc-"
0033
0034
0035
0036 EfficiencyBins = cms.PSet(
0037 probe_sc_et = cms.vdouble( 25, 30, 35, 40, 45, 50, 200 ),
0038 probe_sc_eta = cms.vdouble( -2.5, -2.0, -1.5, -1.0, -0.5, 0.0, 0.5, 1.0, 1.5, 2.0, 2.5 )
0039 )
0040
0041 EfficiencyBinsSC = cms.PSet(
0042 probe_et = cms.vdouble( 25, 30, 35, 40, 45, 50, 200 ),
0043 probe_eta = cms.vdouble( -2.5, -2.0, -1.5, -1.0, -0.5, 0.0, 0.5, 1.0, 1.5, 2.0, 2.5 )
0044 )
0045
0046
0047 EfficiencyBinningSpecification = cms.PSet(
0048
0049 UnbinnedVariables = cms.vstring("mass"),
0050
0051 BinnedVariables = cms.PSet(EfficiencyBins),
0052
0053 BinToPDFmap = cms.vstring(PDFName)
0054 )
0055
0056
0057
0058 EfficiencyBinningSpecificationSC = cms.PSet(
0059 UnbinnedVariables = cms.vstring("mass"),
0060 BinnedVariables = cms.PSet(EfficiencyBinsSC),
0061 BinToPDFmap = cms.vstring(PDFName)
0062 )
0063 EfficiencyBinningSpecificationSCMC = cms.PSet(
0064 UnbinnedVariables = cms.vstring("mass"),
0065 BinnedVariables = cms.PSet(EfficiencyBinsSC,mcTrue = cms.vstring("true")),
0066 BinToPDFmap = cms.vstring()
0067 )
0068
0069
0070
0071 EfficiencyBinningSpecificationMC = cms.PSet(
0072 UnbinnedVariables = cms.vstring("mass"),
0073 BinnedVariables = cms.PSet(
0074 probe_et = cms.vdouble( 25, 30, 35, 40, 45, 50, 200 ),
0075 probe_eta = cms.vdouble( -2.5, -2.0, -1.5, -1.0, -0.5, 0.0, 0.5, 1.0, 1.5, 2.0, 2.5 ),
0076 mcTrue = cms.vstring("true")
0077 ),
0078 BinToPDFmap = cms.vstring()
0079 )
0080
0081
0082 EfficiencyBinningSpecificationHLT = cms.PSet(
0083 UnbinnedVariables = cms.vstring("mass"),
0084 BinnedVariables = cms.PSet(EfficiencyBins),
0085 BinToPDFmap = cms.vstring()
0086 )
0087
0088
0089
0090 if isMC:
0091 mcTruthModules = cms.PSet(
0092
0093
0094
0095
0096 MCtruth_WP90 = cms.PSet(
0097 EfficiencyBinningSpecificationMC,
0098 EfficiencyCategoryAndState = cms.vstring("probe_passConvRej","pass","probe_isWP90","pass"),
0099 ),
0100 MCtruth_WP85 = cms.PSet(
0101 EfficiencyBinningSpecificationMC,
0102 EfficiencyCategoryAndState = cms.vstring("probe_passConvRej","pass","probe_isWP85","pass"),
0103 ),
0104 MCtruth_WP80 = cms.PSet(
0105 EfficiencyBinningSpecificationMC,
0106 EfficiencyCategoryAndState = cms.vstring("probe_passConvRej","pass","probe_isWP80","pass"),
0107 ),
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120 MCtruth_CicLoose = cms.PSet(
0121 EfficiencyBinningSpecificationMC,
0122 EfficiencyCategoryAndState = cms.vstring("probe_passConvRej","pass","probe_isCicLoose","pass"),
0123 ),
0124
0125
0126
0127
0128 MCtruth_CicTight = cms.PSet(
0129 EfficiencyBinningSpecificationMC,
0130 EfficiencyCategoryAndState = cms.vstring("probe_passConvRej","pass","probe_isCicTight","pass"),
0131 ),
0132 MCtruth_CicSuperTight = cms.PSet(
0133 EfficiencyBinningSpecificationMC,
0134 EfficiencyCategoryAndState = cms.vstring("probe_passConvRej","pass","probe_isCicSuperTight","pass"),
0135 ),
0136 MCtruth_CicHyperTight1 = cms.PSet(
0137 EfficiencyBinningSpecificationMC,
0138 EfficiencyCategoryAndState = cms.vstring("probe_passConvRej","pass","probe_isCicHyperTight1","pass"),
0139 ),
0140
0141
0142
0143
0144
0145
0146
0147
0148
0149
0150
0151
0152 )
0153 else:
0154 mcTruthModules = cms.PSet()
0155
0156
0157
0158
0159
0160
0161
0162
0163
0164
0165
0166
0167 process.GsfElectronToId = cms.EDAnalyzer("TagProbeFitTreeAnalyzer",
0168
0169 InputFileNames = cms.vstring(InputFileName),
0170 InputDirectoryName = cms.string("GsfElectronToId"),
0171 InputTreeName = cms.string("fitter_tree"),
0172 OutputFileName = cms.string(OutputFilePrefix+"GsfElectronToId.root"),
0173
0174 NumCPU = cms.uint32(1),
0175
0176
0177 SaveWorkspace = cms.bool(True),
0178 floatShapeParameters = cms.bool(True),
0179
0180
0181
0182 Variables = cms.PSet(
0183 mass = cms.vstring("Tag-Probe Mass", "60.0", "120.0", "GeV/c^{2}"),
0184 probe_sc_et = cms.vstring("Probe E_{T}", "0", "1000", "GeV/c"),
0185 probe_sc_eta = cms.vstring("Probe #eta", "-2.5", "2.5", ""),
0186 ),
0187
0188
0189 Categories = cms.PSet(
0190 weight = cms.vstring("weight", "0.0", "10.0", ""),
0191 mcTrue = cms.vstring("MC true", "dummy[true=1,false=0]"),
0192 probe_passConvRej = cms.vstring("probe_passConvRej", "dummy[pass=1,fail=0]"),
0193
0194 probe_isWP90 = cms.vstring("probe_isWP90", "dummy[pass=1,fail=0]"),
0195 probe_isWP85 = cms.vstring("probe_isWP85", "dummy[pass=1,fail=0]"),
0196 probe_isWP80 = cms.vstring("probe_isWP80", "dummy[pass=1,fail=0]"),
0197
0198
0199
0200 probe_isCicLoose = cms.vstring("probe_isCicLoose", "dummy[pass=1,fail=0]"),
0201
0202 probe_isCicTight = cms.vstring("probe_isCicTight", "dummy[pass=1,fail=0]"),
0203 probe_isCicSuperTight = cms.vstring("probe_isCicSuperTight", "dummy[pass=1,fail=0]"),
0204 probe_isCicHyperTight1 = cms.vstring("probe_isCicHyperTight1", "dummy[pass=1,fail=0]"),
0205
0206
0207
0208 ),
0209
0210
0211 PDFs = cms.PSet(
0212 pdfSignalPlusBackground = cms.vstring(
0213
0214 "CBExGaussShape::signalResPass(mass, meanP[0.], sigmaP[8.5695e-04, 0., 3.],alphaP[3.8296e-04], nP[6.7489e+00], sigmaP_2[2.5849e+00], fracP[6.5704e-01])",
0215 "CBExGaussShape::signalResFail(mass, meanF[2.0946e-01, -5., 5.], sigmaF[8.5695e-04, 0., 5.],alphaF[3.8296e-04], nF[6.7489e+00], sigmaF_2[2.5849e+00], fracF[6.5704e-01])",
0216 "ZGeneratorLineShape::signalPhy(mass)",
0217 "RooCMSShape::backgroundPass(mass, alphaPass[60.,50.,70.], betaPass[0.001, 0.,0.1], betaPass, peakPass[90.0])",
0218 "RooCMSShape::backgroundFail(mass, alphaFail[60.,50.,70.], betaFail[0.001, 0.,0.1], betaFail, peakFail[90.0])",
0219 "FCONV::signalPass(mass, signalPhy, signalResPass)",
0220 "FCONV::signalFail(mass, signalPhy, signalResFail)",
0221 "efficiency[0.9,0,1]",
0222 "signalFractionInPassing[1.0]"
0223
0224
0225
0226
0227
0228 ),
0229 ),
0230
0231
0232
0233 Efficiencies = cms.PSet(
0234 mcTruthModules,
0235
0236
0237
0238
0239
0240
0241 WP90 = cms.PSet(
0242 EfficiencyBinningSpecification,
0243 EfficiencyCategoryAndState = cms.vstring("probe_isWP90","pass"),
0244 ),
0245 WP85 = cms.PSet(
0246 EfficiencyBinningSpecification,
0247 EfficiencyCategoryAndState = cms.vstring("probe_isWP85","pass"),
0248 ),
0249 WP80 = cms.PSet(
0250 EfficiencyBinningSpecification,
0251 EfficiencyCategoryAndState = cms.vstring("probe_isWP80","pass"),
0252 ),
0253
0254
0255
0256
0257
0258
0259
0260
0261
0262
0263
0264
0265 CicLoose = cms.PSet(
0266 EfficiencyBinningSpecification,
0267 EfficiencyCategoryAndState = cms.vstring("probe_isCicLoose","pass"),
0268 ),
0269
0270
0271
0272
0273 CicTight = cms.PSet(
0274 EfficiencyBinningSpecification,
0275 EfficiencyCategoryAndState = cms.vstring("probe_isCicTight","pass"),
0276 ),
0277 CicSuperTight = cms.PSet(
0278 EfficiencyBinningSpecification,
0279 EfficiencyCategoryAndState = cms.vstring("probe_isCicSuperTight","pass"),
0280 ),
0281 CicHyperTight1 = cms.PSet(
0282 EfficiencyBinningSpecification,
0283 EfficiencyCategoryAndState = cms.vstring("probe_isCicHyperTight1","pass"),
0284 ),
0285
0286
0287
0288
0289
0290
0291
0292
0293
0294
0295
0296
0297
0298
0299 )
0300 )
0301 if isMC:
0302 process.GsfElectronToId.WeightVariable = cms.string("PUweight")
0303
0304
0305
0306
0307
0308
0309
0310 if isMC:
0311 SCmcTruthModules = cms.PSet(
0312 MCtruth_efficiency = cms.PSet(
0313 EfficiencyBinningSpecificationSCMC,
0314 EfficiencyCategoryAndState = cms.vstring( "probe_passingGsf", "pass" ),
0315 ),
0316 )
0317 else:
0318 SCmcTruthModules = cms.PSet()
0319
0320
0321 process.SCToGsfElectron = process.GsfElectronToId.clone()
0322 process.SCToGsfElectron.InputDirectoryName = cms.string("SuperClusterToGsfElectron")
0323 process.SCToGsfElectron.OutputFileName = cms.string(OutputFilePrefix+"SCToGsfElectron.root")
0324 process.SCToGsfElectron.Variables = cms.PSet(
0325 mass = cms.vstring("Tag-Probe Mass", "60.0", "120.0", "GeV/c^{2}"),
0326 probe_et = cms.vstring("Probe E_{T}", "0", "1000", "GeV/c"),
0327 probe_eta = cms.vstring("Probe #eta", "-2.5", "2.5", ""),
0328 )
0329 process.SCToGsfElectron.Categories = cms.PSet(
0330 mcTrue = cms.vstring("MC true", "dummy[true=1,false=0]"),
0331 probe_passingGsf = cms.vstring("probe_passingGsf", "dummy[pass=1,fail=0]"),
0332 )
0333 process.SCToGsfElectron.Efficiencies = cms.PSet(
0334 SCmcTruthModules,
0335 efficiency = cms.PSet(
0336 EfficiencyBinningSpecificationSC,
0337 EfficiencyCategoryAndState = cms.vstring( "probe_passingGsf", "pass" ),
0338 ),
0339 )
0340
0341
0342
0343
0344
0345
0346
0347
0348 if isMC:
0349 HLTmcTruthModules = cms.PSet(
0350 MCtruth_efficiency = cms.PSet(
0351 EfficiencyBinningSpecificationMC,
0352 EfficiencyCategoryAndState = cms.vstring( HLTDef, "pass" ),
0353 ),
0354 )
0355 else:
0356 HLTmcTruthModules = cms.PSet()
0357
0358
0359 EfficienciesPset = cms.PSet(
0360 HLTmcTruthModules,
0361 efficiency = cms.PSet(
0362 EfficiencyBinningSpecificationHLT,
0363 EfficiencyCategoryAndState = cms.vstring( HLTDef, "pass" ),
0364 ),
0365 )
0366
0367
0368 process.WP95ToHLT = process.GsfElectronToId.clone()
0369 process.WP95ToHLT.InputDirectoryName = cms.string("WP95ToHLT")
0370 process.WP95ToHLT.OutputFileName = cms.string(OutputFilePrefix+"WP95ToHLT.root")
0371 process.WP95ToHLT.Categories = cms.PSet(
0372 mcTrue = cms.vstring("MC true", "dummy[true=1,false=0]"),
0373 probe_passingHLT = cms.vstring("probe_passingHLT", "dummy[pass=1,fail=0]"),
0374 )
0375 process.WP95ToHLT.Efficiencies = EfficienciesPset
0376 process.WP95ToHLT.Efficiencies.efficiency.BinToPDFmap = cms.vstring()
0377
0378 process.WP90ToHLT = process.WP95ToHLT.clone()
0379 process.WP90ToHLT.InputDirectoryName = cms.string("WP90ToHLT")
0380 process.WP90ToHLT.OutputFileName = cms.string(OutputFilePrefix+"WP90ToHLT.root")
0381
0382 process.WP85ToHLT = process.WP95ToHLT.clone()
0383 process.WP85ToHLT.InputDirectoryName = cms.string("WP85ToHLT")
0384 process.WP85ToHLT.OutputFileName = cms.string(OutputFilePrefix+"WP85ToHLT.root")
0385
0386 process.WP80ToHLT = process.WP95ToHLT.clone()
0387 process.WP80ToHLT.InputDirectoryName = cms.string("WP80ToHLT")
0388 process.WP80ToHLT.OutputFileName = cms.string(OutputFilePrefix+"WP80ToHLT.root")
0389
0390 process.WP70ToHLT = process.WP95ToHLT.clone()
0391 process.WP70ToHLT.InputDirectoryName = cms.string("WP70ToHLT")
0392 process.WP70ToHLT.OutputFileName = cms.string(OutputFilePrefix+"WP70ToHLT.root")
0393
0394 process.WP60ToHLT = process.WP95ToHLT.clone()
0395 process.WP60ToHLT.InputDirectoryName = cms.string("WP60ToHLT")
0396 process.WP60ToHLT.OutputFileName = cms.string(OutputFilePrefix+"WP60ToHLT.root")
0397
0398 process.CicVeryLooseToHLT = process.WP95ToHLT.clone()
0399 process.CicVeryLooseToHLT.InputDirectoryName = cms.string("CicVeryLooseToHLT")
0400 process.CicVeryLooseToHLT.OutputFileName = cms.string(OutputFilePrefix+"CicVeryLooseToHLT.root")
0401
0402 process.CicLooseToHLT = process.WP95ToHLT.clone()
0403 process.CicLooseToHLT.InputDirectoryName = cms.string("CicLooseToHLT")
0404 process.CicLooseToHLT.OutputFileName = cms.string(OutputFilePrefix+"CicLooseToHLT.root")
0405
0406 process.CicMediumToHLT = process.WP95ToHLT.clone()
0407 process.CicMediumToHLT.InputDirectoryName = cms.string("CicMediumToHLT")
0408 process.CicMediumToHLT.OutputFileName = cms.string(OutputFilePrefix+"CicMediumToHLT.root")
0409
0410 process.CicTightToHLT = process.WP95ToHLT.clone()
0411 process.CicTightToHLT.InputDirectoryName = cms.string("CicTightToHLT")
0412 process.CicTightToHLT.OutputFileName = cms.string(OutputFilePrefix+"CicTightToHLT.root")
0413
0414 process.CicSuperTightToHLT = process.WP95ToHLT.clone()
0415 process.CicSuperTightToHLT.InputDirectoryName = cms.string("")
0416 process.CicSuperTightToHLT.OutputFileName = cms.string(OutputFilePrefix+"CicSuperTightToHLT.root")
0417
0418 process.CicHyperTight1ToHLT = process.WP95ToHLT.clone()
0419 process.CicHyperTight1ToHLT.InputDirectoryName = cms.string("CicHyperTight1ToHLT")
0420 process.CicHyperTight1ToHLT.OutputFileName = cms.string(OutputFilePrefix+"CicHyperTight1ToHLT.root")
0421
0422 process.CicHyperTight2ToHLT = process.WP95ToHLT.clone()
0423 process.CicHyperTight2ToHLT.InputDirectoryName = cms.string("CicHyperTight2ToHLT")
0424 process.CicHyperTight2ToHLT.OutputFileName = cms.string(OutputFilePrefix+"CicHyperTight2ToHLT.root")
0425
0426 process.CicHyperTight3ToHLT = process.WP95ToHLT.clone()
0427 process.CicHyperTight3ToHLT.InputDirectoryName = cms.string("")
0428 process.CicHyperTight3ToHLT.OutputFileName = cms.string(OutputFilePrefix+"CicHyperTight3ToHLT.root")
0429
0430 process.CicHyperTight4ToHLT = process.WP95ToHLT.clone()
0431 process.CicHyperTight4ToHLT.InputDirectoryName = cms.string("")
0432 process.CicHyperTight4ToHLT.OutputFileName = cms.string(OutputFilePrefix+"CicHyperTight4ToHLT.root")
0433
0434
0435 process.fit = cms.Path(
0436 process.GsfElectronToId +
0437 process.SCToGsfElectron +
0438
0439 process.WP90ToHLT +
0440 process.WP85ToHLT +
0441 process.WP80ToHLT +
0442
0443
0444
0445 process.CicLooseToHLT +
0446
0447 process.CicTightToHLT +
0448 process.CicSuperTightToHLT +
0449 process.CicHyperTight1ToHLT
0450
0451
0452
0453 )