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