Fork me on GitHub

Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • external/TrackCovariance/VertexFit.h

    r82db145 r127644a  
    77#include <TMatrixDSym.h>
    88#include "ObsTrk.h"
    9 #include <vector>
    109#include <iostream>
    1110//
     
    2221        // Inputs
    2322        Int_t fNtr;                                     // Number of tracks
    24         std::vector<TVectorD*> fPar;            // Input parameter array
    25         std::vector<TMatrixDSym*> fCov;// Input parameter covariances
     23        TVectorD** fPar;                        // Input parameter array
     24        TMatrixDSym** fCov;                     // Input parameter covariances
    2625        // Constraints
    2726        Bool_t fVtxCst;                         // Vertex constraint flag
    2827        TVectorD fxCst;                         // Constraint value
    29         TMatrixDSym fCovCst;                    // Constraint covariance
     28        TMatrixDSym fCovCst;            // Constraint covariance
    3029        //
    3130        // Results
    32         Bool_t fVtxDone;                                // Flag vertex fit completed
    33         Double_t fRold;                         // Current value of vertex radius
     31        Bool_t fVtxDone;                        // Flag vertex fit completed
    3432        TVectorD fXv;                           // Found vertex
    3533        TMatrixDSym fcovXv;                     // Vertex covariance
     
    3735        TVectorD fChi2List;                     // List of Chi2 contributions
    3836        //
    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'
     37        // Transient arrays
     38        Double_t* ffi;                          // Fit phases
     39        TVectorD** fx0i;                        // Track expansion points
     40        TVectorD** fai;                         // dx/dphi
     41        Double_t* fa2i;                         // a'Wa
     42        TMatrixDSym** fDi;                      // W-WBW
     43        TMatrixDSym** fWi;                      // (ACA')^-1
     44        TMatrixDSym** fWinvi;           // ACA'
    4745        //
    4846        // Service routines
    49         //void InitWrkArrays();                                                 // Initializations
    50         void ResetWrkArrays();                                                  // Clear work arrays
    51         Double_t StartRadius();                                                 // Starting vertex radius determination
     47        Double_t FastRv1(TVectorD p1, TVectorD p2);             // Fast vertex radius determination
    5248        Double_t FastRv(TVectorD p1, TVectorD p2);              // Fast vertex radius determination
    53         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
     49        TMatrixDSym RegInv3(TMatrixDSym& Smat0);                // Regularized 3D matrix inversion
     50        TMatrixD Fill_A(TVectorD par, Double_t phi);    // Derivative of track position wrt track parameters
     51        TVectorD Fill_a(TVectorD par, Double_t phi);    // Derivative of track position wrt track phase
    5652        TVectorD Fill_x0(TVectorD par);                                 // Track position at dma to z-axis
    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
     53        TVectorD Fill_x(TVectorD par, Double_t phi);    // Track position at given phase
     54        void VertexFinder();                                                    // Vertex finder routine
    6055public:
    6156        //
    6257        // Constructors
    6358        VertexFit();                                                                            // Initialize waiting for tracks
    64         VertexFit(Int_t Ntr, ObsTrk** tracks);                  // Initialize with ObsTrk tracks
     59        VertexFit(Int_t Ntr, ObsTrk** tracks);                          // Initialize with ObsTrk tracks
    6560        VertexFit(Int_t Ntr, TVectorD** trkPar, TMatrixDSym** trkCov);  // Initialize with parameters and covariances
    6661        // Destructor
     
    7671        // Handle tracks/constraints
    7772        void AddVtxConstraint(TVectorD xv, TMatrixDSym cov);    // Add gaussian vertex constraint
    78         void AddTrk(TVectorD *par, TMatrixDSym *Cov);                           // Add track to input list
    79         void RemoveTrk(Int_t iTrk);                                                             // Remove iTrk track
     73        void AddTrk(TVectorD par, TMatrixDSym Cov);                     // Add track to input list
     74        void RemoveTrk(Int_t iTrk);                                                     // Remove iTrk track
    8075        //
    8176};
Note: See TracChangeset for help on using the changeset viewer.