diff --git a/core/data/raw/PsdGbtReader-v1.00.cxx b/core/data/raw/PsdGbtReader-v1.00.cxx index 8d1af6217ca6907c5589d4a881e645a3c6d1672f..ec872249ed0ce924fcd8b42c93925c0d9375a90a 100644 --- a/core/data/raw/PsdGbtReader-v1.00.cxx +++ b/core/data/raw/PsdGbtReader-v1.00.cxx @@ -112,7 +112,8 @@ namespace PsdDataV100 int PsdGbtReader::ReadMs() { - std::stringstream().swap(save_buffer); + save_buffer.str(""); + save_buffer.clear(); //bool word_is_Ms_header = false; //ReadMsHeader(); diff --git a/fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoPsd.cxx b/fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoPsd.cxx index f725506e2d612f77c170cd37839d2ccf190b8892..ef2530b7031152b11d9750269525de1c2217e4ec 100644 --- a/fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoPsd.cxx +++ b/fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoPsd.cxx @@ -396,7 +396,7 @@ Bool_t CbmMcbm2018MonitorAlgoPsd::ProcessMs(const fles::Timeslice& ts, size_t uM //double dHitTime = (double) fulCurrentMsIdx + PsdReader.VectPackHdr.at(hit_iter).uAdcTime * 12.5; //in ns //double dHitTime = PsdReader.MsHdr.ulMicroSlice*1000. + PsdReader.VectPackHdr.at(hit_iter).uAdcTime*12.5; //in ns std::vector<uint16_t> uWfm = PsdReader.VectHitData.at(hit_iter).uWfm; - uSignalCharge /= kfAdc_to_mV; // ->now in mV + uSignalCharge /= (int)kfAdc_to_mV; // ->now in mV fhAdcTime->Fill(PsdReader.VectPackHdr.at(hit_iter).uAdcTime); @@ -417,13 +417,13 @@ Bool_t CbmMcbm2018MonitorAlgoPsd::ProcessMs(const fles::Timeslice& ts, size_t uM fvhHitFAChanEvo[uHitChannel]->Fill(fdMsTime - fdStartTime, uAccum); //Hit data - int32_t iHitAmlpitude = 0; - int32_t iHitChargeWfm = 0; + double dHitAmlpitude = 0; + double dHitChargeWfm = 0; if (fbMonitorWfmMode) fvhHitWfmChan[uHitChannel]->Reset(); if (fbMonitorFitMode) fvhHitFitWfmChan[uHitChannel]->Reset(); - iHitChargeWfm = std::accumulate(uWfm.begin(), uWfm.end(), 0); - iHitChargeWfm -= uZeroLevel * uWfm.size(); + dHitChargeWfm = std::accumulate(uWfm.begin(), uWfm.end(), 0); + dHitChargeWfm -= uZeroLevel * uWfm.size(); auto const max_iter = std::max_element(uWfm.begin(), uWfm.end()); assert(max_iter != uWfm.end()); if (max_iter == uWfm.end()) break; @@ -582,7 +582,7 @@ Bool_t CbmMcbm2018MonitorAlgoPsd::ProcessMs(const fles::Timeslice& ts, size_t uM UInt_t uSignalCharge = PsdReader.VectHitHdr.at(hit_iter).uSignalCharge; UInt_t uZeroLevel = PsdReader.VectHitHdr.at(hit_iter).uZeroLevel; std::vector<uint16_t> uWfm = PsdReader.VectHitData.at(hit_iter).uWfm; - uSignalCharge /= kfAdc_to_mV; // ->now in mV + uSignalCharge /= (int)kfAdc_to_mV; // ->now in mV if (uHitChannel >= kuNbChanPsd) //uHitChannel numerated from 0 { @@ -593,8 +593,7 @@ Bool_t CbmMcbm2018MonitorAlgoPsd::ProcessMs(const fles::Timeslice& ts, size_t uM //Hit header fhHitChargeMap->Fill(uHitChannel, uSignalCharge); fhHitMapEvo->Fill(uHitChannel, fdMsTime - fdStartTime); - fhChanHitMapEvo->Fill(uHitChannel, - fdMsTime - fdStartTime); //should be placed map(channel) + fhChanHitMapEvo->Fill(uHitChannel, fdMsTime - fdStartTime);//should be placed map(ch) if (fbMonitorChanMode) { @@ -602,13 +601,13 @@ Bool_t CbmMcbm2018MonitorAlgoPsd::ProcessMs(const fles::Timeslice& ts, size_t uM fvhHitZeroLevelChan[uHitChannel]->Fill(uZeroLevel); //Hit data - int32_t iHitAmlpitude = 0; - int32_t iHitChargeWfm = 0; + double dHitAmlpitude = 0; + double dHitChargeWfm = 0; if (fbMonitorWfmMode) fvhHitWfmChan[uHitChannel]->Reset(); if (fbMonitorFitMode) fvhHitFitWfmChan[uHitChannel]->Reset(); - iHitChargeWfm = std::accumulate(uWfm.begin(), uWfm.end(), 0); - iHitChargeWfm -= uZeroLevel * uWfm.size(); + dHitChargeWfm = std::accumulate(uWfm.begin(), uWfm.end(), 0); + dHitChargeWfm -= uZeroLevel * uWfm.size(); auto const max_iter = std::max_element(uWfm.begin(), uWfm.end()); assert(max_iter != uWfm.end()); if (max_iter == uWfm.end()) break; @@ -821,17 +820,17 @@ Bool_t CbmMcbm2018MonitorAlgoPsd::CreateHistograms() fvhHitZLChanEvo[uChan] = new TH2I(Form("hHitZLChanEvo%03u", uChan), - Form("Hits ZeroLevel evolution for channel %03u; ZeroLevel [adc counts]", uChan), fuHistoryHistoSize, + Form("Hits ZeroLevel evolution for channel %03u; Time in run [s]; ZeroLevel [adc counts]", uChan), fuHistoryHistoSize, 0, fuHistoryHistoSize, fviHistoZLArgs.at(0), fviHistoZLArgs.at(1), fviHistoZLArgs.at(2)); fvhHitZLChanEvo[uChan]->SetMarkerColor(kRed); fvhHitLPChanEvo[uChan] = new TH2I(Form("hHitLPChanEvo%03u", uChan), - Form("Hits LastPoint evolution for channel %03u; ZeroLevel [adc counts]", uChan), fuHistoryHistoSize, + Form("Hits LastPoint evolution for channel %03u; Time in run [s]; ZeroLevel [adc counts]", uChan), fuHistoryHistoSize, 0, fuHistoryHistoSize, fviHistoZLArgs.at(0), fviHistoZLArgs.at(1), fviHistoZLArgs.at(2)); fvhHitLPChanEvo[uChan]->SetMarkerColor(kBlue); fvhHitFAChanEvo[uChan] = new TH2I( Form("hHitFAChanEvo%03u", uChan), - Form("Hits FeeAccumulator evolution for channel %03u; ZeroLevel [adc counts]", uChan), fuHistoryHistoSize, 0, + Form("Hits FeeAccumulator evolution for channel %03u; Time in run [s]; ZeroLevel [adc counts]", uChan), fuHistoryHistoSize, 0, fuHistoryHistoSize, fviHistoZLArgs.at(0), fviHistoZLArgs.at(1), fviHistoZLArgs.at(2)); fvhHitFAChanEvo[uChan]->SetMarkerColor(kOrange); @@ -845,7 +844,7 @@ Bool_t CbmMcbm2018MonitorAlgoPsd::CreateHistograms() Form("Hits zero level distribution for channel %03u; ZeroLevel [adc counts]", uChan), fviHistoZLArgs.at(0), fviHistoZLArgs.at(1), fviHistoZLArgs.at(2)); - fvhHitAmplChan[uChan] = new TH1I(Form("hHitAmplChan%03u", uChan), + fvhHitAmplChan[uChan] = new TH1F(Form("hHitAmplChan%03u", uChan), Form("Hits amplitude distribution for channel %03u; Amplitude [mV]", uChan), fviHistoAmplArgs.at(0), fviHistoAmplArgs.at(1), fviHistoAmplArgs.at(2)); diff --git a/fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoPsd.h b/fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoPsd.h index 69acfdf50b84db60dca36ff0940cb7974b6bc4ab..62f8c56f1bf8a593aad8ae100edf8e5e6ed01054 100644 --- a/fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoPsd.h +++ b/fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoPsd.h @@ -104,7 +104,7 @@ private: static const Int_t kiMaxNbFlibLinks = 32; static const UInt_t kuBytesPerMessage = 8; static const UInt_t kuNbChanPsd = 12; - const float kfAdc_to_mV = 1; + const float kfAdc_to_mV = 16.5; static constexpr UInt_t GetNbChanPsd() { return kuNbChanPsd; } /// Running indices diff --git a/macro/beamtime/mcbm2021/MonitorPsd.C b/macro/beamtime/mcbm2021/MonitorPsd.C index 967c0d45947d2e2caea0989684194d62ee542d32..dda9fb5cf2bce4cb325fa66b94c6abe5a22c9ed9 100644 --- a/macro/beamtime/mcbm2021/MonitorPsd.C +++ b/macro/beamtime/mcbm2021/MonitorPsd.C @@ -60,16 +60,16 @@ void MonitorPsd(TString inFile = "", TString sHostname = "localhost", Int_t iSer monitor_psd->SetHistoryHistoSize(60); monitor_psd->SetHistoFilename(outFileNameHistos); - std::vector<Int_t> fviHistoChargeArgs {500, 0, 5000}; - std::vector<Int_t> fviHistoAmplArgs {100, 0, 500}; - std::vector<Int_t> fviHistoZLArgs {9000, 0, 9000}; + std::vector<Int_t> fviHistoChargeArgs {100, 0, 100}; + std::vector<Int_t> fviHistoAmplArgs {20, 0, 10}; + std::vector<Int_t> fviHistoZLArgs {500, 0, 2000}; monitor_psd->SetChargeHistoArgs(fviHistoChargeArgs); monitor_psd->SetAmplHistoArgs(fviHistoAmplArgs); monitor_psd->SetZLHistoArgs(fviHistoZLArgs); monitor_psd->SetMonitorChanMode(kTRUE); monitor_psd->SetMonitorWfmMode(kTRUE); - //monitor_psd->SetMonitorFitMode(kTRUE); + monitor_psd->SetMonitorFitMode(kTRUE); // --- Source task CbmMcbm2018Source* source = new CbmMcbm2018Source();