Rivet
1.8.0
|
00001 #ifndef RIVET_Rivet_HH 00002 #define RIVET_Rivet_HH 00003 00004 #include "Rivet/Config/RivetConfig.hh" 00005 #include "Rivet/Config/BuildOptions.hh" 00006 00007 // Bring selected STL classes into the Rivet namespace 00008 #include "Rivet/RivetSTL.hh" 00009 00010 // Macro to help with overzealous compiler warnings 00011 #ifdef UNUSED 00012 #elif defined(__GNUC__) 00013 # define UNUSED(x) UNUSED_ ## x __attribute__((unused)) 00014 #elif defined(__LCLINT__) 00015 # define UNUSED(x) /*@unused@*/ x 00016 #else 00017 # define UNUSED(x) x 00018 #endif 00019 00020 00021 namespace Rivet { 00022 00024 static const double MAXRAPIDITY = 100000.0; 00026 static const double MaxRapidity = 100000.0; 00027 00029 string version(); 00030 00031 } 00032 00033 00034 // AIDA headers 00035 #include "Rivet/RivetAIDA.fhh" 00036 00037 // HepMC headers and helper functions 00038 #include "Rivet/RivetHepMC.hh" 00039 00040 // Now import some Rivet classes 00041 #include "Rivet/Exceptions.hh" 00042 #include "Rivet/Math/MathUtils.hh" 00043 #include "Rivet/Math/Vectors.hh" 00044 #include "Rivet/Math/Matrices.hh" 00045 #include "Rivet/Math/Units.hh" 00046 #include "Rivet/Tools/Utils.hh" 00047 #include "Rivet/Tools/RivetPaths.hh" 00048 00049 #include "Rivet/ParticleName.hh" 00050 #include "Rivet/Particle.hh" 00051 00052 00053 namespace Rivet { 00054 00055 00057 template<typename T> 00058 inline std::ostream& operator<<(std::ostream& os, const std::vector<T>& vec) { 00059 os << "[ "; 00060 for (size_t i=0; i<vec.size(); ++i) { 00061 os << vec[i] << " "; 00062 } 00063 os << "]"; 00064 return os; 00065 } 00066 00067 00069 template<typename T> 00070 inline std::ostream& operator<<(std::ostream& os, const std::list<T>& vec) { 00071 os << "[ "; 00072 for (size_t i=0; i<vec.size(); ++i) { 00073 os << vec[i] << " "; 00074 } 00075 os << "]"; 00076 return os; 00077 } 00078 00079 00080 } 00081 00082 #endif