Skip to content

Commit fe461f8

Browse files
committed
Adjust fwdparam routine to match current code
1 parent b254e4e commit fe461f8

File tree

1 file changed

+20
-14
lines changed

1 file changed

+20
-14
lines changed

src/lutWrite.cc

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ DetectorK fat;
88
void diagonalise(lutEntry_t &lutEntry);
99
static float etaMaxBarrel = 1.75;
1010

11+
bool usePara = true; // use fwd parameterisation
12+
1113
bool
1214
fatSolve(lutEntry_t &lutEntry, float pt = 0.1, float eta = 0.0, float mass = 0.13957000, int itof = 0, int otof = 0, int q = 1)
1315
{
@@ -37,15 +39,19 @@ fwdSolve(float *covm, float pt = 0.1, float eta = 0.0, float mass = 0.13957000)
3739
}
3840

3941
bool
40-
fwdPara(float *covm, float pt = 0.1, float eta = 0.0, float mass = 0.13957000, float Bfield = 0.5, int layer = 0, int what = 0)
42+
fwdPara(lutEntry_t &lutEntry, float pt = 0.1, float eta = 0.0, float mass = 0.13957000, float Bfield = 0.5)
4143
{
44+
lutEntry.valid = false;
45+
4246
// parametrised forward response; interpolates between FAT at eta = 1.75 and a fixed parametrisation at eta = 4; only diagonal elements
43-
float eff = 0;
44-
float covmbarrel[15] = {0};
4547
if (fabs(eta) < etaMaxBarrel || fabs(eta) > 4)
4648
return false;
4749

48-
if (!fatSolve(&eff, covmbarrel, pt, etaMaxBarrel, mass, layer, what)) return false;
50+
if (!fatSolve(lutEntry, pt, etaMaxBarrel, mass)) return false;
51+
float covmbarrel[15] = {0};
52+
for (int i = 0; i < 15; ++i) {
53+
covmbarrel[i] = lutEntry.covm[i];
54+
}
4955

5056
// parametrisation at eta = 4
5157
double beta = 1./sqrt(1+mass*mass/pt/pt/cosh(eta)/cosh(eta));
@@ -76,15 +82,15 @@ fwdPara(float *covm, float pt = 0.1, float eta = 0.0, float mass = 0.13957000, f
7682

7783
// Fill cov matrix diag
7884
for (int i = 0; i < 15; ++i)
79-
covm[i] = 0;
80-
81-
covm[0] = covmbarrel[0];
82-
if (dcaxy2 > covm[0]) covm[0] = dcaxy2;
83-
covm[2] = covmbarrel[2];
84-
if (dcaz2 > covm[2]) covm[2] = dcaz2;
85-
covm[5] = covmbarrel[5]; // sigma^2 sin(phi)
86-
covm[9] = covmbarrel[9]; // sigma^2 tanl
87-
covm[14] = momres_tot*momres_tot/pt/pt/pt/pt; // sigma^2 1/pt
85+
lutEntry.covm[i] = 0;
86+
87+
lutEntry.covm[0] = covmbarrel[0];
88+
if (dcaxy2 > lutEntry.covm[0]) lutEntry.covm[0] = dcaxy2;
89+
lutEntry.covm[2] = covmbarrel[2];
90+
if (dcaz2 > lutEntry.covm[2]) lutEntry.covm[2] = dcaz2;
91+
lutEntry.covm[5] = covmbarrel[5]; // sigma^2 sin(phi)
92+
lutEntry.covm[9] = covmbarrel[9]; // sigma^2 tanl
93+
lutEntry.covm[14] = momres_tot*momres_tot/pt/pt/pt/pt; // sigma^2 1/pt
8894
return true;
8995
}
9096

@@ -167,7 +173,7 @@ lutWrite(const char *filename = "lutCovm.dat", int pdg = 211, float field = 0.2,
167173
lutEntry.eff = 1.;
168174
bool retval = true;
169175
if (usePara) {
170-
retval = fwdPara(lutEntry.covm, lutEntry.pt, lutEntry.eta, lutHeader.mass, field, layer, what);
176+
retval = fwdPara(lutEntry, lutEntry.pt, lutEntry.eta, lutHeader.mass, field);
171177
}
172178
else {
173179
retval = fwdSolve(lutEntry.covm, lutEntry.pt, lutEntry.eta, lutHeader.mass);

0 commit comments

Comments
 (0)