24 #include "WatcherClient.h"
34 void OnlineWatchersLLP(TFile *file = 0x0, TFile *file_tag = 0x0, Bool_t start_loop =
false);
39 namespace _OnlineWatchersLLP_ {
121 using namespace _OnlineWatchersLLP_;
127 Int_t
ComputePort(std::string &which_crys, Int_t level_in_dataflow)
129 TString result =
"",
tmp = which_crys.data();
131 tmp.ReplaceAll(
"A",
"0");
132 tmp.ReplaceAll(
"B",
"1");
133 tmp.ReplaceAll(
"C",
"2");
135 result = Form(
"1%d%s",level_in_dataflow,
tmp.Data());
136 return result.Atoi();
145 OnlineWatchersLLP(
new TFile(
"Out/OnlineLLPHistory.root",
"UPDATE"),
new TFile(
"Out/TagOnlineLLPHistory.root",
"UPDATE"),
true);
151 TDirectory *Watcher_dir = gROOT, *Watcher_dir_tag = gROOT;
155 Watcher_dir_tag = file_tag;
159 TTask *Snooper =
new LoopOnTasks(Watcher_dir,Watcher_dir_tag);
178 tmp.ReplaceAll(
"CCRYSTAL",
"");
192 Snooper->Add ( wCrys );
210 "Watchers on Calibrated Crystal Frame",Watcher_dir,Watcher_dir_tag);
213 Snooper->Add ( wCrys );
229 "Watchers on PSA Frame",Watcher_dir,Watcher_dir_tag);
232 Snooper->Add ( wPSA );
271 Snooper->Add(TSCollector);
274 gROOT->GetListOfTasks()->Add(Snooper);
282 if ( !gROOT->IsBatch() ) {
283 TBrowser *
b = (TBrowser*)gROOT->GetListOfBrowsers()->Last();
285 TFolder *GwWatchersFolder = (TFolder*)gROOT->GetRootFolder()->FindObject(
"GwWatchers");
286 if(GwWatchersFolder) b->Add(GwWatchersFolder);
288 TFolder *RootFilesFolder = (TFolder*)gROOT->GetRootFolder()->FindObject(
"ROOT Files");
289 if(RootFilesFolder) b->Add(RootFilesFolder);
292 Snooper->ExecuteTask(
"l");
296 gROOT->GetListOfTasks()->At(0)->Delete();
Bool_t CheckCrystal(TString crystal)
void CloseOnlineWatchers()
Int_t ComputePort(std::string &which_crys, Int_t level_in_dataflow)
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.
std::string gCrysLabel[gNumberOfCrystals]
void SetAutoTime(Int_t autotime=0)
change time to autosave
void DoTSRateCollector(TTask *top_task, TSRateCollector *collector)
browse all dispatchers to look for TSRate Watcher and add them to the rate collector ...
To get a buffer from an actor, trigg on a Frame and dispach the Frame to sub-watchers.
Bool_t SetConnection(const Char_t *machine="localhost", UInt_t port=9090)
change the place where are picked data
void OnlineWatchersLLP(TFile *file=0x0, TFile *file_tag=0x0, Bool_t start_loop=false)
To start a loop on tasks.
virtual void SetDirectory(TDirectory *mother_dir_of_watcher, TDirectory *mother_dir_tag, Bool_t load_objects=true)
to change the directory in which watcher's objects are stored
std::string gMachine[gNumberOfCrystals]
const Int_t gNumberOfCrystals
compute histograms for several TSRate