FEDRA emulsion software from the OPERA Collaboration
TOracleServerE Class Reference

#include <TOracleServerE.h>

Inheritance diagram for TOracleServerE:
Collaboration diagram for TOracleServerE:

Public Member Functions

Int_t AddBasetracks (EdbPattern &pat, char *id_eventbrick, char *id_zone)
 
Int_t AddBrick (char *id, char *minx, char *maxx, char *miny, char *maxy, char *minz, char *maxz)
 
Int_t AddPlate (char *data)
 
Int_t AddProcessOperation (char *id_machine, char *id_programsettings, char *id_requester, char *id_parent_operation, char *id_eventbrick, char *id_plate, char *driverlevel, char *templatemarks, char *starttime, char *finishtime, char *success)
 
Int_t AddZone (char *data)
 
Int_t AddZone (EdbPattern &pat, char *data1, char *data2)
 
Int_t GetProcessOperationID (char *id_eventbrick, char *id)
 
Int_t GetProcessOperationID (char *id_programsettings, char *id_eventbrick, char *id_plate, char *id)
 
Int_t ReadBasetracksPattern (char *selection, EdbPattern &pat)
 
Int_t ReadCalibration (int id_brick, EdbPatternsVolume &vol)
 
Int_t ReadDataSet (ULong64_t id_parent_op, int id_brick, EdbPatternsVolume &vol)
 
Int_t ReadMicrotracksPattern (char *selection, EdbPattern &pat)
 
Int_t ReadVolume (char *id_volume, EdbPatternsVolume &vol)
 
Int_t ReadVolume (ULong64_t id_volume, EdbPatternsVolume &vol)
 
bool ReadZplate (int id_plate, int id_eventbrick, EdbPattern &pat)
 
 TOracleServerE (const char *db, const char *uid, const char *pw)
 
Int_t UpdatePlate (char *id_eventbrick, char *id_plate, char *calibration)
 
 ~TOracleServerE ()
 
- Public Member Functions inherited from TOracleServer
void Close (Option_t *opt="")
 
Int_t CreateDataBase (const char *dbname)
 
Int_t DropDataBase (const char *dbname)
 
TSQLResult * GetColumns (const char *dbname, const char *table, const char *wild=0)
 
TSQLResult * GetDataBases (const char *wild=0)
 
TSQLResult * GetTables (const char *dbname, const char *wild=0)
 
Int_t PrintResult ()
 
Int_t PrintResultStr (TString &result)
 
TSQLResult * Query (const char *sql)
 
Int_t QueryTree (char *query, TTree *tree, char *leafs=0)
 
Int_t Reload ()
 
Int_t SelectDataBase (const char *dbname)
 
const char * ServerInfo ()
 
Int_t Shutdown ()
 
 TOracleServer (const char *db, const char *uid, const char *pw)
 
 ~TOracleServer ()
 

Constructor & Destructor Documentation

◆ TOracleServerE()

TOracleServerE::TOracleServerE ( const char *  db,
const char *  uid,
const char *  pw 
)
inline
13  :
14  TOracleServer(db, uid, pw){}
TOracleServer(const char *db, const char *uid, const char *pw)
TOracleServerE * db
Definition: test_oracle.C:8

◆ ~TOracleServerE()

TOracleServerE::~TOracleServerE ( )
inline
15 {}

Member Function Documentation

◆ AddBasetracks()

