BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtIdSet.cc
Go to the documentation of this file.
1//--------------------------------------------------------------------------
2//
3// Environment:
4// This software is part of the EvtGen package developed jointly
5// for the BaBar and CLEO collaborations. If you use all or part
6// of it, please give an appropriate acknowledgement.
7//
8// Copyright Information: See EvtGen/COPYRIGHT
9// Copyright (C) 1998 Caltech, UCSB
10//
11// Module: EvtId.cc
12//
13// Description: Class for particle Id used in EvtGen.
14//
15// Modification history:
16//
17// DJL Jan 4, 2000 Module created
18//
19//------------------------------------------------------------------------
20//
21#include "EvtPatches.hh"
22
23#include "EvtIdSet.hh"
24#include "EvtPDL.hh"
25#include <iostream>
26#include <string>
27
28EvtIdSet::EvtIdSet( const EvtId name1 ) {
29 _numInList = 1;
30 _list = new EvtId[_numInList];
31
32 _list[0] = name1;
33}
34
35EvtIdSet::EvtIdSet( const std::string name1 ) {
36 _numInList = 1;
37 _list = new EvtId[_numInList];
38
39 _list[0] = EvtPDL::getId( name1 );
40}
41
42EvtIdSet::EvtIdSet( const EvtId name1, const EvtId name2 ) {
43 _numInList = 2;
44 _list = new EvtId[_numInList];
45
46 _list[0] = name1;
47 _list[1] = name2;
48}
49
50EvtIdSet::EvtIdSet( const std::string name1, const std::string name2 ) {
51 _numInList = 2;
52 _list = new EvtId[_numInList];
53
54 _list[0] = EvtPDL::getId( name1 );
55 _list[1] = EvtPDL::getId( name2 );
56}
57
58EvtIdSet::EvtIdSet( const EvtId name1, const EvtId name2, const EvtId name3 ) {
59 _numInList = 3;
60 _list = new EvtId[_numInList];
61
62 _list[0] = name1;
63 _list[1] = name2;
64 _list[2] = name3;
65}
66
67EvtIdSet::EvtIdSet( const std::string name1, const std::string name2,
68 const std::string name3 ) {
69 _numInList = 3;
70 _list = new EvtId[_numInList];
71
72 _list[0] = EvtPDL::getId( name1 );
73 _list[1] = EvtPDL::getId( name2 );
74 _list[2] = EvtPDL::getId( name3 );
75}
76
77EvtIdSet::EvtIdSet( const EvtId name1, const EvtId name2, const EvtId name3,
78 const EvtId name4 ) {
79 _numInList = 4;
80 _list = new EvtId[_numInList];
81
82 _list[0] = name1;
83 _list[1] = name2;
84 _list[2] = name3;
85 _list[3] = name4;
86}
87
88EvtIdSet::EvtIdSet( const std::string name1, const std::string name2, const std::string name3,
89 const std::string name4 ) {
90 _numInList = 4;
91 _list = new EvtId[_numInList];
92
93 _list[0] = EvtPDL::getId( name1 );
94 _list[1] = EvtPDL::getId( name2 );
95 _list[2] = EvtPDL::getId( name3 );
96 _list[3] = EvtPDL::getId( name4 );
97}
98
99EvtIdSet::EvtIdSet( const EvtId name1, const EvtId name2, const EvtId name3, const EvtId name4,
100 const EvtId name5 ) {
101 _numInList = 5;
102 _list = new EvtId[_numInList];
103
104 _list[0] = name1;
105 _list[1] = name2;
106 _list[2] = name3;
107 _list[3] = name4;
108 _list[4] = name5;
109}
110
111EvtIdSet::EvtIdSet( const std::string name1, const std::string name2, const std::string name3,
112 const std::string name4, const std::string name5 ) {
113 _numInList = 5;
114 _list = new EvtId[_numInList];
115
116 _list[0] = EvtPDL::getId( name1 );
117 _list[1] = EvtPDL::getId( name2 );
118 _list[2] = EvtPDL::getId( name3 );
119 _list[3] = EvtPDL::getId( name4 );
120 _list[4] = EvtPDL::getId( name5 );
121}
122
123EvtIdSet::EvtIdSet( const EvtId name1, const EvtId name2, const EvtId name3, const EvtId name4,
124 const EvtId name5, const EvtId name6 ) {
125 _numInList = 6;
126 _list = new EvtId[_numInList];
127
128 _list[0] = name1;
129 _list[1] = name2;
130 _list[2] = name3;
131 _list[3] = name4;
132 _list[4] = name5;
133 _list[5] = name6;
134}
135
136EvtIdSet::EvtIdSet( const std::string name1, const std::string name2, const std::string name3,
137 const std::string name4, const std::string name5,
138 const std::string name6 ) {
139 _numInList = 6;
140 _list = new EvtId[_numInList];
141
142 _list[0] = EvtPDL::getId( name1 );
143 _list[1] = EvtPDL::getId( name2 );
144 _list[2] = EvtPDL::getId( name3 );
145 _list[3] = EvtPDL::getId( name4 );
146 _list[4] = EvtPDL::getId( name5 );
147 _list[5] = EvtPDL::getId( name6 );
148}
149
150EvtIdSet::EvtIdSet( const EvtId name1, const EvtId name2, const EvtId name3, const EvtId name4,
151 const EvtId name5, const EvtId name6, const EvtId name7 ) {
152 _numInList = 7;
153 _list = new EvtId[_numInList];
154
155 _list[0] = name1;
156 _list[1] = name2;
157 _list[2] = name3;
158 _list[3] = name4;
159 _list[4] = name5;
160 _list[5] = name6;
161 _list[6] = name7;
162}
163
164EvtIdSet::EvtIdSet( const std::string name1, const std::string name2, const std::string name3,
165 const std::string name4, const std::string name5, const std::string name6,
166 const std::string name7 ) {
167 _numInList = 7;
168 _list = new EvtId[_numInList];
169
170 _list[0] = EvtPDL::getId( name1 );
171 _list[1] = EvtPDL::getId( name2 );
172 _list[2] = EvtPDL::getId( name3 );
173 _list[3] = EvtPDL::getId( name4 );
174 _list[4] = EvtPDL::getId( name5 );
175 _list[5] = EvtPDL::getId( name6 );
176 _list[6] = EvtPDL::getId( name7 );
177}
178
179EvtIdSet::EvtIdSet( const EvtId name1, const EvtId name2, const EvtId name3, const EvtId name4,
180 const EvtId name5, const EvtId name6, const EvtId name7,
181 const EvtId name8 ) {
182 _numInList = 8;
183 _list = new EvtId[_numInList];
184
185 _list[0] = name1;
186 _list[1] = name2;
187 _list[2] = name3;
188 _list[3] = name4;
189 _list[4] = name5;
190 _list[5] = name6;
191 _list[6] = name7;
192 _list[7] = name8;
193}
194
195EvtIdSet::EvtIdSet( const std::string name1, const std::string name2, const std::string name3,
196 const std::string name4, const std::string name5, const std::string name6,
197 const std::string name7, const std::string name8 ) {
198 _numInList = 8;
199 _list = new EvtId[_numInList];
200
201 _list[0] = EvtPDL::getId( name1 );
202 _list[1] = EvtPDL::getId( name2 );
203 _list[2] = EvtPDL::getId( name3 );
204 _list[3] = EvtPDL::getId( name4 );
205 _list[4] = EvtPDL::getId( name5 );
206 _list[5] = EvtPDL::getId( name6 );
207 _list[6] = EvtPDL::getId( name7 );
208 _list[7] = EvtPDL::getId( name8 );
209}
210
211EvtIdSet::EvtIdSet( const EvtId name1, const EvtId name2, const EvtId name3, const EvtId name4,
212 const EvtId name5, const EvtId name6, const EvtId name7, const EvtId name8,
213 const EvtId name9 ) {
214 _numInList = 9;
215 _list = new EvtId[_numInList];
216
217 _list[0] = name1;
218 _list[1] = name2;
219 _list[2] = name3;
220 _list[3] = name4;
221 _list[4] = name5;
222 _list[5] = name6;
223 _list[6] = name7;
224 _list[7] = name8;
225 _list[8] = name9;
226}
227
228EvtIdSet::EvtIdSet( const std::string name1, const std::string name2, const std::string name3,
229 const std::string name4, const std::string name5, const std::string name6,
230 const std::string name7, const std::string name8,
231 const std::string name9 ) {
232 _numInList = 9;
233 _list = new EvtId[_numInList];
234
235 _list[0] = EvtPDL::getId( name1 );
236 _list[1] = EvtPDL::getId( name2 );
237 _list[2] = EvtPDL::getId( name3 );
238 _list[3] = EvtPDL::getId( name4 );
239 _list[4] = EvtPDL::getId( name5 );
240 _list[5] = EvtPDL::getId( name6 );
241 _list[6] = EvtPDL::getId( name7 );
242 _list[7] = EvtPDL::getId( name8 );
243 _list[8] = EvtPDL::getId( name9 );
244}
245
246EvtIdSet::EvtIdSet( const EvtId name1, const EvtId name2, const EvtId name3, const EvtId name4,
247 const EvtId name5, const EvtId name6, const EvtId name7, const EvtId name8,
248 const EvtId name9, const EvtId name10 ) {
249 _numInList = 10;
250 _list = new EvtId[_numInList];
251
252 _list[0] = name1;
253 _list[1] = name2;
254 _list[2] = name3;
255 _list[3] = name4;
256 _list[4] = name5;
257 _list[5] = name6;
258 _list[6] = name7;
259 _list[7] = name8;
260 _list[8] = name9;
261 _list[9] = name10;
262}
263
264EvtIdSet::EvtIdSet( const std::string name1, const std::string name2, const std::string name3,
265 const std::string name4, const std::string name5, const std::string name6,
266 const std::string name7, const std::string name8, const std::string name9,
267 const std::string name10 ) {
268 _numInList = 10;
269 _list = new EvtId[_numInList];
270
271 _list[0] = EvtPDL::getId( name1 );
272 _list[1] = EvtPDL::getId( name2 );
273 _list[2] = EvtPDL::getId( name3 );
274 _list[3] = EvtPDL::getId( name4 );
275 _list[4] = EvtPDL::getId( name5 );
276 _list[5] = EvtPDL::getId( name6 );
277 _list[6] = EvtPDL::getId( name7 );
278 _list[7] = EvtPDL::getId( name8 );
279 _list[8] = EvtPDL::getId( name9 );
280 _list[9] = EvtPDL::getId( name10 );
281}
282
283EvtIdSet::EvtIdSet( const EvtId name1, const EvtId name2, const EvtId name3, const EvtId name4,
284 const EvtId name5, const EvtId name6, const EvtId name7, const EvtId name8,
285 const EvtId name9, const EvtId name10, const EvtId name11 ) {
286 _numInList = 11;
287 _list = new EvtId[_numInList];
288
289 _list[0] = name1;
290 _list[1] = name2;
291 _list[2] = name3;
292 _list[3] = name4;
293 _list[4] = name5;
294 _list[5] = name6;
295 _list[6] = name7;
296 _list[7] = name8;
297 _list[8] = name9;
298 _list[9] = name10;
299 _list[10] = name11;
300}
301
302EvtIdSet::EvtIdSet( const std::string name1, const std::string name2, const std::string name3,
303 const std::string name4, const std::string name5, const std::string name6,
304 const std::string name7, const std::string name8, const std::string name9,
305 const std::string name10, const std::string name11 ) {
306 _numInList = 11;
307 _list = new EvtId[_numInList];
308
309 _list[0] = EvtPDL::getId( name1 );
310 _list[1] = EvtPDL::getId( name2 );
311 _list[2] = EvtPDL::getId( name3 );
312 _list[3] = EvtPDL::getId( name4 );
313 _list[4] = EvtPDL::getId( name5 );
314 _list[5] = EvtPDL::getId( name6 );
315 _list[6] = EvtPDL::getId( name7 );
316 _list[7] = EvtPDL::getId( name8 );
317 _list[8] = EvtPDL::getId( name9 );
318 _list[9] = EvtPDL::getId( name10 );
319 _list[10] = EvtPDL::getId( name11 );
320}
321
322EvtIdSet::EvtIdSet( const EvtId name1, const EvtId name2, const EvtId name3, const EvtId name4,
323 const EvtId name5, const EvtId name6, const EvtId name7, const EvtId name8,
324 const EvtId name9, const EvtId name10, const EvtId name11,
325 const EvtId name12 ) {
326 _numInList = 12;
327 _list = new EvtId[_numInList];
328
329 _list[0] = name1;
330 _list[1] = name2;
331 _list[2] = name3;
332 _list[3] = name4;
333 _list[4] = name5;
334 _list[5] = name6;
335 _list[6] = name7;
336 _list[7] = name8;
337 _list[8] = name9;
338 _list[9] = name10;
339 _list[10] = name11;
340 _list[11] = name12;
341}
342
343EvtIdSet::EvtIdSet( const std::string name1, const std::string name2, const std::string name3,
344 const std::string name4, const std::string name5, const std::string name6,
345 const std::string name7, const std::string name8, const std::string name9,
346 const std::string name10, const std::string name11,
347 const std::string name12 ) {
348 _numInList = 12;
349 _list = new EvtId[_numInList];
350
351 _list[0] = EvtPDL::getId( name1 );
352 _list[1] = EvtPDL::getId( name2 );
353 _list[2] = EvtPDL::getId( name3 );
354 _list[3] = EvtPDL::getId( name4 );
355 _list[4] = EvtPDL::getId( name5 );
356 _list[5] = EvtPDL::getId( name6 );
357 _list[6] = EvtPDL::getId( name7 );
358 _list[7] = EvtPDL::getId( name8 );
359 _list[8] = EvtPDL::getId( name9 );
360 _list[9] = EvtPDL::getId( name10 );
361 _list[10] = EvtPDL::getId( name11 );
362 _list[11] = EvtPDL::getId( name12 );
363}
364
366
367 _numInList = set1.sizeOfSet();
368 _list = new EvtId[_numInList];
369 int i;
370 for ( i = 0; i < _numInList; i++ ) { _list[i] = set1.getElem( i ); }
371}
372EvtIdSet::EvtIdSet( const EvtIdSet& set1, const EvtIdSet& set2 ) {
373
374 _numInList = set1.sizeOfSet();
375 _list = new EvtId[_numInList];
376 int i;
377 for ( i = 0; i < _numInList; i++ ) { _list[i] = set1.getElem( i ); }
378 // then just append the second list.
379 this->append( set2 );
380}
381
382int EvtIdSet::contains( const EvtId id ) {
383
384 int i;
385 for ( i = 0; i < _numInList; i++ )
386 {
387 if ( _list[i] == id ) return 1;
388 }
389
390 return 0;
391}
392
393int EvtIdSet::contains( const std::string nm ) {
394
395 int i;
396 for ( i = 0; i < _numInList; i++ )
397 {
398 if ( _list[i] == EvtPDL::getId( nm ) ) return 1;
399 }
400
401 return 0;
402}
403
404void EvtIdSet::append( const EvtIdSet set1 ) {
405
406 int combLen = _numInList + set1.sizeOfSet();
407 int uniqueLen = 0;
408 EvtId* combSet;
409
410 combSet = new EvtId[combLen];
411
412 int i;
413 for ( i = 0; i < combLen; i++ )
414 {
415 if ( i >= _numInList )
416 {
417
418 // check that there are no overlaps between lists
419 int j;
420 int isUnique = 1;
421 for ( j = 0; j < _numInList; j++ )
422 {
423 if ( _list[j] == set1.getElem( i - _numInList ) ) { isUnique = 0; }
424 }
425 if ( isUnique == 1 )
426 {
427 combSet[uniqueLen] = set1.getElem( i - _numInList );
428 uniqueLen += 1;
429 }
430 }
431 else
432 {
433 combSet[uniqueLen] = _list[i];
434 uniqueLen += 1;
435 }
436
437 delete _list;
438 _list = new EvtId[uniqueLen];
439
440 _numInList = uniqueLen;
441 for ( i = 0; i < _numInList; i++ ) { _list[i] = combSet[i]; }
442
443 delete combSet;
444 }
445}
446
447int EvtIdSet::sizeOfSet() const { return _numInList; }
448
449EvtId EvtIdSet::getElem( const int i ) const { return _list[i]; }
void append(const EvtIdSet set1)
Definition EvtIdSet.cc:404
EvtIdSet(const EvtId name1)
Definition EvtIdSet.cc:28
EvtId getElem(const int i) const
Definition EvtIdSet.cc:449
int sizeOfSet() const
Definition EvtIdSet.cc:447
int contains(const EvtId id)
Definition EvtIdSet.cc:382
Definition EvtId.hh:27
static EvtId getId(const std::string &name)
Definition EvtPDL.cc:272