105 std::stringstream
ss;
107 ss <<
"RoI_ID: "<<p.roiId()
108 <<
"Particle type: "<<p.particleType()
111 <<
"mass: "<<p.mass()
112 <<
"mass after fit: "<<p.fitmass()
113 <<
"fit chi2: "<<p.fitchi2()
114 <<
"fit ndof: "<<p.fitndof()
129 const double epsilon = 1e-8;
131 int aHasSD = (
a.pSecondDecay()!=NULL)?1:0;
132 int bHasSD = (b.pSecondDecay()!=NULL)?1:0;
133 if((aHasSD+bHasSD)==1)
136 if(
a.trackVector().size()!=b.trackVector().size())
139 if(
a.roiId() != b.roiId())
return false;
140 if(
a.particleType() != b.particleType())
return false;
141 if(
a.fitndof() != b.fitndof())
return false;
143 if(fabs(
a.eta()-b.eta())>epsilon)
return false;
144 if(fabs(
a.phi()-b.phi())>epsilon)
return false;
145 if(fabs(
a.mass()-b.mass())>epsilon)
return false;
146 if(fabs(
a.fitmass()-b.fitmass())>epsilon)
return false;
147 if(fabs(
a.fitchi2()-b.fitchi2())>epsilon)
return false;
148 if(fabs(
a.fitx()-b.fitx())>epsilon)
return false;
149 if(fabs(
a.fity()-b.fity())>epsilon)
return false;
150 if(fabs(
a.fitz()-b.fitz())>epsilon)
return false;
152 if((aHasSD+bHasSD)==2)
154 if (!((*
a.pSecondDecay())==(*b.pSecondDecay())))
162 variableChange[
"eta"] =
a.eta() - b.eta();
163 variableChange[
"phi"] =
a.phi() - b.phi();
164 variableChange[
"mass"] =
a.mass() - b.mass();
165 variableChange[
"fitmass"] =
a.fitmass() - b.fitmass();
166 variableChange[
"fitchi2"] =
a.fitchi2() - b.fitchi2();
167 variableChange[
"x"] =
a.fitx() - b.fitx();
168 variableChange[
"y"] =
a.fity() - b.fity();
169 variableChange[
"z"] =
a.fitz() - b.fitz();
MsgStream & operator<<(MsgStream &m, const TrigL2Bphys &p)
bool operator==(const TrigL2Bphys &a, const TrigL2Bphys &b)
void diff(const TrigL2Bphys &a, const TrigL2Bphys &b, std::map< std::string, double > &variableChange)
comparison with feedback Function compares two objects and returns "semi verbose" output in the form ...
ElementLink implementation for ROOT usage.
float fity() const
accessor method: y position of vertex
const ElementLink< TrigL2BphysContainer > & secondaryDecayLink() const
float fitz() const
accessor method: z position of vertex
TrigL2Bphys()
constructors; note: default constructor needed by POOL
void addTrack(const ElementLink< TrigInDetTrackCollection > &track)
set method: add track to particle
pType particleType() const
accessor method: particle Type
const TrigL2Bphys * pSecondDecay() const
accessor method: secondary decay particle
float fitx() const
accessor method: x position of vertex
ElementLink< TrigL2BphysContainer > m_secondaryDecay
float mass() const
accessor method: mass
float phi() const
accessor method: phi
float eta() const
accessor method: eta
pType
enum for different particle types
ElementLinkVector< TrigInDetTrackCollection > m_trackVector
int fitndof() const
accessor method: ndof from vertex fit
float fitchi2() const
accessor method: chi2 from vertex fit
float fitmass() const
accessor method: mass from vertex fit