Fork me on GitHub

Ignore:
Timestamp:
Jul 9, 2020, 3:14:29 PM (4 years ago)
Author:
Michele Selvaggi <michele.selvaggi@…>
Branches:
master
Children:
c18dca6
Parents:
e79c954
Message:

updated to ACTS compliant ObsTrk class

File:
1 edited

Legend:

Unmodified
Added
Removed
  • external/TrackCovariance/ObsTrk.h

    re79c954 r942a705  
     1//
    12#ifndef G__OBSTRK_H
    23#define G__OBSTRK_H
    3 
    44#include <TVector3.h>
    55#include <TVectorD.h>
    66#include <TMatrixDSym.h>
    7 
    8 class SolGridCov;
    9 
     7#include <TDecompChol.h>
     8#include "SolGridCov.h"
     9//
    1010// Class to handle smearing of generated charged particle tracks
    11 
     11//
    1212// Author: F. Bedeschi
    1313//         INFN - Sezione di Pisa, Italy
    1414//
    1515class ObsTrk{
    16   // Class to handle simulation of tracking resolution
    17   // Prefix Obs marks variables after resolution smearing
    18   // Prefix Gen marks variables before resolution smearing
    19 private:
    20   Double_t fB;      // Solenoid magnetic field
    21   SolGridCov *fGC;  // Covariance matrix grid
    22   Double_t fGenQ;   // Generated track charge
    23   Double_t fObsQ;   // Observed  track charge
    24   TVector3 fGenX;   // Generated track origin (x,y,z)
    25   TVector3 fObsX;   // Observed  track origin (x,y,z) @ track min. approach
    26   TVector3 fGenP;   // Generated track momentum at track origin
    27   TVector3 fObsP;   // Observed  track momentum @ track minimum approach
    28   TVectorD fGenPar; // Generated helix track parameters (D, phi0, C, z0, cot(th))
    29   TVectorD fObsPar; // Observed  helix track parameters (D, phi0, C, z0, cot(th))
    30   TMatrixDSym fCov; // INterpolated covariance of track parameters
     16        //
     17        // Class to handle simulation of tracking resolution
     18        // Prefix Obs marks variables after resolution smearing
     19        // Prefix Gen marks variables before resolution smearing
     20        //
     21private:       
     22        Double_t fB;                                            // Solenoid magnetic field
     23        SolGridCov *fGC;                                        // Covariance matrix grid
     24        Double_t fGenQ;                                 // Generated track charge
     25        Double_t fObsQ;                                 // Observed  track charge
     26        TVector3 fGenX;                                 // Generated track origin (x,y,z)
     27        TVector3 fObsX;                                 // Observed  track origin (x,y,z) @ track min. approach
     28        TVector3 fGenP;                                 // Generated track momentum at track origin
     29        TVector3 fObsP;                                 // Observed  track momentum @ track minimum approach
     30        TVectorD fGenPar;                               // Generated helix track parameters (D, phi0, C, z0, cot(th))
     31        TVectorD fGenParACTS;                   // Generated helix track parameters (D, z0, phi0, th, q/p, time)
     32        TVectorD fObsPar;                               // Observed  helix track parameters (D, phi0, C, z0, cot(th))
     33        TVectorD fObsParACTS;                   // Observed  helix track parameters (D, z0, phi0, th, q/p, time)
     34        TMatrixDSym fCov;                               // INterpolated covariance of track parameters
     35        TMatrixDSym fCovACTS;                   // Covariance of track parameters in ACTS format
     36                                                                        // (D, z0, phi0, theta, q/p, time)
     37        //
     38        // Conversion to ACTS parametrization
     39        //
     40        TVectorD ParToACTS(TVectorD Par);               // Parameter conversion
     41        TMatrixDSym CovToACTS(TMatrixDSym Cov); // Covariance conversion
     42        //
    3143public:
    32   // x(3) track origin, p(3) track momentum at origin, Q charge, B magnetic field in Tesla
    33   ObsTrk(TVector3 x, TVector3 p, Double_t Q, Double_t B, SolGridCov *GC); // Initialize and generate smeared track
    34   ~ObsTrk();
    35   // Service routines
    36   TVectorD XPtoPar(TVector3 x, TVector3 p, Double_t Q);
    37   TVectorD GenToObsPar(TVectorD gPar, SolGridCov *GC);
    38   TVector3 ParToX(TVectorD Par);
    39   TVector3 ParToP(TVectorD Par);
    40   Double_t ParToQ(TVectorD Par);
    41   // Accessors
    42   // Generator level X, P, Q
    43   Double_t GetGenQ() { return fGenQ; }
    44   TVector3 GetGenX() { return fGenX; }
    45   TVector3 GetGenP() { return fGenP; }
    46   // D, phi0, C, z0, cot(th)
    47   TVectorD GetGenPar() { return fGenPar; }
    48   // Observed level X, P, Q
    49   Double_t GetObsQ() { return fObsQ; }
    50   TVector3 GetObsX() { return fObsX; }
    51   TVector3 GetObsP() { return fObsP; }
    52   // D, phi0, C, z0, cot(th)
    53   TVectorD GetObsPar() { return fObsPar; }
    54   TMatrixDSym GetCov() { return fCov; }
     44        //
     45        // Constructors
     46        // x(3) track origin, p(3) track momentum at origin, Q charge, B magnetic field in Tesla
     47        ObsTrk(TVector3 x, TVector3 p, Double_t Q, Double_t B, SolGridCov *GC); // Initialize and generate smeared track
     48        // Destructor
     49        ~ObsTrk();
     50        //
     51        // Service routines
     52        //
     53        TVectorD XPtoPar(TVector3 x, TVector3 p, Double_t Q);
     54        TVectorD GenToObsPar(TVectorD gPar, SolGridCov *GC);
     55        TVector3 ParToX(TVectorD Par);
     56        TVector3 ParToP(TVectorD Par);
     57        Double_t ParToQ(TVectorD Par);
     58        //
     59        // Accessors
     60        //
     61        // Generator level:
     62        // X, P, Q
     63        Double_t GetGenQ()      { return fGenQ; }
     64        TVector3 GetGenX()      { return fGenX; }
     65        TVector3 GetGenP()      { return fGenP; }
     66        // D, phi0, C, z0, cot(th)
     67        TVectorD GetGenPar()    { return fGenPar; }
     68        // D, z0, phi0, theta, q/p, time
     69        TVectorD GetGenParACTS()        { return fGenParACTS; }
     70        // Observed level X, P, Q
     71        Double_t GetObsQ()      { return fObsQ; }
     72        TVector3 GetObsX()      { return fObsX; }
     73        TVector3 GetObsP()      { return fObsP; }
     74        // D, phi0, C, z0, cot(th)
     75        TVectorD GetObsPar()    { return fObsPar; }
     76        // D, z0, phi0, theta, q/p, time
     77        TVectorD GetObsParACTS()        { return fObsParACTS; }
     78        // Covariances
     79        TMatrixDSym GetCov(){ return fCov; }
     80        TMatrixDSym GetCovACTS(){ return fCovACTS; };
    5581};
    5682
Note: See TracChangeset for help on using the changeset viewer.