Int_t TOracleServerE::AddBasetracks ( EdbPattern pat,
char *  id_eventbrick,
char *  id_zone 
)
512 {
513  char query[2048];
514  char commit[10]="commit";
515 
516  try{
517  if (!fStmt)
518  fStmt = fConn->createStatement();
519 
520  for(int i=0; i<pat.N(); i++)
521  {
522  EdbSegP *s = pat.GetSegment(i);
523  sprintf(query,"\
524  INSERT INTO OPERA.TB_MIPBASETRACKS (ID_EVENTBRICK, ID_ZONE, POSX, POSY, SLOPEX, SLOPEY, GRAINS, AREASUM, PH, SIGMA, ID_SOWNSIDE, ID_DOWNTRACK, ID_UPSIDE, ID_UPTRACK) \
525  VALUES (%s, %s, %.2f, %.2f, %.2f, %.2f, %d, %d, %d, %d, %d, %d, %d, %d)",
526  id_eventbrick, id_zone, s->X(), s->Y(), s->TX(), s->TY(),
527  (int)s->W(), (int)s->Volume(), 0, 0, 0, 0, 0, 0);
528  fStmt->setSQL(query);
529  }
530 
531  Query(commit);
532  printf("%d zones added\n",pat.N());
533 
534  } catch (SQLException &oraex) {
535  Error("TOracleServerE", "AddZone; failed: (error: %s)", (oraex.getMessage()).c_str());
536  }
537 
538  return 0;
539 }
Definition: EdbSegP.h:18
Float_t TX() const
Definition: EdbSegP.h:172
Float_t Volume() const
Definition: EdbSegP.h:155
Float_t X() const
Definition: EdbSegP.h:170
Float_t Y() const
Definition: EdbSegP.h:171
Float_t W() const
Definition: EdbSegP.h:148
Float_t TY() const
Definition: EdbSegP.h:173
Int_t N() const
Definition: EdbPattern.h:89
EdbSegP * GetSegment(int i) const
Definition: EdbPattern.h:66
Connection * fConn
Definition: TOracleServer.h:48
TSQLResult * Query(const char *sql)
Definition: TOracleServer.cxx:97
oracle::occi::Statement * fStmt
Definition: TOracleServer.h:52
EdbSegP * s
Definition: tlg2pattern.C:32

◆ AddBrick()

Int_t TOracleServerE::AddBrick ( char *  id,
char *  minx,
char *  maxx,
char *  miny,
char *  maxy,
char *  minz,
char *  maxz 
)
359 {
360  char query[2048];
361  char commit[10]="commit";
362 
363  try{
364  if (!fStmt)
365  fStmt = fConn->createStatement();
366 
367  sprintf(query,"\
368  INSERT INTO OPERA.TB_EVENTBRICKS (ID, MINX, MAXX, MINY, MAXY, MINZ, MAXZ) \
369  VALUES (%s, %s, %s, %s, %s, %s, %s)",
370  id, minx, maxx, miny, maxy, minz, maxz);
371 
372  fStmt->setSQL(query);
373  printf("\nexecute sql query: %s ...\n",query);
374  fStmt->execute();
375  // Query(query);
376  Query(commit);
377 
378  printf("Brick added\n");
379  return 0;
380 
381  } catch (SQLException &oraex) {
382  Error("TOracleServerE", "AddBrick; failed: (error: %s)", (oraex.getMessage()).c_str());
383  }
384 
385  return 1;
386 }

◆ AddPlate()

Int_t TOracleServerE::AddPlate ( char *  data)
391 {
392  char query[2048];
393  char commit[10]="commit";
394 
395  try{
396  if (!fStmt)
397  fStmt = fConn->createStatement();
398 
399  sprintf(query,"\
400  INSERT INTO OPERA.TB_PLATES (ID_EVENTBRICK, ID, Z, MAPXX, MAPXY, MAPYX, MAPYY, MAPDX, MAPDY, ISDAMAGED) \
401  VALUES (%s)",data);
402 
403  fStmt->setSQL(query);
404  printf("\nexecute sql query: %s ...\n",query);
405  fStmt->execute();
406  // Query(query);
407  Query(commit);
408  printf("Plate added\n");
409 
410  } catch (SQLException &oraex) {
411  Error("TOracleServerE", "AddPlate; failed: (error: %s)", (oraex.getMessage()).c_str());
412  }
413 
414  return 0;
415 }

◆ AddProcessOperation()

