00001 #include "MessageService/MsgService.h"
00002 #include "JobControl/JobCModuleRegistry.h"
00003 #include "Algorithm/AlgHandle.h"
00004 #include "CandTrackAtNu.h"
00005 #include "CandTrackAtNuHandle.h"
00006
00007
00008
00009
00010
00011 ClassImp(CandTrackAtNu)
00012
00013 CVSID("$ Id: CandTrackAtNu.cxx,v 1.0 2002/00/00 00:00:00 blake Exp $");
00014
00015 CandTrackAtNu::CandTrackAtNu() :
00016 fMinPlane(-1), fMaxPlane(-1),
00017 fDirTimeSlope(0.0), fDirTimeOffset(0.0),
00018 fDirTimeScatter(0.0), fDirTimeScore(0.0),
00019 fVtxShw(0), fVtxShwStrips(0), fVtxShwReseedFlag(0),
00020 fEndShw(0), fEndShwStrips(0), fEndShwReseedFlag(0),
00021 fVtxR(0.0), fVtxRdigits(0.0), fVtxPlnDigits(0),
00022 fVtxUwidth(0.0), fVtxUmean(0.0), fVtxVwidth(0.0), fVtxVmean(0.0),
00023 fVtxRmax(0.0), fVtxQmax(0.0),
00024 fEndR(0.0), fEndRdigits(0.0), fEndPlnDigits(0),
00025 fEndUwidth(0.0), fEndUmean(0.0), fEndVwidth(0.0), fEndVmean(0.0),
00026 fEndRmax(0.0), fEndQmax(0.0),
00027 fTrackLikePlanes(0),
00028 fTrkPH(0.0), fShwPH(0.0),
00029 fAssocTrkPH(0.0), fAssocTrkPHfrac(0.0),
00030 fLinearDirCosU(0.0), fLinearDirCosV(0.0), fLinearDirCosZ(0.0),
00031 fLinearDirFitChisq(0.0), fLinearDirFitNdf(0),
00032 fRangeThruSteel(0.0), fRangeThruDetector(0.0), fMomentumErr(0.0),
00033 fReseedFlag(0)
00034 {
00035 MSG("CandTrackAtNu", Msg::kDebug) << " " << endl;
00036 }
00037
00038 CandTrackAtNu::CandTrackAtNu(AlgHandle &ah) :
00039 CandTrack(ah),
00040 fMinPlane(-1), fMaxPlane(-1),
00041 fDirTimeSlope(0.0), fDirTimeOffset(0.0),
00042 fDirTimeScatter(0.0), fDirTimeScore(0.0),
00043 fVtxShw(0), fVtxShwStrips(0), fVtxShwReseedFlag(0),
00044 fEndShw(0), fEndShwStrips(0), fEndShwReseedFlag(0),
00045 fVtxR(0.0), fVtxRdigits(0.0), fVtxPlnDigits(0),
00046 fVtxUwidth(0.0), fVtxUmean(0.0), fVtxVwidth(0.0), fVtxVmean(0.0),
00047 fVtxRmax(0.0), fVtxQmax(0.0),
00048 fEndR(0.0), fEndRdigits(0.0), fEndPlnDigits(0),
00049 fEndUwidth(0.0), fEndUmean(0.0), fEndVwidth(0.0), fEndVmean(0.0),
00050 fEndRmax(0.0), fEndQmax(0.0),
00051 fTrackLikePlanes(0),
00052 fTrkPH(0.0), fShwPH(0.0),
00053 fAssocTrkPH(0.0), fAssocTrkPHfrac(0.0),
00054 fLinearDirCosU(0.0), fLinearDirCosV(0.0), fLinearDirCosZ(0.0),
00055 fLinearDirFitChisq(0.0), fLinearDirFitNdf(0),
00056 fRangeThruSteel(0.0), fRangeThruDetector(0.0), fMomentumErr(0.0),
00057 fReseedFlag(0)
00058 {
00059
00060 }
00061
00062 CandTrackAtNu::CandTrackAtNu(AlgHandle &ah, CandHandle &ch, CandContext &cx) :
00063 CandTrack(ah),
00064 fMinPlane(-1), fMaxPlane(-1),
00065 fDirTimeSlope(0.0), fDirTimeOffset(0.0),
00066 fDirTimeScatter(0.0), fDirTimeScore(0.0),
00067 fVtxShw(0), fVtxShwStrips(0), fVtxShwReseedFlag(0),
00068 fEndShw(0), fEndShwStrips(0), fEndShwReseedFlag(0),
00069 fVtxR(0.0), fVtxRdigits(0.0), fVtxPlnDigits(0),
00070 fVtxUwidth(0.0), fVtxUmean(0.0), fVtxVwidth(0.0), fVtxVmean(0.0),
00071 fVtxRmax(0.0), fVtxQmax(0.0),
00072 fEndR(0.0), fEndRdigits(0.0), fEndPlnDigits(0),
00073 fEndUwidth(0.0), fEndUmean(0.0), fEndVwidth(0.0), fEndVmean(0.0),
00074 fEndRmax(0.0), fEndQmax(0.0),
00075 fTrackLikePlanes(0),
00076 fTrkPH(0.0), fShwPH(0.0),
00077 fAssocTrkPH(0.0), fAssocTrkPHfrac(0.0),
00078 fLinearDirCosU(0.0), fLinearDirCosV(0.0), fLinearDirCosZ(0.0),
00079 fLinearDirFitChisq(0.0), fLinearDirFitNdf(0),
00080 fRangeThruSteel(0.0), fRangeThruDetector(0.0), fMomentumErr(0.0),
00081 fReseedFlag(0)
00082 {
00083 SetLocalHandle(new CandTrackAtNuHandle(this));
00084 { CandTrackAtNuHandle cth(this); ch = cth; }
00085 ah.RunAlg(ch, cx);
00086 }
00087
00088 CandTrackAtNu::CandTrackAtNu(const CandTrackAtNu &rhs) :
00089 CandTrack(rhs),
00090 fMinPlane(rhs.fMinPlane), fMaxPlane(rhs.fMaxPlane),
00091 fDirTimeSlope(rhs.fDirTimeSlope), fDirTimeOffset(rhs.fDirTimeOffset),
00092 fDirTimeScatter(rhs.fDirTimeScatter), fDirTimeScore(rhs.fDirTimeScore),
00093 fVtxShw(rhs.fVtxShw), fVtxShwStrips(rhs.fVtxShwStrips), fVtxShwReseedFlag(rhs.fVtxShwReseedFlag),
00094 fEndShw(rhs.fEndShw), fEndShwStrips(rhs.fEndShwStrips), fEndShwReseedFlag(rhs.fEndShwReseedFlag),
00095 fVtxR(rhs.fVtxR), fVtxRdigits(rhs.fVtxRdigits), fVtxPlnDigits(rhs.fVtxPlnDigits),
00096 fVtxUwidth(rhs.fVtxUwidth), fVtxUmean(rhs.fVtxUmean),
00097 fVtxVwidth(rhs.fVtxVwidth), fVtxVmean(rhs.fVtxVmean),
00098 fVtxRmax(rhs.fVtxRmax), fVtxQmax(rhs.fVtxQmax),
00099 fEndR(rhs.fEndR), fEndRdigits(rhs.fEndRdigits), fEndPlnDigits(rhs.fEndPlnDigits),
00100 fEndUwidth(rhs.fEndUwidth), fEndUmean(rhs.fEndUmean),
00101 fEndVwidth(rhs.fEndVwidth), fEndVmean(rhs.fEndVmean),
00102 fEndRmax(rhs.fEndRmax), fEndQmax(rhs.fEndRmax),
00103 fTrackLikePlanes(rhs.fTrackLikePlanes),
00104 fTrkPH(rhs.fTrkPH), fShwPH(rhs.fShwPH),
00105 fAssocTrkPH(rhs.fAssocTrkPH), fAssocTrkPHfrac(rhs.fAssocTrkPHfrac),
00106 fLinearDirCosU(rhs.fLinearDirCosU), fLinearDirCosV(rhs.fLinearDirCosV), fLinearDirCosZ(rhs.fLinearDirCosZ),
00107 fLinearDirFitChisq(rhs.fLinearDirFitChisq), fLinearDirFitNdf(rhs.fLinearDirFitNdf),
00108 fRangeThruSteel(rhs.fRangeThruSteel), fRangeThruDetector(rhs.fRangeThruDetector), fMomentumErr(rhs.fMomentumErr),
00109 fReseedFlag(rhs.fReseedFlag)
00110 {
00111
00112 }
00113
00114 CandTrackAtNu::~CandTrackAtNu()
00115 {
00116
00117 }
00118
00119 CandTrackAtNu *CandTrackAtNu::Dup() const
00120 {
00121 CandTrackAtNu *cb = new CandTrackAtNu(*this);
00122 cb->CreateLocalHandle();
00123 TIter iterdau = GetDaughterIterator();
00124 CandHandle *dau;
00125 while ((dau=(CandHandle *) iterdau())) cb->AddDaughterLink(*dau);
00126 return cb;
00127 }
00128
00129 void CandTrackAtNu::CreateLocalHandle()
00130 {
00131 this->SetLocalHandle(new CandTrackAtNuHandle(this));
00132 }
00133
00134 CandTrackAtNuHandle CandTrackAtNu::MakeCandidate(AlgHandle &ah, CandContext &cx)
00135 {
00136 CandTrackAtNuHandle cth;
00137 new CandTrackAtNu(ah, cth, cx);
00138 return cth;
00139 }