00001
00002
00003
00004
00005
00006
00008
00009 #include <iostream>
00010 #include <string>
00011
00012 #include "CandTrackSR/TrackClusterSR.h"
00013 #include "CandTrackSR/TrkClsSlpSR.h"
00014 #include "MessageService/MsgService.h"
00015 #include "Navigation/XxxItr.h"
00016
00017 ClassImp(TrkClsSlpSR)
00018
00019
00020 CVSID("$Id: TrkClsSlpSR.cxx,v 1.11 2004/04/10 00:49:14 gmieg Exp $");
00021
00022
00023 TrkClsSlpSR::TrkClsSlpSR() :
00024 fTrackCluster(0)
00025 , fForwardSlope(0.)
00026 , fBackwardSlope(0.)
00027 , fIndex(0)
00028 {
00029 }
00030
00031
00032 TrkClsSlpSR::TrkClsSlpSR(TrackClusterSR *tc) :
00033 fTrackCluster(0)
00034 , fForwardSlope(0.)
00035 , fBackwardSlope(0.)
00036 , fIndex(0)
00037 {
00038
00039
00040 if (tc) fTrackCluster = new TrackClusterSR(*tc);
00041 }
00042
00043
00044 TrkClsSlpSR::TrkClsSlpSR(const TrkClsSlpSR &rhs) :
00045 TObject(rhs)
00046 , fTrackCluster(0)
00047 , fForwardSlope(rhs.fForwardSlope)
00048 , fBackwardSlope(rhs.fBackwardSlope)
00049 , fIndex(rhs.fIndex)
00050 {
00051 if (rhs.fTrackCluster)
00052 fTrackCluster = new TrackClusterSR(*rhs.fTrackCluster);
00053 }
00054
00055
00056 TrkClsSlpSR::~TrkClsSlpSR()
00057 {
00058 delete fTrackCluster;
00059 }
00060
00061
00062 Bool_t TrkClsSlpSR::IsEquivalent(const TrkClsSlpSR *rhs) const
00063 {
00064 if (!(this->fForwardSlope == rhs->fForwardSlope &&
00065 this->fBackwardSlope == rhs->fBackwardSlope &&
00066 this->fIndex == rhs->fIndex )) {
00067 MSG("VCand", Msg::kDebug)
00068 << "TrkClsSlpSR primitive members [not ok]\n";
00069 return false;
00070 }
00071
00072 if (this->fTrackCluster == rhs->fTrackCluster) {
00073 MSG("VCand", Msg::kDebug)
00074 << "TrkClsSlpSR::fTrackCluster \t[shallow copy]\n";
00075 return false;
00076 }
00077
00078 if (!((this->fTrackCluster)->IsEquivalent(rhs->fTrackCluster))) {
00079 MSG("VCand", Msg::kDebug) << "TrkClsSlpSR fTrackCluster [not ok]\n";
00080 return false;
00081 }
00082
00083 return true;
00084 }
00085
00086 XXXITRIMP(TrkClsSlpSR)