00001 //_____________________________________________________________________________ 00010 00011 #include "TVectorD.h" 00012 00013 #include "Algorithm/AlgConfig.h" 00014 #include "MessageService/MsgService.h" 00015 00016 #include "CandFitTrackSA/ConstFT.h" 00017 #include "CandFitTrackSA/DataFT.h" 00018 #include "CandFitTrackSA/FitContext.h" 00019 #include "CandFitTrackSA/TracerSA.h" 00020 #include "CandFitTrackSA/TrackEstimatorFixed.h" 00021 #include "CandFitTrackSA/TrackContext.h" 00022 00023 CVSID("$Id: TrackEstimatorFixed.cxx,v 1.5 2008/05/06 16:05:39 ishi Exp $"); 00024 00025 using namespace ConstFT; 00026 00030 TrackEstimatorFixed::TrackEstimatorFixed() : 00031 fQoverPInitial(-0.1), fVertexOffset(3) 00032 { 00033 TracerSA trace("TrackEstimatorFixed::TrackEstimatorFixed()"); 00034 } 00035 00039 TrackEstimatorFixed::~TrackEstimatorFixed() 00040 { 00041 TracerSA trace("TrackEstimatorFixed::~TrackEstimatorFixed()"); 00042 } 00043 00047 TVectorD TrackEstimatorFixed::EstimateTrackParams(FitContext& fitContext) const 00048 { 00049 TracerSA trace("TrackEstimatorFixed::EstimateTrackParams" 00050 "(FitContext& fitContext)"); 00051 00052 TVectorD fitEstimate(NTrackParams); 00053 //const DataFT* data = fitContext.GetData(); 00054 00055 fitEstimate(kU) = fitContext.fData.GetUlin(0); 00056 fitEstimate(kV) = fitContext.fData.GetVlin(0); 00057 00058 if(fitContext.fData.GetNPlanes() > fVertexOffset+1){ 00059 fitEstimate(kdUdZ) = ( fitContext.fData.GetDudzlin(fVertexOffset) + 00060 fitContext.fData.GetDudzlin(fVertexOffset+1))/2. ; 00061 fitEstimate(kdVdZ) = ( fitContext.fData.GetDvdzlin(fVertexOffset) + 00062 fitContext.fData.GetDvdzlin(fVertexOffset+1))/2. ; 00063 } else { 00064 fitEstimate(kdUdZ) = 0.; 00065 fitEstimate(kdVdZ) = 0.; 00066 } 00067 00068 // just a fixed momentum 00069 fitEstimate(kQoverP) = fQoverPInitial; 00070 return fitEstimate; 00071 } 00072 00076 void TrackEstimatorFixed::Config(const AlgConfig& ac) 00077 { 00078 TracerSA trace("TrackEstimatorFixed::Config(const AlgConfig&)"); 00079 00080 if ( ac.KeyExists("EstimatorFixedQPInitial") ) { 00081 fQoverPInitial = ac.GetDouble("EstimatorFixedQPInitial"); 00082 } 00083 if ( ac.KeyExists("EstimatorFixedVertexOffset") ) { 00084 fVertexOffset = ac.GetInt("EstimatorFixedVertexOffset"); 00085 } 00086 } 00087