Fork me on GitHub

Ignore:
Timestamp:
Jul 13, 2020, 5:20:43 PM (4 years ago)
Author:
Michele Selvaggi <michele.selvaggi@…>
Branches:
master
Children:
97ef971, d192152
Parents:
3051ea17
Message:

added latest version of ObsTrk class

File:
1 edited

Legend:

Unmodified
Added
Removed
  • external/TrackCovariance/ObsTrk.cc

    r3051ea17 ra0f5d71  
    2020        fGenPar.ResizeTo(5);
    2121        fGenParACTS.ResizeTo(6);
     22        fGenParILC.ResizeTo(5);
    2223        fObsPar.ResizeTo(5);
    2324        fObsParACTS.ResizeTo(6);
     25        fObsParILC.ResizeTo(5);
    2426        fCov.ResizeTo(5, 5);
    2527        fCovACTS.ResizeTo(6, 6);
     28        fCovILC.ResizeTo(5, 5);
    2629        fGenPar = XPtoPar(x,p,Q);
    2730        fGenParACTS = ParToACTS(fGenPar);
     31        fGenParILC = ParToILC(fGenPar);
    2832        /*
    2933        std::cout << "ObsTrk::ObsTrk: fGenPar";
     
    3337        fObsPar = GenToObsPar(fGenPar, fGC);
    3438        fObsParACTS = ParToACTS(fObsPar);
     39        fObsParILC = ParToILC(fObsPar);
    3540        fObsX = ParToX(fObsPar);
    3641        fObsP = ParToP(fObsPar);
    3742        fObsQ = ParToQ(fObsPar);
    3843        fCovACTS = CovToACTS(fCov);
     44        fCovILC = CovToILC(fCov);
    3945}
    4046//
     
    206212}
    207213
     214// Parameter conversion to ILC format
     215TVectorD ObsTrk::ParToILC(TVectorD Par)
     216{
     217        TVectorD pILC(5);       // Return vector
     218        //
     219        pILC(0) = Par(0)*1.0e3;                 // d0 in mm
     220        pILC(1) = Par(1);                               // phi0 is unchanged
     221        pILC(2) = -2 * Par(2)*1.0e-3;   // w in mm^-1
     222        pILC(3) = Par(3)*1.0e3;                 // z0 in mm
     223        pILC(4) = Par(4);                               // tan(lambda) = cot(theta)
     224        //
     225        return pILC;
     226}
     227// Covariance conversion to ILC format
     228TMatrixDSym ObsTrk::CovToILC(TMatrixDSym Cov)
     229{
     230        TMatrixDSym cILC(5); cILC.Zero();
     231        //
     232        // Fill derivative matrix
     233        TMatrixD A(5, 5);       A.Zero();
     234        //
     235        A(0, 0) = 1.0e3;                // D-d0 in mm
     236        A(1, 1) = 1.0;          // phi0-phi0
     237        A(2, 2) = -2.0e-3;      // w-C
     238        A(3, 3) = 1.0e3;                // z0-z0 conversion to mm
     239        A(4, 4) = 1.0;          // tan(lambda) - cot(theta)
     240        //
     241        TMatrixDSym Cv = Cov;
     242        TMatrixD At(5, 5);
     243        At.Transpose(A);
     244        Cv.Similarity(At);
     245        cILC = Cv;
     246        //
     247        return cILC;
     248}
     249
    208250
    209251
Note: See TracChangeset for help on using the changeset viewer.