Fork me on GitHub

Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • external/TrackCovariance/ObsTrk.h

    ra0f5d71 rff9fb2d9  
    1 //
    21#ifndef G__OBSTRK_H
    32#define G__OBSTRK_H
     3
    44#include <TVector3.h>
    55#include <TVectorD.h>
    66#include <TMatrixDSym.h>
    7 #include <TDecompChol.h>
    8 #include "SolGridCov.h"
    9 //
     7
     8class SolGridCov;
     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         //
    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         //
    21 private:       
    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         //
     16  // Class to handle simulation of tracking resolution
     17  // Prefix Obs marks variables after resolution smearing
     18  // Prefix Gen marks variables before resolution smearing
     19private:
     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
    5231public:
    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; }
     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; }
    9555};
    9656
Note: See TracChangeset for help on using the changeset viewer.