From 27dfa68a95ba9ec841f9586e34b3e1da06a8dd08 Mon Sep 17 00:00:00 2001 From: P-A Loizeau <p.-a.loizeau@gsi.de> Date: Wed, 15 Jul 2020 16:26:04 +0200 Subject: [PATCH] mCBM 2020: improve time window event builder user interface - auto-remove of detector from selection list if needed when setting it as reference detector (instead of simple warning) - more explicit fatal message of TsMetaData array missing - hand reformat & clang-format guards for the histograms instanciation --- .../CbmMcbm2019TimeWinEventBuilderAlgo.cxx | 125 +++++++----------- 1 file changed, 51 insertions(+), 74 deletions(-) diff --git a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.cxx b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.cxx index f7900ed4..acdb288c 100644 --- a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.cxx +++ b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.cxx @@ -106,7 +106,14 @@ Bool_t CbmMcbm2019TimeWinEventBuilderAlgo::InitAlgo() { /// Access the TS metadata to know TS start tim fTimeSliceMetaDataArray = dynamic_cast<TClonesArray*>(ioman->GetObject("TimesliceMetaData")); - if (!fTimeSliceMetaDataArray) LOG(fatal) << "No TS metadata input found"; + if (!fTimeSliceMetaDataArray) + { + LOG(fatal) << "No TS metadata input found" + << " => Please check in the unpacking macro if the following line" + " was present!" + << std::endl + <<"source->SetWriteOutputFlag(kTRUE); // For writing TS metadata"; + } // if (!fTimeSliceMetaDataArray) /// Store the time window for the reference detector switch (fRefDet) { @@ -856,116 +863,83 @@ Bool_t CbmMcbm2019TimeWinEventBuilderAlgo::CheckTriggerConditions( //---------------------------------------------------------------------- void CbmMcbm2019TimeWinEventBuilderAlgo::CreateHistograms() { + /// FIXME: Disable clang formatting for histograms declaration for now + /* clang-format off */ fhEventTime = new TH1F("hEventTime", "seed time of the events; Seed time [s]; Events", - 60000, - 0, - 600); + 60000, 0, 600); fhEventDt = new TH1F( "fhEventDt", "interval in seed time of consecutive events; Seed time [s]; Events", - 2100, - -100.5, - 1999.5); + 2100, -100.5, 1999.5); fhEventSize = new TH1F("hEventSize", "nb of all digis in the event; Nb Digis []; Events []", - 10000, - 0, - 10000); + 10000, 0, 10000); fhNbDigiPerEvtTime = new TH2I("hNbDigiPerEvtTime", "nb of all digis per event vs seed time of the events; Seed time " "[s]; Nb Digis []; Events []", - 600, - 0, - 600, - 1000, - 0, - 10000); + 600, 0, 600, + 1000, 0, 10000); fhNbDigiPerEvtTimeT0 = new TH2I("hNbDigiPerEvtTimeT0", "nb of T0 digis per event vs seed time of the events; Seed time " "[s]; Nb Digis []; Events []", - 600, - 0, - 600, - 4000, - 0, - 4000); + 600, 0, 600, + 4000, 0, 4000); fhNbDigiPerEvtTimeSts = new TH2I("hNbDigiPerEvtTimeSts", "nb of STS digis per event vs seed time of the events; Seed time " "[s]; Nb Digis []; Events []", - 600, - 0, - 600, - 4000, - 0, - 4000); + 600, 0, 600, + 4000, 0, 4000); fhNbDigiPerEvtTimeMuch = new TH2I("hNbDigiPerEvtTimeMuch", "nb of MUCH digis per event vs seed time of the events; Seed time " "[s]; Nb Digis []; Events []", - 600, - 0, - 600, - 4000, - 0, - 4000); + 600, 0, 600, + 4000, 0, 4000); fhNbDigiPerEvtTimeTrd = new TH2I("hNbDigiPerEvtTimeTrd", "nb of TRD digis per event vs seed time of the events; Seed time " "[s]; Nb Digis []; Events []", - 600, - 0, - 600, - 4000, - 0, - 4000); + 600, 0, 600, + 4000, 0, 4000); fhNbDigiPerEvtTimeTof = new TH2I("hNbDigiPerEvtTimeTof", "nb of TOF digis per event vs seed time of the events; Seed time " "[s]; Nb Digis []; Events []", - 600, - 0, - 600, - 4000, - 0, - 4000); + 600, 0, 600, + 4000, 0, 4000); fhNbDigiPerEvtTimeRich = new TH2I("hNbDigiPerEvtTimeRich", "nb of RICH digis per event vs seed time of the events; Seed time " "[s]; Nb Digis []; Events []", - 600, - 0, - 600, - 4000, - 0, - 4000); + 600, 0, 600, + 4000, 0, 4000); fhNbDigiPerEvtTimePsd = new TH2I("hNbDigiPerEvtTimePsd", "nb of PSD digis per event vs seed time of the events; Seed time " "[s]; Nb Digis []; Events []", - 600, - 0, - 600, - 4000, - 0, - 4000); - - AddHistoToVector(fhEventTime, "evtbuild"); - AddHistoToVector(fhEventDt, "evtbuild"); - AddHistoToVector(fhEventSize, "evtbuild"); - AddHistoToVector(fhNbDigiPerEvtTime, "evtbuild"); - AddHistoToVector(fhNbDigiPerEvtTimeT0, "evtbuild"); - AddHistoToVector(fhNbDigiPerEvtTimeSts, "evtbuild"); + 600, 0, 600, + 4000, 0, 4000); + + AddHistoToVector(fhEventTime, "evtbuild"); + AddHistoToVector(fhEventDt, "evtbuild"); + AddHistoToVector(fhEventSize, "evtbuild"); + AddHistoToVector(fhNbDigiPerEvtTime, "evtbuild"); + AddHistoToVector(fhNbDigiPerEvtTimeT0, "evtbuild"); + AddHistoToVector(fhNbDigiPerEvtTimeSts, "evtbuild"); AddHistoToVector(fhNbDigiPerEvtTimeMuch, "evtbuild"); - AddHistoToVector(fhNbDigiPerEvtTimeTrd, "evtbuild"); - AddHistoToVector(fhNbDigiPerEvtTimeTof, "evtbuild"); + AddHistoToVector(fhNbDigiPerEvtTimeTrd, "evtbuild"); + AddHistoToVector(fhNbDigiPerEvtTimeTof, "evtbuild"); AddHistoToVector(fhNbDigiPerEvtTimeRich, "evtbuild"); - AddHistoToVector(fhNbDigiPerEvtTimePsd, "evtbuild"); + AddHistoToVector(fhNbDigiPerEvtTimePsd, "evtbuild"); + + /// FIXME: Re-enable clang formatting after histograms declaration + /* clang-format on */ } void CbmMcbm2019TimeWinEventBuilderAlgo::FillHistos() { Double_t dPreEvtTime = -1.0; @@ -1025,13 +999,16 @@ void CbmMcbm2019TimeWinEventBuilderAlgo::SetReferenceDetector( ++det) { if (*det == refDet) { LOG(warning) - << "CbmMcbm2019TimeWinEventBuilderAlgo::SetReferenceDetector => Doing " - "nothing, reference detector already in selection detector list!" + << "CbmMcbm2019TimeWinEventBuilderAlgo::SetReferenceDetector => " + "Reference detector already in selection detector list!" << refDet; LOG(warning) - << " => You " - "may want to use RemoveDetector before this command to remove it?"; - return; + << " => It will " + "be automatically removed from selection detector list!"; + LOG(warning) << " " + "=> Please also remember to update the selection windows " + "to store clusters!"; + RemoveDetector( refDet ); } // if( *det == selDet ) } // for( std::vector< ECbmModuleId >::iterator det = fvDets.begin(); det != fvDets.end(); ++det ) @@ -1050,8 +1027,8 @@ void CbmMcbm2019TimeWinEventBuilderAlgo::SetReferenceDetector( << fRefDet; LOG(warning) << " " "=> Please also remember to update the selection windows!"; - fRefDet = refDet; } // else of if( fRefDet == refDet ) + fRefDet = refDet; } void CbmMcbm2019TimeWinEventBuilderAlgo::AddDetector(ECbmModuleId selDet) { /// FIXME: This is not true in case TOF is used as reference !!!!! -- GitLab