QA for digi events. Checks the digi time distribution within the event.
This simple QA in the task format checks the (STS) digi time distribution within each constructed event. This distribution should be peaked, demonstrating that real events have been triggered on and were built, and not just some noise is sampled, which would result in a flat distribution.
The corresponding histogram is registered to the THttpServer of FairRunOnline, but I do not yet know how to get it on screen. So, for the time being, it is also written to the output file. Example plots are attached below.
N.b.: I notice that filling the (single) histogram (TH1F) is rather costly: the tasks consumes like 70 ms per timeslice (about 6.5 millions digis / calls to TH1F::Fill()
). The task also calculates the first and second moment of the distribution numerically; without histogram filling, the time consumation is only about 10 ms per timeslice.
Merge request reports
Activity
added Reconstruction label
requested review from @p.-a.loizeau
assigned to @j.decuveland
Dear @f.uhlig, @p.-a.loizeau, @v.friese,
you have been identified as code owner of at least one file which was changed with this merge request.
Please check the changes and approve them or request changes.
added CodeOwners label
Looks good to me, and works fine!
Maybe @p.-a.loizeau, can you advise on how to use the THttpServer?
Here are the plots promised above, in both linear and log scale of the ordinate. The log plot shows the event peak on top of a flat (noise?) distribution, which is cut at -20 ns and +30 ns, the event-building window. With the chosen 1 ns histogram binning, the discrete time structure (clock cycle 3.125 ns) becomes visible. Also, the stddev of about 4 to 5 ns agrees with the expected time resolution.
So, it seems what we are doing (trigger + event builder) does make some sense, even without any time calibration (offsets per ASIC or walk effect).
- Resolved by Pierre-Alain Loizeau
For the httpServer, you have to add the following lines to your macro:
// ----- HttpServer for online monitoring ----------------------------- Int_t serverHttpPort = 8080; Int_t serverRefreshRate = 100; // In processed objects, so either events or timeslice, but not time! run->ActivateHttpServer(serverRefreshRate, serverHttpPort); run->GetHttpServer()->GetSniffer()->SetScanGlobalDir(kFALSE); // ------------------------------------------------------------------------
It may be that this is available only with FairRunOnline, but I would try anyway first with the version of FairRun that you have in your macro as I have loose memories it was in the base class of all FairRunXXXX classes.
For the time use of TH1 fill, I would not worry, as the goal is anyway not to run such monitoring classes on the complete data-set when online.
- Resolved by Pierre-Alain Loizeau
@v.friese, would you like to further add to this MR or shall I merge it as it is now? Apart from the histogram publishing, the code seems to be working fine to me.
Let me add the lines suggested by @p.-a.loizeau, will do it today.
added 1 commit
- bd504be2 - Activate Https Server; set histogram limits according to event bguilding windows.
added 19 commits
-
bd504be2...f7ee6b9e - 17 commits from branch
computing:master
- 1a552443 - QA for digi events. Checks the digi time distribution within the event.
- a02a497c - Activate Https Server; set histogram limits according to event bguilding windows.
-
bd504be2...f7ee6b9e - 17 commits from branch
@j.decuveland Ready from my side now.
added 4 commits
Toggle commit list