8 #include "WatcherClient.h"
9 #include "ADFWatchers.h"
10 #include "CrystalWatchers.h"
11 #include "PSAWatchers.h"
12 #include "TrackedWatchers.h"
13 #include "EventPSAWatchers.h"
14 #include "EventWatchers.h"
15 #include "MetaWatchers.h"
23 #include "ADFWatchers.h"
37 const char *
GetWN(
const char *name,
const char *ext)
39 return Form(
"%s%s",name,ext);
48 TIter next(top_task->GetListOfTasks());
49 while ( (task = (TTask *)next()) ) {
50 if ( task == collector )
54 TIter next_w(fd->GetListOfTasks());
55 while ( (task = (TTask *)next_w()) ) {
56 ts_rate =
dynamic_cast<TSRate *
> (task);
58 collector->
AddHook(ts_rate,fd->GetName());
71 Bool_t ok =
false; TString DFtype = df_type;
76 if ( DFtype.Contains(
"ADF") ) {
87 dumper->SetActive(
false);
92 fd->
Add<
TSRate>(
GetWN(
"TSRate",ext),
"To get rate form consecutive TS value");
101 if ( DFtype.Contains(
"RANC0") ) {
106 AgataFrameTrigger::Build(
"RANC0",
"data:ranc0");
110 fd->
Add<
TSRate>(
GetWN(
"TSRate",ext),
"To get rate form consecutive TS value");
124 if ( DFtype.Contains(
"MERGER") ) {
127 AgataFrameTrigger::Build(
"Event",
"event:data event:data:psa data:ranc0");
139 fd->
Add<
TSRate>(
GetWN(
"TSRate",ext),
"To get rate form consecutive TS value");
149 rootmaster->Add<
Unpack>(
GetWN(
"Unpack",ext),
"To Produce Tree with Unpack Data");
150 rootmaster->
Add<
Sort>(
GetWN(
"Sort",ext),
"To Produce Tree with Unpack Data");
151 rootmaster->
Add<
Calibr>(
GetWN(
"Calibr",ext),
"To Produce Tree with Unpack Data");
152 rootmaster->
Add<
Anl>(
GetWN(
"Anl",ext),
"To Produce Tree with Unpack Data");
156 fd->
Add<
GlobalDC>(
GetWN(
"CheckDoppler",ext),
"Check Doppler as computed by Anl");
163 if ( DFtype.Contains(
"TRACKING") ) {
167 AgataFrameTrigger::Build(
"TRACKING",
"event:data event:data:psa data:tracked");
virtual void Add(TTask *)
add only Watchers to the list of tasks to avoid problems.
void DoTSRateCollector(TTask *top_task, TSRateCollector *collector)
browse all dispatchers to look for TSRate Watcher
Watcher that built the spectra expected for a Vertex.
Just dump the frame in a file.
void AddHook(Watcher *, const char *)
Add a timestamp rate.
built a root tree for the tracked part
virtual SharedFP * Add(const FactoryItem &key_item, const FactoryItem &frame_item, bool iscons=true, const Char_t *option="")
Add a frame to the list of required frames.
Watcher to keep last TS values.
Process a buffer, trigg and dispachs the work to sub-watchers.
virtual Bool_t SetTrigger(ADF::DFTrigger *)
This is the default trigger for any added watcher.
const char * GetWN(const char *name, const char *ext)
Build the Watcher name adding an extension.
Base class for a Watcher.
Watcher_T * Add(const Char_t *name, const Char_t *title, ADF::DFTrigger *t=0x0)
allocate a new watcher so that it creates corectly its directory under the dispatcher directory ...
To check and display the Data Flow structure by the key content of the frame.
Base class for version numbers.
To be used for Agata Data Flow.
Sort data from unpackdata watchers.
*********************************** HitsSpectra Class **************************************/// ...
Gives the distribution of the different timstamps in a composite frame.
Unpack data from mbs encapsulated in ADF frame.
Watcher to build a tree with branches processed in several watchers.
Bool_t SetupWatchers(const char *df_type, FrameDispatcher *fd, const char *ext="")
It shows how to set up the watchers for different kind of data flow.
void SetDoSpectra(Short_t do_spectra)
to know spectra mode for this watcher
void Universal(Bool_t b=true)
Set this trigger as universal or not.
MBSWatcher, to check the structure of the MBS Frame.
Base class that described an item in a Factory.
compute histograms for several TSRate