Skip to content
Snippets Groups Projects
Commit 27dfa68a authored by Pierre-Alain Loizeau's avatar Pierre-Alain Loizeau
Browse files

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
parent b3ee46fb
Branches
Tags
1 merge request!44Improve time window event builder
...@@ -106,7 +106,14 @@ Bool_t CbmMcbm2019TimeWinEventBuilderAlgo::InitAlgo() { ...@@ -106,7 +106,14 @@ Bool_t CbmMcbm2019TimeWinEventBuilderAlgo::InitAlgo() {
/// Access the TS metadata to know TS start tim /// Access the TS metadata to know TS start tim
fTimeSliceMetaDataArray = fTimeSliceMetaDataArray =
dynamic_cast<TClonesArray*>(ioman->GetObject("TimesliceMetaData")); 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 /// Store the time window for the reference detector
switch (fRefDet) { switch (fRefDet) {
...@@ -856,104 +863,68 @@ Bool_t CbmMcbm2019TimeWinEventBuilderAlgo::CheckTriggerConditions( ...@@ -856,104 +863,68 @@ Bool_t CbmMcbm2019TimeWinEventBuilderAlgo::CheckTriggerConditions(
//---------------------------------------------------------------------- //----------------------------------------------------------------------
void CbmMcbm2019TimeWinEventBuilderAlgo::CreateHistograms() { void CbmMcbm2019TimeWinEventBuilderAlgo::CreateHistograms() {
/// FIXME: Disable clang formatting for histograms declaration for now
/* clang-format off */
fhEventTime = new TH1F("hEventTime", fhEventTime = new TH1F("hEventTime",
"seed time of the events; Seed time [s]; Events", "seed time of the events; Seed time [s]; Events",
60000, 60000, 0, 600);
0,
600);
fhEventDt = new TH1F( fhEventDt = new TH1F(
"fhEventDt", "fhEventDt",
"interval in seed time of consecutive events; Seed time [s]; Events", "interval in seed time of consecutive events; Seed time [s]; Events",
2100, 2100, -100.5, 1999.5);
-100.5,
1999.5);
fhEventSize = fhEventSize =
new TH1F("hEventSize", new TH1F("hEventSize",
"nb of all digis in the event; Nb Digis []; Events []", "nb of all digis in the event; Nb Digis []; Events []",
10000, 10000, 0, 10000);
0,
10000);
fhNbDigiPerEvtTime = fhNbDigiPerEvtTime =
new TH2I("hNbDigiPerEvtTime", new TH2I("hNbDigiPerEvtTime",
"nb of all digis per event vs seed time of the events; Seed time " "nb of all digis per event vs seed time of the events; Seed time "
"[s]; Nb Digis []; Events []", "[s]; Nb Digis []; Events []",
600, 600, 0, 600,
0, 1000, 0, 10000);
600,
1000,
0,
10000);
fhNbDigiPerEvtTimeT0 = fhNbDigiPerEvtTimeT0 =
new TH2I("hNbDigiPerEvtTimeT0", new TH2I("hNbDigiPerEvtTimeT0",
"nb of T0 digis per event vs seed time of the events; Seed time " "nb of T0 digis per event vs seed time of the events; Seed time "
"[s]; Nb Digis []; Events []", "[s]; Nb Digis []; Events []",
600, 600, 0, 600,
0, 4000, 0, 4000);
600,
4000,
0,
4000);
fhNbDigiPerEvtTimeSts = fhNbDigiPerEvtTimeSts =
new TH2I("hNbDigiPerEvtTimeSts", new TH2I("hNbDigiPerEvtTimeSts",
"nb of STS digis per event vs seed time of the events; Seed time " "nb of STS digis per event vs seed time of the events; Seed time "
"[s]; Nb Digis []; Events []", "[s]; Nb Digis []; Events []",
600, 600, 0, 600,
0, 4000, 0, 4000);
600,
4000,
0,
4000);
fhNbDigiPerEvtTimeMuch = fhNbDigiPerEvtTimeMuch =
new TH2I("hNbDigiPerEvtTimeMuch", new TH2I("hNbDigiPerEvtTimeMuch",
"nb of MUCH digis per event vs seed time of the events; Seed time " "nb of MUCH digis per event vs seed time of the events; Seed time "
"[s]; Nb Digis []; Events []", "[s]; Nb Digis []; Events []",
600, 600, 0, 600,
0, 4000, 0, 4000);
600,
4000,
0,
4000);
fhNbDigiPerEvtTimeTrd = fhNbDigiPerEvtTimeTrd =
new TH2I("hNbDigiPerEvtTimeTrd", new TH2I("hNbDigiPerEvtTimeTrd",
"nb of TRD digis per event vs seed time of the events; Seed time " "nb of TRD digis per event vs seed time of the events; Seed time "
"[s]; Nb Digis []; Events []", "[s]; Nb Digis []; Events []",
600, 600, 0, 600,
0, 4000, 0, 4000);
600,
4000,
0,
4000);
fhNbDigiPerEvtTimeTof = fhNbDigiPerEvtTimeTof =
new TH2I("hNbDigiPerEvtTimeTof", new TH2I("hNbDigiPerEvtTimeTof",
"nb of TOF digis per event vs seed time of the events; Seed time " "nb of TOF digis per event vs seed time of the events; Seed time "
"[s]; Nb Digis []; Events []", "[s]; Nb Digis []; Events []",
600, 600, 0, 600,
0, 4000, 0, 4000);
600,
4000,
0,
4000);
fhNbDigiPerEvtTimeRich = fhNbDigiPerEvtTimeRich =
new TH2I("hNbDigiPerEvtTimeRich", new TH2I("hNbDigiPerEvtTimeRich",
"nb of RICH digis per event vs seed time of the events; Seed time " "nb of RICH digis per event vs seed time of the events; Seed time "
"[s]; Nb Digis []; Events []", "[s]; Nb Digis []; Events []",
600, 600, 0, 600,
0, 4000, 0, 4000);
600,
4000,
0,
4000);
fhNbDigiPerEvtTimePsd = fhNbDigiPerEvtTimePsd =
new TH2I("hNbDigiPerEvtTimePsd", new TH2I("hNbDigiPerEvtTimePsd",
"nb of PSD digis per event vs seed time of the events; Seed time " "nb of PSD digis per event vs seed time of the events; Seed time "
"[s]; Nb Digis []; Events []", "[s]; Nb Digis []; Events []",
600, 600, 0, 600,
0, 4000, 0, 4000);
600,
4000,
0,
4000);
AddHistoToVector(fhEventTime, "evtbuild"); AddHistoToVector(fhEventTime, "evtbuild");
AddHistoToVector(fhEventDt, "evtbuild"); AddHistoToVector(fhEventDt, "evtbuild");
...@@ -966,6 +937,9 @@ void CbmMcbm2019TimeWinEventBuilderAlgo::CreateHistograms() { ...@@ -966,6 +937,9 @@ void CbmMcbm2019TimeWinEventBuilderAlgo::CreateHistograms() {
AddHistoToVector(fhNbDigiPerEvtTimeTof, "evtbuild"); AddHistoToVector(fhNbDigiPerEvtTimeTof, "evtbuild");
AddHistoToVector(fhNbDigiPerEvtTimeRich, "evtbuild"); AddHistoToVector(fhNbDigiPerEvtTimeRich, "evtbuild");
AddHistoToVector(fhNbDigiPerEvtTimePsd, "evtbuild"); AddHistoToVector(fhNbDigiPerEvtTimePsd, "evtbuild");
/// FIXME: Re-enable clang formatting after histograms declaration
/* clang-format on */
} }
void CbmMcbm2019TimeWinEventBuilderAlgo::FillHistos() { void CbmMcbm2019TimeWinEventBuilderAlgo::FillHistos() {
Double_t dPreEvtTime = -1.0; Double_t dPreEvtTime = -1.0;
...@@ -1025,13 +999,16 @@ void CbmMcbm2019TimeWinEventBuilderAlgo::SetReferenceDetector( ...@@ -1025,13 +999,16 @@ void CbmMcbm2019TimeWinEventBuilderAlgo::SetReferenceDetector(
++det) { ++det) {
if (*det == refDet) { if (*det == refDet) {
LOG(warning) LOG(warning)
<< "CbmMcbm2019TimeWinEventBuilderAlgo::SetReferenceDetector => Doing " << "CbmMcbm2019TimeWinEventBuilderAlgo::SetReferenceDetector => "
"nothing, reference detector already in selection detector list!" "Reference detector already in selection detector list!"
<< refDet; << refDet;
LOG(warning) LOG(warning)
<< " => You " << " => It will "
"may want to use RemoveDetector before this command to remove it?"; "be automatically removed from selection detector list!";
return; LOG(warning) << " "
"=> Please also remember to update the selection windows "
"to store clusters!";
RemoveDetector( refDet );
} // if( *det == selDet ) } // if( *det == selDet )
} // for( std::vector< ECbmModuleId >::iterator det = fvDets.begin(); det != fvDets.end(); ++det ) } // for( std::vector< ECbmModuleId >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
...@@ -1050,8 +1027,8 @@ void CbmMcbm2019TimeWinEventBuilderAlgo::SetReferenceDetector( ...@@ -1050,8 +1027,8 @@ void CbmMcbm2019TimeWinEventBuilderAlgo::SetReferenceDetector(
<< fRefDet; << fRefDet;
LOG(warning) << " " LOG(warning) << " "
"=> Please also remember to update the selection windows!"; "=> Please also remember to update the selection windows!";
fRefDet = refDet;
} // else of if( fRefDet == refDet ) } // else of if( fRefDet == refDet )
fRefDet = refDet;
} }
void CbmMcbm2019TimeWinEventBuilderAlgo::AddDetector(ECbmModuleId selDet) { void CbmMcbm2019TimeWinEventBuilderAlgo::AddDetector(ECbmModuleId selDet) {
/// FIXME: This is not true in case TOF is used as reference !!!!! /// FIXME: This is not true in case TOF is used as reference !!!!!
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment