Rivet.hh

Go to the documentation of this file.
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 
00023   /// A sensible default maximum value of rapidity for Rivet analyses to use.
00024   static const double MAXRAPIDITY = 100000.0;
00025   /// @deprecated
00026   static const double MaxRapidity = 100000.0;
00027 
00028   /// A function to get the Rivet version string
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 
00056   /// Convenient function for streaming out vectors of any streamable object.
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 
00068   /// Convenient function for streaming out lists of any streamable object.
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