Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
import FWCore.ParameterSet.Config as cms

process = cms.Process("TEST2")

process.source = cms.Source("PoolSource",
    fileNames = cms.untracked.vstring(
        'file:testDropOnInput1_1.root',
        'file:testDropOnInput1_2.root'
    ),
    inputCommands = cms.untracked.vstring(
        'keep *',
        'drop *_prod1_*_*'
    ),
    dropDescendantsOfDroppedBranches = cms.untracked.bool(False)
)

process.prodD = cms.EDProducer("AddIntsProducer",
    labels = cms.VInputTag("prodC"),
    onlyGetOnEvent = cms.untracked.uint32(1)
)

process.prodE = cms.EDProducer("AddIntsProducer",
    labels = cms.VInputTag("prodD"),
    onlyGetOnEvent = cms.untracked.uint32(2)
)

process.K1 = cms.EDProducer("AddIntsProducer",
    labels = cms.VInputTag()
)

process.K2 = cms.EDProducer("AddIntsProducer",
    labels = cms.VInputTag()
)

process.NK1 = cms.EDProducer("AddIntsProducer",
    labels = cms.VInputTag("K1", "K2")
)

process.NK2 = cms.EDProducer("AddIntsProducer",
    labels = cms.VInputTag("NK1")
)

process.NK3 = cms.EDProducer("AddIntsProducer",
    labels = cms.VInputTag("NK2")
)

process.K3 = cms.EDProducer("AddIntsProducer",
    labels = cms.VInputTag()
)

process.K4 = cms.EDProducer("AddIntsProducer",
    labels = cms.VInputTag()
)

process.NK4 = cms.EDProducer("AddIntsProducer",
    labels = cms.VInputTag("K3", "K4")
)

process.NK5 = cms.EDProducer("AddIntsProducer",
    labels = cms.VInputTag("NK4")
)

process.K5 = cms.EDProducer("AddIntsProducer",
    labels = cms.VInputTag("NK5")
)

process.NK6 = cms.EDProducer("AddIntsProducer",
    labels = cms.VInputTag("K4")
)

process.NK7 = cms.EDProducer("AddIntsProducer",
    labels = cms.VInputTag("NK6")
)

process.NK8 = cms.EDProducer("AddIntsProducer",
    labels = cms.VInputTag("NK6")
)

process.K103 = cms.EDProducer("AddIntsProducer",
    labels = cms.VInputTag("A101")
)

process.K203 = cms.EDProducer("AddIntsProducer",
    labels = cms.VInputTag("K201")
)

process.out = cms.OutputModule("PoolOutputModule",
    fileName = cms.untracked.string('testDropOnInput3.root'),
    outputCommands = cms.untracked.vstring(
        'keep *', 
        'drop *_NK*_*_*'
    )
)

process.a1 = cms.EDAnalyzer("TestFindProduct",
  inputTags = cms.untracked.VInputTag(
      cms.InputTag("prod3"),
      cms.InputTag("prodA"),
      cms.InputTag("prodB"),
      cms.InputTag("prodC"),
      cms.InputTag("prodD"),
      cms.InputTag("prodE")
  ),
  inputTagsNotFound = cms.untracked.VInputTag(
      cms.InputTag("prod1"),
      cms.InputTag("prod2")
  )
)

process.test1 = cms.EDAnalyzer("TestParentage",
                               inputTag = cms.InputTag("A101"),
                               expectedAncestors = cms.vstring("K100")
)

process.test2 = cms.EDAnalyzer("TestParentage",
                               inputTag = cms.InputTag("K100"),
                               expectedAncestors = cms.vstring()
)

process.test3 = cms.EDAnalyzer("TestParentage",
                               inputTag = cms.InputTag("K102"),
                               expectedAncestors = cms.vstring("K100", "NK101")
)

process.test4 = cms.EDAnalyzer("TestParentage",
                               inputTag = cms.InputTag("K103"),
                               expectedAncestors = cms.vstring("K100", "NK101")
)

process.test5 = cms.EDAnalyzer("TestParentage",
                               inputTag = cms.InputTag("K104"),
                               expectedAncestors = cms.vstring("K100", "NK101")
)

process.path1 = cms.Path(process.prodD + process.prodE + process.a1)
process.path2 = cms.Path(process.K1 + process.K2 + process.NK1 + process.NK2 + process.NK3)
process.path3 = cms.Path(process.K3 + process.K4 + process.NK4 + process.NK5 +
                         process.K5 + process.NK6 + process.NK7 +
                         process.NK8)
process.path4 = cms.Path(process.K103 + process.K203)

process.endpath = cms.EndPath(process.out * process.test1 * process.test2 *
                              process.test3 * process.test4 * process.test5)