6 #include "AbstractFourVec.h"
24 typedef std::vector<const AbstractFourVec*> FourVecList;
30 unsigned int numberOfParticles()
const {
return _particleList.size();}
31 unsigned int size()
const {
return _particleList.size();}
32 const FourVecList& list()
const {
return _particleList;}
35 double d()
const {
return eT()*eT();}
46 friend std::ostream& operator<<(std::ostream& os,
const StProtoJet& j);
49 double pt()
const { return ::sqrt(mPx*mPx + mPy*mPy); }
50 double px()
const {
return mPx; }
51 double py()
const {
return mPy; }
52 double pz()
const {
return mPz; }
55 double phi()
const {
return atan2(mPy, mPx); }
58 double arg = tan(theta()/2.);
59 return (arg > 0) ? -::log(arg) : -999;
63 double e()
const {
return fabs(mE); }
66 if(p() == 0.0)
return 0.0;
67 return ::sqrt(e()*e()*pt()*pt()/(p()*p()));
69 double mass()
const { return ::sqrt(fabs(mE*mE - p()*p() ) ); }
72 double charge()
const {
return _charge; }
74 double area()
const {
return mArea;}
75 void setArea(
double area) { mArea = area;}
77 double areaError()
const {
return mAreaError;}
78 void setAreaError(
double areaError) { mAreaError = areaError;}
81 double p()
const { return ::sqrt(mPx*mPx + mPy*mPy + mPz*mPz); }
82 double theta()
const {
return acos( mPz/p()); }
84 FourVecList _particleList;
99 inline std::ostream& operator<<(std::ostream& os,
const StProtoJet& j)
101 os <<
"et: "<<j.eT()<<
"\tphi: "<<j.phi()<<
"\teta: "<<j.eta()
102 <<
"\tmass: "<<j.mass()<<
"\tcharge: "<<j.charge()<<
"\tParticles"<< std::endl;
103 for (StProtoJet::FourVecList::const_iterator it=j._particleList.begin(); it!=j._particleList.end(); ++it) {
104 os << **it << std::endl;
double d() const
The d=et^2 of the protojet.