44 #include <boost/shared_ptr.hpp>
47 #include "TLorentzVector.h"
48 #include "TLorentzRotation.h"
50 #include "conversionUtils.hpp"
70 const TVector3&
momentum = TVector3());
71 particle(
const std::string& partName,
72 const bool requirePartInTable =
true,
76 const TVector3&
momentum = TVector3());
77 particle(
const std::string& partName,
85 const int index = -1);
105 const TLorentzVector&
transform(
const TLorentzRotation& L) {
return _lzVec.Transform(L); }
114 virtual std::ostream&
print(std::ostream& out)
const;
116 virtual std::string
label()
const;
152 const int index = -1,
153 const int spinProj = 0,
155 const TVector3& momentum = TVector3())
165 const bool requirePartInTable =
true,
166 const int index = -1,
167 const int spinProj = 0,
169 const TVector3& momentum = TVector3())
171 particlePtr part(
new particle(partName, requirePartInTable, index, spinProj, refl, momentum));
186 const int index = -1)
199 if (not a or not b) {
200 printWarn <<
"null pointer to particle. result undefined." << std::endl;
203 return a->index() < b->index();
213 if (not a or not b) {
214 printWarn <<
"null pointer to particle. result undefined." << std::endl;
217 return a->index() > b->index();
226 return part.
print(out);