Changeset 82db145 in git for external/TrackCovariance/VertexFit.h
- Timestamp:
- Apr 12, 2021, 6:33:23 PM (4 years ago)
- Branches:
- master
- Children:
- c5696dd
- Parents:
- 3cfe61d
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
external/TrackCovariance/VertexFit.h
r3cfe61d r82db145 7 7 #include <TMatrixDSym.h> 8 8 #include "ObsTrk.h" 9 #include <vector> 9 10 #include <iostream> 10 11 // … … 21 22 // Inputs 22 23 Int_t fNtr; // Number of tracks 23 TVectorD** fPar;// Input parameter array24 TMatrixDSym** fCov;// Input parameter covariances24 std::vector<TVectorD*> fPar; // Input parameter array 25 std::vector<TMatrixDSym*> fCov;// Input parameter covariances 25 26 // Constraints 26 27 Bool_t fVtxCst; // Vertex constraint flag 27 28 TVectorD fxCst; // Constraint value 28 TMatrixDSym fCovCst; // Constraint covariance29 TMatrixDSym fCovCst; // Constraint covariance 29 30 // 30 31 // Results 31 Bool_t fVtxDone; // Flag vertex fit completed 32 Bool_t fVtxDone; // Flag vertex fit completed 33 Double_t fRold; // Current value of vertex radius 32 34 TVectorD fXv; // Found vertex 33 35 TMatrixDSym fcovXv; // Vertex covariance … … 35 37 TVectorD fChi2List; // List of Chi2 contributions 36 38 // 37 // Transientarrays38 Double_t*ffi; // Fit phases39 TVectorD** fx0i;// Track expansion points40 TVectorD**fai; // dx/dphi41 Double_t*fa2i; // a'Wa42 TMatrixDSym**fDi; // W-WBW43 TMatrixDSym**fWi; // (ACA')^-144 TMatrixDSym**fWinvi; // ACA'39 // Work arrays 40 std::vector<Double_t> ffi; // Fit phases 41 std::vector<TVectorD*> fx0i; // Track expansion points 42 std::vector<TVectorD*> fai; // dx/dphi 43 std::vector<Double_t> fa2i; // a'Wa 44 std::vector<TMatrixDSym*> fDi; // W-WBW 45 std::vector<TMatrixDSym*> fWi; // (ACA')^-1 46 std::vector<TMatrixDSym*> fWinvi; // ACA' 45 47 // 46 48 // Service routines 47 Double_t FastRv1(TVectorD p1, TVectorD p2); // Fast vertex radius determination 49 //void InitWrkArrays(); // Initializations 50 void ResetWrkArrays(); // Clear work arrays 51 Double_t StartRadius(); // Starting vertex radius determination 48 52 Double_t FastRv(TVectorD p1, TVectorD p2); // Fast vertex radius determination 49 TMatrixDSym RegInv 3(TMatrixDSym& Smat0);// Regularized 3D matrix inversion50 TMatrixD Fill_A(TVectorD par, Double_t phi); // Derivative of track position wrt track parameters51 TVectorD Fill_a(TVectorD par, Double_t phi); // Derivative of track position wrt track phase53 TMatrixDSym RegInv(TMatrixDSym& Smat0); // Regularized 3D matrix inversion 54 TMatrixD Fill_A(TVectorD par, Double_t phi); // Derivative of track position wrt track parameters 55 TVectorD Fill_a(TVectorD par, Double_t phi); // Derivative of track position wrt track phase 52 56 TVectorD Fill_x0(TVectorD par); // Track position at dma to z-axis 53 TVectorD Fill_x(TVectorD par, Double_t phi); // Track position at given phase 54 void VertexFinder(); // Vertex finder routine 57 TVectorD Fill_x(TVectorD par, Double_t phi); // Track position at given phase 58 void UpdateTrkArrays(Int_t i); // Fill track realted arrays 59 void VertexFitter(); // Vertex finder routine 55 60 public: 56 61 // 57 62 // Constructors 58 63 VertexFit(); // Initialize waiting for tracks 59 VertexFit(Int_t Ntr, ObsTrk** tracks); 64 VertexFit(Int_t Ntr, ObsTrk** tracks); // Initialize with ObsTrk tracks 60 65 VertexFit(Int_t Ntr, TVectorD** trkPar, TMatrixDSym** trkCov); // Initialize with parameters and covariances 61 66 // Destructor … … 71 76 // Handle tracks/constraints 72 77 void AddVtxConstraint(TVectorD xv, TMatrixDSym cov); // Add gaussian vertex constraint 73 void AddTrk(TVectorD par, TMatrixDSym Cov);// Add track to input list74 void RemoveTrk(Int_t iTrk); // Remove iTrk track78 void AddTrk(TVectorD *par, TMatrixDSym *Cov); // Add track to input list 79 void RemoveTrk(Int_t iTrk); // Remove iTrk track 75 80 // 76 81 };
Note:
See TracChangeset
for help on using the changeset viewer.