Fork me on GitHub

Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • external/TrackCovariance/ObsTrk.h

    rff9fb2d9 ra0f5d71  
     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 fGenParILC;                            // Generated helix track parameters (w, phi0, d0, z0, tan(lambda))
     33        TVectorD fObsPar;                               // Observed  helix track parameters (D, phi0, C, z0, cot(th))
     34        TVectorD fObsParACTS;                   // Observed  helix track parameters (D, z0, phi0, th, q/p, time
     35        TVectorD fObsParILC;                            // Observed  helix track parameters (d0, phi0, w, z0, tan(lambda))
     36        TMatrixDSym fCov;                               // INterpolated covariance of track parameters
     37        TMatrixDSym fCovACTS;                   // Covariance of track parameters in ACTS format
     38                                                                        // (D, z0, phi0, theta, q/p, time)
     39        TMatrixDSym fCovILC;                            // Covariance of track parameters in ILC format
     40                                                                        // (d0, phi0, w, z0, tan(lambda))
     41        //
     42        // Conversion to ACTS parametrization
     43        //
     44        TVectorD ParToACTS(TVectorD Par);               // Parameter conversion
     45        TMatrixDSym CovToACTS(TMatrixDSym Cov); // Covariance
     46        //
     47        // Conversion to ILC parametrization
     48        //
     49        TVectorD ParToILC(TVectorD Par);                // Parameter conversion
     50        TMatrixDSym CovToILC(TMatrixDSym Cov);  // Covariance conversion
     51        //
    3152public:
    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; }
     53        //
     54        // Constructors
     55        // x(3) track origin, p(3) track momentum at origin, Q charge, B magnetic field in Tesla
     56        ObsTrk(TVector3 x, TVector3 p, Double_t Q, Double_t B, SolGridCov *GC); // Initialize and generate smeared track
     57        // Destructor
     58        ~ObsTrk();
     59        //
     60        // Service routines
     61        //
     62        TVectorD XPtoPar(TVector3 x, TVector3 p, Double_t Q);
     63        TVectorD GenToObsPar(TVectorD gPar, SolGridCov *GC);
     64        TVector3 ParToX(TVectorD Par);
     65        TVector3 ParToP(TVectorD Par);
     66        Double_t ParToQ(TVectorD Par);
     67        //
     68        // Accessors
     69        //
     70        // Generator level:
     71        // X, P, Q
     72        Double_t GetGenQ()      { return fGenQ; }
     73        TVector3 GetGenX()      { return fGenX; }
     74        TVector3 GetGenP()      { return fGenP; }
     75        // D, phi0, C, z0, cot(th)
     76        TVectorD GetGenPar()    { return fGenPar; }
     77        // D, z0, phi0, theta, q/p, time
     78        TVectorD GetGenParACTS()        { return fGenParACTS; }
     79        // d0, phi0, w, z0, tan(lambda)
     80        TVectorD GetGenParILC() { return fGenParILC; }
     81        // Observed level X, P, Q
     82        Double_t GetObsQ()      { return fObsQ; }
     83        TVector3 GetObsX()      { return fObsX; }
     84        TVector3 GetObsP()      { return fObsP; }
     85        // D, phi0, C, z0, cot(th)
     86        TVectorD GetObsPar()    { return fObsPar; }
     87        // D, z0, phi0, theta, q/p, time
     88        TVectorD GetObsParACTS()        { return fObsParACTS; }
     89        // d0, phi0, w, z0, tan(lambda)
     90        TVectorD GetObsParILC() { return fObsParILC; }
     91        // Covariances
     92        TMatrixDSym GetCov(){ return fCov; }
     93        TMatrixDSym GetCovACTS(){ return fCovACTS; }
     94        TMatrixDSym GetCovILC(){ return fCovILC; }
    5595};
    5696
Note: See TracChangeset for help on using the changeset viewer.