Int_t TOracleServerE::AddProcessOperation ( char *  id_machine,
char *  id_programsettings,
char *  id_requester,
char *  id_parent_operation,
char *  id_eventbrick,
char *  id_plate,
char *  driverlevel,
char *  templatemarks,
char *  starttime,
char *  finishtime,
char *  success 
)
554 {
555  char query[2048];
556  char commit[10]="commit";
557 
558  try{
559  if (!fStmt)
560  fStmt = fConn->createStatement();
561 
562  sprintf(query,"\
563  INSERT INTO OPERA.TB_PROC_OPERATIONS (ID_MACHINE, ID_PROGRAMSETTINGS, ID_REQUESTER, ID_PARENT_OPERATION, ID_EVENTBRICK, ID_PLATE, DRIVERLEVEL, TEMPLATEMARKS, STARTTIME, FINISHTIME, SUCCESS) \
564  VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
565  id_machine, id_programsettings, id_requester, id_parent_operation, id_eventbrick, id_plate, driverlevel, templatemarks, starttime, finishtime, success);
566 
567  fStmt->setSQL(query);
568  printf("\nexecute sql query: %s ...\n",query);
569  fStmt->execute();
570  // Query(query);
571  Query(commit);
572  printf("Process operation added\n");
573 
574  } catch (SQLException &oraex) {
575  Error("TOracleServerE", "AddProcessOperation; failed: (error: %s)", (oraex.getMessage()).c_str());
576  }
577 
578  return 0;
579 }

◆ AddZone() [1/2]

Int_t TOracleServerE::AddZone ( char *  data)
449 {
450  char query[2048];
451  char commit[10]="commit";
452 
453  try{
454  if (!fStmt)
455  fStmt = fConn->createStatement();
456 
457  sprintf(query,"\
458  INSERT INTO OPERA.TB_ZONES (ID_EVENTBRICK, ID_PLATE, ID_PROCESSOPERATION, MINX, MAXX, MINY, MAXY, RAWDATAPATH, STARTTIME, ENDTIME, BASETHICKNESS, SERIES) \
459  VALUES (%s)",data);
460 
461  fStmt->setSQL(query);
462  printf("\nexecute sql query: %s ...\n",query);
463  fStmt->execute();
464  // Query(query);
465  Query(commit);
466  printf("Zone added\n");
467 
468  } catch (SQLException &oraex) {
469  Error("TOracleServerE", "AddZone; failed: (error: %s)", (oraex.getMessage()).c_str());
470  }
471 
472  return 0;
473 }

◆ AddZone() [2/2]

Int_t TOracleServerE::AddZone ( EdbPattern pat,
char *  data1,
char *  data2 
)
479 {
480  char query[2048];
481  char commit[10]="commit";
482 
483  try{
484  if (!fStmt)
485  fStmt = fConn->createStatement();
486 
487  for(int i=0; i<pat.N(); i++)
488  {
489  EdbSegP *s = pat.GetSegment(i);
490  sprintf(query,"\
491  INSERT INTO OPERA.TB_ZONES (ID_EVENTBRICK, ID_PLATE, ID_PROCESSOPERATION, MINX, MAXX, MINY, MAXY, RAWDATAPATH, STARTTIME, ENDTIME, BASETHICKNESS) \
492  VALUES (%s, %.2f, %.2f, %.2f, %.2f, %s)",
493  data1,s->X()-s->SX(),s->X()+s->SX(),s->Y()-s->SY(),s->Y()+s->SY(),data2);
494  fStmt->setSQL(query);
495  // printf("\nexecute sql query: %s ...\n",query);
496  // fStmt->execute();
497  }
498 
499  Query(commit);
500  printf("%d zones added\n",pat.N());
501 
502  } catch (SQLException &oraex) {
503  Error("TOracleServerE", "AddZone; failed: (error: %s)", (oraex.getMessage()).c_str());
504  }
505 
506  return 0;
507 }
Float_t SY() const
Definition: EdbSegP.h:160
Float_t SX() const
Definition: EdbSegP.h:159

◆ GetProcessOperationID() [1/2]

Int_t TOracleServerE::GetProcessOperationID ( char *  id_eventbrick,
char *  id 
)
292 {
293  char *query= new char[2048];
294 
295  try{
296  if (!fStmt)
297  fStmt = fConn->createStatement();
298 
299  sprintf(query,"select ID from tb_proc_operations where id_eventbrick=%s",id_eventbrick);
300 
301  fStmt->setSQL(query);
302  printf("\nexecute sql query: %s ...\n",query);
303  fStmt->execute();
304  ResultSet *rs = fStmt->getResultSet();
305  while (rs->next()){
306  strcpy(id,rs->getString(1).c_str());
307  }
308  delete rs;
309  // printf("id=%s\n",id);
310 
311  } catch (SQLException &oraex) {
312  Error("TOracleServerE", "GetProcessOperationID; failed: (error: %s)", (oraex.getMessage()).c_str());
313  }
314  return 0;
315 }
strcpy(cmd,"cp Shower.root Shower2.root")

◆ GetProcessOperationID() [2/2]

Int_t TOracleServerE::GetProcessOperationID ( char *  id_programsettings,
char *  id_eventbrick,
char *  id_plate,
char *  id 
)
320 {
321  char *query= new char[2048];
322 
323  try{
324  if (!fStmt)
325  fStmt = fConn->createStatement();
326 
327  sprintf(query,"\
328  select ID from tb_proc_operations \
329  where id_programsettings=%s and id_eventbrick=%s and id_plate=%s",
330  id_programsettings,id_eventbrick,id_plate);
331 
332  fStmt->setSQL(query);
333  printf("\nexecute sql query: %s ...\n",query);
334  fStmt->execute();
335  ResultSet *rs = fStmt->getResultSet();
336  while (rs->next()){
337  strcpy(id,rs->getString(1).c_str());
338  }
339  delete rs;
340  // printf("id=%s\n",id);
341 
342  } catch (SQLException &oraex) {
343  Error("TOracleServerE", "GetProcessOperationID; failed: (error: %s)", (oraex.getMessage()).c_str());
344  }
345  return 0;
346 }

◆ ReadBasetracksPattern()

Int_t TOracleServerE::ReadBasetracksPattern ( char *  selection,
EdbPattern pat 
)

!! a kind of hack

204 {
205  int ntracks=0;
206  char query[2048];
207  try{
208  if (!fStmt)
209  fStmt = fConn->createStatement();
210  sprintf(query, "SELECT \
211  ID_EVENTBRICK, id_zone, ID, POSX, POSY, SLOPEX, SLOPEY, GRAINS, AREASUM, PH, SIGMA \
212  from tb_mipbasetracks where %s",
213  selection);
214  fStmt->setSQL(query);
215  fStmt->setPrefetchRowCount(2000);
216  printf("\nexecute sql query: %s ...\n",query);
217  fStmt->execute();
218  ResultSet *rs = fStmt->getResultSet();
219  EdbSegP seg;
220  while (rs->next()){
221  seg.Set(
222  rs->getInt(3), //id
223  rs->getFloat(4), //posx
224  rs->getFloat(5), //posy
225  rs->getFloat(6), //slopex
226  rs->getFloat(7), //slopey
227  rs->getInt(8), //grains
228  0 //flag
229  );
230  seg.SetZ(pat.Z());
231  seg.SetDZ(300.);
232  seg.SetVolume(rs->getInt(10));
233  seg.SetVid(pat.PID(),0); // keep in a segment also plate ID (by Ale)
234  pat.AddSegment(seg);
235  ntracks++;
236  }
237  delete rs;
238  } catch (SQLException &oraex) {
239  Error("TOracleServerE", "ReadBasetracksPattern failed: (error: %s)", (oraex.getMessage()).c_str());
240  }
241  printf("%d segments are readed\n", ntracks);
242  return ntracks;
243 }
int PID() const
Definition: EdbPattern.h:329
void SetVolume(float w)
Definition: EdbSegP.h:133
void SetZ(float z)
Definition: EdbSegP.h:122
void SetDZ(float dz)
Definition: EdbSegP.h:123
void SetVid(int vid, int sid)
Definition: EdbSegP.h:134
void Set(int id, float x, float y, float tx, float ty, float w, int flag)
Definition: EdbSegP.h:86
Float_t Z() const
Definition: EdbPattern.h:87
EdbSegP * AddSegment(int i, EdbSegP &s)
Definition: EdbPattern.cxx:71

◆ ReadCalibration()

Int_t TOracleServerE::ReadCalibration ( int  id_brick,
EdbPatternsVolume vol 
)
17 {
18  int nsegtot=0;
19  char query[2048];
20  int npat=0;
21  ULong64_t *proc_list = new ULong64_t[100];
22  TObjArray patterns(100);
23  EdbPattern *pat=0;
24  try{
25  if (!fStmt)
26  fStmt = fConn->createStatement();
27  sprintf(query,"\
28  select id,to_char(calibration) from tb_plates \
29  where id_eventbrick = %d and calibration is not null order by id desc", id_brick);
30 
31  fStmt->setSQL(query);
32  printf("\nexecute sql query: %s ...\n",query);
33  fStmt->execute();
34  ResultSet *rs = fStmt->getResultSet();
35  int plate=0;
36  while (rs->next()){
37  sscanf( (rs->getString(1)).c_str(),"%d", &plate );
38  ULong64_t procop=0LL;
39  sscanf( (rs->getString(2)).c_str(),"%lld", &procop );
40  proc_list[npat] = procop;
41  npat++;
42  pat = new EdbPattern(0.,0.,0);
43  pat->SetPID(plate);
44  pat->SetID(id_brick);
45  patterns.Add( pat );
46  }
47  } catch (SQLException &oraex) {
48  Error("TOracleServerE", "ReadPatternsVolume; failed: (error: %s)", (oraex.getMessage()).c_str());
49  }
50  npat = patterns.GetEntries();
51  for(int i=0; i<npat; i++) {
52  pat = (EdbPattern*)patterns.At(i);
53  if( !ReadZplate(pat->ID(), pat->PID(), *pat ) )
54  { printf("skip plate %d %d !\n", pat->ID(),pat->PID()); continue; }
55  sprintf(query,"id_zone in (select id from tb_zones where id_processoperation=%lld)", proc_list[i]);
56  nsegtot += ReadBasetracksPattern(query, *pat);
57  vol.AddPattern(pat);
58  }
59  printf("%d segments extracted from db into PatternsVolume\n",nsegtot);
60 
61  return nsegtot;
62 }
EdbPatternsVolume * vol
Definition: RecDispNU.C:116
Int_t npat
Definition: Xi2HatStartScript.C:33
Definition: EdbPattern.h:280
void SetID(int id)
Definition: EdbPattern.h:318
void SetPID(int pid)
Definition: EdbPattern.h:319
int ID() const
Definition: EdbPattern.h:328
void AddPattern(EdbPattern *pat)
Definition: EdbPattern.cxx:1867
EdbPoint * At(int i) const
Definition: EdbPattern.h:90
Int_t ReadBasetracksPattern(char *selection, EdbPattern &pat)
Definition: TOracleServerE.cxx:203
bool ReadZplate(int id_plate, int id_eventbrick, EdbPattern &pat)
Definition: TOracleServerE.cxx:165
Int_t plate
Definition: merge_Energy_SytematicSources_Electron.C:1

◆ ReadDataSet()

