FairRoot/PandaRoot
PndTrkLegendreFits.h
Go to the documentation of this file.
1 #ifndef PndTrkLegendreFits_H
2 #define PndTrkLegendreFits_H 1
3 
4 // Root includes
5 #include "TROOT.h"
6 
7 class PndTrkLegendreFits : public TObject
8 {
9 
10  private:
11 
12  int fIcounter;
13 
15  fNRDiv;
16 
17  Double_t
19  fRMin,
20  fThetaMax,
21  fThetaMin;
22 
23 
24  public:
25 
28 
29 
32 
33 
35  int nRDiv, // input, n. division in the R axis;
36  int nThetaD, // input n. division in the Theta axis;
37  UShort_t *Mat, // input Matrix of dimensions [fNRDiv][fNThetaDiv] of
38  // which the Maximum has to be searched;
39 
40  int *iRMax, // output, bin in R of the location of the Maximum;
41  int *iTMax // output, bin in Theta of the location of the Maximum;
42  );
43 
44 
45  Short_t FitHelixCylinder(
46  Short_t nHitsinTrack,
47  Double_t *Xconformal,
48  Double_t *Yconformal,
49  Double_t *DriftRadiusconformal,
50  Double_t *ErrorDriftRadiusconformal,
51  Double_t rotationangle,
52  Double_t trajectory_vertex[2],
53  Short_t NMAX,
54  Double_t *m,
55  Double_t *q,
56  Double_t *pAlfa,
57  Double_t *pBeta,
58  Double_t *pGamma,
59  bool *Type,
60  int istampa,
61  int IVOLTE
62  );
63 
64 
65  Short_t FitHelixCylinder2(
66  Double_t * Cosine,
67  Short_t LEGIANDRE_NTHETADIV, // input, the theta divisions;
68  Short_t LEGIANDRE_NRADIUSDIV, // input, the theta divisions;
69  Short_t nHitsinTrack,
70  Double_t *Xconformal,
71  Double_t *Yconformal,
72  Double_t *DriftRadiusconformal,
73  Double_t *ErrorDriftRadiusconformal,
74  Double_t rotationangle,
75  Double_t *Sinus,
78  Double_t trajectory_vertex[2],
79  Short_t NMAX,
80  Double_t *m,
81  Double_t *q,
82  Double_t *pAlfa,
83  Double_t *pBeta,
84  Double_t *pGamma,
85  bool *Type,
86  int istampa,
87  int IVOLTE
88  );
89 
90  Short_t FitSZspace(
91  Short_t nHitsinTrack,
92  Double_t *S,
93  Double_t *Z,
94  Double_t *DriftRadius,
95  Double_t *ErrorDriftRadius,
96  Double_t FInot,
97  Short_t NMAX,
98  Double_t *emme,
99  int PlotNumber
100  );
101 
102 
104  Short_t nHitsinTrack, // input
105  Double_t *X, // X position (in conformal or SZ or whatever);
106  Double_t *Y, // Y position (in conformal or SZ or whatever);
107  Double_t *DriftRadius, // negative if Mvd hit or similar;
108  Double_t *ErrorDriftRadiusconformal, // for the Mvd this is the Radius of the circumference
109  // translated with the Conformal transformation,
110  // which is, in the XY space : a) centered on the Pixel
111  // or Strip; with radius = 0.01 cm --> therefore encompassing
112  // completely the Pixel or Stip hit.
113 
114  Double_t *Rout, // output parameter of the straight line; Xcos(Theta)+Y*sin(Theta)=R;
115  Double_t *Thetaout // output parameter of the straight line; Xcos(Theta)+Y*sin(Theta)=R;
116  );
117 
118 
119 
121  Double_t * Cosine, // input, the precalculated values of cosine;
122  Short_t LEGIANDRE_NTHETADIV, // input, the theta divisions;
123  Short_t LEGIANDRE_NRADIUSDIV, // input, the theta divisions;
124  Short_t nHitsinTrack, // input
125  Double_t * Sinus, // input, the precalculated values of sinus;
126  Double_t THETAMAX, // input, maximum of Theta range (usually 2PI radians);
127  Double_t THETAMIN, // input, minimum of Theta range (usually 0 radians);
128  Double_t *X, // X position (in conformal or SZ or whatever);
129  Double_t *Y, // Y position (in conformal or SZ or whatever);
130  Double_t *DriftRadius, // negative if Mvd hit or similar;
131  Double_t *ErrorDriftRadiusconformal, // for the Mvd this is the Radius of the circumference
132  // translated with the Conformal transformation,
133  // which is, in the XY space : a) centered on the Pixel
134  // or Strip; with radius = 0.01 cm --> therefore encompassing
135  // completely the Pixel or Stip hit.
136 
137  Double_t *Rout, // output parameter of the straight line; Xcos(Theta)+Y*sin(Theta)=R;
138  Double_t *Thetaout // output parameter of the straight line; Xcos(Theta)+Y*sin(Theta)=R;
139  );
140 
142 
143 };
144 
145 #endif
Short_t FitHelixCylinder(Short_t nHitsinTrack, Double_t *Xconformal, Double_t *Yconformal, Double_t *DriftRadiusconformal, Double_t *ErrorDriftRadiusconformal, Double_t rotationangle, Double_t trajectory_vertex[2], Short_t NMAX, Double_t *m, Double_t *q, Double_t *pAlfa, Double_t *pBeta, Double_t *pGamma, bool *Type, int istampa, int IVOLTE)
__m128 m
Definition: P4_F32vec4.h:28
Short_t FitHelixCylinder2(Double_t *Cosine, Short_t LEGIANDRE_NTHETADIV, Short_t LEGIANDRE_NRADIUSDIV, Short_t nHitsinTrack, Double_t *Xconformal, Double_t *Yconformal, Double_t *DriftRadiusconformal, Double_t *ErrorDriftRadiusconformal, Double_t rotationangle, Double_t *Sinus, Double_t THETAMAX, Double_t THETAMIN, Double_t trajectory_vertex[2], Short_t NMAX, Double_t *m, Double_t *q, Double_t *pAlfa, Double_t *pBeta, Double_t *pGamma, bool *Type, int istampa, int IVOLTE)
void LoadMatrix_FindMaximum2(Double_t *Cosine, Short_t LEGIANDRE_NTHETADIV, Short_t LEGIANDRE_NRADIUSDIV, Short_t nHitsinTrack, Double_t *Sinus, Double_t THETAMAX, Double_t THETAMIN, Double_t *X, Double_t *Y, Double_t *DriftRadius, Double_t *ErrorDriftRadiusconformal, Double_t *Rout, Double_t *Thetaout)
double Y
Definition: anaLmdDigi.C:68
ClassDef(PndTrkLegendreFits, 1)
Double_t
int LoadMatrix_FindMaximum(Short_t nHitsinTrack, Double_t *X, Double_t *Y, Double_t *DriftRadius, Double_t *ErrorDriftRadiusconformal, Double_t *Rout, Double_t *Thetaout)
static const Double_t THETAMAX
double X
Definition: anaLmdDigi.C:68
int FindMaximumInMatrix(int nRDiv, int nThetaD, UShort_t *Mat, int *iRMax, int *iTMax)
double Z
Definition: anaLmdDigi.C:68
Short_t FitSZspace(Short_t nHitsinTrack, Double_t *S, Double_t *Z, Double_t *DriftRadius, Double_t *ErrorDriftRadius, Double_t FInot, Short_t NMAX, Double_t *emme, int PlotNumber)
static const Double_t THETAMIN