#include <TRT_TrackSegmentsUtils_xk.h>
|
| | TRT_TrackSegmentsUtils_xk () |
| | ~TRT_TrackSegmentsUtils_xk () |
| const int & | size () const |
| void | initiate (int) |
| template<class T> |
| void | findStraightLine (int, T *, const T *, const T *) |
| template<class T> |
| void | sort (T *, int *, int n) |
| template<class Tem> |
| void | findStraightLine (int Np, Tem *par, const Tem *X, const Tem *Y) |
| template<class Tem> |
| void | sort (Tem *a, int *b, int n) |
Definition at line 24 of file TRT_TrackSegmentsUtils_xk.h.
◆ TRT_TrackSegmentsUtils_xk()
| InDet::TRT_TrackSegmentsUtils_xk::TRT_TrackSegmentsUtils_xk |
( |
| ) |
|
|
inline |
◆ ~TRT_TrackSegmentsUtils_xk()
| InDet::TRT_TrackSegmentsUtils_xk::~TRT_TrackSegmentsUtils_xk |
( |
| ) |
|
|
inline |
◆ findStraightLine() [1/2]
template<class Tem>
| void InDet::TRT_TrackSegmentsUtils_xk::findStraightLine |
( |
int | Np, |
|
|
Tem * | par, |
|
|
const Tem * | X, |
|
|
const Tem * | Y ) |
Definition at line 110 of file TRT_TrackSegmentsUtils_xk.h.
112 {
113 if(
m_size<2 || Np<2 )
return;
115
118 Tem Amax = fabs(par[2]);
119
121 while(i!=Np) {
124 }
125
127
128
129
130 i=0;
int sm=0,
s=0,
l=0;
131 while(i!=Np) {
132 if((
m_NA[i ]&1)==(
m_MA[i ]=0)) {
if(++s>sm) {sm=
s;
l=
i;}}
else --
s;
133 if((
m_NA[i+1]&1)==(
m_MA[i+1]=0)) {
if(++s>sm) {sm=
s;
l=1+
i;}}
else --
s;
i+=2;
134 }
136
137
138
139 while(1) {
140
142
143
144
145
146 while(++i!=Np) {
if(X[i]!=u0)
break;} Tem U1=-1000.,
d=0.;
int m=0;
147 while(i<Np-1) {
148
149 if (X[i]==U1) {
150 if(fabs(
m_F[m]=(Y[i ]-v0)*d)<Amax)
m_NA[
m++]=
i;
151 if(fabs(
m_F[m]=(Y[i+1]-v0)*d)<Amax)
m_NA[
m++]=
i+1;
152 }
153 else {
155 if(fabs(
m_F[m]=(Y[i ]-v0)*d)<Amax)
m_NA[
m++]=
i;
156 if(fabs(
m_F[m]=(Y[i+1]-v0)*d)<Amax)
m_NA[
m++]=
i+1;
157 }
159 }
160 (
i=
l);
while(--i>0) {
if(X[i]!=u0)
break;} U1=-1000.;
161 while(i>0) {
162 if (X[i]==U1) {
163 if(fabs(
m_F[m]=(Y[i ]-v0)*d)<Amax)
m_NA[
m++]=
i;
164 if(fabs(
m_F[m]=(Y[i-1]-v0)*d)<Amax)
m_NA[
m++]=
i-1;
165
166 }
167 else {
169 if(fabs(
m_F[m]=(Y[i ]-v0)*d)<Amax)
m_NA[
m++]=
i;
170 if(fabs(
m_F[m]=(Y[i-1]-v0)*d)<Amax)
m_NA[
m++]=
i-1;
171 }
173 }
174
175 if(m<=4) break;
177
178 int nm = 0;
s = 0; sm=-1000;
179 for(
int i=0;
i!=
m-1; ++
i) {
181 if((na&1)==0) {
if(na>l) {
if(++s>sm) {sm=
s;
nm=
i;}}
else --
s;}
182 else {
if(na<l) {
if(++s>sm) {sm=
s;
nm=
i;}}
else --
s;}
183 }
184 if(nm==0) break;
188 else break;
189 }
192 }
void sort(T *, int *, int n)
l
Printing final latex table to .tex output file.
◆ findStraightLine() [2/2]
template<class T>
| void InDet::TRT_TrackSegmentsUtils_xk::findStraightLine |
( |
int | , |
|
|
T * | , |
|
|
const T * | , |
|
|
const T * | ) |
◆ initiate()
| void InDet::TRT_TrackSegmentsUtils_xk::initiate |
( |
int | n | ) |
|
|
inline |
◆ size()
| const int & InDet::TRT_TrackSegmentsUtils_xk::size |
( |
| ) |
const |
|
inline |
◆ sort() [1/2]
template<class T>
| void InDet::TRT_TrackSegmentsUtils_xk::sort |
( |
T * | , |
|
|
int * | , |
|
|
int | n ) |
◆ sort() [2/2]
template<class Tem>
| void InDet::TRT_TrackSegmentsUtils_xk::sort |
( |
Tem * | a, |
|
|
int * | b, |
|
|
int | n ) |
Definition at line 205 of file TRT_TrackSegmentsUtils_xk.h.
205 {
206
207 if(n<=1) return;
208 int mt[50],lt[50], j=
n-1,
i=0,
m=0;
209 while (1) {
210 if(j-i>1) {
212 for(
int k =i+1;
k<=
q; ++
k) {
213 if(
a[k]<=ta)
continue;
215 while(1) {
219 }
220 if(--l< k) {
q=
k-1;
break;}
221 }
222 }
224 if((q<<1)>i+j) {lt[
m]=
i; mt[
m++]=
q-1;
i=
q+1;}
225 else {lt[
m]=
q+1; mt[
m++]=j; j=
q-1;}
226 }
227 else {
228 if(i<j &&
a[i]>
a[j]) {
231 }
232 if(--m<0) return;
234 }
235 }
236 }
◆ m_F
| double* InDet::TRT_TrackSegmentsUtils_xk::m_F |
|
protected |
◆ m_MA
| int* InDet::TRT_TrackSegmentsUtils_xk::m_MA |
|
protected |
◆ m_NA
| int* InDet::TRT_TrackSegmentsUtils_xk::m_NA |
|
protected |
◆ m_size
| int InDet::TRT_TrackSegmentsUtils_xk::m_size |
|
protected |
The documentation for this class was generated from the following file: