368 for (uint i = 0; i < NSt; i++) {
382 TFile* oldFile = gFile;
383 TDirectory* oldDir = gDirectory;
387 LOG(error) <<
"CbmTofFindTracks::LoadCalParameter: "
392 LOG(info) <<
"CbmTofFindTracks::LoadCalParameter: "
395 TH1D* fhtmp = (TH1D*) gDirectory->FindObjectAny(Form(
"hPullT_Smt_Off"));
396 TH1D* fhtmpX = (TH1D*) gDirectory->FindObjectAny(Form(
"hPullX_Smt_Off"));
397 TH1D* fhtmpY = (TH1D*) gDirectory->FindObjectAny(Form(
"hPullY_Smt_Off"));
398 TH1D* fhtmpZ = (TH1D*) gDirectory->FindObjectAny(Form(
"hPullZ_Smt_Off"));
399 TH1D* fhtmpWT = (TH1D*) gDirectory->FindObjectAny(Form(
"hPullT_Smt_Width"));
400 TH1D* fhtmpWX = (TH1D*) gDirectory->FindObjectAny(Form(
"hPullX_Smt_Width"));
401 TH1D* fhtmpWY = (TH1D*) gDirectory->FindObjectAny(Form(
"hPullY_Smt_Width"));
402 TH1D* fhtmpWZ = (TH1D*) gDirectory->FindObjectAny(Form(
"hPullZ_Smt_Width"));
406 LOG(info) << Form(
"CbmTofFindTracks::LoadCalParameter: hPullT_Smt_Off") <<
" not found. ";
410 for (UInt_t iSt = 0; iSt < NSt; iSt++)
414 if (NULL == fhtmpX) {
415 LOG(info) << Form(
"CbmTofFindTracks::LoadCalParameter: hPullX_Smt_Off") <<
" not found. ";
419 for (UInt_t iSt = 0; iSt < NSt; iSt++)
423 if (NULL == fhtmpY) {
424 LOG(info) << Form(
"CbmTofFindTracks::LoadCalParameter: hPullY_Smt_Off") <<
" not found. ";
428 for (UInt_t iSt = 0; iSt < NSt; iSt++)
432 if (NULL == fhtmpZ) {
433 LOG(info) << Form(
"CbmTofFindTracks::LoadCalParameter: hPullZ_Smt_Off") <<
" not found. ";
437 for (UInt_t iSt = 0; iSt < NSt; iSt++)
441 if (NULL == fhtmpWT) {
442 LOG(info) << Form(
"CbmTofFindTracks::LoadCalParameter: hPullT_Smt_Width") <<
" not found. ";
447 for (UInt_t iSt = 0; iSt < NSt; iSt++) {
450 LOG(warning) <<
"Invalid Tsig for station " << iSt;
457 if (NULL == fhtmpWX) {
458 LOG(info) << Form(
"CbmTofFindTracks::LoadCalParameter: hPullX_Smt_Width") <<
" not found. ";
463 for (UInt_t iSt = 0; iSt < NSt; iSt++) {
466 LOG(warning) <<
"Invalid Xsig for station " << iSt;
473 if (NULL == fhtmpWY) {
474 LOG(info) << Form(
"CbmTofFindTracks::LoadCalParameter: hPullY_Smt_Width") <<
" not found. ";
479 for (UInt_t iSt = 0; iSt < NSt; iSt++) {
482 LOG(warning) <<
"Invalid Ysig for station " << iSt;
489 if (NULL == fhtmpWZ) {
490 LOG(info) << Form(
"CbmTofFindTracks::LoadCalParameter: hPullZ_Smt_Width") <<
" not found. ";
495 for (UInt_t iSt = 0; iSt < NSt; iSt++) {
498 LOG(warning) <<
"Invalid Zsig for station " << iSt;
511 new TH1F(Form(
"hPullT_Smt_Off"), Form(
"Tracklet PullT vs RpcInd ; RpcInd ; #DeltaT (ns)"), nSmt, 0, nSmt);
515 for (Int_t iDet = 0; iDet < nSmt; iDet++) {
516 std::map<Int_t, Int_t>::iterator it;
521 if (it->second == iDet)
break;
523 LOG(debug1) << Form(
" iDet %d -> iUniqueId ? 0x%08x, 0x%08x ", iDet, it->first, it->second);
524 Int_t iUniqueId = it->first;
526 if (NULL != fChannelInfo) {
532 LOG(info) << Form(
"PrimInit det 0x%08x at %d, GloInd %d, z=%f to Tt %6.4f, %6.4f with TOff %6.2f", iUniqueId,
538 LOG(info) << Form(
"ReInit det 0x%08x at %d, GloInd %d, z=%f to Tt %6.4f, %6.4f with TOff %6.2f", iUniqueId,
545 new TH1F(Form(
"hPullT_Smt_Width"), Form(
"Tracklet ResiT Width vs RpcInd ; RpcInd ; RMS(T) (ns)"), nSmt, 0, nSmt);
548 for (Int_t iDet = 0; iDet < nSmt; iDet++) {
553 LOG(info) <<
"CbmTofFindTracks::LoadCalParameter: fhPullT_Smt_Off at " <<
fhPullT_Smt_Off;
557 new TH1F(Form(
"hPullX_Smt_Off"), Form(
"Tracklet ResiX vs RpcInd ; RpcInd ; #DeltaX (cm)"), nSmt, 0, nSmt);
560 new TH1F(Form(
"hPullX_Smt_Width"), Form(
"Tracklet ResiX Width vs RpcInd ; RpcInd ; RMS(X) (cm)"), nSmt, 0, nSmt);
562 for (Int_t iDet = 0; iDet < nSmt; iDet++) {
569 new TH1F(Form(
"hPullY_Smt_Off"), Form(
"Tracklet ResiY vs RpcInd ; RpcInd ; #DeltaY (cm)"), nSmt, 0, nSmt);
572 new TH1F(Form(
"hPullY_Smt_Width"), Form(
"Tracklet ResiY Width vs RpcInd ; RpcInd ; RMS(Y) (cm)"), nSmt, 0, nSmt);
574 for (Int_t iDet = 0; iDet < nSmt; iDet++) {
581 new TH1F(Form(
"hPullZ_Smt_Off"), Form(
"Tracklet ResiZ vs RpcInd ; RpcInd ; #DeltaZ (cm)"), nSmt, 0, nSmt);
584 new TH1F(Form(
"hPullZ_Smt_Width"), Form(
"Tracklet ResiZ Width vs RpcInd ; RpcInd ; RMS(Z) (cm)"), nSmt, 0, nSmt);
586 for (Int_t iDet = 0; iDet < nSmt; iDet++) {
655 TFile* oldFile = gFile;
656 TDirectory* oldDir = gDirectory;
659 const Double_t RMSmin = 0.03;
664 TH1D* htmp1D = htmp->ProjectionX();
666 TH1D* hTOff1D = hTOff->ProjectionX();
668 Double_t nx = htmp1D->GetNbinsX();
669 for (Int_t ix = 1; ix < nx; ix++) {
677 TH1D* hTOff1DY =
fhTOff_HMul2->ProjectionY(Form(
"_py%d", ix), ix + 1, ix + 1,
"");
678 Double_t dFMean = 0.;
679 if (hTOff1DY->GetEntries() > 100) {
681 Int_t iBmax = hTOff1DY->GetMaximumBin();
682 TAxis* xaxis = hTOff1DY->GetXaxis();
683 Double_t dMean = xaxis->GetBinCenter(iBmax);
684 Double_t dLim = 1000.;
685 TFitResultPtr fRes = hTOff1DY->Fit(
"gaus",
"S",
"", dMean - dLim, dMean + dLim);
686 dFMean = fRes->Parameter(1);
689 LOG(info) <<
"Init TOff " << ix <<
": Old " <<
fhPullT_Smt_Off->GetBinContent(ix + 1) <<
", Cnts "
690 << hTOff1D->GetBinContent(ix + 1) <<
", FitMean " << dFMean <<
" -> " << dVal;
700 TH1D* htmp1D = htmp->ProjectionX();
702 TH1D* hTOff1D = hTOff->ProjectionX();
705 Double_t nx = htmp1D->GetNbinsX();
706 for (Int_t ix = 0; ix < nx; ix++) {
708 dVal -= htmp1D->GetBinContent(ix + 1);
710 LOG(debug1) <<
"Update hPullT_Smt_Off " << ix <<
": " <<
fhPullT_Smt_Off->GetBinContent(ix + 1) <<
" + "
711 << htmp1D->GetBinContent(ix + 1) <<
" + " << hTOff1D->GetBinContent(ix + 1) <<
" -> " << dVal;
716 LOG(warning) <<
"CbmTofFindTracks::WriteHistos: fhPullT_Smt_Off not found ";
725 TH1D* htmp1D = htmp->ProjectionX();
727 TH1D* hTOff1D = hTOff->ProjectionX();
730 Double_t nx = htmp1D->GetNbinsX();
731 for (Int_t ix = 0; ix < nx; ix++) {
733 dVal -= hTOff1D->GetBinContent(ix + 1);
734 TH1D* hTOff1DY =
fhTOff_Smt->ProjectionY(Form(
"_py%d", ix), ix + 1, ix + 1,
"");
735 Double_t dFMean = 0.;
736 if (hTOff1DY->GetEntries() > 100) {
738 Int_t iBmax = hTOff1DY->GetMaximumBin();
739 TAxis* xaxis = hTOff1DY->GetXaxis();
740 Double_t dMean = xaxis->GetBinCenter(iBmax);
741 Double_t dLim = 1.5 * hTOff1DY->GetRMS();
742 TFitResultPtr fRes = hTOff1DY->Fit(
"gaus",
"SQM",
"", dMean - dLim, dMean + dLim);
743 Int_t iFitStatus = fRes;
745 dFMean = fRes->Parameter(1);
746 dVal += hTOff1D->GetBinContent(ix + 1);
749 LOG(info) <<
"Update hPullT_Smt_Off Ind " << ix <<
", stat " << iFitStatus <<
": Old "
750 <<
fhPullT_Smt_Off->GetBinContent(ix + 1) <<
", Pull " << htmp1D->GetBinContent(ix + 1)
751 <<
", Dev@Peak " << hTOff1D->GetBinContent(ix + 1) <<
", FitMean " << dFMean <<
" -> " << dVal;
754 LOG(debug1) <<
"Update hPullT_Smt_Off " << ix <<
": insufficient counts: " << hTOff1DY->GetEntries();
760 LOG(warning) <<
"CbmTofFindTracks::WriteHistos: fhPullT_Smt_Off not found ";
767 TH1D* htmp1D = htmp->ProjectionX();
769 Double_t nx = htmp1D->GetNbinsX();
770 for (Int_t ix = 0; ix < nx; ix++) {
772 Double_t dCor = htmp->GetBinContent(ix + 1);
773 Double_t dRMS = htmp->GetBinError(ix + 1);
775 if (hpy->GetEntries() > 50.) {
776 Int_t iBmax = hpy->GetMaximumBin();
777 TAxis* xaxis = hpy->GetXaxis();
778 Double_t dMean = xaxis->GetBinCenter(iBmax);
779 dRMS = TMath::Abs(hpy->GetRMS());
780 Double_t dLim = 1.5 * dRMS;
781 Double_t dNorm = hpy->GetBinContent(iBmax);
782 LOG(info) <<
"Fit3 " << hpy->GetName()
783 << Form(
", %f with %f, %f, %f ", hpy->GetEntries(), dNorm, dMean, dLim);
785 TFitResultPtr fRes = hpy->Fit(
"gaus",
"SQM",
"", dMean - dLim, dMean + dLim);
790 if (gMinuit->fCstatu.Contains(
"OK") || gMinuit->fCstatu.Contains(
"CONVERGED")) {
791 TF1* fg = hpy->GetFunction(
"gaus");
793 LOG(fatal) <<
"No associated gaus function for " << hpy->GetName();
797 Double_t dFMean = fg->GetParameter(1);
799 Double_t dFMeanError = fg->GetParError(1);
800 LOG(info) <<
"Update hPullT_Smt_Off3 Ind " << ix << Form(
", 0x%08x: ",
fRpcAddr[ix])
801 <<
fhPullT_Smt_Off->GetBinContent(ix + 1) <<
" + " << dFMean <<
", Err " << dFMeanError
802 <<
" -> " << dVal - dCor <<
", Width " << dRMS <<
", Chi2 " << fg->GetChisquare();
803 if (dFMeanError < 0.05) {
804 if (dRMS < RMSmin) dRMS = RMSmin;
809 LOG(info) <<
" Fit of " << hpy->GetName() <<
" failed with " << gMinuit->fCstatu;
813 LOG(info) <<
"Fit3: Too few entries for fit ofhisto " << hpy->GetName() <<
": " << dNorm;
817 LOG(info) <<
"Update hPullT_Smt_Off " << ix <<
": insufficient counts: " << hpy->GetEntries();
823 LOG(info) <<
"No Off3 correction for beam counter at index " << ix;
829 LOG(warning) <<
"CbmTofFindTracks::WriteHistos: fhPullT_Smt_Off not found ";
838 TH1D* htmp1D = htmp->ProjectionX();
841 Double_t nx = htmp1D->GetNbinsX();
842 for (Int_t ix = 0; ix < nx; ix++) {
844 if (iSmType == 8)
continue;
845 TH1D* hpy =
fhPullX_Smt->ProjectionY(
"_py", ix + 1, ix + 1);
848 if (hpy->GetEntries() > 100.) {
850 Double_t dFMean = hpy->GetBinCenter(hpy->GetMaximumBin());
851 Double_t dFLim = 0.5;
852 Double_t dBinSize = hpy->GetBinWidth(1);
853 dFLim = TMath::Max(dFLim, 5. * dBinSize);
854 TFitResultPtr fRes = hpy->Fit(
"gaus",
"SQM",
"", dFMean - dFLim, dFMean + dFLim);
855 dVal -= fRes->Parameter(1);
856 Double_t dRMS = fRes->Parameter(2);
857 LOG(debug) <<
"PeakFit at " << dFMean <<
", lim " << dFLim <<
" : mean " << fRes->Parameter(1) <<
", width "
860 dRMS = TMath::Abs(hpy->GetRMS());
865 const double dMaxShift = 4.;
866 if (dVal < -dMaxShift) dVal = -dMaxShift;
867 if (dVal > dMaxShift) dVal = dMaxShift;
868 LOG(info) <<
"Update hPullX_Smt_Off " << ix <<
": " <<
fhPullX_Smt_Off->GetBinContent(ix + 1) <<
" + "
869 << htmp1D->GetBinContent(ix + 1) <<
", " << fRes->Parameter(1) <<
" -> " << dVal <<
", Width "
878 LOG(warning) <<
"CbmTofFindTracks::WriteHistos: fhPullX_Smt_Off not found ";
887 TH1D* htmp1D = htmp->ProjectionX();
890 Double_t nx = htmp1D->GetNbinsX();
891 for (Int_t ix = 0; ix < nx; ix++) {
893 if (iSmType == 8)
continue;
897 TH1D* hpy =
fhPullY_Smt->ProjectionY(
"_py", ix + 1, ix + 1);
898 if (hpy->GetEntries() > 100.) {
899 Double_t dFMean = hpy->GetBinCenter(hpy->GetMaximumBin());
901 Double_t dBinSize = hpy->GetBinWidth(1);
902 dFLim = TMath::Max(dFLim, 5. * dBinSize);
903 TFitResultPtr fRes = hpy->Fit(
"gaus",
"SQM",
"", dFMean - dFLim, dFMean + dFLim);
904 dVal -= fRes->Parameter(1);
905 Double_t dRMS = fRes->Parameter(2);
906 LOG(debug) <<
"PeakFit at " << dFMean <<
", lim " << dFLim <<
" : mean " << fRes->Parameter(1) <<
", width "
911 dRMS = TMath::Abs(hpy->GetRMS());
916 LOG(debug1) <<
"Update hPullY_Smt_Off " << ix <<
": " <<
fhPullY_Smt_Off->GetBinContent(ix + 1) <<
" + "
917 << htmp1D->GetBinContent(ix + 1) <<
" -> " << dVal <<
", Width " << dRMS;
922 LOG(warning) <<
"CbmTofFindTracks::WriteHistos: fhPullY_Smt_Off not found ";
932 TH1D* htmp1D = htmp->ProjectionX();
935 Double_t nx = htmp1D->GetNbinsX();
936 for (Int_t ix = 0; ix < nx; ix++) {
938 dVal -= htmp1D->GetBinContent(ix + 1);
941 TH1D* hpy =
fhPullZ_Smt->ProjectionY(
"_py", ix + 1, ix + 1);
942 if (hpy->GetEntries() > 100.) {
943 Double_t dRMS = TMath::Abs(hpy->GetRMS());
945 LOG(debug1) <<
"Update hPullZ_Smt_Off " << ix <<
": " <<
fhPullZ_Smt_Off->GetBinContent(ix + 1) <<
" + "
946 << htmp1D->GetBinContent(ix + 1) <<
" -> " << dVal <<
", Width " << dRMS;
947 if (dRMS < 1.5) dRMS = 1.5;
953 LOG(warning) <<
"CbmTofFindTracks::WriteHistos: fhPullZ_Smt_Off not found ";
960 for (Int_t iStation = 0; iStation < static_cast<Int_t>(
fMapRpcIdParInd.size()); iStation++) {
961 TH1D* hResidualT =
fhPullT_Smt->ProjectionY(
"_py", iStation + 1, iStation + 1);
962 TH1D* hResidualX =
fhPullX_Smt->ProjectionY(
"_py", iStation + 1, iStation + 1);
963 TH1D* hResidualY =
fhPullY_Smt->ProjectionY(
"_py", iStation + 1, iStation + 1);
964 TH1D* hResidualZ =
fhPullZ_Smt->ProjectionY(
"_py", iStation + 1, iStation + 1);
966 if (hResidualT->GetEntries() > 100.) {
967 Double_t dRMS = TMath::Abs(hResidualT->GetRMS());
969 if (dRMS < RMSmin) dRMS = RMSmin;
975 if (hResidualX->GetEntries() > 100.) {
976 Double_t dRMS = TMath::Abs(hResidualX->GetRMS());
984 if (hResidualY->GetEntries() > 100.) {
985 Double_t dRMS = TMath::Abs(hResidualY->GetRMS());
993 if (hResidualZ->GetEntries() > 100.) {
994 Double_t dRMS = TMath::Abs(hResidualZ->GetRMS());
996 if (dRMS < 1.5) dRMS = 1.5;
1014 TString hname = Form(
"hPull%s_Station_%d",
"TB", iSt);
1015 TH1* h1 = (TH1*) gROOT->FindObjectAny(hname);
1016 if (h1->GetEntries() > 100) {
1017 Double_t dFMean = h1->GetMean();
1018 Double_t dFLim = 2.5 * h1->GetRMS();
1019 TFitResultPtr fRes = h1->Fit(
"gaus",
"SQM",
"", dFMean - dFLim, dFMean + dFLim);
1020 Double_t dDOff = fRes->Parameter(1);
1021 Double_t dSig = fRes->Parameter(2);
1025 LOG(info) <<
"Update hPullT_Smt_OffP Ind " << iSt <<
", Ind " << iRpcInd <<
": "
1026 <<
fhPullT_Smt_Off->GetBinContent(iRpcInd + 1) <<
" - " << dDOff <<
" -> " << dVal <<
", Width "
1034 LOG(info) <<
"CbmTofFindTracks::WriteHistos: Too few entries in histo " << hname;
1042 LOG(info) <<
"Update time offsets with Detector Doublets " << iSel;
1043 int iO[3] = {0, 5, 10};
1045 case 1: iO[2] = 25;
break;
1054 double dTshift[N] = {3 * 0.};
1055 for (
int iLoc = 0; iLoc < 5; iLoc++) {
1056 if (
EvalDoublets(iLoc, iLoc + iO[1], iLoc + iO[2], dTshift)) {
1057 double dTMeanShift = (dTshift[0] + dTshift[1] + dTshift[2]) / 3.;
1058 for (
int i = 0; i < 3; i++) {
1062 LOG(info) <<
"UpdateDT0 bdf ch " << iLoc + iO[i] <<
", geo ch " << ix <<
" by " << Form(
"%f", dTshift[i]);
1068 if (
EvalDoublets(iLoc, iLoc + iO[1], iLoc + iO[2], dTshift)) {
1069 double dTMeanShift = (dTshift[0] + dTshift[1] + dTshift[2]) / 3.;
1070 for (
int i = 0; i < 3; i++) {
1074 LOG(info) <<
"UpdateDT+ bdf ch " << iLoc + iO[i] <<
", geo ch " << ix <<
" by " << dTshift[i];
1080 if (
EvalDoublets(iLoc, iLoc + iO[1], iLoc + iO[2], dTshift)) {
1081 double dTMeanShift = (dTshift[0] + dTshift[1] + dTshift[2]) / 3.;
1082 for (
int i = 0; i < 3; i++) {
1086 LOG(info) <<
"UpdateDT- bdf ch " << iLoc + iO[i] <<
", geo ch " << ix <<
" by " << dTshift[i];
1098 default: LOG(info) <<
"Correction mode not implemented!";
1103 for (Int_t iStation = 0; iStation < static_cast<Int_t>(
fMapRpcIdParInd.size()); iStation++) {
1104 TH1D* hResidualT =
fhPullT_Smt->ProjectionY(
"_py", iStation + 1, iStation + 1);
1105 TH1D* hResidualX =
fhPullX_Smt->ProjectionY(
"_py", iStation + 1, iStation + 1);
1106 TH1D* hResidualY =
fhPullY_Smt->ProjectionY(
"_py", iStation + 1, iStation + 1);
1107 TH1D* hResidualZ =
fhPullZ_Smt->ProjectionY(
"_py", iStation + 1, iStation + 1);
1108 if (hResidualT->GetEntries() > 100.) {
1109 Double_t dRMS = TMath::Abs(hResidualT->GetRMS());
1110 if (dRMS < RMSmin) dRMS = RMSmin;
1114 if (hResidualX->GetEntries() > 100.) {
1115 Double_t dRMS = TMath::Abs(hResidualX->GetRMS());
1120 if (hResidualY->GetEntries() > 100.) {
1121 Double_t dRMS = TMath::Abs(hResidualY->GetRMS());
1126 if (hResidualZ->GetEntries() > 100.) {
1127 Double_t dRMS = TMath::Abs(hResidualZ->GetRMS());
1128 if (dRMS < 0.1) dRMS = 0.1;
1129 if (dRMS > 1.0) dRMS = 1.;
1145 gDirectory = oldDir;
1376 TDirectory* oldir = gDirectory;
1382 LOG(info) << Form(
" CbmTofFindTracks::CreateHistograms for %d counters, %d stations ", (Int_t) nSmt,
fNTofStations);
1384 fhTrklMul =
new TH1F(Form(
"hTrklMul"), Form(
"Tracklet Multiplicity; MulTracklet"), 100, 0, 100);
1388 fhAllHitsSmTypes =
new TH1F(Form(
"hAllHitsSmTypes"), Form(
"Reconstructed Hits; SmType #"), 10, 0, 10);
1390 fhUsedHitsStation =
new TH1F(Form(
"hUsedHitsStation"), Form(
"Used (HMul>2) / Reconstructed Hits; Station #"),
1393 fhTrklChi2 =
new TH2F(Form(
"hTrklChi2"), Form(
"Tracklet Chi; HMul_{Tracklet}; #chi"), 8, 2, 10, 100, 0,
1397 new TH2F(Form(
"hTrackingTimeNhits"), Form(
"Tracking Time; NHits; #Deltat (s)"), 200, 0, 200, 50, 0, 0.2);
1400 new TH2F(Form(
"hTrklMulNhits"), Form(
"Tracklet Multiplicity; NHits; NTracklet"), 200, 0, 200, 30, 0, 30);
1403 new TH2F(Form(
"hTrklMulMaxMax-1"), Form(
"Tracklet Multiplicity; TMulMax; TMulMax-1"), 10, 0, 10, 10, 0, 10);
1405 new TH3F(Form(
"hTrklMul3D"), Form(
"Tracklet Multiplicities; TMul3; TMul4; TMul5"), 10, 0, 10, 10, 0, 10, 10, 0, 10);
1408 new TH2F(Form(
"hTrklHMul"), Form(
"Tracklet Hit - Multiplicity; HMul_{Tracklet}; Mul_{HMul}"), 8, 2, 10, 20, 0, 20);
1409 fhTrklZ0xHMul =
new TH2F(Form(
"hTrklZ0xHMul"), Form(
"Tracklet Z0x vs. Hit - Multiplicity; HMul_{Tracklet}; Z0x"), 8,
1410 2, 10, 100, -500, 500);
1411 fhTrklZ0yHMul =
new TH2F(Form(
"hTrklZ0yHMul"), Form(
"Tracklet Z0y vs. Hit - Multiplicity; HMul_{Tracklet}; Z0y"), 8,
1412 2, 10, 100, -300, 300);
1418 double dTxMin = dTxMean - dTxLim;
1419 double dTxMax = dTxMean + dTxLim;
1420 double dTyMin = dTyMean - dTyLim;
1421 double dTyMax = dTyMean + dTyLim;
1423 fhTrklTxHMul =
new TH2F(Form(
"hTrklTxHMul"), Form(
"Tracklet Tx vs. Hit - Multiplicity; HMul_{Tracklet}; Tx"), 8, 2,
1424 10, 100, dTxMin, dTxMax);
1425 fhTrklTyHMul =
new TH2F(Form(
"hTrklTyHMul"), Form(
"Tracklet Ty vs. Hit - Multiplicity; HMul_{Tracklet}; Ty"), 8, 2,
1426 10, 100, dTyMin, dTyMax);
1428 fhTrklTyTx =
new TH2F(Form(
"hTrklTyTx"), Form(
"Tracklet Ty vs. Tx; Tx; Ty"), 50, dTxMin, dTxMax, 50, dTyMin, dTyMax);
1430 Double_t TTMAX = 0.2;
1431 fhTrklTtHMul =
new TH2F(Form(
"hTrklTtHMul"), Form(
"Tracklet Tt vs. Hit - Multiplicity; HMul_{Tracklet}; Tt"), 8, 2,
1432 10, 100, -TTMAX, TTMAX);
1434 new TH2F(Form(
"hTrklVelHMul"), Form(
"Tracklet Vel vs. Hit - Multiplicity; HMul_{Tracklet}; v (cm/ns)"), 8, 2, 10,
1436 fhTrklT0HMul =
new TH2F(Form(
"hTrklT0HMul"), Form(
"Tracklet T0 vs. Hit - Multiplicity; HMul_{Tracklet}; T0"), 8, 2,
1437 10, 100, -0.5, 0.5);
1440 new TH2F(Form(
"hTrklT0Mul"), Form(
"Tracklet #DeltaT0 vs. Trkl - Multiplicity; Mul_{Tracklet}; #Delta(T0)"), 10, 0,
1442 fhTrklDT0SmMis =
new TH2F(Form(
"hTrklDT0SmMis"), Form(
"Tracklet DeltaT0 vs. Trkl - ID; SmType_{missed}; #Delta(T0)"),
1443 10, 0, 10, 100, -2., 2.);
1445 new TH2F(Form(
"hTrklDT0SmMis2"), Form(
"Tracklet DeltaT0 vs. Station - ID; St2_{missed}; #Delta(T0)"), 50, 0, 50,
1448 Double_t X0MAX = 40.;
1449 fhTrklXY0_0 =
new TH2F(Form(
"hTrklXY0_0"), Form(
"Tracklet XY at z=0 for hmulmax ; x (cm); y (cm)"), 100, -X0MAX,
1450 X0MAX, 100, -X0MAX, X0MAX);
1451 fhTrklXY0_1 =
new TH2F(Form(
"hTrklXY0_1"), Form(
"Tracklet XY at z=0 for hmulmax-1 ; x (cm); y (cm)"), 100, -X0MAX,
1452 X0MAX, 100, -X0MAX, X0MAX);
1453 fhTrklXY0_2 =
new TH2F(Form(
"hTrklXY0_2"), Form(
"Tracklet XY at z=0 for hmulmax-2 ; x (cm); y (cm)"), 100, -X0MAX,
1454 X0MAX, 100, -X0MAX, X0MAX);
1456 fhTrklX0_TX =
new TH2F(Form(
"hTrklX0_TX"), Form(
"Tracklet X0 vs TX at z=0 for hmulmax ; tx (); x0 (cm)"), 100, -0.4,
1457 0.4, 100, -X0MAX, X0MAX);
1458 fhTrklY0_TX =
new TH2F(Form(
"hTrklY0_TX"), Form(
"Tracklet Y0 vs TX at z=0 for hmulmax ; tx (); y0 (cm)"), 100, -0.4,
1459 0.4, 100, -X0MAX, X0MAX);
1460 fhTrklX0_TY =
new TH2F(Form(
"hTrklX0_TY"), Form(
"Tracklet X0 vs TY at z=0 for hmulmax ; ty (); x0 (cm)"), 100, -0.4,
1461 0.4, 100, -X0MAX, X0MAX);
1462 fhTrklY0_TY =
new TH2F(Form(
"hTrklY0_TY"), Form(
"Tracklet Y0 vs TY at z=0 for hmulmax ; ty (); y0 (cm)"), 100, -0.4,
1463 0.4, 100, -X0MAX, X0MAX);
1465 Double_t DT0MAX = 5.;
1467 fhPullT_Smt =
new TH2F(Form(
"hPullT_Smt"), Form(
"Tracklet ResiT vs RpcInd ; RpcInd ; #DeltaT (ns)"), nSmt, 0, nSmt,
1469 Double_t DX0MAX = 5.;
1470 fhPullX_Smt =
new TH2F(Form(
"hPullX_Smt"), Form(
"Tracklet ResiX vs RpcInd ; RpcInd ; #DeltaX (cm)"), nSmt, 0, nSmt,
1471 100, -DX0MAX, DX0MAX);
1472 Double_t DY0MAX = 5.;
1473 fhPullY_Smt =
new TH2F(Form(
"hPullY_Smt"), Form(
"Tracklet ResiY vs RpcInd ; RpcInd ; #DeltaY (cm)"), nSmt, 0, nSmt,
1474 100, -DY0MAX, DY0MAX);
1475 Double_t DZ0MAX = 20.;
1476 fhPullZ_Smt =
new TH2F(Form(
"hPullZ_Smt"), Form(
"Tracklet ResiZ vs RpcInd ; RpcInd ; #DeltaZ (cm)"), nSmt, 0, nSmt,
1477 100, -DZ0MAX, DZ0MAX);
1479 fhTOff_Smt =
new TH2F(Form(
"hTOff_Smt"), Form(
"Tracklet TOff; RpcInd ; #DeltaTOff (ns)"), nSmt, 0, nSmt, 501,
1481 fhTOff_HMul2 =
new TH2F(Form(
"hTOff_HMul2"), Form(
"Tracklet TOff(HMul2); RpcInd ; TOff (ns)"), nSmt, 0, nSmt, 500,
1484 Double_t DTTMAX = 0.11;
1485 fhDeltaTt_Smt =
new TH2F(Form(
"hDeltaTt_Smt"), Form(
"Tracklet DeltaTt; RpcInd ; #DeltaTt (ns/cm)"), nSmt, 0, nSmt,
1486 100, -DTTMAX, DTTMAX);
1489 new TH2F(Form(
"hDeltaTc_Smt"), Form(
"Tracklet DeltaTc; RpcInd ; #DeltaTc (ns)"), nSmt, 0, nSmt, 160, -2., 2.);
1519 new TH1F(Form(
"hPullX_Station_%d", iSt), Form(
"hResiX_Station_%d; #DeltaX (cm)", iSt), 99, -DX0MAX, DX0MAX);
1521 new TH1F(Form(
"hPullY_Station_%d", iSt), Form(
"hResiY_Station_%d; #DeltaY (cm)", iSt), 99, -DY0MAX, DY0MAX);
1523 new TH1F(Form(
"hPullZ_Station_%d", iSt), Form(
"hResiZ_Station_%d; #DeltaZ (cm)", iSt), 99, -50., 50.);
1525 new TH1F(Form(
"hPullT_Station_%d", iSt), Form(
"hResiT_Station_%d; #DeltaT (ns)", iSt), 59, -
fT0MAX,
fT0MAX);
1526 vhPullTB[iSt] =
new TH1F(Form(
"hPullTB_Station_%d", iSt), Form(
"hResiTB_Station_%d; #DeltaT (ns)", iSt), 59,
1528 vhTrefRms[iSt] =
new TH1F(Form(
"hTrefRms_Station_%d", iSt), Form(
"hTrefRms_Station_%d; RMS (ns)", iSt), 40, 0, 2.);
1530 new TH1F(Form(
"hFitDT0_Station_%d", iSt), Form(
"hFitDT0_Station_%d; #Deltat (ns)", iSt), 40, -5, 5.);
1532 new TH1F(Form(
"hFitT0Err_Station_%d", iSt), Form(
"hFitT0Err_Station_%d; rel. error ()", iSt), 40, 0, 0.1);
1534 new TH1F(Form(
"hFitTt_Station_%d", iSt), Form(
"hFitTt_Station_%d; inverse velocity (ns/cm)", iSt), 40, 0, 0.1);
1535 vhFitTtErr[iSt] =
new TH1F(Form(
"hFitTtErr_Station_%d", iSt),
1536 Form(
"hFitTtErr_Station_%d; inverse velocity error()", iSt), 40, 0, 0.4);
1537 vhFitDTMean[iSt] =
new TH1F(Form(
"hFitDTMean_Station_%d", iSt),
1538 Form(
"hFitDTMean_Station_%d; extrapolation distance (ns)", iSt), 40, -5, 5.);
1539 vhFitDTMeanErr[iSt] =
new TH1F(Form(
"hFitDTMeanErr_Station_%d", iSt),
1540 Form(
"hFitDTMeanErr_Station_%d; extrapolation error (ns)", iSt), 40, 0, 0.4);
1542 const Double_t TOTmax = 50.;
1544 new TH2F(Form(
"hResidualTBWalk_Station_%d", iSt), Form(
"hResidualTBWalk_Station_%d; #DeltaT (ns)", iSt), TOTmax,
1547 new TH2F(Form(
"hResidualYWalk_Station_%d", iSt), Form(
"hResidualYWalk_Station_%d; #DeltaT (ns)", iSt), TOTmax,
1548 0., TOTmax, 59, -DY0MAX, DY0MAX);
1549 Double_t XSIZ = 16.;
1552 if (NULL == fChannelInfo) {
1553 LOG(fatal) <<
"Geometry for station " << iSt << Form(
", Rpc 0x%08x ",
fMapStationRpcId[iSt]) <<
" not defined ";
1556 Int_t NbinsX = 2 * XSIZ / fChannelInfo->
GetSizex();
1557 vhXY_AllTracks[iSt] =
new TH2F(Form(
"hXY_AllTracks_%d", iSt), Form(
"hXY_AllTracks_%d; x(cm); y (cm)", iSt), NbinsX,
1558 -XSIZ, XSIZ, Nbins, -XSIZ, XSIZ);
1559 vhXY_AllStations[iSt] =
new TH2F(Form(
"hXY_AllStations_%d", iSt), Form(
"hXY_AllStations_%d; x(cm); y (cm)", iSt),
1560 NbinsX, -XSIZ, XSIZ, Nbins, -XSIZ, XSIZ);
1562 new TH2F(Form(
"hXY_AllFitStations_%d", iSt), Form(
"hXY_AllFitStations_%d; x(cm); y (cm)", iSt), NbinsX, -XSIZ,
1563 XSIZ, Nbins, -XSIZ, XSIZ);
1565 new TH2F(Form(
"hXY_MissedStation_%d", iSt), Form(
"hXY_MissedStation_%d; x(cm); y (cm)", iSt), NbinsX, -XSIZ,
1566 XSIZ, Nbins, -XSIZ, XSIZ);
1567 vhXY_DX[iSt] =
new TH3F(Form(
"hXY_DX_%d", iSt), Form(
"hXY_DX_%d; x(cm); y (cm); #DeltaX (cm)", iSt), NbinsX, -XSIZ,
1568 XSIZ, Nbins, -XSIZ, XSIZ, Nbins, -2., 2.);
1569 vhXY_DY[iSt] =
new TH3F(Form(
"hXY_DY_%d", iSt), Form(
"hXY_DY_%d; x(cm); y (cm); #DeltaY (cm)", iSt), NbinsX, -XSIZ,
1570 XSIZ, Nbins, -XSIZ, XSIZ, Nbins, -2., 2.);
1571 vhXY_DT[iSt] =
new TH3F(Form(
"hXY_DT_%d", iSt), Form(
"hXY_DT_%d; x(cm); y (cm); #DeltaT (ns)", iSt), NbinsX, -XSIZ,
1572 XSIZ, Nbins, -XSIZ, XSIZ, Nbins, -0.5, 0.5);
1573 vhXY_TOT[iSt] =
new TH3F(Form(
"hXY_TOT_%d", iSt), Form(
"hXY_TOT_%d; x(cm); y (cm); TOT (a.u.)", iSt), NbinsX,
1574 -XSIZ, XSIZ, Nbins, -XSIZ, XSIZ, Nbins, 0., 20.);
1575 vhXY_CSZ[iSt] =
new TH3F(Form(
"hXY_CSZ_%d", iSt), Form(
"hXY_CSZ_%d; x(cm); y (cm); CSZ ()", iSt), NbinsX, -XSIZ,
1576 XSIZ, Nbins, -XSIZ, XSIZ, 6, 1., 7.);
1577 vhUDXDY_DT[iSt] =
new TH3F(Form(
"hUDXDY_DT_%d", iSt),
1578 Form(
"Unused missing hit - DXDY_DT_%d; #Deltax "
1579 "(cm); #Deltay (cm); #DeltaT (ns)",
1581 11, -3., 3., 11, -3., 3., 101, -50., 50.);
1582 vhUCDXDY_DT[iSt] =
new TH3F(Form(
"hUCDXDY_DT_%d", iSt),
1583 Form(
"Unused close hit - DXDY_DT_%d; #Deltax "
1584 "(cm); #Deltay (cm); #DeltaT (ns)",
1586 11, -3., 3., 11, -3., 3., 101, -50., 50.);
1591 Double_t NNORM = 40.;
1592 fhVTXNorm =
new TH1F(Form(
"hVTXNorm"), Form(
"Vertex Normalisation; #_{TrackletHits}"), NNORM, 0, NNORM);
1594 new TH2F(Form(
"hVTX_XY0"), Form(
"Vertex XY at z=0 ; x (xm); y (cm)"), 100, -X0MAX, X0MAX, 100, -X0MAX, X0MAX);
1595 fhVTX_DT0_Norm =
new TH2F(Form(
"hVTX_DT0_Norm"), Form(
"Vertex #DeltaT at z=0 ; #_{TrackletHits}; #DeltaT (ns)"),
1596 NNORM, 0, NNORM, 100, -2., 2.);
1598 gDirectory->cd(oldir->GetPath());
1638 Double_t RefMinTime = 1.E300;
1639 for (Int_t iHit = 0; iHit <
fTofHitArray->GetEntriesFast(); iHit++) {
1644 if (pHit->
GetTime() < RefMinTime) {
1646 RefMinTime = pRefHit->
GetTime();
1650 if (pHit->
GetTime() < RefMinTime) {
1652 RefMinTime = pRefHit->
GetTime();
1660 std::vector<Int_t> HMul;
1667 for (Int_t iTrk = 0; iTrk <
fTrackArray->GetEntriesFast(); iTrk++) {
1669 if (NULL == pTrk)
continue;
1671 LOG(error) <<
"CbmTofFindTracks::FillHistograms: more hits (" << pTrk->
GetNofHits() <<
") than stations ("
1690 for (Int_t iH = 1; iH < pTrk->
GetNofHits(); iH++) {
1694 if (iSt < 0)
continue;
1696 LOG(debug1) << Form(
"<D> CbmTofFindTracks::FillHistograms: iDetId1 "
1697 "0x%08x, iST1 = %d with dTOff %f at RpcInd %d",
1713 Double_t dTt = pTrk->
GetTt();
1714 LOG(debug) << Form(
"Trk %d info: Lz=%6.2f Z0x=%6.2f Z0y=%6.2f Tt=%6.4f, ", iTrk, tPar->
GetLz(), pTrk->
GetZ0x(),
1731 LOG(info) << Form(
"Found tracklet candidate (x0,y0)=(%5.2f,%5.2f), Hmul %d, v %6.2f in event %d ",
1733 <<
" within " <<
fTofHitArray->GetEntriesFast() <<
" hits ";
1757 if (iH < 0)
continue;
1767 Double_t dDZ = pHit->
GetZ() - tPar->
GetZ();
1773 Double_t dDTB = pHit->
GetTime() - dTexp;
1775 Double_t dTOT = pHit->
GetCh() / 10.;
1778 LOG(debug) << Form(
" St %d Id 0x%08x Hit %2d, Z %6.2f - DX %6.2f, DY %6.2f, "
1779 "Z %6.2f, DT %6.2f, %6.2f, ZZ %6.2f, Tt %6.4f ",
1780 iSt,
fMapStationRpcId[iSt], iH, pHit->
GetZ(), dDX, dDY, dDZ, dDT, dDTB, dZZ, dTt)
1801 bool bCalModule = kTRUE;
1823 Double_t dDeltaTt = dTt -
fTtTarg;
1830 if (pRefHit != NULL) {
1831 if (pHit != pRefHit) {
1832 Double_t dTOff = dDeltaTt *
1833 TMath::Sqrt(TMath::Power(pHit->
GetX() - pRefHit->
GetX(), 2)
1834 + TMath::Power(pHit->
GetY() - pRefHit->
GetY(), 2)
1835 + TMath::Power(pHit->
GetZ() - pRefHit->
GetZ(), 2))
1836 * TMath::Sign(1, pHit->
GetZ() - pRefHit->
GetZ());
1845 LOG(error) <<
"Invalid inverse velocity ";
1851 for (Int_t iH = 0; iH < pTrk->
GetNofHits(); iH++) {
1855 if (NULL == fChannelInfo)
continue;
1856 Int_t iAddr = iChId &
DetMask;
1858 Double_t hitpos[3] = {3 * 0.};
1859 Double_t hitpos_local[3] = {3 * 0.};
1860 gGeoManager->FindNode(fChannelInfo->
GetX(), fChannelInfo->
GetY(), fChannelInfo->
GetZ());
1865 gGeoManager->MasterToLocal(hitpos, hitpos_local);
1870 LOG(debug) <<
"Complete Tracklet in event " <<
fiEvent;
1875 LOG(debug1) <<
" Incomplete Tracklet, skip station " << iSt;
1880 Double_t hitpos[3] = {3 * 0.};
1881 Double_t hitpos_local[3] = {3 * 0.};
1883 if (NULL == fChannelInfo) {
1888 gGeoManager->FindNode(fChannelInfo->
GetX(), fChannelInfo->
GetY(), fChannelInfo->
GetZ());
1893 gGeoManager->GetCurrentNode();
1894 gGeoManager->MasterToLocal(hitpos, hitpos_local);
1902 vhXY_DX[iSt]->Fill(hitpos_local[0], hitpos_local[1], dDX);
1903 vhXY_DY[iSt]->Fill(hitpos_local[0], hitpos_local[1], dDY);
1904 vhXY_DT[iSt]->Fill(hitpos_local[0], hitpos_local[1], dDTB);
1905 Double_t dCSZ = ((Double_t)(pHit->
GetFlag() % 100)) * 0.5;
1906 Double_t dTOT = ((Double_t) pHit->
GetCh()) * 0.1 / dCSZ;
1907 vhXY_TOT[iSt]->Fill(hitpos_local[0], hitpos_local[1], dTOT);
1908 vhXY_CSZ[iSt]->Fill(hitpos_local[0], hitpos_local[1], dCSZ);
1914 hitpos[2] = pHit->
GetZ();
1915 gGeoManager->MasterToLocal(hitpos, hitpos_local);
1920 if (fair::Logger::Logging(fair::Severity::debug3)) {
1925 Double_t zPosMiss = -1;
1926 Double_t hitposD[3];
1927 Double_t hitpos_localD[3];
1931 while (zPos != zPosMiss && 0 < NIter--) {
1933 gGeoManager->FindNode(fChannelInfoD->
GetX(), fChannelInfoD->
GetY(), fChannelInfoD->
GetZ());
1937 hitposD[2] = fChannelInfoD->
GetZ();
1938 gGeoManager->GetCurrentNode();
1939 gGeoManager->MasterToLocal(hitposD, hitpos_localD);
1942 Int_t iChMiss = hitpos_localD[0] / fChannelInfoD->
GetSizex() + (iNbCh - 1) / 2;
1943 if (iChMiss < 0) iChMiss = 0;
1944 if (iChMiss > iNbCh - 1) iChMiss = iNbCh - 1;
1946 if (iChMiss > -1 && iChMiss < iNbCh) {
1951 if (NULL == fChannelInfoMiss) {
1952 LOG(fatal) << Form(
"Geo consistency check 0x%08x, 0x%08x failed at "
1953 "St%d, z=%7.2f,%7.2f: iChTrafo %d, Miss %d , "
1954 "xloc %6.2f, dx %4.2f",
1955 iAddr, iAddrMiss, iSt, zPos, zPosMiss, iChTrafo, iChMiss, hitpos_local[0],
1958 zPosMiss = fChannelInfoMiss->
GetZ() + (Double_t)
fhPullZ_Smt_Off->GetBinContent(iRpcInd + 1);
1959 LOG(debug) << Form(
"Geo consistency check 0x%08x at St%d, z=%7.2f,%7.2f: "
1960 "iChTrafo %d, Miss %d , xloc %6.2f, dx %4.2f",
1961 iAddr, iSt, zPos, zPosMiss, iChTrafo, iChMiss, hitpos_localD[0],
1963 fChannelInfo = fChannelInfoMiss;
1968 LOG(debug) << Form(
"Predicted hit in Last Station 0x%08x at local pos x %6.2f, "
1969 "y %6.2f, z %6.2f, cell %p",
1970 iAddr, hitpos_localD[0], hitpos_localD[1], zPos, fChannelInfoD);
1971 LOG(debug) << Form(
"Measured hit in Last Station 0x%08x at local pos x %6.2f, "
1972 "y %6.2f, z %6.2f, cell %p",
1973 pHit->
GetAddress(), hitpos_local[0], hitpos_local[1], pHit->
GetZ(), fChannelInfo);
1985 if (iAddr < 1)
continue;
1989 if (NULL == fChannelInfo) {
1991 LOG(warning) << Form(
"CbmTofFindTracks::FillHistograms: Cell "
1992 "0x%08x not defined for Station %d",
1998 Double_t zPosMiss = -1;
2000 Double_t hitpos_local[3];
2004 while (zPos != zPosMiss && 0 < NIter--) {
2006 gGeoManager->FindNode(fChannelInfo->
GetX(), fChannelInfo->
GetY(), fChannelInfo->
GetZ());
2010 hitpos[2] = fChannelInfo->
GetZ();
2011 gGeoManager->GetCurrentNode();
2012 gGeoManager->MasterToLocal(hitpos, hitpos_local);
2015 Int_t iChMiss = hitpos_local[0] / fChannelInfo->
GetSizex() + (iNbCh - 1) / 2;
2016 if (iChMiss < 0) iChMiss = 0;
2017 if (iChMiss > iNbCh - 1) iChMiss = iNbCh - 1;
2019 if (iChMiss > -1 && iChMiss < iNbCh) {
2024 if (NULL == fChannelInfoMiss) {
2025 LOG(fatal) << Form(
"Geo consistency check 0x%08x, 0x%08x failed at "
2026 "St%d, z=%7.2f,%7.2f: iChTrafo %d, Miss %d , "
2027 "xloc %6.2f, dx %4.2f",
2028 iAddr, iAddrMiss, iSt, zPos, zPosMiss, iChTrafo, iChMiss, hitpos_local[0],
2031 zPosMiss = fChannelInfoMiss->
GetZ() + (Double_t)
fhPullZ_Smt_Off->GetBinContent(iRpcInd + 1);
2038 fChannelInfo = fChannelInfoMiss;
2045 LOG(debug) << Form(
"Missing hit in Last Station in event %d at "
2046 "local pos x %6.2f, y %6.2f, z %6.2f",
2047 fiEvent, hitpos_local[0], hitpos_local[1], zPos);
2052 for (Int_t iTrk1 = iTrk + 1; iTrk1 <
fTrackArray->GetEntriesFast(); iTrk1++) {
2054 if (NULL == pTrk1 || pTrk == pTrk1)
continue;
2078 if (HMul.size() > 3) {
2091 LOG(info) <<
"Found " << HMul[6] <<
" max length tracklets in event " <<
fiEvent <<
" within "
2093 for (Int_t iTrk = 0; iTrk <
fTrackArray->GetEntriesFast(); iTrk++) {
2095 if (NULL == pTrk)
continue;
2101 LOG(info) <<
"Found high track multiplicity of " <<
fTrackArray->GetEntriesFast() <<
" in event " <<
fiEvent
2102 <<
" from " <<
fTofHitArray->GetEntriesFast() <<
" hits ";
2103 for (Int_t iTrk = 0; iTrk <
fTrackArray->GetEntriesFast(); iTrk++) {
2105 if (NULL == pTrk)
continue;
2111 LOG(debug) << Form(
"CbmTofFindTracks::FillHistograms NTrkl %d(%d) in event %d", iTMul,
2113 for (Int_t iTrk = 0; iTrk <
fTrackArray->GetEntriesFast(); iTrk++) {
2115 if (NULL == pTrk)
continue;
2117 for (Int_t iTrk1 = iTrk + 1; iTrk1 <
fTrackArray->GetEntriesFast(); iTrk1++) {
2119 if (NULL == pTrk1)
continue;
2129 LOG(debug1) << Form(
"CbmTofFindTracks::FillHistograms: HMul.size() %u ", (UInt_t) HMul.size());
2130 for (UInt_t uHMul = 2; uHMul < HMul.size(); uHMul++) {
2131 LOG(debug1) << Form(
"CbmTofFindTracks::FillHistograms() HMul %u, #%d", uHMul, HMul[uHMul]);
2132 if (HMul[uHMul] > 0) {
2137 for (Int_t iHit = 0; iHit <
fTofHitArray->GetEntriesFast(); iHit++) {
2149 for (Int_t iTrk = 0; iTrk <
fTrackArray->GetEntriesFast(); iTrk++) {
2151 if (NULL == pTrk)
continue;