Fork me on GitHub

Ignore:
Timestamp:
Apr 17, 2021, 10:26:04 AM (4 years ago)
Author:
GitHub <noreply@…>
Branches:
master
Children:
3b3071a
Parents:
3cfe61d (diff), 4df491e (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
git-author:
Michele Selvaggi <michele.selvaggi@…> (04/17/21 10:26:04)
git-committer:
GitHub <noreply@…> (04/17/21 10:26:04)
Message:

Merge pull request #94 from fbedesch/master

VertexFit.cc and TrkUtil.cc improvements

File:
1 edited

Legend:

Unmodified
Added
Removed
  • external/TrackCovariance/VertexFit.h

    r3cfe61d r64294db  
    77#include <TMatrixDSym.h>
    88#include "ObsTrk.h"
     9#include <vector>
    910#include <iostream>
    1011//
     
    2122        // Inputs
    2223        Int_t fNtr;                                     // Number of tracks
    23         TVectorD** fPar;                        // Input parameter array
    24         TMatrixDSym** fCov;                     // Input parameter covariances
     24        std::vector<TVectorD*> fPar;            // Input parameter array
     25        std::vector<TMatrixDSym*> fCov;// Input parameter covariances
    2526        // Constraints
    2627        Bool_t fVtxCst;                         // Vertex constraint flag
    2728        TVectorD fxCst;                         // Constraint value
    28         TMatrixDSym fCovCst;            // Constraint covariance
     29        TMatrixDSym fCovCst;                    // Constraint covariance
    2930        //
    3031        // 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
    3234        TVectorD fXv;                           // Found vertex
    3335        TMatrixDSym fcovXv;                     // Vertex covariance
     
    3537        TVectorD fChi2List;                     // List of Chi2 contributions
    3638        //
    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'
     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'
    4547        //
    4648        // 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
    4852        Double_t FastRv(TVectorD p1, TVectorD p2);              // Fast vertex radius determination
    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
     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
    5256        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
    5560public:
    5661        //
    5762        // Constructors
    5863        VertexFit();                                                                            // Initialize waiting for tracks
    59         VertexFit(Int_t Ntr, ObsTrk** tracks);                          // Initialize with ObsTrk tracks
     64        VertexFit(Int_t Ntr, ObsTrk** tracks);                  // Initialize with ObsTrk tracks
    6065        VertexFit(Int_t Ntr, TVectorD** trkPar, TMatrixDSym** trkCov);  // Initialize with parameters and covariances
    6166        // Destructor
     
    7176        // Handle tracks/constraints
    7277        void AddVtxConstraint(TVectorD xv, TMatrixDSym cov);    // Add gaussian vertex constraint
    73         void AddTrk(TVectorD par, TMatrixDSym Cov);                     // Add track to input list
    74         void RemoveTrk(Int_t iTrk);                                                     // Remove iTrk track
     78        void AddTrk(TVectorD *par, TMatrixDSym *Cov);                           // Add track to input list
     79        void RemoveTrk(Int_t iTrk);                                                             // Remove iTrk track
    7580        //
    7681};
Note: See TracChangeset for help on using the changeset viewer.