Int_t TOracleServerE::ReadDataSet ( ULong64_t  id_parent_op,
int  id_brick,
EdbPatternsVolume vol 
)
109 {
110  int nsegtot=0;
111  char query[2048];
112  int npat = 0;
113  TObjArray patterns(100);
114  ULong64_t *proc_list = new ULong64_t[100];
115  EdbPattern *pat=0;
116  try{
117  if (!fStmt)
118  fStmt = fConn->createStatement();
119 
120  sprintf(query,"\
121 select to_char(op.id), op.id_plate, pl.z, op.success \
122 from tb_proc_operations op, tb_plates pl \
123 where op.id_eventbrick=%d and pl.id_eventbrick=%d and pl.id=op.id_plate and op.id_parent_operation=%lld \
124 order by op.id_plate",
125  id_brick, id_brick, id_parent_op);
126 
127  fStmt->setSQL(query);
128  printf("\nexecute sql query: %s ...\n",query);
129  fStmt->execute();
130  ResultSet *rs = fStmt->getResultSet();
131 
132  ULong64_t procop=0LL;
133  float z=0;
134  int plate=0;
135  npat=0;
136  while (rs->next()){
137  sscanf( (rs->getString(1)).c_str(),"%lld", &procop );
138  plate = rs->getInt(2);
139  z = rs->getFloat(3);
140  proc_list[npat] = procop;
141  npat++;
142  pat = new EdbPattern(0.,0.,z);
143  pat->SetPID(plate);
144  patterns.Add( pat );
145  }
146 
147  } catch (SQLException &oraex) {
148  Error("TOracleServerE", "ReadPatternsVolume; failed: (error: %s)", (oraex.getMessage()).c_str());
149  }
150 
151  for(int i=0; i<npat; i++) {
152  pat = (EdbPattern*)patterns.At(i);
153  if( !ReadZplate(id_brick, pat->PID(), *pat ) )
154  { printf("skip plate %d %d !\n", id_brick,pat->PID()); continue; }
155  sprintf(query,"id_zone in (select id from tb_zones where id_processoperation=%lld and id_plate=%d)", proc_list[i],pat->PID());
156  nsegtot += ReadBasetracksPattern( query, *pat);
157  vol.AddPattern(pat);
158  }
159  printf("%d segments extracted from db into PatternsVolume\n",nsegtot);
160 
161  return nsegtot;
162 }

◆ ReadMicrotracksPattern()

Int_t TOracleServerE::ReadMicrotracksPattern ( char *  selection,
EdbPattern pat 
)

!! a kind of hack

247 {
248  int ntracks=0;
249  char query[2048];
250  try{
251  if (!fStmt)
252  fStmt = fConn->createStatement();
253  sprintf(query, "SELECT \
254  ID_EVENTBRICK, id_zone, ID, POSX, POSY, SLOPEX, SLOPEY, GRAINS, AREASUM, PH, SIGMA \
255  from TB_MIPMICROTRACKS where %s",
256  selection);
257  fStmt->setSQL(query);
258  fStmt->setPrefetchRowCount(2000);
259  printf("\nexecute sql query: %s ...\n",query);
260  fStmt->execute();
261  ResultSet *rs = fStmt->getResultSet();
262  EdbSegP seg;
263  while (rs->next()){
264  seg.Set(
265  rs->getInt(3), //id
266  rs->getFloat(4), //posx
267  rs->getFloat(5), //posy
268  rs->getFloat(6), //slopex
269  rs->getFloat(7), //slopey
270  rs->getInt(8), //grains
271  0 //flag
272  );
273  seg.SetZ(pat.Z());
274  seg.SetDZ(45.);
275  seg.SetVolume(rs->getInt(10));
276  seg.SetVid(pat.PID(),0); // keep in a segment also plate ID (by Ale)
277  pat.AddSegment(seg);
278  ntracks++;
279  }
280  delete rs;
281  } catch (SQLException &oraex) {
282  Error("TOracleServerE", "ReadBasetracksPattern failed: (error: %s)", (oraex.getMessage()).c_str());
283  }
284  printf("%d segments are readed\n", ntracks);
285  return ntracks;
286 }

◆ ReadVolume() [1/2]

