00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "EvtGenBase/EvtPatches.hh"
00022
00023 #include "EvtGenBase/EvtIdSet.hh"
00024 #include "EvtGenBase/EvtPDL.hh"
00025 #include <iostream>
00026 #include <string>
00027
00028 EvtIdSet::EvtIdSet(const EvtId name1) {
00029 _numInList=1;
00030 _list=new EvtId[_numInList];
00031
00032 _list[0]=name1;
00033 }
00034
00035 EvtIdSet::EvtIdSet(const std::string name1){
00036 _numInList=1;
00037 _list=new EvtId[_numInList];
00038
00039 _list[0]=EvtPDL::getId(name1);
00040 }
00041
00042
00043 EvtIdSet::EvtIdSet(const EvtId name1,
00044 const EvtId name2){
00045 _numInList=2;
00046 _list=new EvtId[_numInList];
00047
00048 _list[0]=name1;
00049 _list[1]=name2;
00050 }
00051
00052
00053 EvtIdSet::EvtIdSet(const std::string name1,
00054 const std::string name2){
00055 _numInList=2;
00056 _list=new EvtId[_numInList];
00057
00058 _list[0]=EvtPDL::getId(name1);
00059 _list[1]=EvtPDL::getId(name2);
00060 }
00061
00062
00063 EvtIdSet::EvtIdSet(const EvtId name1,
00064 const EvtId name2,
00065 const EvtId name3){
00066 _numInList=3;
00067 _list=new EvtId[_numInList];
00068
00069 _list[0]=name1;
00070 _list[1]=name2;
00071 _list[2]=name3;
00072
00073 }
00074
00075
00076 EvtIdSet::EvtIdSet(const std::string name1,
00077 const std::string name2,
00078 const std::string name3){
00079 _numInList=3;
00080 _list=new EvtId[_numInList];
00081
00082 _list[0]=EvtPDL::getId(name1);
00083 _list[1]=EvtPDL::getId(name2);
00084 _list[2]=EvtPDL::getId(name3);
00085 }
00086
00087
00088 EvtIdSet::EvtIdSet(const EvtId name1,
00089 const EvtId name2,
00090 const EvtId name3,
00091 const EvtId name4){
00092 _numInList=4;
00093 _list=new EvtId[_numInList];
00094
00095 _list[0]=name1;
00096 _list[1]=name2;
00097 _list[2]=name3;
00098 _list[3]=name4;
00099 }
00100
00101
00102 EvtIdSet::EvtIdSet(const std::string name1,
00103 const std::string name2,
00104 const std::string name3,
00105 const std::string name4){
00106 _numInList=4;
00107 _list=new EvtId[_numInList];
00108
00109 _list[0]=EvtPDL::getId(name1);
00110 _list[1]=EvtPDL::getId(name2);
00111 _list[2]=EvtPDL::getId(name3);
00112 _list[3]=EvtPDL::getId(name4);
00113 }
00114
00115
00116 EvtIdSet::EvtIdSet(const EvtId name1,
00117 const EvtId name2,
00118 const EvtId name3,
00119 const EvtId name4,
00120 const EvtId name5){
00121 _numInList=5;
00122 _list=new EvtId[_numInList];
00123
00124 _list[0]=name1;
00125 _list[1]=name2;
00126 _list[2]=name3;
00127 _list[3]=name4;
00128 _list[4]=name5;
00129 }
00130
00131
00132 EvtIdSet::EvtIdSet(const std::string name1,
00133 const std::string name2,
00134 const std::string name3,
00135 const std::string name4,
00136 const std::string name5){
00137 _numInList=5;
00138 _list=new EvtId[_numInList];
00139
00140 _list[0]=EvtPDL::getId(name1);
00141 _list[1]=EvtPDL::getId(name2);
00142 _list[2]=EvtPDL::getId(name3);
00143 _list[3]=EvtPDL::getId(name4);
00144 _list[4]=EvtPDL::getId(name5);
00145 }
00146
00147
00148 EvtIdSet::EvtIdSet(const EvtId name1,
00149 const EvtId name2,
00150 const EvtId name3,
00151 const EvtId name4,
00152 const EvtId name5,
00153 const EvtId name6){
00154 _numInList=6;
00155 _list=new EvtId[_numInList];
00156
00157 _list[0]=name1;
00158 _list[1]=name2;
00159 _list[2]=name3;
00160 _list[3]=name4;
00161 _list[4]=name5;
00162 _list[5]=name6;
00163 }
00164
00165
00166 EvtIdSet::EvtIdSet(const std::string name1,
00167 const std::string name2,
00168 const std::string name3,
00169 const std::string name4,
00170 const std::string name5,
00171 const std::string name6){
00172 _numInList=6;
00173 _list=new EvtId[_numInList];
00174
00175 _list[0]=EvtPDL::getId(name1);
00176 _list[1]=EvtPDL::getId(name2);
00177 _list[2]=EvtPDL::getId(name3);
00178 _list[3]=EvtPDL::getId(name4);
00179 _list[4]=EvtPDL::getId(name5);
00180 _list[5]=EvtPDL::getId(name6);
00181 }
00182
00183
00184 EvtIdSet::EvtIdSet(const EvtId name1,
00185 const EvtId name2,
00186 const EvtId name3,
00187 const EvtId name4,
00188 const EvtId name5,
00189 const EvtId name6,
00190 const EvtId name7){
00191 _numInList=7;
00192 _list=new EvtId[_numInList];
00193
00194 _list[0]=name1;
00195 _list[1]=name2;
00196 _list[2]=name3;
00197 _list[3]=name4;
00198 _list[4]=name5;
00199 _list[5]=name6;
00200 _list[6]=name7;
00201 }
00202
00203
00204 EvtIdSet::EvtIdSet(const std::string name1,
00205 const std::string name2,
00206 const std::string name3,
00207 const std::string name4,
00208 const std::string name5,
00209 const std::string name6,
00210 const std::string name7){
00211 _numInList=7;
00212 _list=new EvtId[_numInList];
00213
00214 _list[0]=EvtPDL::getId(name1);
00215 _list[1]=EvtPDL::getId(name2);
00216 _list[2]=EvtPDL::getId(name3);
00217 _list[3]=EvtPDL::getId(name4);
00218 _list[4]=EvtPDL::getId(name5);
00219 _list[5]=EvtPDL::getId(name6);
00220 _list[6]=EvtPDL::getId(name7);
00221 }
00222
00223
00224 EvtIdSet::EvtIdSet(const EvtId name1,
00225 const EvtId name2,
00226 const EvtId name3,
00227 const EvtId name4,
00228 const EvtId name5,
00229 const EvtId name6,
00230 const EvtId name7,
00231 const EvtId name8){
00232 _numInList=8;
00233 _list=new EvtId[_numInList];
00234
00235 _list[0]=name1;
00236 _list[1]=name2;
00237 _list[2]=name3;
00238 _list[3]=name4;
00239 _list[4]=name5;
00240 _list[5]=name6;
00241 _list[6]=name7;
00242 _list[7]=name8;
00243 }
00244
00245
00246 EvtIdSet::EvtIdSet(const std::string name1,
00247 const std::string name2,
00248 const std::string name3,
00249 const std::string name4,
00250 const std::string name5,
00251 const std::string name6,
00252 const std::string name7,
00253 const std::string name8){
00254 _numInList=8;
00255 _list=new EvtId[_numInList];
00256
00257 _list[0]=EvtPDL::getId(name1);
00258 _list[1]=EvtPDL::getId(name2);
00259 _list[2]=EvtPDL::getId(name3);
00260 _list[3]=EvtPDL::getId(name4);
00261 _list[4]=EvtPDL::getId(name5);
00262 _list[5]=EvtPDL::getId(name6);
00263 _list[6]=EvtPDL::getId(name7);
00264 _list[7]=EvtPDL::getId(name8);
00265 }
00266
00267
00268 EvtIdSet::EvtIdSet(const EvtId name1,
00269 const EvtId name2,
00270 const EvtId name3,
00271 const EvtId name4,
00272 const EvtId name5,
00273 const EvtId name6,
00274 const EvtId name7,
00275 const EvtId name8,
00276 const EvtId name9){
00277 _numInList=9;
00278 _list=new EvtId[_numInList];
00279
00280 _list[0]=name1;
00281 _list[1]=name2;
00282 _list[2]=name3;
00283 _list[3]=name4;
00284 _list[4]=name5;
00285 _list[5]=name6;
00286 _list[6]=name7;
00287 _list[7]=name8;
00288 _list[8]=name9;
00289 }
00290
00291
00292 EvtIdSet::EvtIdSet(const std::string name1,
00293 const std::string name2,
00294 const std::string name3,
00295 const std::string name4,
00296 const std::string name5,
00297 const std::string name6,
00298 const std::string name7,
00299 const std::string name8,
00300 const std::string name9){
00301 _numInList=9;
00302 _list=new EvtId[_numInList];
00303
00304 _list[0]=EvtPDL::getId(name1);
00305 _list[1]=EvtPDL::getId(name2);
00306 _list[2]=EvtPDL::getId(name3);
00307 _list[3]=EvtPDL::getId(name4);
00308 _list[4]=EvtPDL::getId(name5);
00309 _list[5]=EvtPDL::getId(name6);
00310 _list[6]=EvtPDL::getId(name7);
00311 _list[7]=EvtPDL::getId(name8);
00312 _list[8]=EvtPDL::getId(name9);
00313 }
00314
00315
00316 EvtIdSet::EvtIdSet(const EvtId name1,
00317 const EvtId name2,
00318 const EvtId name3,
00319 const EvtId name4,
00320 const EvtId name5,
00321 const EvtId name6,
00322 const EvtId name7,
00323 const EvtId name8,
00324 const EvtId name9,
00325 const EvtId name10){
00326 _numInList=10;
00327 _list=new EvtId[_numInList];
00328
00329 _list[0]=name1;
00330 _list[1]=name2;
00331 _list[2]=name3;
00332 _list[3]=name4;
00333 _list[4]=name5;
00334 _list[5]=name6;
00335 _list[6]=name7;
00336 _list[7]=name8;
00337 _list[8]=name9;
00338 _list[9]=name10;
00339 }
00340
00341
00342 EvtIdSet::EvtIdSet(const std::string name1,
00343 const std::string name2,
00344 const std::string name3,
00345 const std::string name4,
00346 const std::string name5,
00347 const std::string name6,
00348 const std::string name7,
00349 const std::string name8,
00350 const std::string name9,
00351 const std::string name10){
00352 _numInList=10;
00353 _list=new EvtId[_numInList];
00354
00355 _list[0]=EvtPDL::getId(name1);
00356 _list[1]=EvtPDL::getId(name2);
00357 _list[2]=EvtPDL::getId(name3);
00358 _list[3]=EvtPDL::getId(name4);
00359 _list[4]=EvtPDL::getId(name5);
00360 _list[5]=EvtPDL::getId(name6);
00361 _list[6]=EvtPDL::getId(name7);
00362 _list[7]=EvtPDL::getId(name8);
00363 _list[8]=EvtPDL::getId(name9);
00364 _list[9]=EvtPDL::getId(name10);
00365 }
00366
00367
00368 EvtIdSet::EvtIdSet(const EvtId name1,
00369 const EvtId name2,
00370 const EvtId name3,
00371 const EvtId name4,
00372 const EvtId name5,
00373 const EvtId name6,
00374 const EvtId name7,
00375 const EvtId name8,
00376 const EvtId name9,
00377 const EvtId name10,
00378 const EvtId name11){
00379 _numInList=11;
00380 _list=new EvtId[_numInList];
00381
00382 _list[0]=name1;
00383 _list[1]=name2;
00384 _list[2]=name3;
00385 _list[3]=name4;
00386 _list[4]=name5;
00387 _list[5]=name6;
00388 _list[6]=name7;
00389 _list[7]=name8;
00390 _list[8]=name9;
00391 _list[9]=name10;
00392 _list[10]=name11;
00393 }
00394
00395
00396 EvtIdSet::EvtIdSet(const std::string name1,
00397 const std::string name2,
00398 const std::string name3,
00399 const std::string name4,
00400 const std::string name5,
00401 const std::string name6,
00402 const std::string name7,
00403 const std::string name8,
00404 const std::string name9,
00405 const std::string name10,
00406 const std::string name11){
00407 _numInList=11;
00408 _list=new EvtId[_numInList];
00409
00410 _list[0]=EvtPDL::getId(name1);
00411 _list[1]=EvtPDL::getId(name2);
00412 _list[2]=EvtPDL::getId(name3);
00413 _list[3]=EvtPDL::getId(name4);
00414 _list[4]=EvtPDL::getId(name5);
00415 _list[5]=EvtPDL::getId(name6);
00416 _list[6]=EvtPDL::getId(name7);
00417 _list[7]=EvtPDL::getId(name8);
00418 _list[8]=EvtPDL::getId(name9);
00419 _list[9]=EvtPDL::getId(name10);
00420 _list[10]=EvtPDL::getId(name11);
00421 }
00422
00423
00424 EvtIdSet::EvtIdSet(const EvtId name1,
00425 const EvtId name2,
00426 const EvtId name3,
00427 const EvtId name4,
00428 const EvtId name5,
00429 const EvtId name6,
00430 const EvtId name7,
00431 const EvtId name8,
00432 const EvtId name9,
00433 const EvtId name10,
00434 const EvtId name11,
00435 const EvtId name12){
00436 _numInList=12;
00437 _list=new EvtId[_numInList];
00438
00439 _list[0]=name1;
00440 _list[1]=name2;
00441 _list[2]=name3;
00442 _list[3]=name4;
00443 _list[4]=name5;
00444 _list[5]=name6;
00445 _list[6]=name7;
00446 _list[7]=name8;
00447 _list[8]=name9;
00448 _list[9]=name10;
00449 _list[10]=name11;
00450 _list[11]=name12;
00451 }
00452
00453
00454 EvtIdSet::EvtIdSet(const std::string name1,
00455 const std::string name2,
00456 const std::string name3,
00457 const std::string name4,
00458 const std::string name5,
00459 const std::string name6,
00460 const std::string name7,
00461 const std::string name8,
00462 const std::string name9,
00463 const std::string name10,
00464 const std::string name11,
00465 const std::string name12){
00466 _numInList=12;
00467 _list=new EvtId[_numInList];
00468
00469 _list[0]=EvtPDL::getId(name1);
00470 _list[1]=EvtPDL::getId(name2);
00471 _list[2]=EvtPDL::getId(name3);
00472 _list[3]=EvtPDL::getId(name4);
00473 _list[4]=EvtPDL::getId(name5);
00474 _list[5]=EvtPDL::getId(name6);
00475 _list[6]=EvtPDL::getId(name7);
00476 _list[7]=EvtPDL::getId(name8);
00477 _list[8]=EvtPDL::getId(name9);
00478 _list[9]=EvtPDL::getId(name10);
00479 _list[10]=EvtPDL::getId(name11);
00480 _list[11]=EvtPDL::getId(name12);
00481 }
00482
00483
00484 EvtIdSet::EvtIdSet(const EvtIdSet& set1){
00485
00486 _numInList=set1.sizeOfSet();
00487 _list=new EvtId[_numInList];
00488 int i;
00489 for (i=0;i<_numInList;i++){
00490 _list[i]=set1.getElem(i);
00491 }
00492
00493 }
00494 EvtIdSet::EvtIdSet(const EvtIdSet& set1, const EvtIdSet& set2){
00495
00496 _numInList=set1.sizeOfSet();
00497 _list=new EvtId[_numInList];
00498 int i;
00499 for (i=0;i<_numInList;i++){
00500 _list[i]=set1.getElem(i);
00501 }
00502
00503 this->append(set2);
00504
00505 }
00506
00507 int EvtIdSet::contains(const EvtId id){
00508
00509 int i;
00510 for (i=0;i<_numInList;i++){
00511 if ( _list[i] == id ) return 1;
00512 }
00513
00514 return 0;
00515 }
00516
00517 int EvtIdSet::contains(const std::string nm){
00518
00519 int i;
00520 for (i=0;i<_numInList;i++){
00521 if ( _list[i] == EvtPDL::getId(nm) ) return 1;
00522 }
00523
00524 return 0;
00525 }
00526
00527
00528 void EvtIdSet::append(const EvtIdSet set1){
00529
00530 int combLen=_numInList+set1.sizeOfSet();
00531 int uniqueLen=0;
00532 EvtId *combSet;
00533
00534 combSet=new EvtId[combLen];
00535
00536 int i;
00537 for (i=0;i<combLen;i++){
00538 if ( i>=_numInList ) {
00539
00540
00541 int j;
00542 int isUnique=1;
00543 for (j=0;j<_numInList;j++){
00544 if ( _list[j]==set1.getElem(i-_numInList) ) {
00545 isUnique=0;
00546 }
00547 }
00548 if ( isUnique==1 ) {
00549 combSet[uniqueLen]=set1.getElem(i-_numInList);
00550 uniqueLen+=1;
00551 }
00552 }
00553 else{
00554 combSet[uniqueLen]=_list[i];
00555 uniqueLen+=1;
00556 }
00557
00558 delete _list;
00559 _list=new EvtId[uniqueLen];
00560
00561 _numInList=uniqueLen;
00562 for (i=0;i<_numInList;i++){
00563 _list[i]=combSet[i];
00564 }
00565
00566 delete combSet;
00567
00568 }
00569 }
00570
00571 int EvtIdSet::sizeOfSet() const { return _numInList;}
00572
00573 EvtId EvtIdSet::getElem(const int i) const { return _list[i];}
00574
00575
00576
00577
00578
00579
00580
00581