@@ -8,39 +8,23 @@ DetectorK fat;
88void diagonalise (lutEntry_t &lutEntry);
99
1010bool
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
5438void
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