@@ -38,17 +38,22 @@ ChamberResponse::ChamberResponse(const ChamberResponseParams& params, const Cham
3838}
3939
4040// ______________________________________________________________________________
41- double ChamberResponse::getFiredProbability (double distance, int cathode, int deId, double theta) const
41+ double ChamberResponse::getFiredProbability (double distance, int cathode, int deId, bool hasCrossTalk, double theta) const
4242{
4343 // / Get fired probability
4444
4545 // Need to convert the distance from cm to mm
4646 double distMM = distance * 10 .;
47- double parA = mParams .getParA (mHV .getHV (deId));
47+ double hv = mHV .getHV (deId);
48+ double parA = mParams .getParA (hv);
4849 double parB = mParams .getParB (cathode, deId);
49- double parC = mParams .getParC (mHV .getHV (deId));
5050 double costheta = std::cos (theta);
51- return (parC + parA / (parA + costheta * std::pow (distMM, parB))) / (1 + parC);
51+ double core = parA / (parA + costheta * std::pow (distMM, parB));
52+ if (hasCrossTalk) {
53+ double parC = mParams .getParC (hv);
54+ return (parC + core) / (1 + parC);
55+ }
56+ return core;
5257}
5358
5459// ______________________________________________________________________________
@@ -76,7 +81,7 @@ double ChamberResponse::firedProbabilityFunction(double* var, double* par)
7681 mParams .setParA (par[4 ], par[5 ]);
7782 mParams .setParC (par[6 ], par[7 ]);
7883
79- return getFiredProbability (var[0 ], cathode, deId, par[2 ]);
84+ return getFiredProbability (var[0 ], cathode, deId, true , par[2 ]);
8085}
8186
8287// ______________________________________________________________________________
0 commit comments