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

mCBM: update macros for generic timing checker and time win evt builder

- Adapt to new interface methods and provides examples/comments
- Add example lines for TOF as reference detector
parent c4a51fec
No related branches found
Tags dev_2021_37
1 merge request!44Improve time window event builder
...@@ -55,13 +55,46 @@ void build_event_win(UInt_t uRunId = 0, ...@@ -55,13 +55,46 @@ void build_event_win(UInt_t uRunId = 0,
eventBuilder->SetEventOverlapMode(EOverlapMode::NoOverlap); eventBuilder->SetEventOverlapMode(EOverlapMode::NoOverlap);
/*
* Available Pre-defined detectors:
* kEventBuilderDetSts
* kEventBuilderDetMuch
* kEventBuilderDetTrd
* kEventBuilderDetTof
* kEventBuilderDetRich
* kEventBuilderDetPsd
* kEventBuilderDetT0
*/
/// Change the selection window limits for T0 as ref
eventBuilder->SetTriggerWindow(ECbmModuleId::kSts, -50, 100); eventBuilder->SetTriggerWindow(ECbmModuleId::kSts, -50, 100);
eventBuilder->SetTriggerWindow(ECbmModuleId::kMuch, -150, 50); eventBuilder->SetTriggerWindow(ECbmModuleId::kMuch, -150, 50);
eventBuilder->SetTriggerWindow(ECbmModuleId::kTrd, -250, 100); eventBuilder->SetTriggerWindow(ECbmModuleId::kTrd, -250, 100);
eventBuilder->SetTriggerWindow(ECbmModuleId::kTof, -150, 10); eventBuilder->SetTriggerWindow(ECbmModuleId::kTof, -150, 10);
eventBuilder->SetTriggerWindow(ECbmModuleId::kRich, -150, 20); eventBuilder->SetTriggerWindow(ECbmModuleId::kRich, -150, 20);
eventBuilder->SetTriggerWindow(ECbmModuleId::kPsd, -50, 10); eventBuilder->SetTriggerWindow(ECbmModuleId::kPsd, -50, 10);
// eventBuilder->SetT0PulserTotLimits( 185, 191 ); /// To get T0 Digis (seed + close digis) in the event
eventBuilder->SetTriggerWindow(ECbmModuleId::kT0, -1, 10);
/*
/// Use TOF as reference
eventBuilder->SetReferenceDetector( kEventBuilderDetTof );
eventBuilder->AddDetector( kEventBuilderDetT0 );
/// Change the selection window limits for TOF as ref
/// => Should always be after changes of detector lists!
eventBuilder->SetTriggerWindow(ECbmModuleId::kT0, -150, 0);
eventBuilder->SetTriggerWindow(ECbmModuleId::kSts, -50, 100);
eventBuilder->SetTriggerWindow(ECbmModuleId::kMuch, -50, 200);
eventBuilder->SetTriggerWindow(ECbmModuleId::kTrd, -50, 300);
eventBuilder->SetTriggerWindow(ECbmModuleId::kTof, 0, 60);
eventBuilder->SetTriggerWindow(ECbmModuleId::kRich, -100, 150);
eventBuilder->SetTriggerWindow(ECbmModuleId::kPsd, -200, 50);
*/
/// Change the trigger requirements
/// => Should always be after changes of detector lists!
/// --- Minimum
eventBuilder->SetTriggerMinNumber(ECbmModuleId::kT0, 1); eventBuilder->SetTriggerMinNumber(ECbmModuleId::kT0, 1);
eventBuilder->SetTriggerMinNumber(ECbmModuleId::kSts, 0); eventBuilder->SetTriggerMinNumber(ECbmModuleId::kSts, 0);
eventBuilder->SetTriggerMinNumber(ECbmModuleId::kMuch, 0); eventBuilder->SetTriggerMinNumber(ECbmModuleId::kMuch, 0);
...@@ -69,13 +102,21 @@ void build_event_win(UInt_t uRunId = 0, ...@@ -69,13 +102,21 @@ void build_event_win(UInt_t uRunId = 0,
eventBuilder->SetTriggerMinNumber(ECbmModuleId::kTof, 10); eventBuilder->SetTriggerMinNumber(ECbmModuleId::kTof, 10);
eventBuilder->SetTriggerMinNumber(ECbmModuleId::kRich, 0); eventBuilder->SetTriggerMinNumber(ECbmModuleId::kRich, 0);
eventBuilder->SetTriggerMinNumber(ECbmModuleId::kPsd, 0); eventBuilder->SetTriggerMinNumber(ECbmModuleId::kPsd, 0);
/// --- Maximum (-1 to disable cut)
eventBuilder->SetTriggerMaxNumber(ECbmModuleId::kT0, -1);
eventBuilder->SetTriggerMaxNumber(ECbmModuleId::kSts, -1);
eventBuilder->SetTriggerMaxNumber(ECbmModuleId::kMuch, -1);
eventBuilder->SetTriggerMaxNumber(ECbmModuleId::kTrd, -1);
eventBuilder->SetTriggerMaxNumber(ECbmModuleId::kTof, -1);
eventBuilder->SetTriggerMaxNumber(ECbmModuleId::kRich, -1);
eventBuilder->SetTriggerMaxNumber(ECbmModuleId::kPsd, -1);
if (0 < uRunId) if (0 < uRunId)
eventBuilder->SetOutFilename( eventBuilder->SetOutFilename(
Form("%sHistosEvtWin_%03u.root", outDir.Data(), uRunId)); Form("%sHistosEvtWin_%03u.root", outDir.Data(), uRunId));
// To get T0 Digis (seed + close digis) in the event
eventBuilder->SetTriggerWindow(ECbmModuleId::kT0, -1, 10);
fRun->AddTask(eventBuilder); fRun->AddTask(eventBuilder);
// ----- Parameter database -------------------------------------------- // ----- Parameter database --------------------------------------------
......
...@@ -34,7 +34,7 @@ void check_timing_any(TString fileName, ...@@ -34,7 +34,7 @@ void check_timing_any(TString fileName,
CbmMcbmCheckTimingTask* timeChecker = new CbmMcbmCheckTimingTask(); CbmMcbmCheckTimingTask* timeChecker = new CbmMcbmCheckTimingTask();
/// Default is using T0 as reference /// Default is using T0 as reference
/// With Pulser rejection /// With Pulser rejection
/* /*
timeChecker->SetReferenceDetector( ECbmModuleId::kT0, "T0", timeChecker->SetReferenceDetector( ECbmModuleId::kT0, "T0",
-1000., 1000., 320., -1000., 1000., 320.,
182, 190 ); 182, 190 );
...@@ -45,11 +45,18 @@ void check_timing_any(TString fileName, ...@@ -45,11 +45,18 @@ void check_timing_any(TString fileName,
-1000., 1000., 320., -1000., 1000., 320.,
190, 182 ); 190, 182 );
*/ */
/// Here swapping with MUCH /// Here swapping with TOF
timeChecker->SetReferenceDetector(ECbmModuleId::kTof, "Tof");
timeChecker->RemoveCheckDetector(ECbmModuleId::kTof);
timeChecker->AddCheckDetector(ECbmModuleId::kT0, "T0");
/// Here swapping with MUCH
/*
timeChecker->SetReferenceDetector(ECbmModuleId::kMuch, "Much"); timeChecker->SetReferenceDetector(ECbmModuleId::kMuch, "Much");
timeChecker->RemoveCheckDetector(ECbmModuleId::kMuch); timeChecker->RemoveCheckDetector(ECbmModuleId::kMuch);
timeChecker->AddCheckDetector(ECbmModuleId::kT0, "T0"); timeChecker->AddCheckDetector(ECbmModuleId::kT0, "T0");
*/
if (0 < uRunId) if (0 < uRunId)
timeChecker->SetOutFilename( timeChecker->SetOutFilename(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment