From 6bd8d22251a88845d815d9929a2203d1ac0a05b7 Mon Sep 17 00:00:00 2001
From: "redelbach_AT_compeng.uni-frankfurt.de" <redelbach@cbmfles01.gsi.de>
Date: Wed, 21 Apr 2021 12:06:07 +0200
Subject: [PATCH] CheckTiming functionality OK

---
 fles/mcbm2018/tasks/CbmCheckTiming.cxx | 30 ++++++--------------------
 macro/beamtime/mcbm2020/check_timing.C |  3 ++-
 2 files changed, 9 insertions(+), 24 deletions(-)

diff --git a/fles/mcbm2018/tasks/CbmCheckTiming.cxx b/fles/mcbm2018/tasks/CbmCheckTiming.cxx
index 3d857df127..113e9bb262 100644
--- a/fles/mcbm2018/tasks/CbmCheckTiming.cxx
+++ b/fles/mcbm2018/tasks/CbmCheckTiming.cxx
@@ -530,8 +530,10 @@ void CbmCheckTiming::Exec(Option_t* /*option*/) {
 
   if (fCheckTimeOrdering) CheckTimeOrder();
   if (fCheckInterSystemOffset) CheckInterSystemOffset();
-  if (0 < fNrTs && 0 == fNrTs % fNrTsForFit) LOG(info) << "Fitting  peaks for number of TS = " << fNrTs;
-  if (0 < fNrTs && 0 == fNrTs % fNrTsForFit) FitPeaks(); //Added AR
+  if ((0 < fNrTs) && (fNrTsForFit > 0) && (0 == fNrTs % fNrTsForFit)){
+    LOG(info) << "Fitting  peaks for number of TS = " << fNrTs;
+    FitPeaks();
+  }
   if (0 < fNrTs && 0 == fNrTs % 2000) WriteHistos();
   
   fNrTs++;
@@ -1073,6 +1075,7 @@ void CbmCheckTiming::Finish() {
     LOG(info) << "Total number of Psd out of order digis: " << fNrOfPsdErrors;
     LOG(info) << "Total number of Psd digis: " << fNrOfPsdDigis;
   }
+  FitPeaks();
   WriteHistos();
 
   LOG(info) << Form("Checked %6d Timeslices", fNrTs);
@@ -1099,50 +1102,36 @@ psd_coin_peak_pos = fSelT0PsdDiff->GetMaximumBin()*fSelT0PsdDiff->GetBinWidth(1)
 
 LOG(info) <<  "STS entries = "  <<  fT0StsDiff->GetEntries();
 LOG(info) << "STS-T0 entries if T0 in coincidence with TOF ... " << fSelT0StsDiff->GetEntries();
-//LOG(info) << "            ";
 LOG(info) << "MUCH entries = "  <<  fT0MuchDiff->GetEntries();
 LOG(info) << "MUCH-T0 entries if T0 in coincidence with TOF ... " << fSelT0MuchDiff->GetEntries();
-//LOG(info) << "            ";
 LOG(info) << "TRD entries = "  <<  fT0TrdDiff->GetEntries();
 LOG(info) << "TRD-T0 entries if T0 in coincidence with TOF ... " << fSelT0TrdDiff->GetEntries();
-//LOG(info) << "            ";
 LOG(info) << "TOF entries = "  <<  fT0TofDiff->GetEntries();
-//LOG(info) << "            ";
 LOG(info) << "RICH entries = "  <<  fT0RichDiff->GetEntries();
 LOG(info) << "RICH-T0 entries if T0 in coincidence with TOF ... " << fSelT0RichDiff->GetEntries();
-//LOG(info) << "            ";
 LOG(info) << "PSD entries = "  <<  fT0PsdDiff->GetEntries();
 LOG(info) << "PSD-T0 entries if T0 in coincidence with TOF ... " << fSelT0PsdDiff->GetEntries();
-//LOG(info) << "            ";
-LOG(info) << "            ";
 LOG(info) << "STS peak position [ns] = "<< sts_peak_pos;
 LOG(info) << "STS peak position [ns] if T0 in coincidence with TOF ... "<< sts_coin_peak_pos;
-//LOG(info) << "            ";
 LOG(info) << "MUCH peak position [ns] = "<< much_peak_pos;
 LOG(info) << "MUCH peak position [ns] if T0 in coincidence with TOF ... "<< much_coin_peak_pos;
-//LOG(info) << "            ";
 LOG(info) << "TRD peak position [ns] = "<< trd_peak_pos;
 LOG(info) << "TRD peak position [ns] if T0 in coincidence with TOF ... "<< trd_coin_peak_pos;
-//LOG(info) << "            ";
 LOG(info) << "TOF peak position [ns] = "<< tof_peak_pos;
-//LOG(info) << "            ";
 LOG(info) << "RICH peak position [ns] = "<< rich_peak_pos;
 LOG(info) << "RICH peak position [ns] if T0 in coincidence with TOF ... "<< rich_coin_peak_pos;
-//LOG(info) << "            ";
 LOG(info) << "PSD peak position [ns] = "<< psd_peak_pos;
 LOG(info) << "PSD peak position [ns] if T0 in coincidence with TOF ... "<< psd_coin_peak_pos;
 LOG(info) << "            ";
 
 //Average height of bins...
 trd_average = fT0TrdDiff->Integral()/(fT0TrdDiff->GetNbinsX());
-sts_average = fT0StsDiff->Integral()/(fT0StsDiff->GetNbinsX()); //works
+sts_average = fT0StsDiff->Integral()/(fT0StsDiff->GetNbinsX());
 much_average = fT0MuchDiff->Integral()/(fT0MuchDiff->GetNbinsX());
 tof_average = fT0TofDiff->Integral()/(fT0TofDiff->GetNbinsX());
 rich_average = fT0RichDiff->Integral()/(fT0RichDiff->GetNbinsX());
 psd_average = fT0PsdDiff->Integral()/(fT0PsdDiff->GetNbinsX());
 
-//LOG(info) << "STS average peak height = "<< sts_average;
-
 //Typical width in ns for Gauss
 trd_width0_ns = 120;
 sts_width0_ns = 30;
@@ -1153,7 +1142,6 @@ psd_width0_ns = 20;
 
 //TRD
 if(trd_average > 0){
-//TCanvas* canvas_trd = new TCanvas ("canvas_trd");
    TF1 *gs_trd = new TF1("gs_trd", "gaus(0)+pol0(3)", trd_peak_pos-2*trd_width0_ns, trd_peak_pos+2*trd_width0_ns);
    gs_trd->SetParameters(0.7*trd_average, trd_peak_pos, trd_width0_ns, trd_average);
    fT0TrdDiff->Fit("gs_trd","R");
@@ -1163,8 +1151,6 @@ if(trd_average > 0){
                 fitresult_trd->GetParameter(1) << ",  "  <<
                 fitresult_trd->GetParameter(2);
    LOG(info)<< "TRD signal/background (p0/p3) " << (fitresult_trd->GetParameter(0))/(fitresult_trd->GetParameter(3));
-//LOG(info)<< "TRD chi2 per DOF= " << (fitresult_trd->GetChisquare())/(fitresult_trd->GetNDF());
-//    fT0TrdDiff->Draw();
 }
 
 //STS
@@ -1231,9 +1217,7 @@ if(psd_average > 0){
                 fitresult_psd->GetParameter(2);
    LOG(info)<< "PSD signal/background (p0/p3) " << (fitresult_psd->GetParameter(0))/(fitresult_psd->GetParameter(3));
 }
-
-
-} //end FitPeaks()
+}
 
 
 
