Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

AlgFitTrackMS.h

Go to the documentation of this file.
00001 
00002 // $Id: AlgFitTrackMS.h,v 1.5 2005/10/26 03:38:40 rhatcher Exp $
00003 //
00004 // AlgFitTrackMS is a concrete FitTrackMS Algorithm class.
00005 //
00006 // Tom Bringley
00007 // ttb2@duke.edu
00008 // 6/13/2001
00010 
00011 #ifndef ALGFITTRACKMS_H
00012 #define ALGFITTRACKMS_H
00013 
00014 #include "Algorithm/AlgBase.h"
00015 #include "RecoBase/AlgReco.h"
00016 #include "RecoBase/AlgTrack.h"
00017 #include "CandFitTrackMS/CandFitTrackMSHandle.h"
00018 #include "Conventions/Detector.h"
00019 #include "TMatrixD.h"
00020 #include "TVectorD.h"
00021 
00022 class CandTrackHandle;
00023 
00024 class AlgFitTrackMS : public AlgBase, public AlgTrack, public AlgReco
00025 {
00026 
00027 public:
00028    AlgFitTrackMS();
00029    virtual ~AlgFitTrackMS();
00030    virtual void InitFitHandle(CandContext &cx);
00031    virtual void RunAlg(AlgConfig &ac, CandHandle &ch, CandContext &cx);
00032    virtual void Trace(const char *c) const;
00033 
00034 private:
00035 
00036   Double_t ChiSquared(TMatrixD &ErrorMatrix);
00037 
00038   void     DetermineQ();
00039 
00040   Int_t    DoFitAlg(Double_t pInit, Double_t& pFit, Double_t& LFit);
00041 
00042   void     FitTrack(Double_t p0, Double_t &LogCovMDeterminant,
00043              Double_t &chiSquared);
00044   
00045   Double_t GetSigmaMS(Double_t peloss);
00046 
00047   void     InitArrays();
00048 
00049   void     InvertCovMatrix(TMatrixD &CovMatrix, TMatrixD &ErrorMatrix, 
00050                            Double_t &LogDet);
00051   
00052   void     MakeCovarianceMatrix(TMatrixD &CovMatrix, Double_t p0);
00053 
00054   void     MakeStraightTrack();
00055   
00056   void     MakePPlanes(Double_t p0);
00057 
00058   void     MakeSolnMatrices(TMatrixD& VariableCoefMatrix,
00059              TMatrixD &ConstantCoefMatrix, TMatrixD &ErrorMatrix);
00060 
00061   void     SetupAlg(AlgConfig &ac);
00062 
00063   void     WriteFit(Double_t ChiSquared, Double_t p0);
00064 
00065   CandFitTrackMSHandle* fCfh;
00066 
00067   Detector::Detector_t fDetector;
00068 
00069   Double_t fQ;
00070   Double_t fFlag;
00071   
00072   Double_t fLTolerance;
00073   Double_t fPTolerance;
00074   Double_t fPosErr;
00075   Double_t fXZero;
00076   Double_t fDedx;
00077   Double_t fSuperModGapSize;
00078   Double_t fSteelPlnWidth;
00079   Double_t fScintPlnWidth;
00080   Double_t fTotalPlnWidth;
00081   
00082   Int_t fNofit;
00083   Int_t fNoBField;
00084   Int_t fNoMS;
00085   Int_t fBothFit;
00086   Int_t fFullAna;
00087 
00088   Int_t fMaxHits;
00089   Int_t fMinHits;
00090   Double_t fMaxP;
00091   Double_t fMinP;
00092   Int_t fMaxIter;
00093   Int_t fInShower;
00094 
00095   Int_t fBFisFlipped;
00096   Int_t fSuperModSkippedPlane;
00097   
00098   Int_t fNHits;
00099   Int_t fNPlanes;
00100 
00101   TMatrixD fSolnMatrix;
00102   
00103   TVectorD fXHits;
00104   TVectorD fYHits;
00105   TVectorD fStraightXHits;
00106   TVectorD fStraightYHits;
00107   TVectorD fZHits;
00108   TVectorD fZPlanes;
00109   TVectorD fPPlanes;
00110 
00111 ClassDef(AlgFitTrackMS,0)                           //AlgFitTrackMS version 0
00112 
00113 };
00114 
00115 #endif

Generated on Mon Feb 15 11:06:18 2010 for loon by  doxygen 1.3.9.1