Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-06 09:20:02

0001 
0002 /***********************************************************************
0003 * Copyright 1998-2020 CERN for the benefit of the EvtGen authors       *
0004 *                                                                      *
0005 * This file is part of EvtGen.                                         *
0006 *                                                                      *
0007 * EvtGen is free software: you can redistribute it and/or modify       *
0008 * it under the terms of the GNU General Public License as published by *
0009 * the Free Software Foundation, either version 3 of the License, or    *
0010 * (at your option) any later version.                                  *
0011 *                                                                      *
0012 * EvtGen is distributed in the hope that it will be useful,            *
0013 * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
0014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
0015 * GNU General Public License for more details.                         *
0016 *                                                                      *
0017 * You should have received a copy of the GNU General Public License    *
0018 * along with EvtGen.  If not, see <https://www.gnu.org/licenses/>.     *
0019 ***********************************************************************/
0020 
0021 #ifndef EVTIDSET_HH
0022 #define EVTIDSET_HH
0023 
0024 #include "EvtGenBase/EvtId.hh"
0025 #include "EvtGenBase/EvtPatches.hh"
0026 
0027 #include <string>
0028 class EvtId;
0029 
0030 class EvtIdSet {
0031   public:
0032     //need a default constructor
0033 
0034     EvtIdSet( const EvtId name1 );
0035     EvtIdSet( const std::string name1 );
0036 
0037     EvtIdSet( const EvtId name1, const EvtId name2 );
0038 
0039     EvtIdSet( const std::string name1, const std::string name2 );
0040 
0041     EvtIdSet( const EvtId name1, const EvtId name2, const EvtId name3 );
0042 
0043     EvtIdSet( const std::string name1, const std::string name2,
0044               const std::string name3 );
0045 
0046     EvtIdSet( const EvtId name1, const EvtId name2, const EvtId name3,
0047               const EvtId name4 );
0048 
0049     EvtIdSet( const std::string name1, const std::string name2,
0050               const std::string name3, const std::string name4 );
0051 
0052     EvtIdSet( const EvtId name1, const EvtId name2, const EvtId name3,
0053               const EvtId name4, const EvtId name5 );
0054 
0055     EvtIdSet( const std::string name1, const std::string name2,
0056               const std::string name3, const std::string name4,
0057               const std::string name5 );
0058 
0059     EvtIdSet( const EvtId name1, const EvtId name2, const EvtId name3,
0060               const EvtId name4, const EvtId name5, const EvtId name6 );
0061 
0062     EvtIdSet( const std::string name1, const std::string name2,
0063               const std::string name3, const std::string name4,
0064               const std::string name5, const std::string name6 );
0065 
0066     EvtIdSet( const EvtId name1, const EvtId name2, const EvtId name3,
0067               const EvtId name4, const EvtId name5, const EvtId name6,
0068               const EvtId name7 );
0069 
0070     EvtIdSet( const std::string name1, const std::string name2,
0071               const std::string name3, const std::string name4,
0072               const std::string name5, const std::string name6,
0073               const std::string name7 );
0074 
0075     EvtIdSet( const EvtId name1, const EvtId name2, const EvtId name3,
0076               const EvtId name4, const EvtId name5, const EvtId name6,
0077               const EvtId name7, const EvtId name8 );
0078 
0079     EvtIdSet( const std::string name1, const std::string name2,
0080               const std::string name3, const std::string name4,
0081               const std::string name5, const std::string name6,
0082               const std::string name7, const std::string name8 );
0083 
0084     EvtIdSet( const EvtId name1, const EvtId name2, const EvtId name3,
0085               const EvtId name4, const EvtId name5, const EvtId name6,
0086               const EvtId name7, const EvtId name8, const EvtId name9 );
0087 
0088     EvtIdSet( const std::string name1, const std::string name2,
0089               const std::string name3, const std::string name4,
0090               const std::string name5, const std::string name6,
0091               const std::string name7, const std::string name8,
0092               const std::string name9 );
0093 
0094     EvtIdSet( const EvtId name1, const EvtId name2, const EvtId name3,
0095               const EvtId name4, const EvtId name5, const EvtId name6,
0096               const EvtId name7, const EvtId name8, const EvtId name9,
0097               const EvtId name10 );
0098 
0099     EvtIdSet( const std::string name1, const std::string name2,
0100               const std::string name3, const std::string name4,
0101               const std::string name5, const std::string name6,
0102               const std::string name7, const std::string name8,
0103               const std::string name9, const std::string name10 );
0104 
0105     EvtIdSet( const EvtId name1, const EvtId name2, const EvtId name3,
0106               const EvtId name4, const EvtId name5, const EvtId name6,
0107               const EvtId name7, const EvtId name8, const EvtId name9,
0108               const EvtId name10, const EvtId name11 );
0109 
0110     EvtIdSet( const std::string name1, const std::string name2,
0111               const std::string name3, const std::string name4,
0112               const std::string name5, const std::string name6,
0113               const std::string name7, const std::string name8,
0114               const std::string name9, const std::string name10,
0115               const std::string name11 );
0116 
0117     EvtIdSet( const EvtId name1, const EvtId name2, const EvtId name3,
0118               const EvtId name4, const EvtId name5, const EvtId name6,
0119               const EvtId name7, const EvtId name8, const EvtId name9,
0120               const EvtId name10, const EvtId name11, const EvtId name12 );
0121 
0122     EvtIdSet( const std::string name1, const std::string name2,
0123               const std::string name3, const std::string name4,
0124               const std::string name5, const std::string name6,
0125               const std::string name7, const std::string name8,
0126               const std::string name9, const std::string name10,
0127               const std::string name11, const std::string name12 );
0128 
0129     ~EvtIdSet() { delete[] _list; }
0130 
0131     EvtIdSet( const EvtIdSet& set1 );
0132     EvtIdSet( const EvtIdSet& set1, const EvtIdSet& set2 );
0133 
0134     int contains( const EvtId id );
0135     int contains( const std::string id );
0136 
0137     void append( const EvtIdSet set1 );
0138     int sizeOfSet() const;
0139     EvtId getElem( const int i ) const;
0140 
0141   private:
0142     int _numInList;
0143     EvtId* _list;
0144 };
0145 
0146 #endif