6 bool TofBaseData::Fill(BetaR *betaPtr, BetaHR *betahPtr,
bool standalone,
bool use_mc_beta) {
10 if (betaPtr && !standalone) {
14 if (_isMC && use_mc_beta) {
23 auto betah = _isMC ? betahPtr->GetMCBeta() : betahPtr->GetBeta();
28 if (standalone || betahPtr->IsGoodQPathL(0) || betahPtr->IsGoodQPathL(1))
30 betahPtr->GetQ(nlayers, qrms, 2, TofClusterHR::DefaultQOptIon,
31 1000 * betahPtr->IsGoodQPathL(0) + 100 * betahPtr->IsGoodQPathL(1), betah);
32 if (standalone || betahPtr->IsGoodQPathL(2) || betahPtr->IsGoodQPathL(3))
33 Charge[
ChargeType::Lower] = betahPtr->GetQ(nlayers, qrms, 2, TofClusterHR::DefaultQOptIon,
34 10 * betahPtr->IsGoodQPathL(2) + 1 * betahPtr->IsGoodQPathL(3), betah);
35 if (((betahPtr->IsGoodQPathL(0) || betahPtr->IsGoodQPathL(1)) &&
36 (betahPtr->IsGoodQPathL(2) || betahPtr->IsGoodQPathL(3))) ||
38 Charge[
ChargeType::Total] = betahPtr->GetQ(nlayers, qrms, 2, TofClusterHR::DefaultQOptIon,
39 1000 * betahPtr->IsGoodQPathL(0) + 100 * betahPtr->IsGoodQPathL(1) +
40 10 * betahPtr->IsGoodQPathL(2) + 1 * betahPtr->IsGoodQPathL(3),
43 ChargeNoPL[
ChargeType::Upper] = betahPtr->GetQ(nlayers, qrms, 2, TofClusterHR::DefaultQOptIon, 1100, betah);
44 ChargeNoPL[
ChargeType::Lower] = betahPtr->GetQ(nlayers, qrms, 2, TofClusterHR::DefaultQOptIon, 11, betah);
45 ChargeNoPL[
ChargeType::Total] = betahPtr->GetQ(nlayers, qrms, 2, TofClusterHR::DefaultQOptIon, 1111, betah);
50 betahPtr->TInterpolate(
tofRefZ, tofh_point, tofh_dir, tofh_time,
false);
51 m_pointAndDir.emplace_back(tofh_point.x(), tofh_point.y(), tofh_point.z());
52 m_pointAndDir.emplace_back(tofh_dir.x(), tofh_dir.y(), tofh_dir.z());
59 bool TofPlusData::Fill(BetaR *betaPtr, BetaHR *betahPtr,
bool standalone) {
60 auto *evPtr = AMSEventR::Head();
65 if (betaPtr && !standalone) {
69 short tofhbetapatt = 0;
70 for (
int i = 0; i < 4; i++) {
71 if (!(betahPtr->TestExistHL(i))) {
72 tofhbetapatt =
static_cast<short>(tofhbetapatt | (1 << i));
77 Chi2Coo = betahPtr->GetNormChi2C();
78 Chi2Time = betahPtr->GetNormChi2T();
80 NTrkClusters =
static_cast<short>(betahPtr->GetSumHit());
81 NBetaClusters =
static_cast<short>(betahPtr->GetUseHit());
86 betahPtr->GetQ(nhit, qrms);
87 NChargeClusters =
static_cast<short>(nhit);
90 ChargeLikelihoodEst = betahPtr->GetZ(nhit, ChargeLikelihoodProb);
93 for (
int ip = 0; ip < 4; ip++) {
94 LayerGoodPathl[ip] = betahPtr->IsGoodQPathL(ip);
96 float layer_charge = betahPtr->GetQL(ip);
97 if (layer_charge > 0.0f) {
98 LayerCharge[ip] = layer_charge;
100 if (betahPtr->GetClusterHL(ip)) {
101 LayerEdep[ip] = betahPtr->GetClusterHL(ip)->GetEdep();
105 if (betahPtr->TestExistHL(ip)) {
106 float ltime = betahPtr->GetTime(ip);
107 for (
auto &cluster : evPtr->TofClusterH()) {
108 if (cluster.Layer != ip || (cluster.NBetaHUsed() > 0) || !cluster.IsGoodTime())
111 float dt = cluster.Time - ltime;
112 float tcut = ip < 2 ? 10 : 4;
115 if (std::fabs(dt) <= tcut)