Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 11:03:05

0001 import FWCore.ParameterSet.Config as cms
0002 
0003 process = cms.Process("PROD")
0004 
0005 process.load("FWCore.MessageService.MessageLogger_cfi")
0006 process.MessageLogger.cerr.FwkReport.reportEvery = 1000
0007 
0008 import FWCore.Framework.test.cmsExceptionsFatal_cff
0009 process.options = FWCore.Framework.test.cmsExceptionsFatal_cff.options
0010 
0011 process.maxEvents = cms.untracked.PSet(
0012     input = cms.untracked.int32(1)
0013 )
0014 
0015 process.source = cms.Source("EmptySource",
0016     firstLuminosityBlock = cms.untracked.uint32(100),
0017     numberEventsInLuminosityBlock = cms.untracked.uint32(100),
0018     firstEvent = cms.untracked.uint32(100),
0019     firstRun = cms.untracked.uint32(100),
0020     numberEventsInRun = cms.untracked.uint32(100)
0021 )
0022 
0023 process.thingWithMergeProducer = cms.EDProducer("ThingWithMergeProducer",
0024     labelsToGet = cms.untracked.vstring('m1')
0025 )
0026 
0027 # These are here only for tests of parentage merging
0028 process.m1 = cms.EDProducer("ThingWithMergeProducer")
0029 process.m2 = cms.EDProducer("ThingWithMergeProducer")
0030 process.m3 = cms.EDProducer("ThingWithMergeProducer")
0031 
0032 process.tryNoPut = cms.EDProducer("ThingWithMergeProducer",
0033     noPut = cms.untracked.bool(True)
0034 )
0035 
0036 # This one tests products dropped and then restored by secondary file
0037 # input
0038 process.makeThingToBeDropped = cms.EDProducer("ThingWithMergeProducer")
0039 
0040 process.makeThingToBeDropped2 = cms.EDProducer("ThingWithMergeProducer")
0041 
0042 process.aliasForThingToBeDropped2 = cms.EDAlias(
0043     makeThingToBeDropped2  = cms.VPSet(
0044       cms.PSet(type = cms.string('edmtestThing'),
0045                fromProductInstance = cms.string('event'),
0046                toProductInstance = cms.string('instance2')),
0047       cms.PSet(type = cms.string('edmtestThing'),
0048                fromProductInstance = cms.string('endLumi'),
0049                toProductInstance = cms.string('endLumi2')),
0050       cms.PSet(type = cms.string('edmtestThing'),
0051                fromProductInstance = cms.string('endRun'),
0052                toProductInstance = cms.string('endRun2'))
0053     )
0054 )
0055 
0056 # This product will be produced in configuration PROD1 and PROD5
0057 # In PROD2 it will be produced and dropped and there will be another
0058 # product whose provenance includes it as a parent. In PROD3 it will
0059 # be produced and dropped and there will not be a product that includes
0060 # it as a parent. In PROD4 it will never be produced at all.
0061 process.makeThingToBeDropped1 = cms.EDProducer("ThingWithMergeProducer")
0062 process.dependsOnThingToBeDropped1 = cms.EDProducer("ThingWithMergeProducer",
0063     labelsToGet = cms.untracked.vstring('makeThingToBeDropped1')
0064 )
0065 
0066 process.test = cms.EDAnalyzer("TestMergeResults",
0067 
0068     #   Check to see that the value we read matches what we know
0069     #   was written. Expected values listed below come in sets of three
0070     #      value expected in Thing
0071     #      value expected in ThingWithMerge
0072     #      value expected in ThingWithIsEqual
0073     #   Each set of 3 is tested at endRun for the expected
0074     #   run values or at endLuminosityBlock for the expected
0075     #   lumi values. And then the next set of three values
0076     #   is tested at the next endRun or endLuminosityBlock.
0077     #   When the sequence of parameter values is exhausted it stops checking
0078     #   0's are just placeholders, if the value is a "0" the check is not made.
0079     expectedBeginRunProd = cms.untracked.vint32(
0080         10001,   10002,  10003
0081     ),
0082 
0083     expectedEndRunProd = cms.untracked.vint32(
0084         100001, 100002, 100003
0085     ),
0086 
0087     expectedBeginLumiProd = cms.untracked.vint32(
0088         101,       102,    103
0089     ),
0090 
0091     expectedEndLumiProd = cms.untracked.vint32(
0092         1001,     1002,   1003
0093     ),
0094 
0095     verbose = cms.untracked.bool(False),
0096 
0097     expectedParents = cms.untracked.vstring(
0098         'm1'),
0099     testAlias = cms.untracked.bool(True)
0100 )
0101 
0102 process.A = cms.EDProducer("ThingWithMergeProducer")
0103 
0104 process.B = cms.EDProducer("ThingWithMergeProducer",
0105     labelsToGet = cms.untracked.vstring('A')
0106 )
0107 
0108 process.C = cms.EDProducer("ThingWithMergeProducer",
0109     labelsToGet = cms.untracked.vstring('A')
0110 )
0111 
0112 process.D = cms.EDProducer("ThingWithMergeProducer",
0113     labelsToGet = cms.untracked.vstring('B')
0114 )
0115 
0116 process.E = cms.EDProducer("ThingWithMergeProducer",
0117     labelsToGet = cms.untracked.vstring('B', 'C')
0118 )
0119 
0120 process.F = cms.EDProducer("ThingWithMergeProducer",
0121     labelsToGet = cms.untracked.vstring('C')
0122 )
0123 
0124 process.G = cms.EDProducer("ThingWithMergeProducer",
0125     labelsToGet = cms.untracked.vstring('A')
0126 )
0127 
0128 process.H = cms.EDProducer("ThingWithMergeProducer",
0129     labelsToGet = cms.untracked.vstring('G')
0130 )
0131 
0132 process.I = cms.EDProducer("ThingWithMergeProducer",
0133     labelsToGet = cms.untracked.vstring('A')
0134 )
0135 
0136 process.J = cms.EDProducer("ThingWithMergeProducer",
0137     labelsToGet = cms.untracked.vstring('I')
0138 )
0139 
0140 process.K = cms.EDProducer("ThingWithMergeProducer",
0141     labelsToGet = cms.untracked.vstring('I')
0142 )
0143 
0144 process.L = cms.EDProducer("ThingWithMergeProducer",
0145     labelsToGet = cms.untracked.vstring('F')
0146 )
0147 
0148 process.out = cms.OutputModule("PoolOutputModule",
0149     fileName = cms.untracked.string('testRunMerge0.root'),
0150     outputCommands = cms.untracked.vstring(
0151         'keep *', 
0152         'drop *_makeThingToBeDropped2_*_*'
0153     )
0154 )
0155 
0156 process.p1 = cms.Path((process.m1 + process.m2 + process.m3) *
0157                      process.thingWithMergeProducer *
0158                      process.makeThingToBeDropped2 *
0159                      process.test *
0160                      process.tryNoPut *
0161                      process.makeThingToBeDropped *
0162                      process.makeThingToBeDropped1 *
0163                      process.dependsOnThingToBeDropped1)
0164 
0165 process.p2 = cms.Path(process.A *
0166                       process.B *
0167                       process.C *
0168                       process.D *
0169                       process.E *
0170                       process.F *
0171                       process.G *
0172                       process.H *
0173                       process.I *
0174                       process.J *
0175                       process.K *
0176                       process.L)
0177 
0178 process.e = cms.EndPath(process.out)