Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-03-23 15:57:32

0001 #!/usr/bin/env python3
0002 """
0003 _RunRepack_
0004 
0005 Test/Debugging harness for the repack configuration builder
0006 
0007 """
0008 
0009 import sys
0010 import getopt
0011 
0012 from Configuration.DataProcessing.Repack import repackProcess
0013 
0014 
0015 class RunRepack:
0016 
0017     def __init__(self):
0018         self.selectEvents = None
0019         self.inputLFN = None
0020         self.dataTier = None
0021         self.rawSkim = None
0022         self.globalTag= None
0023 
0024     def __call__(self):
0025         if self.inputLFN == None:
0026             msg = "No --lfn specified"
0027             raise RuntimeError(msg)
0028         allowedDataTiers = ["RAW", "HLTSCOUT", "L1SCOUT"]
0029         if self.dataTier == None: 
0030             self.dataTier = "RAW"
0031         elif self.dataTier not in allowedDataTiers:
0032             msg = f"{self.dataTier} isn't an allowed datatier for repacking. Allowed data tiers: {allowedDataTiers}"
0033             raise RuntimeError(msg)
0034 
0035         outputs = []
0036         outputs.append( { 'moduleLabel' : f"write_PrimDS1_{self.dataTier}" } )
0037         outputs.append( { 'moduleLabel' : f"write_PrimDS2_{self.dataTier}" } )
0038         if self.selectEvents != None:
0039             outputs[0]['selectEvents'] = self.selectEvents.split(',')
0040             outputs[1]['selectEvents'] = self.selectEvents.split(',')
0041         if self.rawSkim != None:
0042             outputs[0]['rawSkim'] = self.rawSkim
0043             outputs[1]['rawSkim'] = None
0044         try:
0045             process = repackProcess(outputs = outputs, globalTag = self.globalTag, dataTier = self.dataTier)
0046         except Exception as ex:
0047             msg = "Error creating process for Repack:\n"
0048             msg += str(ex)
0049             raise RuntimeError(msg)
0050 
0051         process.source.fileNames.append(self.inputLFN)
0052 
0053         import FWCore.ParameterSet.Config as cms
0054 
0055         process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(10) )
0056 
0057         psetFile = open("RunRepackCfg.py", "w")
0058         psetFile.write(process.dumpPython())
0059         psetFile.close()
0060         cmsRun = "cmsRun -e RunRepackCfg.py"
0061         print("Now do:\n%s" % cmsRun)
0062         
0063                 
0064 
0065 
0066 if __name__ == '__main__':
0067     valid = ["select-events=", "lfn=", "data-tier=", "raw-skim=", "global-tag="]
0068              
0069     usage = \
0070 """
0071 RunRepack.py <options>
0072 
0073 Where options are:
0074  --select-events (option, event selection based on trigger paths)
0075  --lfn=/store/input/lfn
0076  --data-tier=RAW|HLTSCOUT|L1SCOUT
0077 
0078 Example:
0079 python RunRepack.py --select-events HLT:path1,HLT:path2 --lfn /store/whatever --data-tier RAW|HLTSCOUT|L1SCOUT
0080 
0081 """
0082     try:
0083         opts, args = getopt.getopt(sys.argv[1:], "", valid)
0084     except getopt.GetoptError as ex:
0085         print(usage)
0086         print(str(ex))
0087         sys.exit(1)
0088 
0089 
0090     repackinator = RunRepack()
0091 
0092     for opt, arg in opts:
0093         if opt == "--select-events":
0094             repackinator.selectEvents = arg
0095         if opt == "--lfn" :
0096             repackinator.inputLFN = arg
0097         if opt == "--data-tier" :
0098             repackinator.dataTier = arg
0099         if opt == "--raw-skim":
0100             repackinator.rawSkim = arg
0101         if opt == "--global-tag":
0102             repackinator.globalTag = arg
0103 
0104     repackinator()
0105 
0106