Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:12:42

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(10)
0013 )
0014 
0015 process.source = cms.Source("EmptySource",
0016     firstLuminosityBlock = cms.untracked.uint32(1),
0017     numberEventsInLuminosityBlock = cms.untracked.uint32(5),
0018     firstEvent = cms.untracked.uint32(21),
0019     firstRun = cms.untracked.uint32(1),
0020     numberEventsInRun = cms.untracked.uint32(5)
0021 )
0022 
0023 process.thingWithMergeProducer = cms.EDProducer("ThingWithMergeProducer",
0024     labelsToGet = cms.untracked.vstring('m2')
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         10001,   10002,  10003
0082     ),
0083 
0084     expectedEndRunProd = cms.untracked.vint32(
0085         100001, 100002, 100003,
0086         100001, 100002, 100003
0087     ),
0088 
0089     expectedBeginLumiProd = cms.untracked.vint32(
0090         101,       102,    103,
0091         101,       102,    103
0092     ),
0093 
0094     expectedEndLumiProd = cms.untracked.vint32(
0095         1001,     1002,   1003,
0096         1001,     1002,   1003
0097     ),
0098 
0099     verbose = cms.untracked.bool(False),
0100 
0101     expectedParents = cms.untracked.vstring(
0102         'm2', 'm2', 'm2', 'm2', 'm2',
0103         'm2', 'm2', 'm2', 'm2', 'm2'),
0104     testAlias = cms.untracked.bool(True)
0105 )
0106 
0107 process.A = cms.EDProducer("ThingWithMergeProducer")
0108 
0109 process.B = cms.EDProducer("ThingWithMergeProducer",
0110     labelsToGet = cms.untracked.vstring('A')
0111 )
0112 
0113 process.C = cms.EDProducer("ThingWithMergeProducer",
0114     labelsToGet = cms.untracked.vstring('A')
0115 )
0116 
0117 process.D = cms.EDProducer("ThingWithMergeProducer",
0118     labelsToGet = cms.untracked.vstring('B')
0119 )
0120 
0121 process.E = cms.EDProducer("ThingWithMergeProducer",
0122     labelsToGet = cms.untracked.vstring('B', 'C')
0123 )
0124 
0125 process.F = cms.EDProducer("ThingWithMergeProducer",
0126     labelsToGet = cms.untracked.vstring('C')
0127 )
0128 
0129 process.G = cms.EDProducer("ThingWithMergeProducer",
0130     labelsToGet = cms.untracked.vstring('A')
0131 )
0132 
0133 process.H = cms.EDProducer("ThingWithMergeProducer",
0134     labelsToGet = cms.untracked.vstring('G')
0135 )
0136 
0137 process.I = cms.EDProducer("ThingWithMergeProducer",
0138     labelsToGet = cms.untracked.vstring('A')
0139 )
0140 
0141 process.J = cms.EDProducer("ThingWithMergeProducer",
0142     labelsToGet = cms.untracked.vstring('I')
0143 )
0144 
0145 process.K = cms.EDProducer("ThingWithMergeProducer",
0146     labelsToGet = cms.untracked.vstring('I')
0147 )
0148 
0149 process.L = cms.EDProducer("ThingWithMergeProducer",
0150     labelsToGet = cms.untracked.vstring('F')
0151 )
0152 
0153 process.out = cms.OutputModule("PoolOutputModule",
0154     fileName = cms.untracked.string('testRunMerge2.root'),
0155     outputCommands = cms.untracked.vstring(
0156         'keep *', 
0157         'drop *_makeThingToBeDropped1_*_*',
0158         'drop *_makeThingToBeDropped2_*_*'
0159     )
0160 )
0161 
0162 process.p1 = cms.Path((process.m1 + process.m2 + process.m3) *
0163                      process.thingWithMergeProducer *
0164                      process.makeThingToBeDropped2 *
0165                      process.test *
0166                      process.tryNoPut *
0167                      process.makeThingToBeDropped *
0168                      process.makeThingToBeDropped1 *
0169                      process.dependsOnThingToBeDropped1)
0170 
0171 process.p2 = cms.Path(process.A *
0172                       process.B *
0173                       process.C *
0174                       process.D *
0175                       process.E *
0176                       process.F *
0177                       process.G *
0178                       process.H *
0179                       process.I *
0180                       process.J *
0181                       process.K *
0182                       process.L)
0183 
0184 process.e = cms.EndPath(process.out)