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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
|
import FWCore.ParameterSet.Config as cms
process = cms.Process("PROD")
process.options = cms.untracked.PSet(
numberOfStreams = cms.untracked.uint32(1)
)
process.maxEvents = cms.untracked.PSet(
input = cms.untracked.int32(3)
)
process.source = cms.Source("EmptySource")
process.WhatsItESProducer = cms.ESProducer("WhatsItESProducer")
process.DoodadESSource = cms.ESSource("DoodadESSource")
process.thingProducer = cms.EDProducer(
"DetSetVectorThingProducer",
offsetDelta = cms.int32(100),
nThings = cms.int32(50),
detSets = cms.vint32(1,2,3)
)
process.anotherThingProducer = cms.EDProducer("DetSetVectorThingProducer",
offsetDelta = cms.int32(100),
nThings = cms.int32(50),
detSets = cms.vint32(1,2,3)
)
process.thirdThingProducer = cms.EDProducer("DetSetVectorThingProducer",
offsetDelta = cms.int32(100),
nThings = cms.int32(50),
detSets = cms.vint32(1,2,3)
)
process.trackOfThingsProducerA = cms.EDProducer("TrackOfDSVThingsProducer",
inputTag = cms.InputTag('thingProducer'),
keysToReference = cms.vuint32(
list(range(0,9)) +
list(range(50,59)) +
list(range(100,109))
),
nTracks = cms.uint32(8*3)
)
process.trackOfAnotherThingsProducerA = cms.EDProducer("TrackOfDSVThingsProducer",
inputTag = cms.InputTag('anotherThingProducer'),
keysToReference = cms.vuint32(
list(range(0,5)) +
list(range(50,55)) +
list(range(100,105))
),
nTracks = cms.uint32(4*3)
)
process.trackOfThirdThingsProducerA = cms.EDProducer("TrackOfDSVThingsProducer",
inputTag = cms.InputTag('thirdThingProducer'),
keysToReference = cms.vuint32(
list(range(0,3)) +
list(range(50,53)) +
list(range(100,103))
),
nTracks = cms.uint32(2*3)
)
process.thinningThingProducerA = cms.EDProducer("ThinningDSVThingProducer",
inputTag = cms.InputTag('thingProducer'),
trackTag = cms.InputTag('trackOfThingsProducerA'),
expectedDetSets = cms.uint32(3),
expectedDetSetSize = cms.uint32(50),
)
process.slimmingThingProducerA = cms.EDProducer("SlimmingDSVThingProducer",
inputTag = cms.InputTag('thingProducer'),
trackTag = cms.InputTag('trackOfThingsProducerA'),
offsetToThinnedKey = cms.uint32(0),
expectedDetSets = cms.uint32(3),
expectedDetSetSize = cms.uint32(50),
)
process.thinningAnotherThingProducerA = cms.EDProducer("ThinningDSVThingProducer",
inputTag = cms.InputTag('anotherThingProducer'),
trackTag = cms.InputTag('trackOfThingsProducerA'),
expectedDetSets = cms.uint32(3),
expectedDetSetSize = cms.uint32(50),
thinnedRefSetIgnoreInvalidParentRef = cms.bool(True),
)
process.thinningAnotherThingProducerA2 = cms.EDProducer("ThinningDSVThingProducer",
inputTag = cms.InputTag('thingProducer'),
trackTag = cms.InputTag('trackOfAnotherThingsProducerA'),
expectedDetSets = cms.uint32(3),
expectedDetSetSize = cms.uint32(50),
thinnedRefSetIgnoreInvalidParentRef = cms.bool(True),
)
process.thinningAnotherThingProducerA3 = cms.EDProducer("ThinningDSVThingProducer",
inputTag = cms.InputTag('anotherThingProducer'),
trackTag = cms.InputTag('trackOfThirdThingsProducerA'),
expectedDetSets = cms.uint32(3),
expectedDetSetSize = cms.uint32(50),
thinnedRefSetIgnoreInvalidParentRef = cms.bool(True),
)
process.testA = cms.EDAnalyzer("ThinningDSVTestAnalyzer",
parentTag = cms.InputTag('thingProducer'),
thinnedTag = cms.InputTag('thinningThingProducerA'),
associationTag = cms.InputTag('thinningThingProducerA'),
trackTag = cms.InputTag('trackOfThingsProducerA'),
expectedParentContent = cms.VPSet(
cms.PSet(id = cms.uint32(1), values = cms.vint32(range(0,50))),
cms.PSet(id = cms.uint32(2), values = cms.vint32(range(50,100))),
cms.PSet(id = cms.uint32(3), values = cms.vint32(range(100,150))),
),
expectedThinnedContent = cms.VPSet(
cms.PSet(id = cms.uint32(1), values = cms.vint32(range(0,9))),
cms.PSet(id = cms.uint32(2), values = cms.vint32(range(50,59))),
cms.PSet(id = cms.uint32(3), values = cms.vint32(range(100,109))),
),
expectedIndexesIntoParent = cms.vuint32(
list(range(0,9)) +
list(range(50,59)) +
list(range(100,109))
),
expectedNumberOfTracks = cms.uint32(8*3),
expectedValues = cms.vint32(
list(range(0,9)) +
list(range(50,59)) +
list(range(100,109))
)
)
process.slimmingTestA = cms.EDAnalyzer("ThinningDSVTestAnalyzer",
parentTag = cms.InputTag('thingProducer'),
thinnedTag = cms.InputTag('slimmingThingProducerA'),
associationTag = cms.InputTag('slimmingThingProducerA'),
trackTag = cms.InputTag('trackOfThingsProducerA'),
thinnedSlimmedCount = cms.int32(1),
expectedParentContent = cms.VPSet(
cms.PSet(id = cms.uint32(1), values = cms.vint32(range(0,50))),
cms.PSet(id = cms.uint32(2), values = cms.vint32(range(50,100))),
cms.PSet(id = cms.uint32(3), values = cms.vint32(range(100,150))),
),
expectedThinnedContent = cms.VPSet(
cms.PSet(id = cms.uint32(1), values = cms.vint32(range(0,9))),
cms.PSet(id = cms.uint32(2), values = cms.vint32(range(50,59))),
cms.PSet(id = cms.uint32(3), values = cms.vint32(range(100,109))),
),
expectedIndexesIntoParent = cms.vuint32(
list(range(0,9)) +
list(range(50,59)) +
list(range(100,109))
),
expectedNumberOfTracks = cms.uint32(8*3),
expectedValues = cms.vint32(
list(range(0,9)) +
list(range(50,59)) +
list(range(100,109))
)
)
process.anotherTestA = cms.EDAnalyzer("ThinningDSVTestAnalyzer",
parentTag = cms.InputTag('anotherThingProducer'),
thinnedTag = cms.InputTag('thinningAnotherThingProducerA'),
associationTag = cms.InputTag('thinningAnotherThingProducerA'),
trackTag = cms.InputTag('trackOfThingsProducerA'),
expectedParentContent = cms.VPSet(),
expectedThinnedContent = cms.VPSet(),
expectedIndexesIntoParent = cms.vuint32(),
expectedNumberOfTracks = cms.uint32(8*3),
expectedValues = cms.vint32()
)
process.anotherTestA2 = cms.EDAnalyzer("ThinningDSVTestAnalyzer",
parentTag = cms.InputTag('thingProducer'),
thinnedTag = cms.InputTag('thinningAnotherThingProducerA2'),
associationTag = cms.InputTag('thinningAnotherThingProducerA2'),
trackTag = cms.InputTag('trackOfAnotherThingsProducerA'),
expectedParentContent = cms.VPSet(),
expectedThinnedContent = cms.VPSet(),
expectedIndexesIntoParent = cms.vuint32(),
expectedNumberOfTracks = cms.uint32(4*3),
expectedValues = cms.vint32()
)
process.anotherTestA3 = cms.EDAnalyzer("ThinningDSVTestAnalyzer",
parentTag = cms.InputTag('anotherThingProducer'),
thinnedTag = cms.InputTag('thinningAnotherThingProducerA3'),
associationTag = cms.InputTag('thinningAnotherThingProducerA3'),
trackTag = cms.InputTag('trackOfThirdThingsProducerA'),
expectedParentContent = cms.VPSet(),
expectedThinnedContent = cms.VPSet(),
expectedIndexesIntoParent = cms.vuint32(),
expectedNumberOfTracks = cms.uint32(2*3),
expectedValues = cms.vint32()
)
process.out = cms.OutputModule("PoolOutputModule",
fileName = cms.untracked.string('testDetSetVectorThinningTest1.root'),
outputCommands = cms.untracked.vstring(
'drop *',
'keep *_trackOfThingsProducerA_*_*',
'keep *_slimmingThingProducerA_*_*',
)
)
process.p = cms.Path(
process.thingProducer
* process.anotherThingProducer
* process.thirdThingProducer
* process.trackOfThingsProducerA
* process.trackOfAnotherThingsProducerA
* process.trackOfThirdThingsProducerA
* process.thinningThingProducerA
* process.slimmingThingProducerA
* process.thinningAnotherThingProducerA
* process.thinningAnotherThingProducerA2
* process.thinningAnotherThingProducerA3
* process.testA
* process.slimmingTestA
* process.anotherTestA
* process.anotherTestA2
* process.anotherTestA3
)
process.ep = cms.EndPath(
process.out
)
|