561 def makeAlgs (self, config) :
562
563
564 if config.getContainerMeta(self.containerName, 'jetRadius', failOnMiss=True) != 10:
565 return
566
567 configFile = None
568 calibSeq = None
569 calibArea = None
570
571 jetCollectionName=self.jetCollection
572 if(self.jetCollection==
"AnalysisJets") :
573 jetCollectionName="AntiKt4EMPFlowJets"
574 if(self.jetCollection==
"AnalysisLargeRJets") :
575 jetCollectionName="AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets"
576
577 jetInput = config.getContainerMeta(self.containerName, 'jetInput', failOnMiss=True)
578 trim = config.getContainerMeta(self.containerName, 'jetTrim', failOnMiss=True)
579
580 if jetInput not in ["UFO"]:
581 raise ValueError("Invalid input type '{0}' for large-R jets!".format(jetInput) )
582
583 if not trim:
584 raise ValueError("Untrimmed large-R jets are not supported!")
585
586 configFile = "JES_MC20PreRecommendation_R10_UFO_CSSK_SoftDrop_JMS_R21Insitu_26Nov2024.config"
587 calibArea = "00-04-83"
588 if self.calibToolConfigFile is not None:
589 configFile = self.calibToolConfigFile
590
591 if config.dataType() is not DataType.Data:
592 calibSeq = "EtaJES_JMS"
593 elif config.dataType() is DataType.Data:
594 calibSeq = "EtaJES_JMS_Insitu"
595 if self.calibToolCalibSeq is not None:
596 calibSeq = self.calibToolCalibSeq
597
598 if self.calibToolCalibArea is not None:
599 calibArea = self.calibToolCalibArea
600
601 if not config.isPhyslite() or self.recalibratePhyslite:
602
603 calibToolName = 'JetCalibTool_' + jetCollectionName[:-4]
604 calibTool = config.createPublicTool( 'JetCalibrationTool', calibToolName )
605
606 calibTool.JetCollection = jetCollectionName[:-4]
607
608 if configFile is None:
609 raise ValueError(f'Unsupported: {self.jetInput=}, {config.dataType()=}')
610 calibTool.ConfigFile = configFile
611
612 if calibSeq is None:
613 raise ValueError(f'Unsupported: {self.jetInput=}, {config.dataType()=}')
614 calibTool.CalibSequence = calibSeq
615
616 if calibArea is not None:
617 calibTool.CalibArea = calibArea
618
619 calibTool.IsData = (config.dataType() is DataType.Data)
620
621 alg = config.createAlgorithm( 'CP::JetCalibrationAlg', 'JetCalibrationAlg' )
622 alg.calibrationTool = f'{calibTool.getType()}/{calibTool.getName()}'
623 alg.jets = config.readName(self.containerName)
624 alg.jetsOut = config.copyName(self.containerName)
625
626 if jetInput == "UFO" and config.dataType() is not DataType.Data:
627
628 alg = config.createAlgorithm( 'CP::JetFFSmearingAlg', 'JetFFSmearingAlg' )
629 self.createFFSmearingTool(alg, config)
630 alg.outOfValidity = 2
631 alg.outOfValidityDeco = 'outOfValidityJMR'
632 alg.jets = config.readName (self.containerName)
633 alg.jetsOut = config.copyName (self.containerName)
634 alg.preselection = config.getPreselection (self.containerName, '')
635
636 if self.minPt > 0 or self.maxPt > 0 or self.maxEta > 0 or self.maxRapidity > 0:
637
638 alg = config.createAlgorithm( 'CP::AsgSelectionAlg', 'JetPtEtaCutAlg' )
639 alg.selectionDecoration = 'selectPtEta,as_bits'
640 config.addPrivateTool( 'selectionTool', 'CP::AsgPtEtaSelectionTool' )
641 alg.selectionTool.minPt = self.minPt
642 alg.selectionTool.maxPt = self.maxPt
643 alg.selectionTool.maxEta = self.maxEta
644 alg.selectionTool.maxRapidity = self.maxRapidity
645 alg.particles = config.readName (self.containerName)
646 alg.preselection = config.getPreselection (self.containerName, '')
647 config.addSelection (self.containerName, '', alg.selectionDecoration,
648 preselection=True)
649
650 if self.minMass > 0 or self.maxMass > 0:
651
652 alg = config.createAlgorithm( 'CP::AsgSelectionAlg', 'JetMassCutAlg' )
653 alg.selectionDecoration = 'selectMass,as_bits'
654 config.addPrivateTool( 'selectionTool', 'CP::AsgMassSelectionTool' )
655 alg.selectionTool.minM = self.minMass
656 alg.selectionTool.maxM = self.maxMass
657 alg.particles = config.readName (self.containerName)
658 alg.preselection = config.getPreselection (self.containerName, '')
659 config.addSelection (self.containerName, '', alg.selectionDecoration,
660 preselection=True)
661
662 config.addOutputVar (self.containerName, 'm', 'm')
663