/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Generator/BesEvtGen/BesEvtGen-00-03-58/src/EvtGen/EvtGenBase/EvtIdSet.cc

Go to the documentation of this file.
00001 //--------------------------------------------------------------------------
00002 //
00003 // Environment:
00004 //      This software is part of the EvtGen package developed jointly
00005 //      for the BaBar and CLEO collaborations.  If you use all or part
00006 //      of it, please give an appropriate acknowledgement.
00007 //
00008 // Copyright Information: See EvtGen/COPYRIGHT
00009 //      Copyright (C) 1998      Caltech, UCSB
00010 //
00011 // Module: EvtId.cc
00012 //
00013 // Description: Class for particle Id used in EvtGen.
00014 //
00015 // Modification history:
00016 //
00017 //    DJL     Jan 4, 2000        Module created
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   //then just append the second list.
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       //check that there are no overlaps between lists
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 

Generated on Tue Nov 29 23:12:13 2016 for BOSS_7.0.2 by  doxygen 1.4.7