diff --git a/macro/beamtime/mcbm2020/check_timing.C b/macro/beamtime/mcbm2020/check_timing.C
index 197f6e3d7b..c40955de5a 100644
--- a/macro/beamtime/mcbm2020/check_timing.C
+++ b/macro/beamtime/mcbm2020/check_timing.C
@@ -24,7 +24,7 @@ void check_timing(TString fileName,
 
   FairFileSource* inputSource = new FairFileSource(fileName);
   fRun->SetSource(inputSource);
-  fRun->SetSink(new FairRootFileSink( "DummyFile.root" )); //Added AR
+  fRun->SetSink(new FairRootFileSink( "SinkFile.root" ));
   // Define output file for FairMonitor histograms
   //  TString monitorFile{outFile};
   //  monitorFile.ReplaceAll("qa","qa.monitor");
@@ -40,6 +40,7 @@ void check_timing(TString fileName,
   timeChecker->SetRichOffsetSearchRange(1000);
   timeChecker->SetPsdOffsetSearchRange(10000);
   timeChecker->SetT0PulserTotLimits(185, 191);
+  timeChecker->SetNrTsForFit(0);
   if (0 < uRunId)
     timeChecker->SetOutFilename(
       Form("%sHistosTimeCheck_%03u.root", outDir.Data(), uRunId));
-- 
GitLab