Int_t TOracleServerE::ReadVolume ( char *  id_volume,
EdbPatternsVolume vol 
)
66 {
67  int nsegtot=0;
68  char query[2048];
69  TObjArray patterns(100);
70  EdbPattern *pat=0;
71  int brick=0;
72  try{
73  if (!fStmt)
74  fStmt = fConn->createStatement();
75  sprintf(query,"\
76  select id_plate,id_eventbrick from TB_VOLUME_SLICES where id_volume=%s order by id_plate", id_volume);
77  fStmt->setSQL(query);
78  printf("\nexecute sql query: %s ...\n",query);
79  fStmt->execute();
80  ResultSet *rs = fStmt->getResultSet();
81  int plate=0;
82  while (rs->next()){
83  sscanf( (rs->getString(1)).c_str(),"%d", &plate );
84  sscanf( (rs->getString(2)).c_str(),"%d", &brick );
85  pat = new EdbPattern(0.,0.,0);
86  pat->SetPID(plate);
87  pat->SetID(brick);
88  patterns.Add( pat );
89  }
90  } catch (SQLException &oraex) {
91  Error("TOracleServerE", "ReadPatternsVolume; failed: (error: %s)", (oraex.getMessage()).c_str());
92  }
93  int npat = patterns.GetEntries();
94  for(int i=0; i<npat; i++) {
95  pat = (EdbPattern*)patterns.At(i);
96  if( !ReadZplate(pat->ID(), pat->PID(), *pat ) )
97  { printf("skip plate %d %d !\n", pat->ID(),pat->PID()); continue; }
98  sprintf(query,"id_zone in (select id_zone from TB_VOLUME_SLICES where id_volume=%s and id_plate=%d and id_eventbrick=%d) and id_eventbrick=%d", id_volume,pat->PID(),brick,brick);
99  nsegtot += ReadBasetracksPattern(query, *pat);
100  vol.AddPattern(pat);
101  }
102  printf("%d segments extracted from db into PatternsVolume\n",nsegtot);
103 
104  return nsegtot;
105 }
BRICK brick
Definition: RecDispMC.C:103

◆ ReadVolume() [2/2]

Int_t TOracleServerE::ReadVolume ( ULong64_t  id_volume,
EdbPatternsVolume vol 
)

◆ ReadZplate()

bool TOracleServerE::ReadZplate ( int  id_plate,
int  id_eventbrick,
EdbPattern pat 
)
166 {
167  char *query= new char[2048];
168  Float_t Z=0;
169  EdbAffine2D *aff=0;
170  try{
171  if (!fStmt)
172  fStmt = fConn->createStatement();
173 
174  sprintf(query,
175  "select z,MAPXX,MAPXY,MAPYX,MAPYY,MAPDX,MAPDY from tb_plates \
176  where id_eventbrick=%d and id=%d",
177  id_eventbrick, id_plate);
178  fStmt->setSQL(query);
179  printf("\nexecute sql query: %s ...\n",query);
180  fStmt->execute();
181  ResultSet *rs = fStmt->getResultSet();
182  while (rs->next()){
183  Z = rs->getFloat(1);
184  aff = new EdbAffine2D(rs->getFloat(2),
185  rs->getFloat(3),
186  rs->getFloat(4),
187  rs->getFloat(5),
188  rs->getFloat(6),
189  rs->getFloat(7));
190  }
191  delete rs;
192  printf("z=%f ",Z);
193  pat.SetZ(Z);
194  aff->Print();
195  } catch (SQLException &oraex) {
196  Error("TOracleServerE", "ReadBasetracksPattern; Affine failed: (error: %s)", (oraex.getMessage()).c_str());
197  return false;
198  }
199  return true;
200 }
Definition: EdbAffine.h:17
void Print(Option_t *opt="") const
Definition: EdbAffine.cxx:52
void SetZ(float z)
Definition: EdbPattern.h:41
struct @8 Z

◆ UpdatePlate()

Int_t TOracleServerE::UpdatePlate ( char *  id_eventbrick,
char *  id_plate,
char *  calibration 
)
421 {
422  char query[2048];
423  char commit[10]="commit";
424 
425  try{
426  if (!fStmt)
427  fStmt = fConn->createStatement();
428 
429  sprintf(query,"UPDATE OPERA.TB_PLATES SET CALIBRATION=%s WHERE ID_EVENTBRICK=%s AND ID=%s",calibration,id_eventbrick,id_plate);
430 
431  fStmt->setSQL(query);
432  printf("\nexecute sql query: %s ...\n",query);
433  fStmt->execute();
434  // Query(query);
435  Query(commit);
436  printf("Plate updated\n");
437 
438  } catch (SQLException &oraex) {
439  Error("TOracleServerE", "UpdatePlate; failed: (error: %s)", (oraex.getMessage()).c_str());
440  }
441 
442  return 0;
443 }

The documentation for this class was generated from the following files: