Rivet  1.8.0
Rivet.hh
1 #ifndef RIVET_Rivet_HH
2 #define RIVET_Rivet_HH
3 
4 #include "Rivet/Config/RivetConfig.hh"
5 #include "Rivet/Config/BuildOptions.hh"
6 
7 // Bring selected STL classes into the Rivet namespace
8 #include "Rivet/RivetSTL.hh"
9 
10 // Macro to help with overzealous compiler warnings
11 #ifdef UNUSED
12 #elif defined(__GNUC__)
13 # define UNUSED(x) UNUSED_ ## x __attribute__((unused))
14 #elif defined(__LCLINT__)
15 # define UNUSED(x) /*@unused@*/ x
16 #else
17 # define UNUSED(x) x
18 #endif
19 
20 
21 namespace Rivet {
22 
24  static const double MAXRAPIDITY = 100000.0;
26  static const double MaxRapidity = 100000.0;
27 
29  string version();
30 
31 }
32 
33 
34 // AIDA headers
35 #include "Rivet/RivetAIDA.fhh"
36 
37 // HepMC headers and helper functions
38 #include "Rivet/RivetHepMC.hh"
39 
40 // Now import some Rivet classes
41 #include "Rivet/Exceptions.hh"
42 #include "Rivet/Math/MathUtils.hh"
43 #include "Rivet/Math/Vectors.hh"
44 #include "Rivet/Math/Matrices.hh"
45 #include "Rivet/Math/Units.hh"
46 #include "Rivet/Tools/Utils.hh"
47 #include "Rivet/Tools/RivetPaths.hh"
48 
49 #include "Rivet/ParticleName.hh"
50 #include "Rivet/Particle.hh"
51 
52 
53 namespace Rivet {
54 
55 
57  template<typename T>
58  inline std::ostream& operator<<(std::ostream& os, const std::vector<T>& vec) {
59  os << "[ ";
60  for (size_t i=0; i<vec.size(); ++i) {
61  os << vec[i] << " ";
62  }
63  os << "]";
64  return os;
65  }
66 
67 
69  template<typename T>
70  inline std::ostream& operator<<(std::ostream& os, const std::list<T>& vec) {
71  os << "[ ";
72  for (size_t i=0; i<vec.size(); ++i) {
73  os << vec[i] << " ";
74  }
75  os << "]";
76  return os;
77  }
78 
79 
80 }
81 
82 #endif