10 #include "WatcherClient.h"
11 #include "ADFWatchers.h"
12 #include "CrystalWatchers.h"
13 #include "PSAWatchers.h"
14 #include "TrackedWatchers.h"
15 #include "EventPSAWatchers.h"
16 #include "EventWatchers.h"
17 #include "MetaWatchers.h"
30 const char *
GetWN(
const char *name,
const char *ext)
32 return Form(
"%s%s",name,ext);
41 TIter next(top_task->GetListOfTasks());
42 while ( (task = (TTask *)next()) ) {
43 if ( task == collector )
47 TIter next_w(fd->GetListOfTasks());
48 while ( (task = (TTask *)next_w()) ) {
49 ts_rate =
dynamic_cast<TSRate *
> (task);
51 collector->
AddHook(ts_rate,fd->GetName());
64 Bool_t ok =
false; TString DFtype = df_type;
69 if ( DFtype.Contains(
"ADF") ) {
93 if ( DFtype.Contains(
"CRYSTAL") && ! DFtype.Contains(
"CCRYSTAL") ) {
97 AgataFrameTrigger::Build(
"Crystal",
"data:crystal");
105 fd->
Add<
TSRate>(
GetWN(
"TSRate",ext),
"To get rate form consecutive TS value");
112 if ( DFtype.Contains(
"CCRYSTAL") ) {
116 AgataFrameTrigger::Build(
"CCrystal",
"data:ccrystal");
122 fd->
Add<
ShowSignals>(
GetWN(
"CalibSignals",ext),
"Display the calibrated signals for one crystal",trig2);
124 fd->
Add<
TSRate>(
GetWN(
"TSRate",ext),
"To get rate form consecutive TS value");
130 if ( DFtype.Contains(
"PSA") ) {
134 AgataFrameTrigger::Build(
"PSA",
"data:psa");
141 fd->
Add<
TSRate>(
GetWN(
"TSRate",ext),
"To get rate form consecutive TS value");
148 if ( DFtype.Contains(
"RANC0") ) {
153 AgataFrameTrigger::Build(
"RANC0",
"data:ranc0");
159 fd->
Add<
TSRate>(
GetWN(
"TSRate",ext),
"To get rate form consecutive TS value");
166 if ( DFtype.Contains(
"RANC1") ) {
171 AgataFrameTrigger::Build(
"RANC1",
"data:ranc1");
177 fd->
Add<
TSRate>(
GetWN(
"TSRate",ext),
"To get rate form consecutive TS value");
190 if ( DFtype.Contains(
"EB") ) {
194 AgataFrameTrigger::Build(
"EventPSA",
"event:data:psa" );
198 fd->
Add<
RateDisplay>(
GetWN(
"RateDisplay",ext),
"To get the counting rates in each crystal");
201 fd->
Add<
TSRate>(
GetWN(
"TSRate",ext),
"To get rate form consecutive TS value");
205 if ( DFtype.Contains(
"MERGER") ) {
208 AgataFrameTrigger::Build(
"Event",
"event:data event:data:psa data:ranc0");
220 fd->
Add<
TSRate>(
GetWN(
"TSRate",ext),
"To get rate form consecutive TS value");
233 if ( DFtype.Contains(
"TRACKING") ) {
237 AgataFrameTrigger::Build(
"TRACKING",
"event:data event:data:psa data:tracked data:ranc1");
245 prisma_dop->
Configure(
"Conf/PRISMA/manager.conf",
"Conf/PRISMA/lutPRISMA_WEEK49.txt");
247 fd->
Add<
GlobalDC>(
GetWN(
"CheckDoppler",ext),
"Doppler as delivered by Prisma");
251 prisma_2->
Configure(
"Conf/PRISMA/manager.conf",
"Conf/PRISMA/lutPRISMA_WEEK49.txt");
262 fd->
Add<
TSRate>(
GetWN(
"TSRate",ext),
"To get rate form consecutive TS value");
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.
const char * GetWN(const char *name, const char *ext)
Build the Watcher name adding an extension.
Watcher that built the spectra expected for a Vertex.
void AddHook(Watcher *, const char *)
Add a timestamp rate.
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.
Apply the doppler correction.
Process a buffer, trigg and dispachs the work to sub-watchers.
To Display the content of raw ancillary frames ranc0 and ranc1 as defined @ Legnaro.
virtual Bool_t SetTrigger(ADF::DFTrigger *)
This is the default trigger for any added watcher.
To get a 3D map of hits in a particular crystal.
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.
Show rates (counts) per Crystal.
To be used for Agata Data Flow.
*********************************** HitsSpectra Class **************************************/// ...
Gives the distribution of the different timstamps in a composite frame.
void DoTSRateCollector(TTask *top_task, TSRateCollector *collector)
browse all dispatchers to look for TSRate Watcher and add them to the rate collector ...
void Universal(Bool_t b=true)
Set this trigger as universal or not.
void Configure(const char *pmanager="Conf/", const char *plut="Conf/")
Base class that described an item in a Factory.
compute histograms for several TSRate