Fork me on GitHub

source: git/external/TrackCovariance/ObsTrk.h@ 00b14d5

Last change on this file since 00b14d5 was 00b14d5, checked in by Franco BEDESCHI <bed@…>, 3 years ago

First hit calculation added

  • Property mode set to 100644
File size: 3.9 KB
Line 
1//
2#ifndef G__OBSTRK_H
3#define G__OBSTRK_H
4#include <TVector3.h>
5#include <TVectorD.h>
6#include <TMatrixDSym.h>
7#include <TDecompChol.h>
8#include "SolGeom.h"
9#include "TrkUtil.h"
10#include "SolGridCov.h"
11//
12// Class to handle smearing of generated charged particle tracks
13//
14// Author: F. Bedeschi
15// INFN - Sezione di Pisa, Italy
16//
17class ObsTrk: public TrkUtil
18{
19 //
20 // Class to handle simulation of tracking resolution
21 // Prefix Obs marks variables after resolution smearing
22 // Prefix Gen marks variables before resolution smearing
23 //
24private:
25 Double_t fB; // Solenoid magnetic field
26 SolGridCov* fGC; // Covariance matrix grid
27 SolGeom* fG; // Tracker geometry
28 Double_t fGenQ; // Generated track charge
29 Double_t fObsQ; // Observed track charge
30 TVector3 fGenX; // Generated track origin (x,y,z)
31 TVector3 fObsX; // Observed track origin (x,y,z) @ track min. approach
32 TVector3 fGenP; // Generated track momentum at track origin
33 TVector3 fObsP; // Observed track momentum @ track minimum approach
34 TVectorD fGenPar; // Generated helix track parameters (D, phi0, C, z0, cot(th)) in meters
35 TVectorD fGenParMm; // Generated helix track parameters (D, phi0, C, z0, cot(th)) in mm
36 TVectorD fGenParACTS; // Generated helix track parameters (D, z0, phi0, th, q/p, time
37 TVectorD fGenParILC; // Generated helix track parameters (w, phi0, d0, z0, tan(lambda))
38 TVectorD fObsPar; // Observed helix track parameters (D, phi0, C, z0, cot(th)) in meters
39 TVectorD fObsParMm; // Observed helix track parameters (D, phi0, C, z0, cot(th)) in mm
40 TVectorD fObsParACTS; // Observed helix track parameters (D, z0, phi0, th, q/p, time
41 TVectorD fObsParILC; // Observed helix track parameters (d0, phi0, w, z0, tan(lambda))
42 TMatrixDSym fCov; // Interpolated covariance of track in meters
43 TMatrixDSym fCovMm; // Interpolated covariance of track parameters in mm
44 TMatrixDSym fCovACTS; // Covariance of track parameters in ACTS format
45 // (D, z0, phi0, theta, q/p, time)
46 TMatrixDSym fCovILC; // Covariance of track parameters in ILC format
47 // (d0, phi0, w, z0, tan(lambda))
48 TVector3 fXfirst; // x,y,z of first track hit
49 //
50 // Service routines
51 //
52 TVectorD GenToObsPar(TVectorD gPar);
53 //
54public:
55 //
56 // Constructors
57 // x(3) track origin, p(3) track momentum at origin, Q charge, B magnetic field in Tesla
58 ObsTrk(TVector3 x, TVector3 p, Double_t Q, SolGridCov *GC, SolGeom *G); // Initialize and generate smeared
59 ObsTrk(Double_t *x, Double_t *p, Double_t Q, SolGridCov* GC, SolGeom *G); // Initialize and generate smeared track
60 // Destructor
61 ~ObsTrk();
62 //
63 // Accessors
64 //
65 // Generator level:
66 // X, P, Q
67 Double_t GetGenQ() { return fGenQ; }
68 TVector3 GetGenX() { return fGenX; }
69 TVector3 GetGenP() { return fGenP; }
70 // D, phi0, C, z0, cot(th)
71 TVectorD GetGenPar() { return fGenPar; } // in meters
72 TVectorD GetGenParMm() { return fGenParMm; } // in mm
73 // D, z0, phi0, theta, q/p, time
74 TVectorD GetGenParACTS() { return fGenParACTS; }
75 // d0, phi0, w, z0, tan(lambda)
76 TVectorD GetGenParILC() { return fGenParILC; }
77 // Observed level X, P, Q
78 Double_t GetObsQ() { return fObsQ; }
79 TVector3 GetObsX() { return fObsX; }
80 TVector3 GetObsP() { return fObsP; }
81 // D, phi0, C, z0, cot(th)
82 TVectorD GetObsPar() { return fObsPar; } // in meters
83 TVectorD GetObsParMm() { return fObsParMm; } // In mm
84 // D, z0, phi0, theta, q/p, time
85 TVectorD GetObsParACTS() { return fObsParACTS; }
86 // d0, phi0, w, z0, tan(lambda)
87 TVectorD GetObsParILC() { return fObsParILC; }
88 // Covariances
89 TMatrixDSym GetCov() { return fCov; } // in meters
90 TMatrixDSym GetCovMm() { return fCov; } // in mm
91 TMatrixDSym GetCovACTS(){ return fCovACTS; }
92 TMatrixDSym GetCovILC() { return fCovILC; }
93 // First hit
94 TVector3 GetFirstHit() { return fXfirst; }
95};
96
97#endif
Note: See TracBrowser for help on using the repository browser.