Skip to content

Commit 392b249

Browse files
committed
Get ready for better LUT handling
1 parent d66fba6 commit 392b249

File tree

2 files changed

+24
-36
lines changed

2 files changed

+24
-36
lines changed

src/lutCovm.hh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
/// @email: [email protected]
33

44
#pragma once
5-
#define LUTCOVM_VERSION 20210611
5+
#define LUTCOVM_VERSION 20210731
66

77
struct map_t {
88
int nbins = 1;
@@ -55,7 +55,9 @@ struct lutEntry_t {
5555
float eta = 0.;
5656
float pt = 0.;
5757
bool valid = false;
58-
float eff = 0.;
58+
float eff = 0.;
59+
float itof = 0.;
60+
float otof = 0.;
5961
float covm[15] = {0.};
6062
float eigval[5] = {0.};
6163
float eigvec[5][5] = {0.};

src/lutWrite.cc

Lines changed: 20 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -8,39 +8,23 @@ DetectorK fat;
88
void diagonalise(lutEntry_t &lutEntry);
99

1010
bool
11-
fatSolve(float *eff, float *covm, float pt = 0.1, float eta = 0.0, float mass = 0.13957000, int layer = 0, int what = 0, int efftype = 0, int q = 1)
11+
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)
1212
{
13-
if (q > 1) {
14-
mass = -mass;
15-
}
16-
TrackSol tr(1, pt, eta, q, mass);
17-
bool retval = fat.SolveTrack(tr);
18-
if (!retval) return false;
13+
lutEntry.valid = false;
1914

20-
switch (efftype) {
21-
case 0:
22-
*eff = fat.GetEfficiency();
23-
break;
24-
case 1:
25-
*eff = fat.GetLayerEfficiency(layer);
26-
break;
27-
}
15+
// solve track
16+
if (q > 1) mass = -mass;
17+
TrackSol tr(1, pt, eta, q, mass);
18+
if (!fat.SolveTrack(tr)) return false;
19+
AliExternalTrackParam *trPtr = (AliExternalTrackParam*)tr.fTrackCmb.At(0);
20+
if (!trPtr) return false;
2821

29-
AliExternalTrackParam *trPtr = nullptr;
30-
switch (what) {
31-
case 0:
32-
trPtr = (AliExternalTrackParam*)tr.fTrackCmb[layer];
33-
break;
34-
case 1:
35-
trPtr = (AliExternalTrackParam*)tr.fTrackOutB[layer];
36-
break;
37-
case 2:
38-
trPtr = (AliExternalTrackParam*)tr.fTrackOutA[layer];
39-
break;
40-
}
22+
lutEntry.valid = true;
23+
lutEntry.eff = fat.GetGoodHitProb(0);
24+
lutEntry.itof = fat.GetGoodHitProb(itof);
25+
lutEntry.otof = fat.GetGoodHitProb(otof);
26+
for (int i = 0; i < 15; ++i) lutEntry.covm[i] = trPtr->GetCovariance()[i];
4127

42-
for (int i = 0; i < 15; ++i)
43-
covm[i] = trPtr->GetCovariance()[i];
4428
return true;
4529
}
4630

@@ -52,7 +36,7 @@ fwdSolve(float *covm, float pt = 0.1, float eta = 0.0, float mass = 0.13957000)
5236
}
5337

5438
void
55-
lutWrite(const char *filename = "lutCovm.dat", int pdg = 211, float field = 0.2, int layer = 0, int what = 0, int efftype = 0)
39+
lutWrite(const char *filename = "lutCovm.dat", int pdg = 211, float field = 0.2, int itof = 0, int otof = 0)
5640
{
5741

5842
// output file
@@ -116,10 +100,11 @@ lutWrite(const char *filename = "lutCovm.dat", int pdg = 211, float field = 0.2,
116100
lutEntry.pt = lutHeader.ptmap.eval(ipt);
117101
lutEntry.valid = true;
118102
if (fabs(eta) < 2.) {
119-
// printf(" --- fatSolve: pt = %f, eta = %f, mass = %f, field=%f \n", lutEntry.pt, lutEntry.eta, lutHeader.mass, lutHeader.field);
120-
if (!fatSolve(&lutEntry.eff, lutEntry.covm, lutEntry.pt, lutEntry.eta, lutHeader.mass, layer, what, efftype, q)) {
121-
// printf(" --- fatSolve: error \n");
122-
lutEntry.valid = false;
103+
// printf(" --- fatSolve: pt = %f, eta = %f, mass = %f, field=%f \n", lutEntry.pt, lutEntry.eta, lutHeader.mass, lutHeader.field);
104+
if (!fatSolve(lutEntry, lutEntry.pt, lutEntry.eta, lutHeader.mass, itof, otof, q)) {
105+
// printf(" --- [ERROR] fatSolve: pt = %f, eta = %f, mass = %f, field=%f \n", lutEntry.pt, lutEntry.eta, lutHeader.mass, lutHeader.field);
106+
lutEntry.valid = false;
107+
lutEntry.eff = 0.;
123108
for (int i = 0; i < 15; ++i)
124109
lutEntry.covm[i] = 0.;
125110
}
@@ -130,6 +115,7 @@ lutWrite(const char *filename = "lutCovm.dat", int pdg = 211, float field = 0.2,
130115
if (!fwdSolve(lutEntry.covm, lutEntry.pt, lutEntry.eta, lutHeader.mass)) {
131116
// printf(" --- fwdSolve: error \n");
132117
lutEntry.valid = false;
118+
lutEntry.eff = 0.;
133119
for (int i = 0; i < 15; ++i)
134120
lutEntry.covm[i] = 0.;
135121
}

0 commit comments

Comments
 (0)