Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Sergey Zharko
cbmroot
Commits
d8163335
Commit
d8163335
authored
Oct 29, 2021
by
Sergey Gorbunov
Browse files
remove variables named B0 as it conflicts with ROOT B0() macro on mac OsX
parent
30adbcea
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
217 additions
and
217 deletions
+217
-217
reco/L1/CbmL1.cxx
reco/L1/CbmL1.cxx
+2
-2
reco/L1/CbmL1TrackFitter.cxx
reco/L1/CbmL1TrackFitter.cxx
+11
-11
reco/L1/L1Algo/L1Field.h
reco/L1/L1Algo/L1Field.h
+30
-30
reco/L1/L1Algo/L1TrackExtender.cxx
reco/L1/L1Algo/L1TrackExtender.cxx
+30
-30
reco/L1/L1Algo/L1TrackFitter.cxx
reco/L1/L1Algo/L1TrackFitter.cxx
+108
-108
reco/L1/ParticleFinder/CbmL1PFFitter.cxx
reco/L1/ParticleFinder/CbmL1PFFitter.cxx
+36
-36
No files found.
reco/L1/CbmL1.cxx
View file @
d8163335
...
...
@@ -1220,9 +1220,9 @@ void CbmL1::Reconstruct(CbmEvent* event)
// algo->L1KFTrackFitter( fExtrapolateToTheEndOfSTS );
{
// track fit
L1FieldValue
fB0
=
algo
->
GetVtxFieldValue
();
L1FieldValue
b
=
algo
->
GetVtxFieldValue
();
if
((
fabs
(
fB0
.
x
[
0
])
<
0.0000001
)
&&
(
fabs
(
fB0
.
y
[
0
])
<
0.0000001
)
&&
(
fabs
(
fB0
.
z
[
0
])
<
0.0000001
))
{
if
((
fabs
(
b
.
x
[
0
])
<
0.0000001
)
&&
(
fabs
(
b
.
y
[
0
])
<
0.0000001
)
&&
(
fabs
(
b
.
z
[
0
])
<
0.0000001
))
{
algo
->
KFTrackFitter_simple
();
}
else
{
...
...
reco/L1/CbmL1TrackFitter.cxx
View file @
d8163335
...
...
@@ -67,25 +67,25 @@ void CbmL1::TrackFitter(vector<CbmL1Track>& Tracks, CbmL1Vtx* V)
L1Station *st0 = &(algo->vStations[ist0]);
L1Station *st1 = &(algo->vStations[ist1]);
L1Station *st2 = &(algo->vStations[ist2]);
L1FieldValue
B
0,
B
1,
B
2;
fvec
Z
0= st0->z,
Z
1= st1->z,
Z
2= st2->z ;
st0->fieldSlice.GetFieldValue( (*ih0)->x, (*ih0)->y,
B
0 );
st1->fieldSlice.GetFieldValue( (*ih1)->x, (*ih1)->y,
B
1 );
st2->fieldSlice.GetFieldValue( (*ih2)->x, (*ih2)->y,
B
2 );
fld[ist0].Set(
B
0,
Z
0,
B
1,
Z
1,
B
2,
Z
2 );
L1FieldValue
b
0,
b
1,
b
2;
fvec
z
0= st0->z,
z
1= st1->z,
z
2= st2->z ;
st0->fieldSlice.GetFieldValue( (*ih0)->x, (*ih0)->y,
b
0 );
st1->fieldSlice.GetFieldValue( (*ih1)->x, (*ih1)->y,
b
1 );
st2->fieldSlice.GetFieldValue( (*ih2)->x, (*ih2)->y,
b
2 );
fld[ist0].Set(
b
0,
z
0,
b
1,
z
1,
b
2,
z
2 );
fld[ist1] = fld[ist0];
fld[ist2] = fld[ist0];
if( ih0!=T.StsHits.end() ){
while(1){
ih2 = ih1;
B
2 =
B
1;
Z
2 =
Z
1; st2 = st1;
ih1 = ih0;
B
1 =
B
0;
Z
1 =
Z
0; st1 = st0;
ih2 = ih1;
b
2 =
b
1;
z
2 =
z
1; st2 = st1;
ih1 = ih0;
b
1 =
b
0;
z
1 =
z
0; st1 = st0;
ih0++;
if( ih0==T.StsHits.end() ) break;
ist0 = (*ih0)->iStation;
st0 = &(algo->vStations[ist0]);
Z
0 = st0->z;
st0->fieldSlice.GetFieldValue( (*ih0)->x, (*ih0)->y,
B
0 );
fld[ist0].Set(
B
0,
Z
0,
B
1,
Z
1,
B
2,
Z
2 );
z
0 = st0->z;
st0->fieldSlice.GetFieldValue( (*ih0)->x, (*ih0)->y,
b
0 );
fld[ist0].Set(
b
0,
z
0,
b
1,
z
1,
b
2,
z
2 );
}
}
}
...
...
reco/L1/L1Algo/L1Field.h
View file @
d8163335
...
...
@@ -129,46 +129,46 @@ public:
B
[
2
]
=
cz0
+
cz1
*
dz
+
cz2
*
dz2
;
}
void
Set
(
const
L1FieldValue
&
B
0
,
const
fvec
B
0z
,
const
L1FieldValue
&
B
1
,
const
fvec
B
1z
,
const
L1FieldValue
&
B
2
,
const
fvec
B
2z
)
void
Set
(
const
L1FieldValue
&
b
0
,
const
fvec
b
0z
,
const
L1FieldValue
&
b
1
,
const
fvec
b
1z
,
const
L1FieldValue
&
b
2
,
const
fvec
b
2z
)
{
z0
=
B
0z
;
fvec
dz1
=
B
1z
-
B
0z
,
dz2
=
B
2z
-
B
0z
;
z0
=
b
0z
;
fvec
dz1
=
b
1z
-
b
0z
,
dz2
=
b
2z
-
b
0z
;
fvec
det
=
rcp
(
fvec
(
dz1
*
dz2
*
(
dz2
-
dz1
)));
fvec
w21
=
-
dz2
*
det
;
fvec
w22
=
dz1
*
det
;
fvec
w11
=
-
dz2
*
w21
;
fvec
w12
=
-
dz1
*
w22
;
fvec
d
B
1
=
B
1
.
x
-
B
0
.
x
;
fvec
d
B
2
=
B
2
.
x
-
B
0
.
x
;
cx0
=
B
0
.
x
;
cx1
=
d
B
1
*
w11
+
d
B
2
*
w12
;
cx2
=
d
B
1
*
w21
+
d
B
2
*
w22
;
d
B
1
=
B
1
.
y
-
B
0
.
y
;
d
B
2
=
B
2
.
y
-
B
0
.
y
;
cy0
=
B
0
.
y
;
cy1
=
d
B
1
*
w11
+
d
B
2
*
w12
;
cy2
=
d
B
1
*
w21
+
d
B
2
*
w22
;
d
B
1
=
B
1
.
z
-
B
0
.
z
;
d
B
2
=
B
2
.
z
-
B
0
.
z
;
cz0
=
B
0
.
z
;
cz1
=
d
B
1
*
w11
+
d
B
2
*
w12
;
cz2
=
d
B
1
*
w21
+
d
B
2
*
w22
;
fvec
d
b
1
=
b
1
.
x
-
b
0
.
x
;
fvec
d
b
2
=
b
2
.
x
-
b
0
.
x
;
cx0
=
b
0
.
x
;
cx1
=
d
b
1
*
w11
+
d
b
2
*
w12
;
cx2
=
d
b
1
*
w21
+
d
b
2
*
w22
;
d
b
1
=
b
1
.
y
-
b
0
.
y
;
d
b
2
=
b
2
.
y
-
b
0
.
y
;
cy0
=
b
0
.
y
;
cy1
=
d
b
1
*
w11
+
d
b
2
*
w12
;
cy2
=
d
b
1
*
w21
+
d
b
2
*
w22
;
d
b
1
=
b
1
.
z
-
b
0
.
z
;
d
b
2
=
b
2
.
z
-
b
0
.
z
;
cz0
=
b
0
.
z
;
cz1
=
d
b
1
*
w11
+
d
b
2
*
w12
;
cz2
=
d
b
1
*
w21
+
d
b
2
*
w22
;
}
void
Set
(
const
L1FieldValue
&
B
0
,
const
fvec
B
0z
,
const
L1FieldValue
&
B
1
,
const
fvec
B
1z
)
void
Set
(
const
L1FieldValue
&
b
0
,
const
fvec
b
0z
,
const
L1FieldValue
&
b
1
,
const
fvec
b
1z
)
{
z0
=
B
0z
[
0
];
fvec
dzi
=
rcp
(
fvec
(
B
1z
-
B
0z
));
cx0
=
B
0
.
x
;
cy0
=
B
0
.
y
;
cz0
=
B
0
.
z
;
cx1
=
(
B
1
.
x
-
B
0
.
x
)
*
dzi
;
cy1
=
(
B
1
.
y
-
B
0
.
y
)
*
dzi
;
cz1
=
(
B
1
.
z
-
B
0
.
z
)
*
dzi
;
z0
=
b
0z
[
0
];
fvec
dzi
=
rcp
(
fvec
(
b
1z
-
b
0z
));
cx0
=
b
0
.
x
;
cy0
=
b
0
.
y
;
cz0
=
b
0
.
z
;
cx1
=
(
b
1
.
x
-
b
0
.
x
)
*
dzi
;
cy1
=
(
b
1
.
y
-
b
0
.
y
)
*
dzi
;
cz1
=
(
b
1
.
z
-
b
0
.
z
)
*
dzi
;
cx2
=
cy2
=
cz2
=
0
;
}
...
...
reco/L1/L1Algo/L1TrackExtender.cxx
View file @
d8163335
...
...
@@ -105,18 +105,18 @@ void L1Algo::BranchFitterFast(const L1Branch& t, L1TrackPar& T, const bool dir,
T
.
C44
=
1.
;
T
.
C55
=
hit0
.
dt
*
hit0
.
dt
;
L1FieldValue
fB0
,
fB1
,
fB2
_fvecalignment
;
L1FieldValue
f
ld
B0
,
f
ld
B1
,
f
ld
B2
_fvecalignment
;
L1FieldRegion
fld
_fvecalignment
;
fvec
f
z
0
=
sta1
.
z
;
// suppose field is smoth
fvec
f
z
1
=
sta2
.
z
;
fvec
f
z
2
=
sta0
.
z
;
fvec
f
ldZ
0
=
sta1
.
z
;
// suppose field is smoth
fvec
f
ldZ
1
=
sta2
.
z
;
fvec
f
ldZ
2
=
sta0
.
z
;
sta1
.
fieldSlice
.
GetFieldValue
(
x1
,
y1
,
fB0
);
sta2
.
fieldSlice
.
GetFieldValue
(
x2
,
y2
,
fB1
);
sta0
.
fieldSlice
.
GetFieldValue
(
x0
,
y0
,
fB2
);
sta1
.
fieldSlice
.
GetFieldValue
(
x1
,
y1
,
f
ld
B0
);
sta2
.
fieldSlice
.
GetFieldValue
(
x2
,
y2
,
f
ld
B1
);
sta0
.
fieldSlice
.
GetFieldValue
(
x0
,
y0
,
f
ld
B2
);
fld
.
Set
(
fB2
,
f
z
2
,
fB1
,
f
z
1
,
fB0
,
f
z
0
);
fld
.
Set
(
f
ld
B2
,
f
ldZ
2
,
f
ld
B1
,
f
ldZ
1
,
f
ld
B0
,
f
ldZ
0
);
int
ista_prev
=
ista1
;
int
ista
=
ista2
;
...
...
@@ -163,16 +163,16 @@ void L1Algo::BranchFitterFast(const L1Branch& t, L1TrackPar& T, const bool dir,
FilterTime
(
T
,
hit
.
t
,
hit
.
dt
);
fB0
=
fB1
;
fB1
=
fB2
;
f
z
0
=
f
z
1
;
f
z
1
=
f
z
2
;
f
ld
B0
=
f
ld
B1
;
f
ld
B1
=
f
ld
B2
;
f
ldZ
0
=
f
ldZ
1
;
f
ldZ
1
=
f
ldZ
2
;
fvec
x
,
y
;
StripsToCoor
(
u
,
v
,
x
,
y
,
sta
);
sta
.
fieldSlice
.
GetFieldValue
(
x
,
y
,
fB2
);
sta
.
fieldSlice
.
GetFieldValue
(
x
,
y
,
f
ld
B2
);
f
z
2
=
sta
.
z
;
fld
.
Set
(
fB2
,
f
z
2
,
fB1
,
f
z
1
,
fB0
,
f
z
0
);
f
ldZ
2
=
sta
.
z
;
fld
.
Set
(
f
ld
B2
,
f
ldZ
2
,
f
ld
B1
,
f
ldZ
1
,
f
ld
B0
,
f
ldZ
0
);
}
// i
}
// void L1Algo::BranchFitterFast
...
...
@@ -232,17 +232,17 @@ void L1Algo::FindMoreHits(L1Branch& t, L1TrackPar& T, const bool dir,
fvec
x2
,
y2
;
StripsToCoor
(
u2
,
v2
,
x2
,
y2
,
sta2
);
L1FieldValue
fB0
,
fB1
,
fB2
_fvecalignment
;
L1FieldValue
f
ld
B0
,
f
ld
B1
,
f
ld
B2
_fvecalignment
;
L1FieldRegion
fld
_fvecalignment
;
fvec
f
z
0
=
sta1
.
z
;
fvec
f
z
1
=
sta2
.
z
;
fvec
f
z
2
=
sta0
.
z
;
fvec
f
ldZ
0
=
sta1
.
z
;
fvec
f
ldZ
1
=
sta2
.
z
;
fvec
f
ldZ
2
=
sta0
.
z
;
sta1
.
fieldSlice
.
GetFieldValue
(
x1
,
y1
,
fB0
);
sta2
.
fieldSlice
.
GetFieldValue
(
x2
,
y2
,
fB1
);
sta0
.
fieldSlice
.
GetFieldValue
(
x0
,
y0
,
fB2
);
sta1
.
fieldSlice
.
GetFieldValue
(
x1
,
y1
,
f
ld
B0
);
sta2
.
fieldSlice
.
GetFieldValue
(
x2
,
y2
,
f
ld
B1
);
sta0
.
fieldSlice
.
GetFieldValue
(
x0
,
y0
,
f
ld
B2
);
fld
.
Set
(
fB2
,
f
z
2
,
fB1
,
f
z
1
,
fB0
,
f
z
0
);
fld
.
Set
(
f
ld
B2
,
f
ldZ
2
,
f
ld
B1
,
f
ldZ
1
,
f
ld
B0
,
f
ldZ
0
);
int
ista
=
ista2
+
2
*
step
;
// skip one station. if there would be hit it has to be found on previous stap
...
...
@@ -343,13 +343,13 @@ void L1Algo::FindMoreHits(L1Branch& t, L1TrackPar& T, const bool dir,
FilterTime
(
T
,
hit
.
t
,
hit
.
dt
);
fB0
=
fB1
;
fB1
=
fB2
;
f
z
0
=
f
z
1
;
f
z
1
=
f
z
2
;
sta
.
fieldSlice
.
GetFieldValue
(
x
,
y
,
fB2
);
f
z
2
=
sta
.
z
;
fld
.
Set
(
fB2
,
f
z
2
,
fB1
,
f
z
1
,
fB0
,
f
z
0
);
f
ld
B0
=
f
ld
B1
;
f
ld
B1
=
f
ld
B2
;
f
ldZ
0
=
f
ldZ
1
;
f
ldZ
1
=
f
ldZ
2
;
sta
.
fieldSlice
.
GetFieldValue
(
x
,
y
,
f
ld
B2
);
f
ldZ
2
=
sta
.
z
;
fld
.
Set
(
f
ld
B2
,
f
ldZ
2
,
f
ld
B1
,
f
ldZ
1
,
f
ld
B0
,
f
ldZ
0
);
}
// save hits
...
...
reco/L1/L1Algo/L1TrackFitter.cxx
View file @
d8163335
...
...
@@ -107,20 +107,20 @@ void L1Algo::KFTrackFitter_simple() // TODO: Add pipe.
T
.
C22
=
T
.
C33
=
vINF
;
T
.
C44
=
1.
;
// static L1FieldValue fB0, fB1, fB2 _fvecalignment;
// static L1FieldValue f
ld
B0, f
ld
B1, f
ld
B2 _fvecalignment;
// static L1FieldRegion fld _fvecalignment;
L1FieldValue
fB0
,
fB1
,
fB2
_fvecalignment
;
L1FieldValue
f
ld
B0
,
f
ld
B1
,
f
ld
B2
_fvecalignment
;
L1FieldRegion
fld
_fvecalignment
;
fvec
f
z
0
=
sta1
.
z
;
// suppose field is smoth
fvec
f
z
1
=
sta2
.
z
;
fvec
f
z
2
=
sta0
.
z
;
fvec
f
ldZ
0
=
sta1
.
z
;
// suppose field is smoth
fvec
f
ldZ
1
=
sta2
.
z
;
fvec
f
ldZ
2
=
sta0
.
z
;
sta1
.
fieldSlice
.
GetFieldValue
(
x1
,
y1
,
fB0
);
sta2
.
fieldSlice
.
GetFieldValue
(
x2
,
y2
,
fB1
);
sta0
.
fieldSlice
.
GetFieldValue
(
x0
,
y0
,
fB2
);
sta1
.
fieldSlice
.
GetFieldValue
(
x1
,
y1
,
f
ld
B0
);
sta2
.
fieldSlice
.
GetFieldValue
(
x2
,
y2
,
f
ld
B1
);
sta0
.
fieldSlice
.
GetFieldValue
(
x0
,
y0
,
f
ld
B2
);
fld
.
Set
(
fB2
,
f
z
2
,
fB1
,
f
z
1
,
fB0
,
f
z
0
);
fld
.
Set
(
f
ld
B2
,
f
ldZ
2
,
f
ld
B1
,
f
ldZ
1
,
f
ld
B0
,
f
ldZ
0
);
int
ista
=
ista2
;
//cout<<"\nfit, iter=:"<<iter<<endl;
...
...
@@ -150,14 +150,14 @@ void L1Algo::KFTrackFitter_simple() // TODO: Add pipe.
L1Filter
(
T
,
sta
.
frontInfo
,
u
);
L1Filter
(
T
,
sta
.
backInfo
,
v
);
fB0
=
fB1
;
fB1
=
fB2
;
f
z
0
=
f
z
1
;
f
z
1
=
f
z
2
;
sta
.
fieldSlice
.
GetFieldValue
(
x
,
y
,
fB2
);
f
z
2
=
sta
.
z
;
fld
.
Set
(
fB2
,
f
z
2
,
fB1
,
f
z
1
,
fB0
,
f
z
0
);
f
ld
B0
=
f
ld
B1
;
f
ld
B1
=
f
ld
B2
;
f
ldZ
0
=
f
ldZ
1
;
f
ldZ
1
=
f
ldZ
2
;
sta
.
fieldSlice
.
GetFieldValue
(
x
,
y
,
f
ld
B2
);
f
ldZ
2
=
sta
.
z
;
fld
.
Set
(
f
ld
B2
,
f
ldZ
2
,
f
ld
B1
,
f
ldZ
1
,
f
ld
B0
,
f
ldZ
0
);
}
// i
// write received parametres in track
...
...
@@ -245,19 +245,19 @@ void L1Algo::KFTrackFitter_simple() // TODO: Add pipe.
T
.
C22
=
T
.
C33
=
vINF
;
T
.
C44
=
1.
;
// static L1FieldValue fB0, fB1, fB2 _fvecalignment;
// static L1FieldValue f
ld
B0, f
ld
B1, f
ld
B2 _fvecalignment;
// static L1FieldRegion fld _fvecalignment;
L1FieldValue
fB0
,
fB1
,
fB2
_fvecalignment
;
L1FieldValue
f
ld
B0
,
f
ld
B1
,
f
ld
B2
_fvecalignment
;
L1FieldRegion
fld
_fvecalignment
;
fvec
f
z
0
=
sta1
.
z
;
fvec
f
z
1
=
sta2
.
z
;
fvec
f
z
2
=
sta0
.
z
;
fvec
f
ldZ
0
=
sta1
.
z
;
fvec
f
ldZ
1
=
sta2
.
z
;
fvec
f
ldZ
2
=
sta0
.
z
;
sta1
.
fieldSlice
.
GetFieldValue
(
x1
,
y1
,
fB0
);
sta2
.
fieldSlice
.
GetFieldValue
(
x2
,
y2
,
fB1
);
sta0
.
fieldSlice
.
GetFieldValue
(
x0
,
y0
,
fB2
);
sta1
.
fieldSlice
.
GetFieldValue
(
x1
,
y1
,
f
ld
B0
);
sta2
.
fieldSlice
.
GetFieldValue
(
x2
,
y2
,
f
ld
B1
);
sta0
.
fieldSlice
.
GetFieldValue
(
x0
,
y0
,
f
ld
B2
);
fld
.
Set
(
fB2
,
f
z
2
,
fB1
,
f
z
1
,
fB0
,
f
z
0
);
fld
.
Set
(
f
ld
B2
,
f
ldZ
2
,
f
ld
B1
,
f
ldZ
1
,
f
ld
B0
,
f
ldZ
0
);
int
ista
=
ista2
;
for
(
int
i
=
1
;
i
<
nHits
;
i
++
)
{
...
...
@@ -282,13 +282,13 @@ void L1Algo::KFTrackFitter_simple() // TODO: Add pipe.
L1Filter
(
T
,
sta
.
frontInfo
,
u
);
L1Filter
(
T
,
sta
.
backInfo
,
v
);
fB0
=
fB1
;
fB1
=
fB2
;
f
z
0
=
f
z
1
;
f
z
1
=
f
z
2
;
sta
.
fieldSlice
.
GetFieldValue
(
x
,
y
,
fB2
);
f
z
2
=
sta
.
z
;
fld
.
Set
(
fB2
,
f
z
2
,
fB1
,
f
z
1
,
fB0
,
f
z
0
);
f
ld
B0
=
f
ld
B1
;
f
ld
B1
=
f
ld
B2
;
f
ldZ
0
=
f
ldZ
1
;
f
ldZ
1
=
f
ldZ
2
;
sta
.
fieldSlice
.
GetFieldValue
(
x
,
y
,
f
ld
B2
);
f
ldZ
2
=
sta
.
z
;
fld
.
Set
(
f
ld
B2
,
f
ldZ
2
,
f
ld
B1
,
f
ldZ
1
,
f
ld
B0
,
f
ldZ
0
);
}
// write received parametres in track
...
...
@@ -328,13 +328,13 @@ void L1Algo::L1KFTrackFitter()
// cout << " Start L1 Track Fitter " << endl;
int
start_hit
=
0
;
// for interation in fRecoHits[]
// static L1FieldValue fB0, fB1, fB2 _fvecalignment;
// static L1FieldValue f
ld
B0, f
ld
B1, f
ld
B2 _fvecalignment;
// static L1FieldRegion fld _fvecalignment;
L1FieldValue
fB0
,
fB1
,
fB2
_fvecalignment
;
L1FieldValue
f
ld
B0
,
f
ld
B1
,
f
ld
B2
_fvecalignment
;
L1FieldRegion
fld
_fvecalignment
;
L1FieldValue
fB01
,
fB11
,
fB21
_fvecalignment
;
L1FieldValue
f
ld
B01
,
f
ld
B11
,
f
ld
B21
_fvecalignment
;
L1FieldRegion
fld1
_fvecalignment
;
const
int
nHits
=
NStations
;
...
...
@@ -359,7 +359,7 @@ void L1Algo::L1KFTrackFitter()
time_er_lst
,
d_x_lst
,
d_y_lst
,
d_xy_lst
;
fvec
Sy
[
fkMaxNstations
],
w
[
fkMaxNstations
],
w_time
[
fkMaxNstations
];
fvec
y_temp
,
x_temp
;
fvec
f
z
0
,
f
z
1
,
f
z
2
,
z_start
,
z_end
;
fvec
f
ldZ
0
,
f
ldZ
1
,
f
ldZ
2
,
z_start
,
z_end
;
L1FieldValue
fB
[
fkMaxNstations
],
fB_temp
_fvecalignment
;
fvec
ZSta
[
fkMaxNstations
];
...
...
@@ -475,25 +475,25 @@ void L1Algo::L1KFTrackFitter()
// fit.L1AddMaterial( T, sta[i].materialInfo, qp0, 1 );
f
z
1
=
z
[
i
];
f
ldZ
1
=
z
[
i
];
sta
[
i
].
fieldSlice
.
GetFieldValue
(
T
.
x
,
T
.
y
,
fB1
);
sta
[
i
].
fieldSlice
.
GetFieldValue
(
T
.
x
,
T
.
y
,
f
ld
B1
);
fB1
.
Combine
(
fB
[
i
],
w
[
i
]);
f
ld
B1
.
Combine
(
fB
[
i
],
w
[
i
]);
f
z2
=
z
[
i
-
2
];
fvec
dz
=
f
z
2
-
f
z
1
;
sta
[
i
].
fieldSlice
.
GetFieldValue
(
T
.
x
+
T
.
tx
*
dz
,
T
.
y
+
T
.
ty
*
dz
,
fB2
);
fB2
.
Combine
(
fB
[
i
-
2
],
w
[
i
-
2
]);
fld
.
Set
(
fB2
,
f
z
2
,
fB1
,
f
z
1
,
fB0
,
f
z
0
);
f
ldZ2
=
z
[
i
-
2
];
fvec
dz
=
f
ldZ
2
-
f
ldZ
1
;
sta
[
i
].
fieldSlice
.
GetFieldValue
(
T
.
x
+
T
.
tx
*
dz
,
T
.
y
+
T
.
ty
*
dz
,
f
ld
B2
);
f
ld
B2
.
Combine
(
fB
[
i
-
2
],
w
[
i
-
2
]);
fld
.
Set
(
f
ld
B2
,
f
ldZ
2
,
f
ld
B1
,
f
ldZ
1
,
f
ld
B0
,
f
ldZ
0
);
for
(
--
i
;
i
>=
0
;
i
--
)
{
f
z
0
=
z
[
i
];
dz
=
(
f
z
1
-
f
z
0
);
sta
[
i
].
fieldSlice
.
GetFieldValue
(
T
.
x
-
T
.
tx
*
dz
,
T
.
y
-
T
.
ty
*
dz
,
fB0
);
fB0
.
Combine
(
fB
[
i
],
w
[
i
]);
fld
.
Set
(
fB0
,
f
z
0
,
fB1
,
f
z
1
,
fB2
,
f
z
2
);
f
ldZ
0
=
z
[
i
];
dz
=
(
f
ldZ
1
-
f
ldZ
0
);
sta
[
i
].
fieldSlice
.
GetFieldValue
(
T
.
x
-
T
.
tx
*
dz
,
T
.
y
-
T
.
ty
*
dz
,
f
ld
B0
);
f
ld
B0
.
Combine
(
fB
[
i
],
w
[
i
]);
fld
.
Set
(
f
ld
B0
,
f
ldZ
0
,
f
ld
B1
,
f
ldZ
1
,
f
ld
B2
,
f
ldZ
2
);
fvec
initialised
=
fvec
(
z
[
i
]
<
z_end
)
&
fvec
(
z_start
<=
z
[
i
]);
fvec
w1
=
(
w
[
i
]
&
(
initialised
));
...
...
@@ -542,10 +542,10 @@ void L1Algo::L1KFTrackFitter()
T1
.
Filter
(
time
[
i
],
timeEr
[
i
],
w1_time
,
sta
[
i
].
timeInfo
);
fB2
=
fB1
;
f
z
2
=
f
z
1
;
fB1
=
fB0
;
f
z
1
=
f
z
0
;
f
ld
B2
=
f
ld
B1
;
f
ldZ
2
=
f
ldZ
1
;
f
ld
B1
=
f
ld
B0
;
f
ldZ
1
=
f
ldZ
0
;
}
// fit.L1AddHalfMaterial( T, sta[i].materialInfo, qp0 );
...
...
@@ -639,22 +639,22 @@ void L1Algo::L1KFTrackFitter()
qp0
=
T
.
qp
;
qp01
=
T1
.
fqp
;
f
z
1
=
z
[
i
];
sta
[
i
].
fieldSlice
.
GetFieldValue
(
T
.
x
,
T
.
y
,
fB1
);
fB1
.
Combine
(
fB
[
i
],
w
[
i
]);
f
ldZ
1
=
z
[
i
];
sta
[
i
].
fieldSlice
.
GetFieldValue
(
T
.
x
,
T
.
y
,
f
ld
B1
);
f
ld
B1
.
Combine
(
fB
[
i
],
w
[
i
]);
f
z
2
=
z
[
i
+
2
];
dz
=
f
z
2
-
f
z
1
;
sta
[
i
].
fieldSlice
.
GetFieldValue
(
T
.
x
+
T
.
tx
*
dz
,
T
.
y
+
T
.
ty
*
dz
,
fB2
);
fB2
.
Combine
(
fB
[
i
+
2
],
w
[
i
+
2
]);
fld
.
Set
(
fB2
,
f
z
2
,
fB1
,
f
z
1
,
fB0
,
f
z
0
);
f
ldZ
2
=
z
[
i
+
2
];
dz
=
f
ldZ
2
-
f
ldZ
1
;
sta
[
i
].
fieldSlice
.
GetFieldValue
(
T
.
x
+
T
.
tx
*
dz
,
T
.
y
+
T
.
ty
*
dz
,
f
ld
B2
);
f
ld
B2
.
Combine
(
fB
[
i
+
2
],
w
[
i
+
2
]);
fld
.
Set
(
f
ld
B2
,
f
ldZ
2
,
f
ld
B1
,
f
ldZ
1
,
f
ld
B0
,
f
ldZ
0
);
for
(
++
i
;
i
<
nHits
;
i
++
)
{
f
z
0
=
z
[
i
];
dz
=
(
f
z
1
-
f
z
0
);
sta
[
i
].
fieldSlice
.
GetFieldValue
(
T
.
x
-
T
.
tx
*
dz
,
T
.
y
-
T
.
ty
*
dz
,
fB0
);
fB0
.
Combine
(
fB
[
i
],
w
[
i
]);
fld
.
Set
(
fB0
,
f
z
0
,
fB1
,
f
z
1
,
fB2
,
f
z
2
);
f
ldZ
0
=
z
[
i
];
dz
=
(
f
ldZ
1
-
f
ldZ
0
);
sta
[
i
].
fieldSlice
.
GetFieldValue
(
T
.
x
-
T
.
tx
*
dz
,
T
.
y
-
T
.
ty
*
dz
,
f
ld
B0
);
f
ld
B0
.
Combine
(
fB
[
i
],
w
[
i
]);
fld
.
Set
(
f
ld
B0
,
f
ldZ
0
,
f
ld
B1
,
f
ldZ
1
,
f
ld
B2
,
f
ldZ
2
);
fvec
initialised
=
fvec
(
z
[
i
]
<=
z_end
)
&
fvec
(
z_start
<
z
[
i
]);
fvec
w1
=
(
w
[
i
]
&
(
initialised
));
...
...
@@ -700,10 +700,10 @@ void L1Algo::L1KFTrackFitter()
T1
.
Filter
(
time
[
i
],
timeEr
[
i
],
w1_time
,
sta
[
i
].
timeInfo
);
fB2
=
fB1
;
f
z
2
=
f
z
1
;
fB1
=
fB0
;
f
z
1
=
f
z
0
;
f
ld
B2
=
f
ld
B1
;
f
ldZ
2
=
f
ldZ
1
;
f
ld
B1
=
f
ld
B0
;
f
ldZ
1
=
f
ldZ
0
;
}
// fit.L1AddHalfMaterial( T, sta[i].materialInfo, qp0 );
...
...
@@ -750,13 +750,13 @@ void L1Algo::L1KFTrackFitterMuch()
// cout << " Start L1 Track Fitter " << endl;
int
start_hit
=
0
;
// for interation in fRecoHits[]
// static L1FieldValue fB0, fB1, fB2 _fvecalignment;
// static L1FieldValue f
ld
B0, f
ld
B1, f
ld
B2 _fvecalignment;
// static L1FieldRegion fld _fvecalignment;
L1FieldValue
fB0
,
fB1
,
fB2
_fvecalignment
;
L1FieldValue
f
ld
B0
,
f
ld
B1
,
f
ld
B2
_fvecalignment
;
L1FieldRegion
fld
_fvecalignment
;
L1FieldValue
fB01
,
fB11
,
fB21
_fvecalignment
;
L1FieldValue
f
ld
B01
,
f
ld
B11
,
f
ld
B21
_fvecalignment
;
L1FieldRegion
fld1
_fvecalignment
;
const
int
nHits
=
NStations
;
...
...
@@ -782,7 +782,7 @@ void L1Algo::L1KFTrackFitterMuch()
int
iSta
[
fkMaxNstations
];
fvec
Sy
[
fkMaxNstations
],
w
[
fkMaxNstations
];
fvec
y_temp
,
x_temp
;
fvec
f
z
0
,
f
z
1
,
f
z
2
,
z_start
,
z_end
;
fvec
f
ldZ
0
,
f
ldZ
1
,
f
ldZ
2
,
z_start
,
z_end
;
L1FieldValue
fB
[
fkMaxNstations
],
fB_temp
_fvecalignment
;
fvec
ZSta
[
fkMaxNstations
];
...
...
@@ -912,33 +912,33 @@ void L1Algo::L1KFTrackFitterMuch()
FilterFirst
(
T1
,
x_first
,
y_first
,
time_first
,
time_er_fst
,
staFirst
,
d_x_fst
,
d_y_fst
,
d_xy_fst
);
f
z
1
=
z
[
i
];
f
ldZ
1
=
z
[
i
];
sta
[
i
].
fieldSlice
.
GetFieldValue
(
T
.
x
,
T
.
y
,
fB1
);
sta
[
i
].
fieldSlice
.
GetFieldValue
(
T
.
x
,
T
.
y
,
f
ld
B1
);
fB1
.
Combine
(
fB
[
i
],
w
[
i
]);
f
ld
B1
.
Combine
(
fB
[
i
],
w
[
i
]);
f
z
2
=
z
[
i
+
2
];
dz
=
f
z
2
-
f
z
1
;
sta
[
i
].
fieldSlice
.
GetFieldValue
(
T
.
x
+
T
.
tx
*
dz
,
T
.
y
+
T
.
ty
*
dz
,
fB2
);
fB2
.
Combine
(
fB
[
i
+
2
],
w
[
i
+
2
]);
f
ldZ
2
=
z
[
i
+
2
];
dz
=
f
ldZ
2
-
f
ldZ
1
;
sta
[
i
].
fieldSlice
.
GetFieldValue
(
T
.
x
+
T
.
tx
*
dz
,
T
.
y
+
T
.
ty
*
dz
,
f
ld
B2
);
f
ld
B2
.
Combine
(
fB
[
i
+
2
],
w
[
i
+
2
]);
fld
.
Set
(
fB2
,
f
z
2
,
fB1
,
f
z
1
,
fB0
,
f
z
0
);
fld
.
Set
(
f
ld
B2
,
f
ldZ
2
,
f
ld
B1
,
f
ldZ
1
,
f
ld
B0
,
f
ldZ
0
);
for
(
++
i
;
i
<
nHits
;
i
++
)
{
fvec
initialised
=
fvec
(
z
[
i
]
<=
z_end
)
&
fvec
(
z_start
<
z
[
i
]);
fvec
w1
=
(
w
[
i
]
&
(
initialised
));
fvec
wIn
=
(
ONE
&
(
initialised
));
f
z
0
=
z
[
i
];
dz
=
(
f
z
1
-
f
z
0
);
f
ldZ
0
=
z
[
i
];
dz
=
(
f
ldZ
1
-
f
ldZ
0
);
if
(
i
<
8
)
{
sta
[
i
].
fieldSlice
.
GetFieldValue
(
T
.
x
-
T
.
tx
*
dz
,
T
.
y
-
T
.
ty
*
dz
,
fB0
);
fB0
.
Combine
(
fB
[
i
],
w
[
i
]);
fld
.
Set
(
fB0
,
f
z
0
,
fB1
,
f
z
1
,
fB2
,
f
z
2
);
sta
[
i
].
fieldSlice
.
GetFieldValue
(
T
.
x
-
T
.
tx
*
dz
,
T
.
y
-
T
.
ty
*
dz
,
f
ld
B0
);
f
ld
B0
.
Combine
(
fB
[
i
],
w
[
i
]);
fld
.
Set
(
f
ld
B0
,
f
ldZ
0
,
f
ld
B1
,
f
ldZ
1
,
f
ld
B2
,
f
ldZ
2
);
L1Extrapolate
(
T
,
z
[
i
],
qp0
,
fld
,
&
w1
);
...
...
@@ -952,10 +952,10 @@ void L1Algo::L1KFTrackFitterMuch()
T1
.
EnergyLossCorrection
(
fit
.
PipeRadThick
,
qp01
,
fvec
(
-
1.
f
),
wIn
);
}
fB2
=
fB1
;
f
z
2
=
f
z
1
;
fB1
=
fB0
;
f
z
1
=
f
z
0
;
f
ld
B2
=
f
ld
B1
;
f
ldZ
2
=
f
ldZ
1
;
f
ld
B1
=
f
ld
B0
;
f
ldZ
1
=
f
ldZ
0
;
#ifdef USE_RL_TABLE
T1
.
EnergyLossCorrection
(
fRadThick
[
i
].
GetRadThick
(
T1
.
fx
,
T1
.
fy
),
qp01
,
fvec
(
-
1.
f
),
wIn
);
...
...
@@ -1218,24 +1218,24 @@ void L1Algo::L1KFTrackFitterMuch()
T1
.
ExtrapolateLine
(
z
[
7
]);
int
i_sts
=
i
+
1
;
f
z1
=
z
[
i_sts
];
//7
sta
[
i_sts
].
fieldSlice
.
GetFieldValue
(
T1
.
fx
,
T1
.
fy
,
fB1
);
fB1
.
Combine
(
fB
[
i_sts
],
w
[
i_sts
]);
f
ldZ1
=
z
[
i_sts
];
//7
sta
[
i_sts
].
fieldSlice
.
GetFieldValue
(
T1
.
fx
,
T1
.
fy
,
f
ld
B1
);
f
ld
B1
.
Combine
(
fB
[
i_sts
],
w
[
i_sts
]);
f
z
2
=
z
[
i_sts
-
2
];
//5
dz
=
f
z
2
-
f
z
1
;
f
ldZ
2
=
z
[
i_sts
-
2
];
//5
dz
=
f
ldZ
2
-
f
ldZ
1
;
sta
[
i_sts
].
fieldSlice
.
GetFieldValue
(
T1
.
fx
+
T1
.
ftx
*
dz
,
T1
.
fy
+
T1
.
fty
*
dz
,
fB2
);
fB2
.
Combine
(
fB
[
i_sts
-
2
],
w
[
i_sts
-
2
]);
sta
[
i_sts
].
fieldSlice
.
GetFieldValue
(
T1
.
fx
+
T1
.
ftx
*
dz
,
T1
.
fy
+
T1
.
fty
*
dz
,
f
ld
B2
);
f
ld
B2
.
Combine
(
fB
[
i_sts
-
2
],
w
[
i_sts
-
2
]);
}
f
z
0
=
z
[
i
];
dz
=
(
f
z
1
-
f
z
0
);
sta
[
i
].
fieldSlice
.
GetFieldValue
(
T1
.
fx
-
T1
.
ftx
*
dz
,
T1
.
fy
-
T1
.
fty
*
dz
,
fB0
);
fB0
.
Combine
(
fB
[
i
],
w
[
i
]);
f
ldZ
0
=
z
[
i
];
dz
=
(
f
ldZ
1
-
f
ldZ
0
);
sta
[
i
].
fieldSlice
.
GetFieldValue
(
T1
.
fx
-
T1
.
ftx
*
dz
,
T1
.
fy
-
T1
.
fty
*
dz
,
f
ld
B0
);
f
ld
B0
.
Combine
(
fB
[
i
],
w
[
i
]);
fld
.
Set
(
fB0
,
f
z
0
,
fB1
,
f
z
1
,
fB2
,
f
z
2
);
fld
.
Set
(
f
ld
B0
,
f
ldZ
0
,
f
ld
B1
,
f
ldZ
1
,
f
ld
B2
,
f
ldZ
2
);