Fork me on GitHub

source: git/external/TrackCovariance/TrkUtil.h@ c27c038

Last change on this file since c27c038 was a95da74, checked in by michele <michele.selvaggi@…>, 4 years ago

added v0 of Ionisation cluster counting

  • Property mode set to 100644
File size: 2.5 KB
Line 
1//
2#ifndef G__TRKUTIL_H
3#define G__TRKUTIL_H
4//
5#include <TVector3.h>
6#include <TVectorD.h>
7#include <TMatrixDSym.h>
8#include <TRandom.h>
9//
10//
11// Class test
12
13class TrkUtil {
14 //
15 //
16protected:
17 Double_t fBz; // Solenoid magnetic field
18 //
19 Int_t fGasSel; // Gas selection: 0: He-Iso, 1: He, 2:Ar-Eth, 3: Ar
20 Double_t fRmin; // Lower DCH radius
21 Double_t fRmax; // Higher DCH radius
22 Double_t fZmin; // Lower DCH z
23 Double_t fZmax; // Higher DCH z
24 //
25 // Service routines
26 //
27 TVectorD XPtoPar(TVector3 x, TVector3 p, Double_t Q);
28 TVector3 ParToP(TVectorD Par);
29 //
30 // Conversion to ACTS parametrization
31 //
32 TVectorD ParToACTS(TVectorD Par); // Parameter conversion
33 TMatrixDSym CovToACTS(TVectorD Par, TMatrixDSym Cov); // Covariance conversion
34 //
35 // Conversion to ILC parametrization
36 //
37 TVectorD ParToILC(TVectorD Par); // Parameter conversion
38 TMatrixDSym CovToILC(TMatrixDSym Cov); // Covariance conversion
39 //
40
41public:
42 //
43 // Constructors
44 TrkUtil();
45 TrkUtil(Double_t Bz);
46 // Destructor
47 ~TrkUtil();
48 //
49 // Overload methods to allow call without instantiating class
50 //
51 static Double_t cSpeed()
52 {
53 Double_t c = 2.99792458e8; // speed of light m/sec
54 //return TMath::C()*1.0e-9; // Incompatible with root5
55 return c*1.0e-9; // Reduced speed of light
56 }
57 //
58 // Service routines
59 //
60 static TVectorD XPtoPar(TVector3 x, TVector3 p, Double_t Q, Double_t Bz);
61 static TVector3 ParToX(TVectorD Par); // position of minimum distance from z axis
62 static TVector3 ParToP(TVectorD Par, Double_t Bz); // Get Momentum from track parameters
63 static Double_t ParToQ(TVectorD Par); // Get track charge
64 //
65 // Conversion from meters to mm
66 //
67 static TVectorD ParToMm(TVectorD Par); // Parameter conversion
68 static TMatrixDSym CovToMm(TMatrixDSym Cov); // Covariance conversion
69 //
70 // Cluster counting in gas
71 //
72 void SetBfield(Double_t Bz);
73 // Define gas volume (units = meters)
74 void SetDchBoundaries(Double_t Rmin, Double_t Rmax, Double_t Zmin, Double_t Zmax);
75 // Gas mixture selection
76 void SetGasMix(Int_t Opt);
77 // Get number of ionization clusters
78 Bool_t IonClusters(Double_t &Ncl, Double_t mass, TVectorD Par);
79 Double_t Nclusters(Double_t bgam); // mean clusters/meter vs beta*gamma
80 static Double_t Nclusters(Double_t bgam, Int_t Opt); // mean clusters/meter vs beta*gamma
81 Double_t funcNcl(Double_t *xp, Double_t *par);
82 Double_t TrkLen(TVectorD Par); // Track length inside chamber
83};
84
85#endif
Note: See TracBrowser for help on using the repository browser.