FEDRA emulsion software from the OPERA Collaboration
EdbScanClientBase.h
Go to the documentation of this file.
1#ifndef ROOT_EdbScanClientBase
2#define ROOT_EdbScanClientBase
3
4#include "TSocket.h"
5#include "TString.h"
6#include "EdbRun.h"
7#include "EdbPattern.h"
8
9#define MIN(X,Y) ((X) < (Y) ? : (X) : (Y))
10#define MAX(X,Y) ((X) > (Y) ? : (X) : (Y))
11
12#define CMD_LEN 256
15{
16public:
19 virtual ~EdbScanClientBase(){};
20
21 //common part
22 virtual int InitializeSocket()=0;
23
24 virtual int ScanPreloadAreaS( int id1, int id2, int id3, int id4,
25 float x1, float x2, float y1, float y2, const char *fname,
26 float x1n, float x2n, float y1n, float y2n)=0;
27 virtual int ScanAreas(ScanType st, int id[4], EdbPattern &areas, EdbRun *run, const char* options="")=0;
28// virtual int ScanAreaS( int id1, int id2, int id3, int id4,
29// float x1, float y1, float x2, float y2, const char *fname);
30// virtual int ScanAreasAsync(int id[4], EdbPattern &areas, EdbRun &run, const char* options="");
31 virtual int AddRWC_(EdbRun* run, char* rwcname, int bAddRWD=true, const char* options="")=0;
32 // "short" version of brickID to be passed into sysal command line via BernScanDriver
33 virtual Short_t ShortBrick(Int_t brick)=0;
34 virtual int ConvertAreas(int id[4], EdbPattern &areas, EdbRun &run, const char* options="")=0;
35
36
37 //protocol-specific part
38 virtual int UnloadPlate()=0;
39 virtual int LoadPlate(int BRICK, int PLATE, const char *mapext, int nAttempts=1)=0;
40 virtual void SetParameter(const char* Object, const char* Parameter, const char* Value)=0;
41 virtual void SetClusterThresholds(int TOP, int BOT)=0;
42 virtual void SetOdysseyThresholds(int itop, int ibottom, int size, int TOP, int BOT)=0;
43 virtual int SetFragmentSize(int X, int Y)=0;
44 virtual void AsyncScanAreaS( int id1, int id2, int id3, int id4,
45 float x1, float x2, float y1, float y2, const char *fname)=0;
46 virtual void AsyncScanPreloadAreaS( int id1, int id2, int id3, int id4,
47 float x1, float x2, float y1, float y2, const char *fname,
48 float x1n, float x2n, float y1n, float y2n)=0;
49 virtual int AsyncWaitForScanResult()=0;
50 virtual void Print()=0;
51 ClassDef(EdbScanClientBase,1) // remote scanning from Bern
52};
53
54//-------------------------------------------------------------------
56{
57protected:
58 TSocket* eSock; // socket for connection to scanning mashine
59 char eCMD[CMD_LEN]; // command line
60 char eMess[CMD_LEN]; // message line
61 char eMess1[CMD_LEN]; // message line
62
63 float eNXview, eNYview; // the fragment size in view
64 float eXstep, eYstep; // between views in the fragment - to calculate the fragment size
65
67 int eMAXFAILS; // the max number for predictions failed to scan before break
68 int ePORT; // port number where ScanDriver expect connection (default 1777)
69 TString eServer; // address of the scanning mashine
70
71 TString eRawDirServer; // directory path for raw data files visible from the Scan Server (i.e. "o:/MIC5/tmp_SYSAL")
72 TString eRawDirClient; // directory path for raw data files visible from processing comp (i.e. "./raw/MIC5/tmp_SYSAL")
73 TString eProcTgtServer; // path for raw data files visible from processing comp (i.e. "o:/MIC5/b123456/p012/123456.12.1.1000.raw.root")
74 TString eProcPthServer; // path for raw data files visible from processing comp (i.e. "o:/MIC5/")
75
77
78public:
80 virtual ~EdbScanClientCommon();
81 void CloseSocket();
82 //common part
83 virtual int InitializeSocket();
84
85 virtual int ScanPreloadAreaS( int id1, int id2, int id3, int id4,
86 float x1, float x2, float y1, float y2, const char *fname,
87 float x1n, float x2n, float y1n, float y2n);
88// virtual int ScanAreaS( int id1, int id2, int id3, int id4,
89// float x1, float y1, float x2, float y2, const char *fname);
90// virtual int ScanAreasAsync(int id[4], EdbPattern &areas, EdbRun &run, const char* options="");
91 virtual int AddRWC_(EdbRun* run, char* rwcname, int bAddRWD=true, const char* options="");
92 //static int AddRWC__(EdbRun* run, char* rwcname, int bAddRWD=true, const char* options="");
93 // "short" version of brickID to be passed into sysal command line via BernScanDriver
94 virtual Short_t ShortBrick(Int_t brick){ return brick%10000; };
95 virtual int ConvertAreas(int id[4], EdbPattern &areas, EdbRun &run, const char* options="");
96
97
98 //protocol-specific part
99 virtual int ScanAreas(ScanType st, int id[4], EdbPattern &areas, EdbRun *run, const char* options="")=0;
100 virtual int UnloadPlate()=0;
101 virtual int LoadPlate(int BRICK, int PLATE, const char *mapext, int nAttempts=1)=0;
102 virtual void SetParameter(const char* Object, const char* Parameter, const char* Value)=0;
103 virtual void SetClusterThresholds(int TOP, int BOT)=0;
104 virtual void SetOdysseyThresholds(int itop, int ibottom, int size, int TOP, int BOT)=0;
105 virtual int SetFragmentSize(int X, int Y)=0;
106 virtual void AsyncScanAreaS( int id1, int id2, int id3, int id4,
107 float x1, float x2, float y1, float y2, const char *fname)=0;
108 virtual void AsyncScanPreloadAreaS( int id1, int id2, int id3, int id4,
109 float x1, float x2, float y1, float y2, const char *fname,
110 float x1n, float x2n, float y1n, float y2n)=0;
111 virtual int AsyncWaitForScanResult()=0;
112 virtual void Print()=0;
113
114 virtual bool ServerCreatesTarget()=0;
115
116 const char * GetCmd(){return eCMD; };
117 void SetCmd(const char* cmd_){
118 int len = strlen(cmd_);
119 if(len > CMD_LEN-1);
120 len = CMD_LEN-1;
121 memcpy(eCMD, cmd_, len+1);//strcpy_s(eCMD, 256, cmd_); windows only :(
122 eCMD[len]=0;
123 };
124
125 const char * GetMess(){return eMess; };
126 void SetMess(const char* mess_){
127 int len = strlen(mess_);
128 if(len > CMD_LEN-1)
129 len = CMD_LEN-1;
130 memcpy(eMess, mess_, len+1);
131 eMess[len]=0;
132 };
133
134 const char * GetMess1(){return eMess1; };
135 void SetMess1(const char* mess_){
136 int len = strlen(mess_);
137 if(len > CMD_LEN-1)
138 len = CMD_LEN-1;
139 memcpy(eMess1, mess_, len+1);
140 eMess1[len]=0;
141 };
142
143 float GetNXView(){return eNXview;};
144 void SetNXview(float nxview_){eNXview = nxview_;};
145
146 float GetNYView(){return eNYview;};
147 void SetNYview(float nyview_){eNYview = nyview_;};
148
149 float GetXstep(){return eXstep;};
150 void SetXstep(float xstep_){eXstep = xstep_;};
151
152 float GetYstep(){return eYstep;};
153 void SetYstep(float ystep_){eYstep = ystep_;};
154
156 void SetMaxAttempts(int attempts_){eMAXSCANATTEMPTS = attempts_;};
157
158 int GetMaxFails(){return eMAXFAILS;};
159 void SetMaxFails(int fails_){eMAXFAILS = fails_;};
160
161 int GetPort(){return ePORT;};
162 void SetPort(int port_){ePORT = port_;};
163
164 const char * GetServer(){return eServer.Data(); };
165 void SetServer(const char* server_){
166 eServer = server_;
167 };
168
169 const char * GetRawDirServer(){return eRawDirServer.Data(); };
170 void SetRawDirServer(const char* rawdirserver_){
171 eRawDirServer = rawdirserver_;
172 };
173
174 const char * GetRawDirClient(){return eRawDirClient.Data(); };
175 void SetRawDirClient(const char* rawdirclient_){
176 eRawDirClient = rawdirclient_;
177 };
178
179 const char * GetProcTgtServer(){return eProcTgtServer.Data(); };
180 void SetProcTgtServer(const char* prctgtserver_){
181 eProcTgtServer = prctgtserver_;
182 };
183
184 const char * GetProcPthServer(){return eProcPthServer.Data(); };
185 void SetProcPthServer(const char* prcpthserver_){
186 eProcPthServer = prcpthserver_;
187 };
188
189 const char * GetServerCreatedRunName(){return eServerCreatedRunName.Data();};
190
191 ClassDef(EdbScanClientBase,1) // remote scanning from Bern
192};
193
194//-------------------------------------------------------------------
195
196#endif /* ROOT_EdbScanClientBase */
#define CMD_LEN
Definition: EdbScanClientBase.h:12
BRICK brick
Definition: RecDispMC.C:103
Definition: EdbPattern.h:273
Definition: EdbRun.h:75
remote scanning from Bern
Definition: EdbScanClientBase.h:15
virtual void Print()=0
EdbScanClientBase()
Definition: EdbScanClientBase.h:18
virtual void AsyncScanAreaS(int id1, int id2, int id3, int id4, float x1, float x2, float y1, float y2, const char *fname)=0
virtual int AddRWC_(EdbRun *run, char *rwcname, int bAddRWD=true, const char *options="")=0
virtual int ConvertAreas(int id[4], EdbPattern &areas, EdbRun &run, const char *options="")=0
virtual int AsyncWaitForScanResult()=0
virtual void AsyncScanPreloadAreaS(int id1, int id2, int id3, int id4, float x1, float x2, float y1, float y2, const char *fname, float x1n, float x2n, float y1n, float y2n)=0
virtual void SetOdysseyThresholds(int itop, int ibottom, int size, int TOP, int BOT)=0
virtual void SetClusterThresholds(int TOP, int BOT)=0
virtual void SetParameter(const char *Object, const char *Parameter, const char *Value)=0
virtual int LoadPlate(int BRICK, int PLATE, const char *mapext, int nAttempts=1)=0
virtual Short_t ShortBrick(Int_t brick)=0
virtual int ScanAreas(ScanType st, int id[4], EdbPattern &areas, EdbRun *run, const char *options="")=0
virtual int SetFragmentSize(int X, int Y)=0
virtual int InitializeSocket()=0
ScanType
Definition: EdbScanClientBase.h:17
@ stPred
Definition: EdbScanClientBase.h:17
@ stVolume
Definition: EdbScanClientBase.h:17
virtual int ScanPreloadAreaS(int id1, int id2, int id3, int id4, float x1, float x2, float y1, float y2, const char *fname, float x1n, float x2n, float y1n, float y2n)=0
virtual int UnloadPlate()=0
virtual ~EdbScanClientBase()
Definition: EdbScanClientBase.h:19
Definition: EdbScanClientBase.h:56
TString eProcTgtServer
Definition: EdbScanClientBase.h:73
float eNXview
Definition: EdbScanClientBase.h:63
const char * GetMess1()
Definition: EdbScanClientBase.h:134
void SetNXview(float nxview_)
Definition: EdbScanClientBase.h:144
virtual int LoadPlate(int BRICK, int PLATE, const char *mapext, int nAttempts=1)=0
const char * GetProcPthServer()
Definition: EdbScanClientBase.h:184
int GetPort()
Definition: EdbScanClientBase.h:161
const char * GetRawDirServer()
Definition: EdbScanClientBase.h:169
float GetNXView()
Definition: EdbScanClientBase.h:143
void CloseSocket()
Definition: EdbScanClientBase.cxx:41
char eMess[CMD_LEN]
Definition: EdbScanClientBase.h:60
void SetProcTgtServer(const char *prctgtserver_)
Definition: EdbScanClientBase.h:180
void SetMaxAttempts(int attempts_)
Definition: EdbScanClientBase.h:156
void SetPort(int port_)
Definition: EdbScanClientBase.h:162
virtual void SetParameter(const char *Object, const char *Parameter, const char *Value)=0
virtual int ScanPreloadAreaS(int id1, int id2, int id3, int id4, float x1, float x2, float y1, float y2, const char *fname, float x1n, float x2n, float y1n, float y2n)
Definition: EdbScanClientBase.cxx:62
void SetMaxFails(int fails_)
Definition: EdbScanClientBase.h:159
virtual void AsyncScanAreaS(int id1, int id2, int id3, int id4, float x1, float x2, float y1, float y2, const char *fname)=0
virtual int InitializeSocket()
Definition: EdbScanClientBase.cxx:49
const char * GetRawDirClient()
Definition: EdbScanClientBase.h:174
TString eRawDirClient
Definition: EdbScanClientBase.h:72
void SetProcPthServer(const char *prcpthserver_)
Definition: EdbScanClientBase.h:185
float eYstep
Definition: EdbScanClientBase.h:64
const char * GetCmd()
Definition: EdbScanClientBase.h:116
virtual int AddRWC_(EdbRun *run, char *rwcname, int bAddRWD=true, const char *options="")
Definition: EdbScanClientBase.cxx:163
void SetCmd(const char *cmd_)
Definition: EdbScanClientBase.h:117
const char * GetProcTgtServer()
Definition: EdbScanClientBase.h:179
void SetServer(const char *server_)
Definition: EdbScanClientBase.h:165
int ePORT
Definition: EdbScanClientBase.h:68
virtual int AsyncWaitForScanResult()=0
float eXstep
Definition: EdbScanClientBase.h:64
char eMess1[CMD_LEN]
Definition: EdbScanClientBase.h:61
void SetMess1(const char *mess_)
Definition: EdbScanClientBase.h:135
void SetYstep(float ystep_)
Definition: EdbScanClientBase.h:153
virtual int UnloadPlate()=0
void SetRawDirServer(const char *rawdirserver_)
Definition: EdbScanClientBase.h:170
float GetNYView()
Definition: EdbScanClientBase.h:146
virtual Short_t ShortBrick(Int_t brick)
Definition: EdbScanClientBase.h:94
virtual ~EdbScanClientCommon()
Definition: EdbScanClientBase.cxx:37
void SetXstep(float xstep_)
Definition: EdbScanClientBase.h:150
virtual void SetOdysseyThresholds(int itop, int ibottom, int size, int TOP, int BOT)=0
virtual int SetFragmentSize(int X, int Y)=0
virtual int ConvertAreas(int id[4], EdbPattern &areas, EdbRun &run, const char *options="")
Definition: EdbScanClientBase.cxx:144
int GetMaxAttempts()
Definition: EdbScanClientBase.h:155
const char * GetMess()
Definition: EdbScanClientBase.h:125
float GetYstep()
Definition: EdbScanClientBase.h:152
TString eServer
Definition: EdbScanClientBase.h:69
const char * GetServerCreatedRunName()
Definition: EdbScanClientBase.h:189
void SetNYview(float nyview_)
Definition: EdbScanClientBase.h:147
virtual void AsyncScanPreloadAreaS(int id1, int id2, int id3, int id4, float x1, float x2, float y1, float y2, const char *fname, float x1n, float x2n, float y1n, float y2n)=0
void SetRawDirClient(const char *rawdirclient_)
Definition: EdbScanClientBase.h:175
TString eProcPthServer
Definition: EdbScanClientBase.h:74
int eMAXFAILS
Definition: EdbScanClientBase.h:67
char eCMD[CMD_LEN]
Definition: EdbScanClientBase.h:59
virtual int ScanAreas(ScanType st, int id[4], EdbPattern &areas, EdbRun *run, const char *options="")=0
float eNYview
Definition: EdbScanClientBase.h:63
void SetMess(const char *mess_)
Definition: EdbScanClientBase.h:126
TString eServerCreatedRunName
Definition: EdbScanClientBase.h:76
int GetMaxFails()
Definition: EdbScanClientBase.h:158
TString eRawDirServer
Definition: EdbScanClientBase.h:71
virtual void SetClusterThresholds(int TOP, int BOT)=0
float GetXstep()
Definition: EdbScanClientBase.h:149
virtual bool ServerCreatesTarget()=0
const char * GetServer()
Definition: EdbScanClientBase.h:164
int eMAXSCANATTEMPTS
Definition: EdbScanClientBase.h:66
TSocket * eSock
Definition: EdbScanClientBase.h:58
virtual void Print()=0
EdbRun * run
Definition: check_raw.C:38
@ TOP
Definition: tlg2couples.C:36
@ BOT
Definition: tlg2couples.C:36
const char * fname
Definition: mc2raw.cxx:41
Double_t X
Definition: tlg2couples.C:76
Double_t Y
Definition: tlg2couples.C:76
int PLATE
Definition: shower_btr.C:18
Definition: RecDispMC.C:95