6 bool TofBaseData::Fill(BetaR *betaPtr, BetaHR *betahPtr,
bool standalone) {
10 if (betaPtr && !standalone) {
14 auto betah = _isMC ? betahPtr->GetMCBeta() : betahPtr->GetBeta();
19 if (standalone || betahPtr->IsGoodQPathL(0) || betahPtr->IsGoodQPathL(1))
21 betahPtr->GetQ(nlayers, qrms, 2, TofClusterHR::DefaultQOptIon,
22 1000 * betahPtr->IsGoodQPathL(0) + 100 * betahPtr->IsGoodQPathL(1), betah);
23 if (standalone || betahPtr->IsGoodQPathL(2) || betahPtr->IsGoodQPathL(3))
24 Charge[
ChargeType::Lower] = betahPtr->GetQ(nlayers, qrms, 2, TofClusterHR::DefaultQOptIon,
25 10 * betahPtr->IsGoodQPathL(2) + 1 * betahPtr->IsGoodQPathL(3), betah);
26 if (((betahPtr->IsGoodQPathL(0) || betahPtr->IsGoodQPathL(1)) &&
27 (betahPtr->IsGoodQPathL(2) || betahPtr->IsGoodQPathL(3))) ||
29 Charge[
ChargeType::Total] = betahPtr->GetQ(nlayers, qrms, 2, TofClusterHR::DefaultQOptIon,
30 1000 * betahPtr->IsGoodQPathL(0) + 100 * betahPtr->IsGoodQPathL(1) +
31 10 * betahPtr->IsGoodQPathL(2) + 1 * betahPtr->IsGoodQPathL(3),
34 ChargeNoPL[
ChargeType::Upper] = betahPtr->GetQ(nlayers, qrms, 2, TofClusterHR::DefaultQOptIon, 1100, betah);
35 ChargeNoPL[
ChargeType::Lower] = betahPtr->GetQ(nlayers, qrms, 2, TofClusterHR::DefaultQOptIon, 11, betah);
36 ChargeNoPL[
ChargeType::Total] = betahPtr->GetQ(nlayers, qrms, 2, TofClusterHR::DefaultQOptIon, 1111, betah);
41 betahPtr->TInterpolate(
tofRefZ, tofh_point, tofh_dir, tofh_time,
false);
42 m_pointAndDir.emplace_back(tofh_point.x(), tofh_point.y(), tofh_point.z());
43 m_pointAndDir.emplace_back(tofh_dir.x(), tofh_dir.y(), tofh_dir.z());
50 bool TofPlusData::Fill(BetaR *betaPtr, BetaHR *betahPtr,
bool standalone) {
51 auto *evPtr = AMSEventR::Head();
56 if (betaPtr && !standalone) {
60 short tofhbetapatt = 0;
61 for (
int i = 0; i < 4; i++) {
62 if (!(betahPtr->TestExistHL(i))) {
63 tofhbetapatt =
static_cast<short>(tofhbetapatt | (1 << i));
68 Chi2Coo = betahPtr->GetNormChi2C();
69 Chi2Time = betahPtr->GetNormChi2T();
71 NTrkClusters =
static_cast<short>(betahPtr->GetSumHit());
72 NBetaClusters =
static_cast<short>(betahPtr->GetUseHit());
77 betahPtr->GetQ(nhit, qrms);
78 NChargeClusters =
static_cast<short>(nhit);
81 ChargeLikelihoodEst = betahPtr->GetZ(nhit, ChargeLikelihoodProb);
84 for (
int ip = 0; ip < 4; ip++) {
85 LayerGoodPathl[ip] = betahPtr->IsGoodQPathL(ip);
87 float layer_charge = betahPtr->GetQL(ip);
88 if (layer_charge > 0.0f) {
89 LayerCharge[ip] = layer_charge;
91 if (betahPtr->GetClusterHL(ip)) {
92 LayerEdep[ip] = betahPtr->GetClusterHL(ip)->GetEdep();
96 if (betahPtr->TestExistHL(ip)) {
97 float ltime = betahPtr->GetTime(ip);
98 for (
auto &cluster : evPtr->TofClusterH()) {
99 if (cluster.Layer != ip || (cluster.NBetaHUsed() > 0) || !cluster.IsGoodTime())
102 float dt = cluster.Time - ltime;
103 float tcut = ip < 2 ? 10 : 4;
106 if (std::fabs(dt) <= tcut)
Charge estimated using the upper half of the TRD.
Tof container class description.
Charge estimated using the whole TRD.
Charge estimated using the lower half of the TRD.