Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-06-13 03:23:53

0001 # -*- coding: utf-8 -*-
0002 import FWCore.ParameterSet.Config as cms
0003 process = cms.Process("L1TMuonEmulation")
0004 import os
0005 import sys
0006 #import commands
0007 import re
0008 from os import listdir
0009 from os.path import isfile, join
0010 import fnmatch
0011 
0012 process.load("FWCore.MessageLogger.MessageLogger_cfi")
0013 
0014 verbose = True
0015 
0016 filesNameLike = sys.argv[1]
0017 
0018 runDebug = "DEBUG" # or "INFO" DEBUG
0019 
0020 #version = "ExtraplMB1nadMB2DTQualAndEtaFixedP_ValueP1Scale_t20_v1_SingleMu"
0021 #version = "noExtrapl_ValueP1Scale_t18_qualConverted_min4_ipT1_deltaPhiVsPhiRef_fixedDTScale"
0022 version = "ExtraplMB1nadMB2DTQualAndRFixedP_ValueP1Scale_DT_4_4_t25c_" + filesNameLike
0023 
0024 regeneratedL1DT = True
0025 
0026 if not regeneratedL1DT :
0027     version = version + "_noDTReGen"
0028 
0029 if verbose: 
0030     process.MessageLogger = cms.Service("MessageLogger",
0031        #suppressInfo       = cms.untracked.vstring('AfterSource', 'PostModule'),
0032        destinations   = cms.untracked.vstring(
0033                                                #'detailedInfo',
0034                                                #'critical',
0035                                                #'cout',
0036                                                #'cerr',
0037                                                'omtfEventPrint'
0038                     ),
0039        categories        = cms.untracked.vstring('l1tOmtfEventPrint', 'OMTFReconstruction'),
0040        omtfEventPrint = cms.untracked.PSet(    
0041                          filename  = cms.untracked.string('Patterns_layerStat_' + version + "_" + filesNameLike),
0042                          extension = cms.untracked.string('.txt'),                
0043                          threshold = cms.untracked.string('INFO'),
0044                          default = cms.untracked.PSet( limit = cms.untracked.int32(0) ), 
0045                          #INFO   =  cms.untracked.int32(0),
0046                          #DEBUG   = cms.untracked.int32(0),
0047                          l1tOmtfEventPrint = cms.untracked.PSet( limit = cms.untracked.int32(1000000000) ),
0048                          OMTFReconstruction = cms.untracked.PSet( limit = cms.untracked.int32(1000000000) )
0049                        ),
0050        debugModules = cms.untracked.vstring('simOmtfPhase2Digis') 
0051        #debugModules = cms.untracked.vstring('*')
0052     )
0053 
0054     #process.MessageLogger.cerr.FwkReport.reportEvery = cms.untracked.int32(100)
0055 if not verbose:
0056     process.MessageLogger.cerr.FwkReport.reportEvery = cms.untracked.int32(-1)
0057     process.options = cms.untracked.PSet(wantSummary = cms.untracked.bool(False), 
0058                                          #SkipEvent = cms.untracked.vstring('ProductNotFound') 
0059                                      )
0060     
0061 # import of standard configurations
0062 process.load('Configuration.StandardSequences.Services_cff')
0063 #process.load('SimGeneral.HepPDTESSource.pythiapdt_cfi')
0064 #process.load('FWCore.MessageService.MessageLogger_cfi')
0065 #process.load('Configuration.EventContent.EventContent_cff')
0066 #process.load('SimGeneral.MixingModule.mixNoPU_cfi')
0067 process.load('Configuration.Geometry.GeometryExtended2026D95Reco_cff')
0068 process.load('Configuration.StandardSequences.MagneticField_cff')
0069 #process.load('Configuration.StandardSequences.RawToDigi_cff')
0070 #process.load('Configuration.StandardSequences.SimL1Emulator_cff')
0071 #process.load('Configuration.StandardSequences.SimPhase2L1GlobalTriggerEmulator_cff')
0072 #process.load('L1Trigger.Configuration.Phase2GTMenus.SeedDefinitions.prototypeSeeds')
0073 process.load('Configuration.StandardSequences.EndOfProcess_cff')
0074 process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
0075 
0076 from Configuration.AlCa.GlobalTag import GlobalTag
0077 process.GlobalTag = GlobalTag(process.GlobalTag, '131X_mcRun4_realistic_v9', '')
0078 
0079 chosenFiles = []
0080 
0081 cscBx = 8
0082 fileCnt = 100000 #1000 
0083 if filesNameLike == 'mcWaw2023_OneOverPt_and_iPt2':
0084     cscBx = 8
0085     matchUsingPropagation  = False 
0086     paths = [
0087              {"path": "/eos/user/a/akalinow/Data/SingleMu/12_5_2_p1_20_04_2023/SingleMu_ch0_OneOverPt_12_5_2_p1_20_04_2023/", "fileCnt" : 500}, #500 files
0088              {"path": "/eos/user/a/akalinow/Data/SingleMu/12_5_2_p1_20_04_2023/SingleMu_ch2_OneOverPt_12_5_2_p1_20_04_2023/", "fileCnt" : 500}, #500 files
0089              #
0090              {"path": "/eos/user/a/akalinow/Data/SingleMu/12_5_2_p1_14_04_2023/SingleMu_ch0_OneOverPt_12_5_2_p1_14_04_2023/", "fileCnt" : 500}, #500 files
0091              {"path": "/eos/user/a/akalinow/Data/SingleMu/12_5_2_p1_14_04_2023/SingleMu_ch2_OneOverPt_12_5_2_p1_14_04_2023/", "fileCnt" : 500}, #500 files
0092              #
0093              {"path": "/eos/user/a/akalinow/Data/SingleMu/12_5_2_p1_04_04_2023/SingleMu_ch0_OneOverPt_12_5_2_p1_04_04_2023/", "fileCnt" : 500}, #500 files
0094              {"path": "/eos/user/a/akalinow/Data/SingleMu/12_5_2_p1_04_04_2023/SingleMu_ch2_OneOverPt_12_5_2_p1_04_04_2023/", "fileCnt" : 500}, #500 files
0095              #
0096              {"path": "/eos/user/a/akalinow/Data/SingleMu/12_5_2_p1_22_02_2023/SingleMu_ch0_OneOverPt_12_5_2_p1_22_02_2023/", "fileCnt" : 500}, #200 files
0097              {"path": "/eos/user/a/akalinow/Data/SingleMu/12_5_2_p1_22_02_2023/SingleMu_ch2_OneOverPt_12_5_2_p1_22_02_2023/", "fileCnt" : 500}, #200 files
0098              #
0099              # {"path": "/eos/user/a/akalinow/Data/SingleMu/12_5_2_p1_15_02_2023/SingleMu_ch0_OneOverPt_12_5_2_p1_15_02_2023/", "fileCnt" : 500}, ##100 files
0100              # {"path": "/eos/user/a/akalinow/Data/SingleMu/12_5_2_p1_15_02_2023/SingleMu_ch2_OneOverPt_12_5_2_p1_15_02_2023/", "fileCnt" : 500}, ##100 files
0101               {"path": "/eos/user/a/akalinow/Data/SingleMu/12_5_2_p1_04_04_2023/SingleMu_ch0_iPt2_12_5_2_p1_04_04_2023/", "fileCnt" : 200}, #500 files
0102               {"path": "/eos/user/a/akalinow/Data/SingleMu/12_5_2_p1_04_04_2023/SingleMu_ch2_iPt2_12_5_2_p1_04_04_2023/", "fileCnt" : 200}, #500 files
0103              ]
0104 
0105 if filesNameLike == 'mcWaw2023_iPt1':
0106     cscBx = 8
0107     matchUsingPropagation  = False 
0108     paths = [
0109              # "/eos/user/a/akalinow/Data/SingleMu/12_5_2_p1_20_04_2023/SingleMu_ch0_OneOverPt_12_5_2_p1_20_04_2023/", #500 files
0110              # "/eos/user/a/akalinow/Data/SingleMu/12_5_2_p1_20_04_2023/SingleMu_ch2_OneOverPt_12_5_2_p1_20_04_2023/", #500 files
0111              #
0112              # "/eos/user/a/akalinow/Data/SingleMu/12_5_2_p1_14_04_2023/SingleMu_ch0_OneOverPt_12_5_2_p1_14_04_2023/", #500 files
0113              # "/eos/user/a/akalinow/Data/SingleMu/12_5_2_p1_14_04_2023/SingleMu_ch2_OneOverPt_12_5_2_p1_14_04_2023/", #500 files
0114              #
0115              #{"path": "/eos/user/a/akalinow/Data/SingleMu/12_5_2_p1_04_04_2023/SingleMu_ch0_OneOverPt_12_5_2_p1_04_04_2023/", "fileCnt" : 500}, #500 files
0116              #{"path": "/eos/user/a/akalinow/Data/SingleMu/12_5_2_p1_04_04_2023/SingleMu_ch2_OneOverPt_12_5_2_p1_04_04_2023/", "fileCnt" : 500}, #500 files
0117              #
0118              # "/eos/user/a/akalinow/Data/SingleMu/12_5_2_p1_22_02_2023/SingleMu_ch0_OneOverPt_12_5_2_p1_22_02_2023/", #200 files
0119              # "/eos/user/a/akalinow/Data/SingleMu/12_5_2_p1_22_02_2023/SingleMu_ch2_OneOverPt_12_5_2_p1_22_02_2023/", #200 files
0120              #
0121              # "/eos/user/a/akalinow/Data/SingleMu/12_5_2_p1_15_02_2023/SingleMu_ch0_OneOverPt_12_5_2_p1_15_02_2023/", ##100 files
0122              # "/eos/user/a/akalinow/Data/SingleMu/12_5_2_p1_15_02_2023/SingleMu_ch2_OneOverPt_12_5_2_p1_15_02_2023/", ##100 files
0123               {"path": "/eos/user/a/akalinow/Data/SingleMu/12_5_2_p1_04_04_2023/SingleMu_ch0_iPt1_12_5_2_p1_04_04_2023/", "fileCnt" : 100}, #500 files
0124               {"path": "/eos/user/a/akalinow/Data/SingleMu/12_5_2_p1_04_04_2023/SingleMu_ch2_iPt1_12_5_2_p1_04_04_2023/", "fileCnt" : 100}, #500 files
0125              ]
0126 
0127 
0128 print("input data paths", paths)        
0129 
0130 if(runDebug == "DEBUG") :
0131     fileCnt = 1;
0132         
0133 for path in paths :
0134     root_files = []
0135     for root, dirs, files in os.walk(path["path"]):
0136         for file in fnmatch.filter(files, '*.root'):
0137             root_files.append(os.path.join(root, file))  
0138             
0139     file_num = 0    
0140     for root_file in root_files :
0141         if isfile(root_file) :
0142             chosenFiles.append('file://' + root_file)
0143             file_num += 1
0144         else :
0145             print("file not found!!!!!!!: " + root_file)   
0146             
0147         if file_num >= path["fileCnt"] :
0148             break         
0149         if file_num >= fileCnt :
0150             break            
0151 
0152 print("chosenFiles")
0153 for chFile in chosenFiles:
0154     print(chFile)
0155 
0156 
0157 print("chosen file count", len(chosenFiles) )
0158 
0159 if len(chosenFiles) == 0 :
0160     print("no files selected!!!!!!!!!!!!!!!")
0161     exit
0162 
0163 print("running version", version)
0164                            
0165 # input files (up to 255 files accepted)
0166 process.source = cms.Source('PoolSource',
0167 fileNames = cms.untracked.vstring( 
0168     *(list(chosenFiles)) ),
0169     skipEvents =  cms.untracked.uint32(0),
0170     inputCommands=cms.untracked.vstring(
0171         'keep *',
0172         'drop l1tEMTFHit2016Extras_simEmtfDigis_CSC_HLT',
0173         'drop l1tEMTFHit2016Extras_simEmtfDigis_RPC_HLT',
0174         'drop l1tEMTFHit2016s_simEmtfDigis__HLT',
0175         'drop l1tEMTFTrack2016Extras_simEmtfDigis__HLT',
0176         'drop l1tEMTFTrack2016s_simEmtfDigis__HLT')
0177 )
0178                     
0179 process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1))
0180 
0181 
0182 #Calibrate Digis
0183 process.load("L1Trigger.DTTriggerPhase2.CalibratedDigis_cfi")
0184 process.CalibratedDigis.dtDigiTag = "simMuonDTDigis" 
0185 process.CalibratedDigis.scenario = 0
0186 
0187 #DTTriggerPhase2
0188 process.load("L1Trigger.DTTriggerPhase2.dtTriggerPhase2PrimitiveDigis_cfi")
0189 process.dtTriggerPhase2PrimitiveDigis.debug = False
0190 process.dtTriggerPhase2PrimitiveDigis.dump = False
0191 process.dtTriggerPhase2PrimitiveDigis.scenario = 0
0192 
0193 # STD aelow are the defoult values
0194 #process.dtTriggerPhase2PrimitiveDigis.algo = 0 ## initial grouping
0195 #process.dtTriggerPhase2PrimitiveDigis.df_extended = 0
0196 
0197 #process.TFileService = cms.Service("TFileService", fileName = cms.string('omtfAnalysis1_1.root'), closeFileFast = cms.untracked.bool(True) )
0198                                    
0199 ####OMTF Emulator
0200 process.load('L1Trigger.L1TMuonOverlapPhase2.simOmtfPhase2Digis_cfi')
0201 
0202 #needed by candidateSimMuonMatcher
0203 process.load("TrackPropagation.SteppingHelixPropagator.SteppingHelixPropagatorAlong_cfi")
0204 #process.load("TrackPropagation.SteppingHelixPropagator.SteppingHelixPropagatorOpposite_cfi")
0205 #process.load("TrackPropagation.SteppingHelixPropagator.SteppingHelixPropagatorAny_cfi")
0206 
0207 #process.simOmtfPhase2Digis.candidateSimMuonMatcher = cms.bool(True)
0208 process.simOmtfPhase2Digis.simTracksTag = cms.InputTag('g4SimHits')
0209 #process.simOmtfPhase2Digis.simVertexesTag = cms.InputTag('g4SimHits')
0210 #process.simOmtfPhase2Digis.muonMatcherFile = cms.FileInPath("L1Trigger/L1TMuon/data/omtf_config/muonMatcherHists_100files_smoothStdDev_withOvf.root")
0211 
0212 
0213 process.simOmtfPhase2Digis.bxMin = cms.int32(0)
0214 process.simOmtfPhase2Digis.bxMax = cms.int32(0)
0215 
0216 process.simOmtfPhase2Digis.dumpResultToXML = cms.bool(False)
0217 process.simOmtfPhase2Digis.eventCaptureDebug = cms.bool(False)
0218 
0219 process.simOmtfPhase2Digis.patternsXMLFile = cms.FileInPath("L1Trigger/L1TMuon/data/omtf_config/Patterns_template.xml")
0220 #process.simOmtfPhase2Digis.patternsXMLFiles = cms.VPSet(cms.PSet(patternsXMLFile = cms.FileInPath("L1Trigger/L1TMuon/data/omtf_config/GPs_parametrised_plus_v1.xml")),
0221 #                                                       cms.PSet(patternsXMLFile = cms.FileInPath("L1Trigger/L1TMuon/data/omtf_config/GPs_parametrised_minus_v1.xml"))
0222 #)
0223 
0224 process.simOmtfPhase2Digis.patternGenerator = cms.string("patternGen")
0225 
0226 process.simOmtfPhase2Digis.patternType = cms.string("GoldenPatternWithStat")
0227 process.simOmtfPhase2Digis.generatePatterns = cms.bool(True)
0228 process.simOmtfPhase2Digis.cleanStubs = cms.bool(True) #has sense for the samples with secondaries
0229 
0230 process.simOmtfPhase2Digis.optimisedPatsXmlFile = cms.string("Patterns_layerStat_" + version + "_" + filesNameLike + ".xml")
0231 
0232 process.simOmtfPhase2Digis.rpcMaxClusterSize = cms.int32(3)
0233 process.simOmtfPhase2Digis.rpcMaxClusterCnt = cms.int32(2)
0234 process.simOmtfPhase2Digis.rpcDropAllClustersIfMoreThanMax = cms.bool(True)
0235 
0236 process.simOmtfPhase2Digis.minCSCStubRME12 = cms.int32(410) #[cm]
0237 process.simOmtfPhase2Digis.minCSCStubR = cms.int32(500) #[cm]
0238 
0239 process.simOmtfPhase2Digis.minDtPhiQuality = cms.int32(4)
0240 process.simOmtfPhase2Digis.minDtPhiBQuality = cms.int32(4)
0241 
0242 process.simOmtfPhase2Digis.dtRefHitMinQuality =  cms.int32(4)
0243 
0244 process.simOmtfPhase2Digis.usePhiBExtrapolationFromMB1 = cms.bool(True)
0245 process.simOmtfPhase2Digis.usePhiBExtrapolationFromMB2 = cms.bool(True)
0246 
0247 process.simOmtfPhase2Digis.useStubQualInExtr  = cms.bool(True)
0248 process.simOmtfPhase2Digis.useEndcapStubsRInExtr  = cms.bool(True)
0249 process.simOmtfPhase2Digis.useFloatingPointExtrapolation  = cms.bool(False)
0250 process.simOmtfPhase2Digis.extrapolFactorsFilename = cms.FileInPath("L1Trigger/L1TMuon/data/omtf_config/ExtrapolationFactors_ExtraplMB1nadMB2DTQualAndR_EtaValueP1Scale_t25c.xml")
0251 
0252 process.simOmtfPhase2Digis.stubEtaEncoding = cms.string("valueP1Scale")  
0253 
0254 process.simOmtfPhase2Digis.goldenPatternResultFinalizeFunction = cms.int32(3) ## is needed here , becasue it just counts the number of layers with a stub
0255 
0256 #process.dumpED = cms.EDAnalyzer("EventContentAnalyzer")
0257 #process.dumpES = cms.EDAnalyzer("PrintEventSetupContent")
0258 
0259 process.L1TMuonSeq = cms.Sequence( process.simOmtfPhase2Digis 
0260                                    #+ process.dumpED
0261                                    #+ process.dumpES
0262 )
0263 
0264 if not regeneratedL1DT :
0265     process.L1TMuonPath = cms.Path(process.L1TMuonSeq) ########################################<<<<<<!!!!!!!!!!!!!!!!!!!!!!!!!!!
0266 else :
0267     process.L1TMuonPath = cms.Path(process.CalibratedDigis * process.dtTriggerPhase2PrimitiveDigis * process.L1TMuonSeq)
0268 
0269 
0270 #process.L1TMuonPath = cms.Path(process.L1TMuonSeq)
0271 
0272 #process.out = cms.OutputModule("PoolOutputModule", 
0273 #   fileName = cms.untracked.string("l1tomtf_superprimitives1.root")
0274 #)
0275 
0276 #process.output_step = cms.EndPath(process.out)
0277 #process.schedule = cms.Schedule(process.L1TMuonPath)
0278 #process.schedule.extend([process.output_step])