@@ -17,10 +17,15 @@ def update_jets_AK4(process):
17
17
# https://github.com/cms-sw/cmssw/blob/master/RecoBTag/ONNXRuntime/plugins/DeepFlavourONNXJetTagsProducer.cc#L86
18
18
# and https://twiki.cern.ch/twiki/bin/view/CMS/DeepJet
19
19
from RecoBTag .ONNXRuntime .pfParticleTransformerAK4_cff import _pfParticleTransformerAK4JetTagsAll as pfParticleTransformerAK4JetTagsAll
20
+ from RecoBTag .ONNXRuntime .pfUnifiedParticleTransformerAK4_cff import _pfUnifiedParticleTransformerAK4JetTagsAll as pfUnifiedParticleTransformerAK4JetTagsAll
20
21
from RecoBTag .ONNXRuntime .pfParticleNetFromMiniAODAK4_cff import _pfParticleNetFromMiniAODAK4PuppiCentralJetTagsAll as pfParticleNetFromMiniAODAK4PuppiCentralJetTagsAll
21
22
from RecoBTag .ONNXRuntime .pfParticleTransformerAK4_cff import _pfNegativeParticleTransformerAK4JetTagsProbs as pfNegativeParticleTransformerAK4JetTagsProbs
23
+
24
+ from RecoBTag .ONNXRuntime .pfUnifiedParticleTransformerAK4_cff import _pfUnifiedParticleTransformerAK4JetTagsProbs as pfUnifiedParticleTransformerAK4JetTagsProbs
22
25
from RecoBTag .ONNXRuntime .pfParticleNetFromMiniAODAK4_cff import _pfNegativeParticleNetFromMiniAODAK4PuppiCentralJetTagsProbs as pfNegativeParticleNetFromMiniAODAK4PuppiCentralJetTagsProbs
23
-
26
+ from RecoBTag .ONNXRuntime .pfParticleTransformerAK4_cff import _pfNegativeParticleTransformerAK4JetTagsProbs as pfNegativeParticleTransformerAK4JetTagsProbs
27
+ from RecoBTag .ONNXRuntime .pfUnifiedParticleTransformerAK4_cff import _pfNegativeUnifiedParticleTransformerAK4JetTagsProbs as pfNegativeUnifiedParticleTransformerAK4JetTagsProbs
28
+
24
29
_btagDiscriminators = [
25
30
'pfJetProbabilityBJetTags' ,
26
31
'pfJetBProbabilityBJetTags' ,
@@ -38,7 +43,7 @@ def update_jets_AK4(process):
38
43
'pfNegativeDeepFlavourJetTags:probc' ,
39
44
'pfNegativeDeepFlavourJetTags:probuds' ,
40
45
'pfNegativeDeepFlavourJetTags:probg' ,
41
- ] + pfParticleNetFromMiniAODAK4PuppiCentralJetTagsAll + pfNegativeParticleNetFromMiniAODAK4PuppiCentralJetTagsProbs
46
+ ] + pfParticleNetFromMiniAODAK4PuppiCentralJetTagsAll + pfNegativeParticleNetFromMiniAODAK4PuppiCentralJetTagsProbs + pfUnifiedParticleTransformerAK4JetTagsAll + pfNegativeUnifiedParticleTransformerAK4JetTagsProbs
42
47
# \ #+ pfParticleTransformerAK4JetTagsAll + pfNegativeParticleTransformerAK4JetTagsProbs \
43
48
updateJetCollection (
44
49
process ,
@@ -291,14 +296,6 @@ def get_DeepJet_outputs():
291
296
float ,
292
297
doc = "Negative DeepJet lepb tag probability" ,
293
298
precision = 10 ),
294
- btagNegDeepFlavC = Var ("bDiscriminator('pfNegativeDeepFlavourJetTags:probc')" ,
295
- float ,
296
- doc = "Negative DeepJet c tag probability" ,
297
- precision = 10 ),
298
- btagNegDeepFlavUDS = Var ("bDiscriminator('pfNegativeDeepFlavourJetTags:probuds')" ,
299
- float ,
300
- doc = "Negative DeepJet uds tag probability" ,
301
- precision = 10 ),
302
299
btagNegDeepFlavG = Var ("bDiscriminator('pfNegativeDeepFlavourJetTags:probg')" ,
303
300
float ,
304
301
doc = "Negative DeepJet gluon tag probability" ,
@@ -340,14 +337,6 @@ def get_ParticleNetAK4_outputs():
340
337
float ,
341
338
doc = "Negative ParticleNet c vs. b" ,
342
339
precision = 10 ),
343
- btagNegPNetProbB = Var ("?bDiscriminator('pfNegativeParticleNetFromMiniAODAK4PuppiCentralJetTags:probb')>0?bDiscriminator('pfNegativeParticleNetFromMiniAODAK4PuppiCentralJetTags:probb'):-1" ,
344
- float ,
345
- doc = "Negative ParticleNet b tag probability" ,
346
- precision = 10 ),
347
- btagNegPNetProbC = Var ("?bDiscriminator('pfNegativeParticleNetFromMiniAODAK4PuppiCentralJetTags:probc')>0?bDiscriminator('pfNegativeParticleNetFromMiniAODAK4PuppiCentralJetTags:probc'):-1" ,
348
- float ,
349
- doc = "Negative ParticleNet c tag probability" ,
350
- precision = 10 ),
351
340
btagNegPNetProbUDS = Var ("?bDiscriminator('pfNegativeParticleNetFromMiniAODAK4PuppiCentralJetTags:probuds')>0?bDiscriminator('pfNegativeParticleNetFromMiniAODAK4PuppiCentralJetTags:probuds'):-1" ,
352
341
float ,
353
342
doc = "Negative ParticleNet uds tag probability" ,
@@ -374,10 +363,6 @@ def get_ParticleTransformerAK4_outputs():
374
363
float ,
375
364
doc = "RobustParTAK4 lepb tag probability" ,
376
365
precision = 10 ),
377
- btagRobustParTAK4C = Var ("bDiscriminator('pfParticleTransformerAK4JetTags:probc')" ,
378
- float ,
379
- doc = "RobustParTAK4 c tag probability" ,
380
- precision = 10 ),
381
366
btagRobustParTAK4UDS = Var ("bDiscriminator('pfParticleTransformerAK4JetTags:probuds')" ,
382
367
float ,
383
368
doc = "RobustParTAK4 uds tag probability" ,
@@ -416,21 +401,75 @@ def get_ParticleTransformerAK4_outputs():
416
401
float ,
417
402
doc = "Negative RobustParTAK4 lepb tag probability" ,
418
403
precision = 10 ),
419
- btagNegRobustParTAK4C = Var ("bDiscriminator('pfNegativeParticleTransformerAK4JetTags:probc')" ,
404
+ btagNegRobustParTAK4G = Var ("bDiscriminator('pfNegativeParticleTransformerAK4JetTags:probg')" ,
405
+ float ,
406
+ doc = "Negative RobustParTAK4 gluon tag probability" ,
407
+ precision = 10 ),
408
+ )
409
+
410
+ return ParticleTransformerAK4OutputVars
411
+
412
+ def get_UnifiedParticleTransformerAK4_outputs ():
413
+ UnifiedParticleTransformerAK4OutputVars = cms .PSet (
414
+ btagUParTAK4B_b = Var ("bDiscriminator('pfUnifiedParticleTransformerAK4JetTags:probb')" ,
420
415
float ,
421
- doc = "Negative RobustParTAK4 c tag probability" ,
416
+ doc = "UnifiedParT b tag probability" ,
422
417
precision = 10 ),
423
- btagNegRobustParTAK4UDS = Var ("bDiscriminator('pfNegativeParticleTransformerAK4JetTags:probuds ')" ,
418
+ btagUParTAK4B_bb = Var ("bDiscriminator('pfUnifiedParticleTransformerAK4JetTags:probbb ')" ,
424
419
float ,
425
- doc = "Negative RobustParTAK4 uds tag probability" ,
420
+ doc = "UnifiedParT bb tag probability" ,
426
421
precision = 10 ),
427
- btagNegRobustParTAK4G = Var ("bDiscriminator('pfNegativeParticleTransformerAK4JetTags:probg ')" ,
422
+ btagUParTAK4B_lepb = Var ("bDiscriminator('pfUnifiedParticleTransformerAK4JetTags:problepb ')" ,
428
423
float ,
429
- doc = "Negative RobustParTAK4 gluon tag probability" ,
424
+ doc = "UnifiedParT lepb tag probability" ,
425
+ precision = 10 ),
426
+ btagUParTAK4UDS = Var ("bDiscriminator('pfUnifiedParticleTransformerAK4JetTags:probuds')" ,
427
+ float ,
428
+ doc = "UnifiedParT uds tag probability" ,
429
+ precision = 10 ),
430
+ btagUParTAK4G = Var ("bDiscriminator('pfUnifiedParticleTransformerAK4JetTags:probg')" ,
431
+ float ,
432
+ doc = "UnifiedParT gluon tag probability" ,
433
+ precision = 10 ),
434
+
435
+ # negative taggers
436
+ btagNegUParTAK4B = Var ("bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:probb')+bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:probbb')+bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:problepb')" ,
437
+ float ,
438
+ doc = "Negative UnifiedParT b+bb+lepb tag discriminator" ,
439
+ precision = 10 ),
440
+ btagNegUParTAK4CvL = Var ("?(bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:probc')+bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:probuds')+bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:probg'))>0?bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:probc')/(bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:probc')+bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:probuds')+bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:probg')):-1" ,
441
+ float ,
442
+ doc = "Negative UnifiedParT c vs uds+g discriminator" ,
443
+ precision = 10 ),
444
+ btagNegUParTAK4CvB = Var ("?(bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:probc')+bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:probb')+bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:probbb')+bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:problepb'))>0?bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:probc')/(bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:probc')+bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:probb')+bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:probbb')+bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:problepb')):-1" ,
445
+ float ,
446
+ doc = "Negative UnifiedParT c vs b+bb+lepb discriminator" ,
447
+ precision = 10 ),
448
+ btagNegUParTAK4QG = Var ("?(bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:probg')+bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:probuds'))>0?bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:probg')/(bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:probg')+bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:probuds')):-1" ,
449
+ float ,
450
+ doc = "Negative UnifiedParT g vs uds discriminator" ,
451
+ precision = 10 ),
452
+ btagNegUParTAK4B_b = Var ("bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:probb')" ,
453
+ float ,
454
+ doc = "Negative UnifiedParT b tag probability" ,
455
+ precision = 10 ),
456
+ btagNegUParTAK4B_bb = Var ("bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:probbb')" ,
457
+ float ,
458
+ doc = "Negative UnifiedParT bb tag probability" ,
459
+ precision = 10 ),
460
+ btagNegUParTAK4B_lepb = Var ("bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:problepb')" ,
461
+ float ,
462
+ doc = "Negative UnifiedParT lepb tag probability" ,
463
+ precision = 10 ),
464
+ btagNegUParTAK4G = Var ("bDiscriminator('pfNegativeUnifiedParticleTransformerAK4JetTags:probg')" ,
465
+ float ,
466
+ doc = "Negative UnifiedParT gluon tag probability" ,
430
467
precision = 10 ),
431
468
)
432
469
433
- return ParticleTransformerAK4OutputVars
470
+ return UnifiedParticleTransformerAK4OutputVars
471
+
472
+
434
473
435
474
def add_BTV (process , addAK4 = False , addAK8 = False , scheme = "btvSF" ):
436
475
process .customizeJetTask = cms .Task ()
@@ -494,7 +533,8 @@ def add_BTV(process, addAK4=False, addAK8=False, scheme="btvSF"):
494
533
get_DeepCSV_vars (),
495
534
get_DeepJet_outputs (), # outputs are added in any case, inputs only if requested
496
535
get_ParticleNetAK4_outputs (),
497
- #get_ParticleTransformerAK4_outputs(),# removed in 2024
536
+ get_UnifiedParticleTransformerAK4_outputs (),
537
+ get_ParticleTransformerAK4_outputs (),# removed in 2024
498
538
))
499
539
500
540
# from Run3 onwards, always set storeAK4Truth to True for MC
@@ -649,6 +689,7 @@ def addPFCands(process, allPF = False, addAK4=False, addAK8=False):
649
689
)
650
690
651
691
def BTVCustomNanoAOD (process ):
692
+
652
693
addPFCands (process ,btvNano_switch .btvNano_addallPF_switch ,btvNano_switch .btvNano_addAK4_switch ,btvNano_switch .btvNano_addAK8_switch )
653
694
add_BTV (process , btvNano_switch .btvNano_addAK4_switch ,btvNano_switch .btvNano_addAK8_switch ,btvNano_switch .TaggerInput )
654
695
process .load ("PhysicsTools.NanoAOD.btvMC_cff" )
0 commit comments