515 def makeAlgs (self, config) :
516
517 configFile = None
518 calibSeq = None
519 calibArea = None
520
521 jetCollectionName=self.jetCollection
522 if(self.jetCollection==
"AnalysisJets") :
523 jetCollectionName="AntiKt4EMPFlowJets"
524 if(self.jetCollection==
"AnalysisLargeRJets") :
525 jetCollectionName="AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets"
526
527 if self.largeRMass not in ["Comb", "Calo", "TA"]:
528 raise ValueError("Invalid large-R mass defintion {0}!".format(self.largeRMass) )
529
530 if self.jetInput not in ["LCTopo", "TrackCaloCluster", "UFO"]:
531 raise ValueError("Invalid input type '{0}' for large-R jets!".format(self.jetInput) )
532
533 if self.jetInput == "TrackCaloCluster":
534
535 if self.largeRMass != "Calo":
536 raise ValueError("Invalid large-R TCC jet mass '{0}'!".format(self.largeRMass) )
537 configFile = "JES_MC16recommendation_FatJet_TCC_JMS_calo_30Oct2018.config"
538 if self.jetInput == "LCTopo":
539 configFile = _largeLCTopoConfigFile(config, self)
540 if self.jetInput == "UFO":
541 configFile = "JES_MC20PreRecommendation_R10_UFO_CSSK_SoftDrop_JMS_R21Insitu_26Nov2024.config"
542 calibArea = "00-04-83"
543 if self.calibToolConfigFile is not None:
544 configFile = self.calibToolConfigFile
545
546 if self.jetInput == "TrackCaloCluster" or self.jetInput == "UFO" or config.dataType() is DataType.FullSim:
547 calibSeq = "EtaJES_JMS"
548 elif config.dataType() is DataType.Data:
549 calibSeq = "EtaJES_JMS_Insitu"
550 if self.calibToolCalibSeq is not None:
551 calibSeq = self.calibToolCalibSeq
552
553 if self.calibToolCalibArea is not None:
554 calibArea = self.calibToolCalibArea
555
556 if not config.isPhyslite() or self.recalibratePhyslite:
557
558 alg = config.createAlgorithm( 'CP::JetCalibrationAlg', 'JetCalibrationAlg' )
559 config.addPrivateTool( 'calibrationTool', 'JetCalibrationTool' )
560
561 alg.calibrationTool.JetCollection = jetCollectionName[:-4]
562
563 if configFile is None:
564 raise ValueError(f'Unsupported: {self.jetInput=}, {config.dataType()=}')
565 alg.calibrationTool.ConfigFile = configFile
566
567 if calibSeq is None:
568 raise ValueError(f'Unsupported: {self.jetInput=}, {config.dataType()=}')
569 alg.calibrationTool.CalibSequence = calibSeq
570
571 if calibArea is not None:
572 alg.calibrationTool.CalibArea = calibArea
573
574 alg.calibrationTool.IsData = (config.dataType() is DataType.Data)
575 alg.jets = config.readName(self.containerName)
576
577 if self.jetInput == "UFO" and config.dataType() is not DataType.Data:
578
579 alg = config.createAlgorithm( 'CP::JetFFSmearingAlg', 'JetFFSmearingAlg' )
580 self.createFFSmearingTool(alg, config)
581 alg.outOfValidity = 2
582 alg.outOfValidityDeco = 'outOfValidityJMR'
583 alg.jets = config.readName (self.containerName)
584 alg.jetsOut = config.copyName (self.containerName)
585 alg.preselection = config.getPreselection (self.containerName, '')
586
587 if self.minPt > 0 or self.maxPt > 0 or self.maxEta > 0 or self.maxRapidity > 0:
588
589 alg = config.createAlgorithm( 'CP::AsgSelectionAlg', 'JetPtEtaCutAlg' )
590 alg.selectionDecoration = 'selectPtEta,as_bits'
591 config.addPrivateTool( 'selectionTool', 'CP::AsgPtEtaSelectionTool' )
592 alg.selectionTool.minPt = self.minPt
593 alg.selectionTool.maxPt = self.maxPt
594 alg.selectionTool.maxEta = self.maxEta
595 alg.selectionTool.maxRapidity = self.maxRapidity
596 alg.particles = config.readName (self.containerName)
597 alg.preselection = config.getPreselection (self.containerName, '')
598 config.addSelection (self.containerName, '', alg.selectionDecoration,
599 preselection=True)
600
601 if self.minMass > 0 or self.maxMass > 0:
602
603 alg = config.createAlgorithm( 'CP::AsgSelectionAlg', 'JetMassCutAlg' )
604 alg.selectionDecoration = 'selectMass,as_bits'
605 config.addPrivateTool( 'selectionTool', 'CP::AsgMassSelectionTool' )
606 alg.selectionTool.minM = self.minMass
607 alg.selectionTool.maxM = self.maxMass
608 alg.particles = config.readName (self.containerName)
609 alg.preselection = config.getPreselection (self.containerName, '')
610 config.addSelection (self.containerName, '', alg.selectionDecoration,
611 preselection=True)
612
613 config.addOutputVar (self.containerName, 'm', 'm')
614
615
616
617
618
619
620
621
622
623
624
625
626@groupBlocks