FEDRA emulsion software from the OPERA Collaboration
TOracleServerE2W Class Reference

#include <TOracleServerE2W.h>

Inheritance diagram for TOracleServerE2W:
Collaboration diagram for TOracleServerE2W:

Public Member Functions

Int_t AddBaseTrack (char *database)
 
Int_t AddBaseTracks (EdbPattern &pat, char *id_eventbrick, char *id_zone)
 
Int_t AddBaseTracks (TTree *tree, char *id_eventbrick, char *id_zone, bool usebuffer=true)
 
Int_t AddBrick_Set (char *id, char *idrange_min, char *idrange_max, char *id_partition)
 
Int_t AddBrick_Space (char *id_brick, char *id_set)
 
Int_t AddBSBpathsVolumes (char *databsbpathsvolumes)
 
Int_t AddEventBricks (char *databrick)
 
Int_t AddMicroTrack (char *datamicro)
 
Int_t AddPlate (char *id_eventbrick, char *dataplate)
 
Int_t AddPlateCalibration (char *id_eventbrick, char *id_process_operation, char *datacalibration)
 
Int_t AddPlateCalibration (char *id_eventbrick, char *id_process_operation, EdbPlateP *plate)
 
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 *id_calibration, char *starttime, char *finishtime, char *success, char *notes)
 
Int_t AddScanbackPath (char *datapath)
 
Int_t AddScanbackPath (char *id_eventbrick, char *id_header_operation, int id_path, int id_start_plate, int skipCSconnection=0)
 
Int_t AddScanbackPrediction (char *dataprediciton)
 
Int_t AddTemplateMarkSets (char *datamarks)
 
Int_t AddView (char *dataView)
 
Int_t AddView (EdbView *view, int id_view, char *id_eventbrick, char *id_zone, bool usebuffer=true)
 
Int_t AddViews (EdbRun *run, char *id_eventbrick, char *id_zone, bool usebuffer=true)
 
Int_t AddVolume (char *id_eventbrick, char *id_process_operation, int ivolume)
 
Int_t AddVolumeSlice (char *datavolumeslice)
 
Int_t AddZone (char *data)
 
Int_t DeleteBrick (char *id_eventbrick)
 
Int_t DeleteBrickSpace (char *id_brick)
 
Int_t DeleteOperation (char *id_brick, char *id_process_operation)
 
Int_t DeletePlateOperation (char *id_brick, char *id_process_operation, char *id_plate)
 
Int_t NviewsPerArea ()
 
 TOracleServerE2W (const char *db, const char *uid, const char *pw)
 
 ~TOracleServerE2W ()
 
- Public Member Functions inherited from TOracleServerE2
Int_t ConvertMicrotracksDataSetToEdb (const char *query, const char *outdir, int major=0, int minor=0, bool structure_only=false)
 
Int_t ConvertMicrotracksParentProcessToEdb (ULong64_t parentprocessoperation, const char *outdir, int major=0, int minor=0, bool structure_only=false)
 
Int_t ConvertMicrotracksProcessToEdb (ULong64_t processoperation, const char *outdir, int major=0, int minor=0, bool structure_only=false)
 
Int_t ConvertMicrotracksVolumeToEdb (ULong64_t id_volume, const char *outdir, int major=0, int minor=0, bool structure_only=false)
 
Int_t ConvertMicrotracksZoneToEdb (Int_t id_eventbrick, ULong64_t id_zone, EdbRun &run)
 
Int_t ConvertScanbackPathToEdb (Int_t id_eventbrick, Int_t path, const char *outdir, int major, int minor)
 
Int_t DumpBrickVolumesID (char *id_eventbrick)
 
Int_t DumpEventsID (char *id_eventbrick)
 
Int_t DumpProcessOperations (char *id_eventbrick, char *id_programsettings)
 
Int_t DumpProcessOperations (char *id_eventbrick, Int_t driverlevel)
 
Int_t GetId_EventBrick (const char *id_brick, const char *id_set, char *id)
 
Int_t GetId_ScanbackPath (char *id_eventbrick, char *id_process_operation, int path, char *id)
 
ULong64_t GetId_ScanbackPath (ULong64_t id_eventbrick, ULong64_t id_process_operation, int path)
 
Int_t GetId_Volume (char *id_eventbrick, char *id_process_operation, int ivolume, char *id)
 
Int_t GetId_Zone (char *id_eventbrick, char *id_plate, char *id_process_operation, char *series, char *id)
 
Int_t GetProcessOperationID (char *id_eventbrick, char *id_parent_operation, char *id_programsettings, char *id_plate, char *id)
 
Int_t GetProcessOperationID (char *id_eventbrick, char *id_programsettings, char *id)
 
ULong64_t GetProcessOperationID (ULong64_t id_eventbrick, ULong64_t id_parent_operation, ULong64_t id_programsettings, int id_plate)
 
Int_t GetProcessType (char *IDPROCESS)
 
const char * Ostr (Int_t num)
 
const char * Ostr (ULong64_t num)
 
void Print ()
 
void PrintBrickInfo (Long_t id_eventbrick, int level)
 
void PrintBrickInfoFull (Long_t id_eventbrick, int level)
 
Int_t ReadBasetracksPattern (char *selection, EdbPattern &pat)
 
Int_t ReadBrickOffset (Int_t id_brick, EdbMarksSet &ms)
 
Int_t ReadCSPredictions (Int_t id_brick, EdbPattern &pred)
 
Int_t ReadCSPredictions2 (Int_t id_brick, EdbPattern &pred)
 
Int_t ReadCSPredictions_remote_v2 (Int_t id_brick, EdbPattern &pred, int csid)
 
Int_t ReadDataSet (ULong64_t id_parent_op, int id_brick, ULong64_t path, EdbPatternsVolume &vol)
 
Int_t ReadMicrotracksPattern (int id_eventbrick, char *selection, EdbPattern &pat)
 
Int_t ReadMicrotracksZone (Int_t id_eventbrick, ULong64_t id_zone, int side, TObjArray &edbviews)
 
Int_t ReadScanbackPath (Int_t id_eventbrick, Int_t path, EdbTrackP &t)
 
Int_t ReadTemplateMarks (Int_t id_brick, EdbMarksSet &ms)
 
Int_t ReadVetoTracks (Int_t id_brick, EdbPattern &pred)
 
Int_t ReadViewsZone (ULong64_t id_zone, int side, TObjArray &edbviews)
 
Int_t ReadVolume (char *id_volume, EdbPatternsVolume &vol)
 
Int_t ReadVolume (char *id_volume, EdbPatternsVolume &vol, Int_t min, Int_t max)
 
Int_t ReadVolume (ULong64_t id_volume, EdbPatternsVolume &vol)
 
Int_t ReadVolume (ULong64_t id_volume, EdbPatternsVolume &vol, Int_t min_pl, Int_t max_pl)
 
bool ReadZplate (int id_plate, int id_eventbrick, EdbPattern &pat)
 
bool ReadZplate_nominal (int id_plate, int id_eventbrick, EdbPattern &pat)
 
 TOracleServerE2 (const char *db, const char *uid, const char *pw)
 
 ~TOracleServerE2 ()
 
- 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 ()
 

Private Attributes

Int_t eNviewsPerArea
 

Additional Inherited Members

- Public Attributes inherited from TOracleServerE2
TString eRTS
 

Constructor & Destructor Documentation

◆ TOracleServerE2W()

TOracleServerE2W::TOracleServerE2W ( const char *  db,
const char *  uid,
const char *  pw 
)
inline
19  :
20  TOracleServerE2(db, uid, pw){eNviewsPerArea=0;}
Int_t eNviewsPerArea
Definition: TOracleServerE2W.h:16
friend class TOracleServerE2
Definition: TOracleServer.h:41
TOracleServerE * db
Definition: test_oracle.C:8

◆ ~TOracleServerE2W()

TOracleServerE2W::~TOracleServerE2W ( )
inline
21 {}

Member Function Documentation

◆ AddBaseTrack()

Int_t TOracleServerE2W::AddBaseTrack ( char *  database)
371 {
372  // Adds a basetrack into the DB
373  // Table involved: TB_MIPBASETRACKS
374  // Details: INSERT query and then a COMMIT query
375 
376  char query[2048];
377  char commit[10]="commit";
378 
379  try{
380  if (!fStmt)
381  fStmt = fConn->createStatement();
382 
383  sprintf(query,"\
384  INSERT INTO OPERA.TB_MIPBASETRACKS(ID_EVENTBRICK, ID_ZONE, ID, POSX, POSY, SLOPEX, SLOPEY, GRAINS, AREASUM, PH, SIGMA, ID_DOWNSIDE, ID_DOWNTRACK, ID_UPSIDE, ID_UPTRACK) \
385  VALUES (%s)", database);
386 
387  fStmt->setSQL(query);
388  Log(2,"AddBaseTrack","%s",query);
389  fStmt->execute();
390  Log(3,"AddBaseTrack","BaseTrack added");
391 
392  } catch (SQLException &oraex) {
393  Error("TOracleServerE2W", "AddBaseTrack; failed: (error: %s)", (oraex.getMessage()).c_str());
394  }
395 
396  return 0;
397 }
bool Log(int level, const char *location, const char *fmt,...)
Definition: EdbLog.cxx:75
Connection * fConn
Definition: TOracleServer.h:48
oracle::occi::Statement * fStmt
Definition: TOracleServer.h:52

◆ AddBaseTracks() [1/2]

Int_t TOracleServerE2W::AddBaseTracks ( EdbPattern pat,
char *  id_eventbrick,
char *  id_zone 
)
269 {
270  // Adds a basetrack into the DB
271  // Table involved: TB_MIPBASETRACKS
272  // Details: INSERT query and then a COMMIT query
273 
274  char query[2048];
275  char commit[10]="commit";
276 
277  try{
278  if (!fStmt)
279  fStmt = fConn->createStatement();
280 
281  for(int i=0; i<pat.N(); i++)
282  {
283  EdbSegP *s = pat.GetSegment(i);
284  sprintf(query,"\
285  INSERT INTO OPERA.TB_MIPBASETRACKS (ID_EVENTBRICK, ID_ZONE, POSX, POSY, SLOPEX, SLOPEY, GRAINS, AREASUM, PH, SIGMA, ID_DOWNSIDE, ID_DOWNTRACK, ID_UPSIDE, ID_UPTRACK) \
286  VALUES (%s, %s, %.2f, %.2f, %.2f, %.2f, %d, %d, %d, %d, %d, %d, %d, %d)",
287  id_eventbrick, id_zone, s->X(), s->Y(), s->TX(), s->TY(), (int)s->W(), (int)s->Volume(), 0, 0, 0, 0, 0, 0);
288  fStmt->setSQL(query);
289  }
290 
291  Query(commit);
292  Log(2,"AddBaseTracks","%d basetracks added\n",pat.N());
293 
294  } catch (SQLException &oraex) {
295  Error("TOracleServerE2W", "AddBaseTracks; failed: (error: %s)", (oraex.getMessage()).c_str());
296  }
297 
298  return 0;
299 }
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
TSQLResult * Query(const char *sql)
Definition: TOracleServer.cxx:97
EdbSegP * s
Definition: tlg2pattern.C:32

◆ AddBaseTracks() [2/2]

Int_t TOracleServerE2W::AddBaseTracks ( TTree *  tree,
char *  id_eventbrick,
char *  id_zone,
bool  usebuffer = true 
)
786 {
787  // Adds a set of basetracks from a TTree (cp.root file) into the DB,
788  // assuming that the corresponding microtracks are already added into the DB
789  // Table involved: TB_MIPBASETRACKS through AddBaseTrack(...)
790  // Details: no queries directly executed
791 
792  if(!tree) return(0);
793 
794  EdbSegP *s1=0, *s2=0, *s=0;
795  TBranch *b_s=0, *b_s1=0, *b_s2=0;
796  b_s = tree->GetBranch("s.");
797  b_s1 = tree->GetBranch("s1.");
798  b_s2 = tree->GetBranch("s2.");
799  b_s->SetAddress( &s );
800 // b_s1->SetAddress( &s1 );
801 // b_s2->SetAddress( &s2 );
802 
803  // Warning! inverted definition to make it compatible with the DB
804  b_s1->SetAddress( &s2 );
805  b_s2->SetAddress( &s1 );
806 
807  int nentr = (int)(tree->GetEntries());
808 
809  if (!usebuffer) {
810 
811  char data[2048];
812  for(int i=0; i<nentr; i++ ) {
813  b_s->GetEntry(i);
814  b_s1->GetEntry(i);
815  b_s2->GetEntry(i);
816  // int id_up = s1->Vid(0)*10000 + s1->ID();
817  // int id_down = s2->Vid(0)*10000 + s2->ID();
818  int id_view_up = (s1->Aid(0)-1)*eNviewsPerArea+s1->Aid(1);
819  int id_view_down = (s2->Aid(0)-1)*eNviewsPerArea+s2->Aid(1);
820  int id_up = id_view_up *100000 + 10000*2 + s1->ID();
821  int id_down = id_view_down*100000 + 10000*1 + s2->ID();
822 
823  sprintf(data,"%s, %s, %d, %2f, %2f, %2f, %2f, %2f, %2f, NULL, %2f, %d, %d, %d, %d",
824  id_eventbrick, id_zone, i, s->X(), s->Y(), s->TX(), s->TY(), s->W(), s->Volume(), s->Chi2(),
825  1, id_down, 2, id_up);
826  AddBaseTrack(data);
827  }
828 
829  Log(2,"AddBaseTracks","Basetracks added (without buffering): %d basetracks added assuming microtracks previously added",nentr);
830 
831  } else {
832 
833  try{
834  if (!fStmt)
835  fStmt = fConn->createStatement();
836 
837  char ID_EVENTBRICK[10000][50],ID_ZONE[10000][50];
838  int ID[10000];
839  float POSX[10000],POSY[10000],SLOPEX[10000],SLOPEY[10000];
840  int GRAINS[10000],AREASUM[10000];
841  float SIGMA[10000];
842  int ID_DOWNSIDE[10000],ID_DOWNTRACK[10000],ID_UPSIDE[10000],ID_UPTRACK[10000];
843  ub2 SINT[10000],SFLOAT[10000],SID_EVENTBRICK[10000],SID_ZONE[10000];
844 
845 // if (nentr>10000) {
846 // Log(1,"AddBaseTracksWithBuffer","Error! Number of segments (%d) is greater than 10000",nentr);
847 // exit(1);
848 // }
849 
850  int nstep = nentr/10000+1;
851 
852  for(int istep=0; istep<nstep; istep++ ) {
853 
854  char query[2048];
855  sprintf(query,"\
856  INSERT INTO OPERA.TB_MIPBASETRACKS \
857  (ID_EVENTBRICK, ID_ZONE, ID, POSX, POSY, SLOPEX, SLOPEY, GRAINS, AREASUM, SIGMA, ID_DOWNSIDE, ID_DOWNTRACK, ID_UPSIDE, ID_UPTRACK) \
858  VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14)");
859  fStmt->setSQL(query);
860 
861  int ibt=0;
862 
863  for(int ibasetrack=10000*istep; (ibasetrack<nentr && ibasetrack<10000*(istep+1)); ibasetrack++ ) {
864 
865  b_s->GetEntry(ibasetrack);
866  b_s1->GetEntry(ibasetrack);
867  b_s2->GetEntry(ibasetrack);
868 
869 // int id_up = s1->Vid(0)*10000 + s1->ID();
870 // int id_down = s2->Vid(0)*10000 + s2->ID();
871 
872  int id_view_up = (s1->Aid(0)-1)*eNviewsPerArea+s1->Aid(1);
873  int id_view_down = (s2->Aid(0)-1)*eNviewsPerArea+s2->Aid(1);
874  int id_up = id_view_up *100000 + 10000*2 + s1->ID();
875  int id_down = id_view_down*100000 + 10000*1 + s2->ID();
876 
877  sprintf(ID_EVENTBRICK[ibt],"%s%c",id_eventbrick,0); // 1
878  sprintf(ID_ZONE[ibt],"%s%c",id_zone,0); // 2
879  ID[ibt]=ibasetrack; // 3
880  POSX[ibt]=s->X(); // 4
881  POSY[ibt]=s->Y(); // 5
882  SLOPEX[ibt]=s->TX(); // 6
883  SLOPEY[ibt]=s->TY(); // 7
884  GRAINS[ibt]=(int)s->W(); // 8
885  AREASUM[ibt]=(int)s->Volume(); // 9
886  SIGMA[ibt]=s->Chi2(); // 10
887  ID_DOWNSIDE[ibt]=1; // 11
888  ID_DOWNTRACK[ibt]=id_down; // 12
889  ID_UPSIDE[ibt]=2; // 13
890  ID_UPTRACK[ibt]=id_up; // 14
891 
892  SID_EVENTBRICK[ibt]=strlen(ID_EVENTBRICK[ibt])+1;
893  SID_ZONE[ibt]=strlen(ID_ZONE[ibt])+1;
894  SINT[ibt]=sizeof(int);
895  SFLOAT[ibt]=sizeof(float);
896 
897  if (gEDBDEBUGLEVEL>=1) {
898  printf("buffer %d/%d: filling basetrack buffers... %2.0f%%\r",istep+1,nstep,100.*ibasetrack/nentr);
899  fflush(stdout);
900  }
901  ibt++;
902  }
903  if (gEDBDEBUGLEVEL>=1) printf("\n");
904 
905  fStmt->setDataBuffer( 1, ID_EVENTBRICK, OCCI_SQLT_STR, sizeof(ID_EVENTBRICK[0]), (unsigned short *) &SID_EVENTBRICK);
906  fStmt->setDataBuffer( 2, ID_ZONE, OCCI_SQLT_STR, sizeof(ID_ZONE[0]), (unsigned short *) &SID_ZONE);
907  fStmt->setDataBuffer( 3, ID, OCCIINT, sizeof(int), (unsigned short *) &SINT);
908  fStmt->setDataBuffer( 4, POSX, OCCIFLOAT, sizeof(float), (unsigned short *) &SFLOAT);
909  fStmt->setDataBuffer( 5, POSY, OCCIFLOAT, sizeof(float), (unsigned short *) &SFLOAT);
910  fStmt->setDataBuffer( 6, SLOPEX, OCCIFLOAT, sizeof(float), (unsigned short *) &SFLOAT);
911  fStmt->setDataBuffer( 7, SLOPEY, OCCIFLOAT, sizeof(float), (unsigned short *) &SFLOAT);
912  fStmt->setDataBuffer( 8, GRAINS, OCCIINT, sizeof(int), (unsigned short *) &SINT);
913  fStmt->setDataBuffer( 9, AREASUM, OCCIINT, sizeof(int), (unsigned short *) &SINT);
914  fStmt->setDataBuffer(10, SIGMA, OCCIFLOAT, sizeof(float), (unsigned short *) &SFLOAT);
915  fStmt->setDataBuffer(11, ID_DOWNSIDE, OCCIINT, sizeof(int), (unsigned short *) &SINT);
916  fStmt->setDataBuffer(12, ID_DOWNTRACK, OCCIINT, sizeof(int), (unsigned short *) &SINT);
917  fStmt->setDataBuffer(13, ID_UPSIDE, OCCIINT, sizeof(int), (unsigned short *) &SINT);
918  fStmt->setDataBuffer(14, ID_UPTRACK, OCCIINT, sizeof(int), (unsigned short *) &SINT);
919  fStmt->executeArrayUpdate(ibt);
920 
921  char commit[10]="commit";
922  Query(commit);
923 
924  } // istep
925 
926  } catch (SQLException &oraex) {
927  Error("TOracleServerE2W", "AddBaseTracksWithBuffer; failed: (error: %s)", (oraex.getMessage()).c_str());
928  }
929 
930  Log(2,"AddBaseTracksWithBuffer","Basetracks added (with buffering): %d basetracks added assuming microtracks previously added",nentr);
931 
932  }
933 
934  return nentr;
935 }
FILE * stdout
Int_t ID() const
Definition: EdbSegP.h:144
Float_t Chi2() const
Definition: EdbSegP.h:154
Int_t Aid(int i) const
Definition: EdbSegP.h:166
Int_t AddBaseTrack(char *database)
Definition: TOracleServerE2W.cxx:370
gEDBDEBUGLEVEL
Definition: energy.C:7
EdbSegP * s1
Definition: tlg2pattern.C:30
EdbSegP * s2
Definition: tlg2pattern.C:31

◆ AddBrick_Set()

Int_t TOracleServerE2W::AddBrick_Set ( char *  id,
char *  idrange_min,
char *  idrange_max,
char *  id_partition 
)
95 {
96  // Adds a brick-set into the DB
97  // Procedure involved: PC_ADD_BRICK_SET (it fills TB_BRICK_SETS)
98  // Details: CALL query and then a COMMIT query
99 
100  char query[2048];
101  char commit[10]="commit";
102 
103  try{
104  if (!fStmt)
105  fStmt = fConn->createStatement();
106 
107  /*sprintf(query,"\
108  INSERT INTO OPERA.TB_BRICK_SETS (ID, IDRANGE_MIN, IDRANGE_MAX, ID_PARTITION) \
109  VALUES (%s, %s, %s, %s)", */
110  sprintf(query,"CALL PC_ADD_BRICK_SET(%s, %s, %s, %s)",
111  id, idrange_min, idrange_max, id_partition);
112 
113  fStmt->setSQL(query);
114  Log(2,"AddBrick_Set","execute sql query: %s ...",query);
115  fStmt->execute();
116  Query(commit);
117 
118  Log(2,"AddBrick_Set","Brick_Set added, partition created");
119  return 0;
120 
121  } catch (SQLException &oraex) {
122  Error("TOracleServerE2W", "AddBrick_Set; failed: (error: %s)", (oraex.getMessage()).c_str());
123  }
124 
125  return 1;
126 }

◆ AddBrick_Space()

Int_t TOracleServerE2W::AddBrick_Space ( char *  id_brick,
char *  id_set 
)
133 {
134  // Adds a brick-space into the DB
135  // Procedure involved: PC_ADD_BRICK_SPACE
136  // Details: CALL query and then a COMMIT query
137 
138  char query[2048];
139  char commit[10]="commit";
140 
141  try{
142  if (!fStmt)
143  fStmt = fConn->createStatement();
144 
145  sprintf(query,"CALL PC_ADD_BRICK_SPACE(%s, %s)",
146  id_brick, id_set);
147 
148  fStmt->setSQL(query);
149  Log(2,"AddBrick_Space","execute sql query: %s ...",query);
150  fStmt->executeUpdate();
151  Query(commit);
152 
153  Log(2,"AddBrick_Space","Brick_Space mapped");
154  return 0;
155 
156  } catch (SQLException &oraex) {
157  Error("TOracleServerE2W", "AddBrick_Space; failed: (error: %s)", (oraex.getMessage()).c_str());
158  }
159 
160  return 1;
161 }

◆ AddBSBpathsVolumes()

Int_t TOracleServerE2W::AddBSBpathsVolumes ( char *  databsbpathsvolumes)
1007 {
1008  // Adds a connection between brick, sbpath and volume into the DB
1009  // Table involved: TB_B_SBPATHS_VOLUMES
1010  // Details: INSERT query and then a COMMIT query
1011 
1012  char query[2048];
1013  char commit[10]="commit";
1014 
1015  try{
1016  if (!fStmt)
1017  fStmt = fConn->createStatement();
1018 
1019  sprintf(query,"\
1020  INSERT INTO OPERA.TB_B_SBPATHS_VOLUMES \
1021  (ID_EVENTBRICK, ID_SCANBACK_PROCOPID, PATH, ID_VOLUMESCAN_PROCOPID, VOLUME, ID_PLATE) \
1022  VALUES (%s)", databsbpathsvolumes);
1023 
1024  fStmt->setSQL(query);
1025  Log(2,"AddBSBpathsVolumes","execute sql query: %s ...",query);
1026  fStmt->execute();
1027  Query(commit);
1028  Log(2,"AddBSBpathsVolumes","BSBpathsVolumes added");
1029 
1030  } catch (SQLException &oraex) {
1031  Error("TOracleServerE2W", "AddBSBpathsVolumes; failed: (error: %s)", (oraex.getMessage()).c_str());
1032  }
1033 
1034  return 0;
1035 }

◆ AddEventBricks()

Int_t TOracleServerE2W::AddEventBricks ( char *  databrick)
57 {
58  // Adds a brick into the DB
59  // Table involved: TB_EVENTBRICKS
60  // Details: INSERT query and then a COMMIT query
61 
62  char query[2048];
63  char commit[10]="commit";
64 
65  try{
66  if (!fStmt)
67  fStmt = fConn->createStatement();
68 
69  sprintf(query,"\
70  INSERT INTO OPERA.TB_EVENTBRICKS (MINX, MAXX, MINY, MAXY, MINZ, MAXZ, ID_SET, ID_BRICK, ZEROX, ZEROY, ZEROZ) \
71  VALUES (%s)", databrick);
72 
73  fStmt->setSQL(query);
74  Log(2,"AddEventBricks","execute sql query: %s ...",query);
75  fStmt->execute();
76  Query(commit);
77 
78  Log(2,"AddEventBricks","Brick added");
79  return 0;
80 
81  } catch (SQLException &oraex) {
82  Error("TOracleServerE2W", "AddEventBricks; failed: (error: %s)", (oraex.getMessage()).c_str());
83  }
84 
85  return 1;
86 }

◆ AddMicroTrack()

Int_t TOracleServerE2W::AddMicroTrack ( char *  datamicro)
337 {
338  // Adds a microtrack into the DB
339  // Table involved: TB_MIPMICROTRACKS
340  // Details: INSERT query. The COMMIT query is not done to improve the writing speed
341  // please remember to apply a commit at the end of your script
342  // or to execute a method which runs the commit query
343 
344  char query[2048];
345 // char commit[10]="commit";
346 
347  try{
348  if (!fStmt)
349  fStmt = fConn->createStatement();
350 
351  sprintf(query,"\
352  INSERT INTO OPERA.TB_MIPMICROTRACKS(ID_EVENTBRICK, ID_ZONE, SIDE, ID, ID_VIEW, POSX, POSY, SLOPEX, SLOPEY, GRAINS, AREASUM, PH, SIGMA) \
353  VALUES (%s)", datamicro);
354 
355  fStmt->setSQL(query);
356  Log(3,"AddMicroTrack","execute sql query: %s ...",query);
357  fStmt->execute();
358 // Query(commit);
359  Log(3,"AddMicroTrack","MicroTrack added");
360 
361  } catch (SQLException &oraex) {
362  Error("TOracleServerE2W", "AddMicroTrack; failed: (error: %s)", (oraex.getMessage()).c_str());
363  }
364 
365  return 0;
366 }

◆ AddPlate()

Int_t TOracleServerE2W::AddPlate ( char *  id_eventbrick,
char *  dataplate 
)
169 {
170  // Adds a plate into the DB
171  // Table involved: TB_PLATE
172  // Details: INSERT query and then a COMMIT query
173 
174  char query[2048];
175  char commit[10]="commit";
176 
177  try{
178  if (!fStmt)
179  fStmt = fConn->createStatement();
180 
181  sprintf(query,"\
182  INSERT INTO OPERA.TB_PLATES (ID_EVENTBRICK, ID, Z) \
183  VALUES (%s, %s)", id_eventbrick, dataplate);
184 
185  fStmt->setSQL(query);
186  Log(2,"AddPlate","execute sql query: %s ...",query);
187  fStmt->execute();
188  Query(commit);
189  Log(2,"AddPlate","Plate added");
190 
191  } catch (SQLException &oraex) {
192  Error("TOracleServerE2W", "AddPlate; failed: (error: %s)", (oraex.getMessage()).c_str());
193  }
194 
195  return 0;
196 }

◆ AddPlateCalibration() [1/2]

Int_t TOracleServerE2W::AddPlateCalibration ( char *  id_eventbrick,
char *  id_process_operation,
char *  datacalibration 
)
205 {
206  // Adds a plate calibration into the DB
207  // Table involved: TB_PLATE_CALIBRATIONS
208  // Details: INSERT query and then a COMMIT query
209 
210  char query[2048];
211  char commit[10]="commit";
212 
213  try{
214  if (!fStmt)
215  fStmt = fConn->createStatement();
216 
217  sprintf(query,"\
218  INSERT INTO OPERA.TB_PLATE_CALIBRATIONS (ID_EVENTBRICK, ID_PROCESSOPERATION, ID_PLATE, Z, MAPXX, MAPXY, MAPYX, MAPYY, MAPDX, MAPDY) \
219  VALUES (%s, %s, %s)", id_eventbrick, id_process_operation, datacalibration);
220 
221  fStmt->setSQL(query);
222  Log(2,"AddPlateCalibration","execute sql query: %s ...",query);
223  fStmt->execute();
224  Query(commit);
225  Log(2,"AddPlateCalibration","PlateCalibration added");
226 
227  } catch (SQLException &oraex) {
228  Error("TOracleServerE2W", "AddPlateCalibration; failed: (error: %s)", (oraex.getMessage()).c_str());
229  }
230 
231  return 0;
232 }

◆ AddPlateCalibration() [2/2]

Int_t TOracleServerE2W::AddPlateCalibration ( char *  id_eventbrick,
char *  id_process_operation,
EdbPlateP plate 
)
564 {
565  // Adds a plate calibration into the DB
566  // Table involved: TB_PLATE_CALIBRATIONS
567  // Details: INSERT query and then a COMMIT query
568 
569  char query[2048];
570  char commit[10]="commit";
571 
572  try{
573  if (!fStmt)
574  fStmt = fConn->createStatement();
575 
576  EdbAffine2D *a = plate->GetAffineXY();
577 
578  sprintf(query,"\
579  INSERT INTO OPERA.TB_PLATE_CALIBRATIONS \
580  (ID_EVENTBRICK, ID_PROCESSOPERATION, ID_PLATE, Z, MAPXX, MAPXY, MAPYX, MAPYY, MAPDX, MAPDY) \
581  VALUES (%s, %s, %d, %f, %f, %f, %f, %f, %f, %f)",
582  id_eventbrick, id_process_operation,
583  plate->ID(), plate->Z(), a->A11(), a->A12(), a->A21(), a->A22(), a->B1(), a->B2());
584 
585  fStmt->setSQL(query);
586  Log(2,"AddPlateCalibration","execute sql query: %s ...",query);
587  fStmt->execute();
588  Query(commit);
589  Log(2,"AddPlateCalibration","PlateCalibration added");
590 
591  } catch (SQLException &oraex) {
592  Error("TOracleServerE2W", "AddPlateCalibration; failed: (error: %s)", (oraex.getMessage()).c_str());
593  }
594 
595  return 0;
596 }
void a()
Definition: check_aligned.C:59
Definition: EdbAffine.h:17
Int_t plate
Definition: merge_Energy_SytematicSources_Electron.C:1

◆ AddProcessOperation()

Int_t TOracleServerE2W::AddProcessOperation ( char *  id_machine,
char *  id_programsettings,
char *  id_requester,
char *  id_parent_operation,
char *  id_eventbrick,
char *  id_plate,
char *  driverlevel,
char *  id_calibration,
char *  starttime,
char *  finishtime,
char *  success,
char *  notes 
)

◆ AddScanbackPath() [1/2]

Int_t TOracleServerE2W::AddScanbackPath ( char *  datapath)
402 {
403  // Adds a scanback path into the DB
404  // Table involved: TB_SCANBACK_PATHS
405  // Details: INSERT query and then a COMMIT query
406 
407  char query[2048];
408  char commit[10]="commit";
409 
410  try{
411  if (!fStmt)
412  fStmt = fConn->createStatement();
413 
414  sprintf(query,"\
415  INSERT INTO OPERA.TB_SCANBACK_PATHS (ID_EVENTBRICK, ID_PROCESSOPERATION, PATH, ID_START_PLATE, ID_FORK_PATH, ID_CANCEL_PLATE)VALUES (%s)",datapath);
416 
417  fStmt->setSQL(query);
418  Log(2,"AddScanbackPath","execute sql query: %s ...",query);
419  fStmt->execute();
420  Query(commit);
421  Log(2,"AddScanbackPath","ScanbackPath added");
422 
423  } catch (SQLException &oraex) {
424  Error("TOracleServerE2W", "AddScanbackPath; failed: (error: %s)", (oraex.getMessage()).c_str());
425  }
426 
427  return 0;
428 }

◆ AddScanbackPath() [2/2]

Int_t TOracleServerE2W::AddScanbackPath ( char *  id_eventbrick,
char *  id_header_operation,
int  id_path,
int  id_start_plate,
int  skipCSconnection = 0 
)
432 {
433  // Adds a scanback path into the DB and connects it with the CS prediction
434  // Table involved: TB_SCANBACK_PATHS, TB_B_CSCANDS_SBPATHS
435  // Details: a SELECT and two INSERT queries and then a COMMIT query
436 
437  char query[2048];
438  char commit[10]="commit";
439 
440  try{
441  if (!fStmt)
442  fStmt = fConn->createStatement();
443 
444  sprintf(query,"\
445  INSERT INTO OPERA.TB_SCANBACK_PATHS (ID_EVENTBRICK, ID_PROCESSOPERATION, PATH, ID_START_PLATE, ID_FORK_PATH, ID_CANCEL_PLATE) VALUES (%s, %s, %d, %d, NULL, NULL)",
446  id_eventbrick, id_header_operation, id_path, id_start_plate);
447 
448  fStmt->setSQL(query);
449  Log(2,"AddScanbackPath","execute sql query: %s ...",query);
450  fStmt->execute();
451  Query(commit);
452  Log(2,"AddScanbackPath","TB_SCANBACK_PATHS added");
453 
454 
455  if (!skipCSconnection) {
456 
457  sprintf(query,"select id_cs_eventbrick,idcand from vw_local_cs_candidates where id_cs_eventbrick in (select id from tb_eventbricks where id_brick in (select id_brick from tb_eventbricks where id=%s)) and cand=%d",
458  id_eventbrick, id_path%10000);
459 
460  int id_path_copy = id_path/10000;
461  int icopy=0;
462 
463  fStmt->setSQL(query);
464  Log(2,"AddScanbackPath","execute sql query: %s ...",query);
465  fStmt->execute();
466  ResultSet *rs = fStmt->getResultSet();
467  char id_cs_eventbrick[20],id_candidate[20];
468  while (rs->next()&&icopy<=id_path_copy){
469  strcpy(id_cs_eventbrick,rs->getString(1).c_str());
470  strcpy(id_candidate,rs->getString(2).c_str());
471  icopy++;
472  }
473  delete rs;
474 
475 
476  sprintf(query,"\
477  INSERT INTO OPERA.TB_B_CSCANDS_SBPATHS (ID_CS_EVENTBRICK, ID_CANDIDATE, ID_EVENTBRICK, ID_SCANBACK_PROCOPID, PATH) VALUES (%s, %s, %s, %s, %d)",
478  id_cs_eventbrick, id_candidate, id_eventbrick, id_header_operation, id_path);
479 
480  fStmt->setSQL(query);
481  Log(2,"AddScanbackPath","execute sql query: %s ...",query);
482  fStmt->execute();
483  Query(commit);
484 
485  } // end !skipCSconnection
486 
487  Log(2,"AddScanbackPath","TB_B_CSCANDS_SBPATHS added");
488 
489  } catch (SQLException &oraex) {
490  Error("TOracleServerE2W", "AddScanbackPath; failed: (error: %s)", (oraex.getMessage()).c_str());
491  }
492 
493  return 0;
494 }
strcpy(cmd,"cp Shower.root Shower2.root")

◆ AddScanbackPrediction()

Int_t TOracleServerE2W::AddScanbackPrediction ( char *  dataprediciton)
499 {
500  // Adds a scanback prediction into the DB
501  // Table involved: TB_SCANBACK_PREDICTIONS
502  // Details: INSERT query and then a COMMIT query
503 
504  char query[2048];
505  char commit[10]="commit";
506 
507  try{
508  if (!fStmt)
509  fStmt = fConn->createStatement();
510 
511  sprintf(query,"\
512  INSERT INTO OPERA.TB_SCANBACK_PREDICTIONS (ID_EVENTBRICK, ID_PATH, ID_PLATE,POSX,POSY,SLOPEX,SLOPEY,\
513  POSTOL1,POSTOL2,SLOPETOL1,SLOPETOL2,FRAME,ID_ZONE,ID_CANDIDATE,DAMAGED,ISMANUAL)VALUES (%s)", dataprediction);
514 
515  fStmt->setSQL(query);
516  Log(2,"AddScanbackPrediction","execute sql query: %s ...",query);
517  fStmt->execute();
518  Query(commit);
519  Log(2,"AddScanbackPrediction","ScanbackPrediction added");
520 
521  } catch (SQLException &oraex) {
522  Error("TOracleServerE2W", "AddScanbackPrediction; failed: (error: %s)", (oraex.getMessage()).c_str());
523  }
524 
525  return 0;
526 }

◆ AddTemplateMarkSets()

Int_t TOracleServerE2W::AddTemplateMarkSets ( char *  datamarks)
531 {
532  // Adds a mark into the DB
533  // Table involved: TB_TEMPLATEMARKSETS
534  // Details: INSERT query and then a COMMIT query
535 
536  char query[2048];
537  char commit[10]="commit";
538 
539  try{
540  if (!fStmt)
541  fStmt = fConn->createStatement();
542 
543  sprintf(query,"\
544  INSERT INTO OPERA.TB_TEMPLATEMARKSETS\
545  (ID_EVENTBRICK, ID_MARK, POSX, POSY, MARKROW, MARKCOL, SHAPE, SIDE)\
546  VALUES (%s)", datamarks);
547 
548  fStmt->setSQL(query);
549  Log(2,"AddTemplateMarkSets","execute sql query: %s ...",query);
550  fStmt->execute();
551  Query(commit);
552  Log(2,"AddTemplateMarkSets","TemplateMarkSets added");
553 
554  } catch (SQLException &oraex) {
555  Error("TOracleServerE2W", "AddTemplateMarkSets; failed: (error: %s)", (oraex.getMessage()).c_str());
556  }
557 
558  return 0;
559 }

◆ AddView() [1/2]

Int_t TOracleServerE2W::AddView ( char *  dataView)
305 {
306  // Adds a view into the DB
307  // Table involved: TB_VIEWS
308  // Details: INSERT query and then a COMMIT query
309 
310  char query[2048];
311  char commit[10]="commit";
312 
313  try{
314  if (!fStmt)
315  fStmt = fConn->createStatement();
316 
317  sprintf(query,"\
318  INSERT INTO OPERA.TB_VIEWS (ID_EVENTBRICK, ID_ZONE, SIDE, ID, DOWNZ, UPZ, POSX, POSY) \
319  VALUES (%s)", dataView);
320 
321  fStmt->setSQL(query);
322  Log(2,"AddView","execute sql query: %s ...",query);
323  fStmt->execute();
324  Query(commit);
325  Log(2,"AddView","View added");
326 
327  } catch (SQLException &oraex) {
328  Error("TOracleServerE2W", "AddView; failed: (error: %s)", (oraex.getMessage()).c_str());
329  }
330 
331  return 0;
332 }

◆ AddView() [2/2]

Int_t TOracleServerE2W::AddView ( EdbView view,
int  id_view,
char *  id_eventbrick,
char *  id_zone,
bool  usebuffer = true 
)
601 {
602  // Adds a view and all its microtracks from an EdbView object into the DB
603  // Tables involved: TB_VIEWS through AddView(...) and TB_MIPMICROTRACKS through AddMicroTrack(...)
604  // Details: no queries directly executed
605 
606  if(!view) {
607  Log(1,"AddView","Error! view=0");
608  return 1;
609  }
610 
611  int side;
612 // if(view->GetNframesTop()==0) side=1; // 1 - bottom
613 // else side=2; // 2 - top
614 
615  // Warning! inverted definition to make it compatible with the DB
616  if(view->GetNframesTop()==0) side=2;
617  else side=1;
618 
619 
620  EdbSegP sview(0,0,0,0,0);
621  sview.Transform(view->GetHeader()->GetAffine());
622  float xview = sview.X();
623  float yview = sview.Y();
624 
625  int AreaID = view->GetAreaID();
626  int ViewID = view->GetViewID();
627  int nsegV = view->Nsegments();
628 
629  Log(2,"AddView","Area %d, View %d is in the (DB) side %d and contains %d segments",AreaID,ViewID,side,nsegV);
630  Log(2,"AddView","POSX %f, POSY %f",xview,yview);
631  Log(2,"AddView","%f %f %f %f",view->GetHeader()->GetZ1(),view->GetHeader()->GetZ2(),
632  view->GetHeader()->GetZ3(),view->GetHeader()->GetZ4());
633 
634  char dataview[2048];
635  if (side==1)
636  sprintf(dataview,"%s, %s, %d, %d, %f, %f, %f, %f", id_eventbrick, id_zone, side, id_view,
637  view->GetHeader()->GetZ1(),view->GetHeader()->GetZ2(),xview,yview );
638  else
639  sprintf(dataview,"%s, %s, %d, %d, %f, %f, %f, %f", id_eventbrick, id_zone, side, id_view,
640  view->GetHeader()->GetZ4(),view->GetHeader()->GetZ3(),xview,yview );
641 
642 // if (side==1)
643 // sprintf(dataview,"%s, %s, %d, %d, %f, %f, %f, %f", id_eventbrick, id_zone, side, id_view,
644 // view->GetHeader()->GetZ3(),view->GetHeader()->GetZ4(),xview,yview );
645 // else
646 // sprintf(dataview,"%s, %s, %d, %d, %f, %f, %f, %f", id_eventbrick, id_zone, side, id_view,
647 // view->GetHeader()->GetZ1(),view->GetHeader()->GetZ2(),xview,yview );
648 
649  AddView(dataview);
650 
651  if (nsegV<=0) return(-1);
652 
653  if (!usebuffer) {
654 
655  EdbSegment *seg;
656  char datamicro[2048];
657  int id_microtrack;
658  for(int isegment=0;isegment<nsegV;isegment++) {
659  seg = view->GetSegment(isegment);
660  seg->Transform(view->GetHeader()->GetAffine());
661  // id_microtrack = id_view*10000 + isegment;
662  id_microtrack = id_view*100000 + side*10000 + isegment;
663  sprintf(datamicro,"%s, %s ,%d, %d, %d, %f, %f, %f, %f, %d, %d, NULL, %f", id_eventbrick, id_zone, side, id_microtrack, id_view, seg->GetX0(), seg->GetY0(), seg->GetTx(), seg->GetTy(), seg->GetPuls(), seg->GetVolume(), seg->GetSigmaX());
664  AddMicroTrack(datamicro);
665  }
666 
667  Log(2,"AddView","View added (without buffering): %d microtracks added",nsegV);
668 
669  } else {
670 
671  try{
672  if (!fStmt)
673  fStmt = fConn->createStatement();
674 
675  char query[2048];
676  sprintf(query,"\
677  INSERT INTO OPERA.TB_MIPMICROTRACKS \
678  (ID_EVENTBRICK, ID_ZONE, SIDE, ID, ID_VIEW, POSX, POSY, SLOPEX, SLOPEY, GRAINS, AREASUM, SIGMA) \
679  VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12)");
680  fStmt->setSQL(query);
681 
682  char ID_EVENTBRICK[10000][50],ID_ZONE[10000][50];
683  int SIDE[10000],ID[10000],ID_VIEW[10000];
684  float POSX[10000],POSY[10000],SLOPEX[10000],SLOPEY[10000];
685  int GRAINS[10000],AREASUM[10000];
686  float SIGMA[10000];
687  ub2 SINT[10000],SFLOAT[10000],SID_EVENTBRICK[10000],SID_ZONE[10000];
688 
689  if (nsegV>10000) {
690  Log(1,"AddViewWithBuffer","Error! Number of segments (%d) in the view is greater than 10000",nsegV);
691  exit(1);
692  }
693 
694  EdbSegment *seg;
695  for(int isegment=0;isegment<nsegV;isegment++) {
696  seg = view->GetSegment(isegment);
697  seg->Transform(view->GetHeader()->GetAffine());
698  sprintf(ID_EVENTBRICK[isegment],"%s%c",id_eventbrick,0); // 1
699  sprintf(ID_ZONE[isegment],"%s%c",id_zone,0); // 2
700  SIDE[isegment]=side; // 3
701  // ID[isegment]=id_view*10000 + isegment; // 4
702  ID[isegment]=id_view*100000 + side*10000 + isegment; // 4
703  ID_VIEW[isegment]=id_view; // 5
704  POSX[isegment]=seg->GetX0(); // 6
705  POSY[isegment]=seg->GetY0(); // 7
706  SLOPEX[isegment]=seg->GetTx(); // 8
707  SLOPEY[isegment]=seg->GetTy(); // 9
708  GRAINS[isegment]=seg->GetPuls(); // 10
709  AREASUM[isegment]=seg->GetVolume(); // 11
710  SIGMA[isegment]=seg->GetSigmaX(); // 13
711 
712  SID_EVENTBRICK[isegment]=strlen(ID_EVENTBRICK[isegment])+1;
713  SID_ZONE[isegment]=strlen(ID_ZONE[isegment])+1;
714  SINT[isegment]=sizeof(int);
715  SFLOAT[isegment]=sizeof(float);
716  }
717 
718  fStmt->setDataBuffer( 1, ID_EVENTBRICK, OCCI_SQLT_STR, sizeof(ID_EVENTBRICK[0]), (unsigned short *) &SID_EVENTBRICK);
719  fStmt->setDataBuffer( 2, ID_ZONE, OCCI_SQLT_STR, sizeof(ID_ZONE[0]), (unsigned short *) &SID_ZONE);
720  fStmt->setDataBuffer( 3, SIDE, OCCIINT, sizeof(int), (unsigned short *) &SINT);
721  fStmt->setDataBuffer( 4, ID, OCCIINT, sizeof(int), (unsigned short *) &SINT);
722  fStmt->setDataBuffer( 5, ID_VIEW, OCCIINT, sizeof(int), (unsigned short *) &SINT);
723  fStmt->setDataBuffer( 6, POSX, OCCIFLOAT, sizeof(float), (unsigned short *) &SFLOAT);
724  fStmt->setDataBuffer( 7, POSY, OCCIFLOAT, sizeof(float), (unsigned short *) &SFLOAT);
725  fStmt->setDataBuffer( 8, SLOPEX, OCCIFLOAT, sizeof(float), (unsigned short *) &SFLOAT);
726  fStmt->setDataBuffer( 9, SLOPEY, OCCIFLOAT, sizeof(float), (unsigned short *) &SFLOAT);
727  fStmt->setDataBuffer(10, GRAINS, OCCIINT, sizeof(int), (unsigned short *) &SINT);
728  fStmt->setDataBuffer(11, AREASUM, OCCIINT, sizeof(int), (unsigned short *) &SINT);
729  fStmt->setDataBuffer(12, SIGMA, OCCIFLOAT, sizeof(float), (unsigned short *) &SFLOAT);
730  fStmt->executeArrayUpdate(nsegV);
731 
732  char commit[10]="commit";
733  Query(commit);
734 
735  } catch (SQLException &oraex) {
736  Error("TOracleServerE2W", "AddView; failed: (error: %s)", (oraex.getMessage()).c_str());
737  }
738 
739  Log(2,"AddView","View added (with buffering): %d microtracks added",nsegV);
740 
741  }
742 
743  return 0;
744 }
virtual Float_t GetX0() const
Definition: EdbSegment.h:37
virtual void Transform(const EdbAffine2D *aff)
Definition: EdbSegment.cxx:58
virtual Float_t GetTx() const
Definition: EdbSegment.h:40
virtual Float_t GetY0() const
Definition: EdbSegment.h:38
virtual Float_t GetTy() const
Definition: EdbSegment.h:41
Definition: EdbSegment.h:61
Int_t GetVolume() const
Definition: EdbSegment.h:89
Int_t GetPuls() const
Definition: EdbSegment.h:88
float GetSigmaX() const
Definition: EdbSegment.h:84
EdbAffine2D const * GetAffine() const
Definition: EdbView.h:72
Float_t GetZ4() const
Definition: EdbView.h:113
Float_t GetZ2() const
Definition: EdbView.h:111
Float_t GetZ3() const
Definition: EdbView.h:112
Float_t GetZ1() const
Definition: EdbView.h:110
EdbViewHeader * GetHeader() const
Definition: EdbView.h:163
Int_t GetNframesTop() const
Definition: EdbView.h:207
Int_t GetViewID() const
Definition: EdbView.h:190
Int_t Nsegments() const
Definition: EdbView.h:216
Int_t GetAreaID() const
Definition: EdbView.h:191
EdbSegment * GetSegment(int i) const
Definition: EdbView.h:219
Int_t AddMicroTrack(char *datamicro)
Definition: TOracleServerE2W.cxx:336
Int_t AddView(char *dataView)
Definition: TOracleServerE2W.cxx:304

◆ AddViews()

Int_t TOracleServerE2W::AddViews ( EdbRun run,
char *  id_eventbrick,
char *  id_zone,
bool  usebuffer = true 
)
748 {
749  // Adds all views stored in a EdbRun object (== raw.root file) and all their microtracks into the DB
750  // Tables involved: TB_VIEWS through AddView(EdbView,...)
751  // Details: no queries directly executed
752 
753  EdbView *view = run->GetView();
754  int nviews = run->GetEntries();
755 
756  if (!nviews) return 0;
757 
758  eNviewsPerArea = 0;
759  view = run->GetEntry(0);
760  int idfirstarea = view->GetAreaID();
761 
762  // count number of views per area
763  for(int iview=0; iview<nviews; iview++) {
764  view = run->GetEntry(iview);
765  if (view->GetAreaID()==idfirstarea) eNviewsPerArea++;
766  }
767  // divide by 2 because we have 2 views per side
768  eNviewsPerArea/=2;
769 
770  // printf("eNviewsPerArea %d\n",eNviewsPerArea);
771 
772  for(int iview=0; iview<nviews; iview++) {
773  view = run->GetEntry(iview);
774  if (gEDBDEBUGLEVEL>=1) { printf("Adding view %d/%d\r",iview+1,nviews); fflush(stdout); }
775  // AddView(view, iview, id_eventbrick, id_zone, usebuffer);
776  int id_view = (view->GetAreaID()-1)*eNviewsPerArea+view->GetViewID();
777  // printf("id_view %d %d %d %d\n",view->GetAreaID(),eNviewsPerArea,view->GetViewID(),id_view);
778  AddView(view, id_view, id_eventbrick, id_zone, usebuffer);
779  }
780  if (gEDBDEBUGLEVEL>=1) printf("\n");
781 
782  return 0;
783 }
int GetEntries() const
Definition: EdbRun.h:135
EdbView * GetEntry(int entry, int ih=1, int icl=0, int iseg=1, int itr=0, int ifr=0)
Definition: EdbRun.cxx:489
EdbView * GetView() const
Definition: EdbRun.h:109
Definition: EdbView.h:134
EdbRun * run
Definition: check_raw.C:38

◆ AddVolume()

Int_t TOracleServerE2W::AddVolume ( char *  id_eventbrick,
char *  id_process_operation,
int  ivolume 
)
942 {
943  // Adds a volume into the DB
944  // Table involved: TB_VOLUMES
945  // Details: INSERT query and then a COMMIT query
946 
947  char query[2048];
948  char commit[10]="commit";
949 
950  try{
951  if (!fStmt)
952  fStmt = fConn->createStatement();
953 
954  sprintf(query,"\
955  INSERT INTO OPERA.TB_VOLUMES (ID_EVENTBRICK, ID_PROCESSOPERATION, VOLUME) \
956  VALUES (%s, %s, %d)", id_eventbrick, id_process_operation, ivolume);
957 
958  fStmt->setSQL(query);
959  Log(2,"AddVolume","execute sql query: %s ...",query);
960  fStmt->execute();
961  Query(commit);
962  Log(2,"AddVolume","Volume added");
963 
964  } catch (SQLException &oraex) {
965  Error("TOracleServerE2W", "AddVolume; failed: (error: %s)", (oraex.getMessage()).c_str());
966  }
967 
968  return 0;
969 }

◆ AddVolumeSlice()

Int_t TOracleServerE2W::AddVolumeSlice ( char *  datavolumeslice)
974 {
975  // Adds a volume slice into the DB
976  // Table involved: TB_VOLUME_SLICES
977  // Details: INSERT query and then a COMMIT query
978 
979  char query[2048];
980  char commit[10]="commit";
981 
982  try{
983  if (!fStmt)
984  fStmt = fConn->createStatement();
985 
986  sprintf(query,"\
987  INSERT INTO OPERA.TB_VOLUME_SLICES \
988  (ID_EVENTBRICK, ID_VOLUME, ID_PLATE, MINX, MINY, MAXX, MAXY, ID_ZONE, DAMAGED) \
989  VALUES (%s)", datavolumeslice);
990 
991  fStmt->setSQL(query);
992  Log(2,"AddVolumeSlice","execute sql query: %s ...",query);
993  fStmt->execute();
994  Query(commit);
995  Log(2,"AddVolumeSlice","Volume slice added");
996 
997  } catch (SQLException &oraex) {
998  Error("TOracleServerE2W", "AddVolumeSlice; failed: (error: %s)", (oraex.getMessage()).c_str());
999  }
1000 
1001  return 0;
1002 }

◆ AddZone()

Int_t TOracleServerE2W::AddZone ( char *  data)
237 {
238  // Adds a zone into the DB
239  // Table involved: TB_ZONES
240  // Details: INSERT query and then a COMMIT query
241 
242  char query[2048];
243  char commit[10]="commit";
244 
245  try{
246  if (!fStmt)
247  fStmt = fConn->createStatement();
248 
249  sprintf(query,"\
250  INSERT INTO OPERA.TB_ZONES (ID_EVENTBRICK, ID_PLATE, ID_PROCESSOPERATION, MINX, MAXX, MINY, MAXY, RAWDATAPATH, STARTTIME, ENDTIME, SERIES,\
251  TXX, TXY, TYX, TYY, TDX, TDY)VALUES (%s)",data);
252 
253  fStmt->setSQL(query);
254  Log(2,"AddZone","execute sql query: %s ...",query);
255  fStmt->execute();
256  Query(commit);
257  Log(2,"AddZone","Zone added");
258 
259  } catch (SQLException &oraex) {
260  Error("TOracleServerE2W", "AddZone; failed: (error: %s)", (oraex.getMessage()).c_str());
261  }
262 
263  return 0;
264 }

◆ DeleteBrick()

Int_t TOracleServerE2W::DeleteBrick ( char *  id_eventbrick)
1040 {
1041  // Delete all informations related to a brick from the DB
1042  // Tables involved: ... a lot, look at the code...
1043  // Details: DELETE queries and then a COMMIT query
1044 
1045  char query[16][2048];
1046  char commit[11]="commit";
1047 
1048  try{
1049  if (!fStmt)
1050  fStmt = fConn->createStatement();
1051 
1052  sprintf(query[0], "delete from Tb_B_SBPATHS_VOLUMES where id_eventbrick=%s",id_eventbrick);
1053  sprintf(query[1], "delete from Tb_Volume_Slices where id_eventbrick=%s",id_eventbrick);
1054  sprintf(query[2], "delete from Tb_Volumes where id_eventbrick=%s",id_eventbrick);
1055  sprintf(query[3], "delete from Tb_Scanback_Predictions where id_eventbrick=%s",id_eventbrick);
1056  sprintf(query[4], "delete from Tb_B_CSCANDS_SBPATHS where id_eventbrick=%s",id_eventbrick);
1057  sprintf(query[5], "delete from Tb_Scanback_Paths where id_eventbrick=%s",id_eventbrick);
1058  sprintf(query[6], "delete from Tb_MipBasetracks where id_eventbrick=%s",id_eventbrick);
1059  sprintf(query[7], "delete from Tb_MipMicrotracks where id_eventbrick=%s",id_eventbrick);
1060  sprintf(query[8], "delete from Tb_Views where id_eventbrick=%s",id_eventbrick);
1061  sprintf(query[9], "delete from Tb_Zones where id_eventbrick=%s",id_eventbrick);
1062  sprintf(query[10],"delete from tb_proc_operations where id_eventbrick=%s and id_calibration_operation in (select id_processoperation from tb_plate_calibrations where id_eventbrick=%s)",id_eventbrick,id_eventbrick);
1063  sprintf(query[11],"delete from Tb_Plate_calibrations where id_eventbrick=%s",id_eventbrick);
1064  sprintf(query[12],"delete from Tb_Proc_operations where id_eventbrick=%s",id_eventbrick);
1065  sprintf(query[13],"delete from Tb_Plates where id_eventbrick=%s",id_eventbrick);
1066  sprintf(query[14],"delete from Tb_TemplateMarkSets where id_eventbrick=%s",id_eventbrick);
1067  sprintf(query[15],"delete from Tb_Eventbricks where id=%s",id_eventbrick);
1068 
1069  for (int i=0;i<16;i++) {
1070  fStmt->setSQL(query[i]);
1071  Log(2,"DeleteBrick","execute sql query: %s ...",query[i]);
1072  fStmt->execute();
1073  }
1074  Query(commit);
1075 
1076  Log(2,"DeleteBrick","Brick deleted");
1077  return 0;
1078 
1079  } catch (SQLException &oraex) {
1080  Error("TOracleServerE2W", "DeleteBrick; failed: (error: %s)", (oraex.getMessage()).c_str());
1081  }
1082 
1083  return 1;
1084 }

◆ DeleteBrickSpace()

Int_t TOracleServerE2W::DeleteBrickSpace ( char *  id_brick)
1088 {
1089  // Delete a brick space related to a brick from the DB
1090  // Procedure involved: PC_REMOVE_BRICK_SPACE
1091  // Details: CALL query and then a COMMIT query
1092 
1093  char query[2048];
1094  char commit[11]="commit";
1095 
1096  try{
1097  if (!fStmt)
1098  fStmt = fConn->createStatement();
1099 
1100  sprintf(query,"call pc_remove_brick_space(%s,'OPERA NA BK01')",id_brick);
1101 
1102  fStmt->setSQL(query);
1103  Log(2,"DeleteBrickSpace","execute sql query: %s ...",query);
1104  fStmt->execute();
1105 
1106  Query(commit);
1107 
1108  Log(2,"DeleteBrickSpace","BrickSpace deleted");
1109  return 0;
1110 
1111  } catch (SQLException &oraex) {
1112  Error("TOracleServerE2W", "DeleteBrickSpace; failed: (error: %s)", (oraex.getMessage()).c_str());
1113  }
1114 
1115  return 1;
1116 }

◆ DeleteOperation()

Int_t TOracleServerE2W::DeleteOperation ( char *  id_brick,
char *  id_process_operation 
)
1120 {
1121  // Delete all informations related to a process operation of a brick from the DB
1122  // Tables involved: ... a lot, look at the code...
1123  // Details: DELETE queries and then a COMMIT query
1124 
1125  char query[13][2048];
1126  char commit[11]="commit";
1127 
1128  try{
1129  if (!fStmt)
1130  fStmt = fConn->createStatement();
1131 
1132  sprintf(query[0], "delete from Tb_Scanback_Predictions where (id_path) in (select id from tb_scanback_paths where id_processoperation=%s) and id_eventbrick=%s",id_process_operation,id_brick);
1133  sprintf(query[1], "delete from Tb_B_CSCANDS_SBPATHS where id_scanback_procopid=%s and id_eventbrick=%s",id_process_operation,id_brick);
1134  sprintf(query[2], "delete from Tb_Scanback_Paths where id_processoperation=%s and id_eventbrick=%s",id_process_operation,id_brick);
1135  sprintf(query[3], "delete from Tb_MipBasetracks where (id_zone) in (select id from tb_zones where (id_processoperation) in (select id from tb_proc_operations where id_parent_operation=%s) and id_eventbrick=%s) and id_eventbrick=%s",id_process_operation,id_brick,id_brick);
1136  sprintf(query[4], "delete from Tb_MipMicrotracks where (id_zone) in (select id from tb_zones where (id_processoperation) in (select id from tb_proc_operations where id_parent_operation=%s) and id_eventbrick=%s) and id_eventbrick=%s",id_process_operation,id_brick,id_brick);
1137  sprintf(query[5], "delete from tb_views where (id_zone) in (select id from tb_zones where (id_processoperation) in (select id from tb_proc_operations where id_parent_operation=%s) and id_eventbrick=%s) and id_eventbrick=%s",id_process_operation,id_brick,id_brick);
1138  sprintf(query[6], "delete from tb_b_sbpaths_volumes where id_eventbrick=%s and id_volumescan_procopid=%s",id_brick,id_process_operation);
1139  sprintf(query[7], "delete from tb_volume_slices where (id_zone) in (select id from tb_zones where (id_processoperation) in (select id from tb_proc_operations where id_parent_operation=%s))",id_process_operation);
1140  sprintf(query[8], "delete from tb_zones where (id_processoperation) in (select id from tb_proc_operations where id_parent_operation=%s) and id_eventbrick=%s",id_process_operation,id_brick);
1141  sprintf(query[9], "delete from tb_volumes where id_processoperation=%s",id_process_operation);
1142  sprintf(query[10], "delete from tb_plate_calibrations where (id_processoperation) in (select id from tb_proc_operations where id_parent_operation=%s)",id_process_operation);
1143  sprintf(query[11],"delete from tb_proc_operations where id_parent_operation=%s",id_process_operation);
1144  sprintf(query[12],"delete from tb_proc_operations where id=%s",id_process_operation);
1145 
1146  for (int i=0;i<13;i++) {
1147  fStmt->setSQL(query[i]);
1148  Log(2,"DeleteOperation","execute sql query: %s ...",query[i]);
1149  fStmt->execute();
1150  }
1151  Query(commit);
1152 
1153  Log(2,"DeleteOperation","Operation deleted");
1154  return 0;
1155 
1156  } catch (SQLException &oraex) {
1157  Error("TOracleServerE2W", "DeleteOperation; failed: (error: %s)", (oraex.getMessage()).c_str());
1158  }
1159 
1160  return 1;
1161 }

◆ DeletePlateOperation()

Int_t TOracleServerE2W::DeletePlateOperation ( char *  id_brick,
char *  id_process_operation,
char *  id_plate 
)
1166 {
1167  // Delete all informations related to a plate of a process operation of a brick from the DB
1168  // Tables involved: ... a lot, look at the code...
1169  // Details: DELETE queries and then a COMMIT query
1170 
1171  char query[7][2048];
1172  char commit[11]="commit";
1173 
1174  try{
1175  if (!fStmt)
1176  fStmt = fConn->createStatement();
1177 
1178  sprintf(query[0], "delete from Tb_Scanback_Predictions where (id_path) in (select id from tb_scanback_paths where id_processoperation=%s) and id_eventbrick=%s and id_plate=%s",id_process_operation,id_brick,id_plate);
1179  sprintf(query[1], "delete from Tb_MipBasetracks where (id_zone) in (select id from tb_zones where (id_processoperation) in (select id from tb_proc_operations where id_parent_operation=%s and id_plate=%s)) and id_eventbrick=%s",id_process_operation,id_plate,id_brick);
1180  sprintf(query[2], "delete from Tb_MipMicrotracks where (id_zone) in (select id from tb_zones where (id_processoperation) in (select id from tb_proc_operations where id_parent_operation=%s and id_plate=%s)) and id_eventbrick=%s",id_process_operation,id_plate,id_brick);
1181  sprintf(query[3], "delete from tb_views where (id_zone) in (select id from tb_zones where (id_processoperation) in (select id from tb_proc_operations where id_parent_operation=%s and id_plate=%s))",id_process_operation,id_plate);
1182  sprintf(query[4], "delete from tb_zones where (id_processoperation) in (select id from tb_proc_operations where id_parent_operation=%s and id_plate=%s)",id_process_operation,id_plate);
1183  sprintf(query[5], "delete from tb_plate_calibrations where (id_processoperation) in (select id from tb_proc_operations where id_parent_operation=%s and id_plate=%s)",id_process_operation,id_plate);
1184  sprintf(query[6], "delete from tb_proc_operations where id_parent_operation=%s and id_plate=%s",id_process_operation,id_plate);
1185 
1186  for (int i=0;i<7;i++) {
1187  fStmt->setSQL(query[i]);
1188  Log(2,"DeletePlateOperation","execute sql query: %s ...",query[i]);
1189  fStmt->execute();
1190  }
1191  Query(commit);
1192 
1193  Log(2,"DeletePlateOperation","Plate operation deleted");
1194  return 0;
1195 
1196  } catch (SQLException &oraex) {
1197  Error("TOracleServerE2W", "DeletePlateOperation; failed: (error: %s)", (oraex.getMessage()).c_str());
1198  }
1199 
1200  return 1;
1201 }

◆ NviewsPerArea()

Int_t TOracleServerE2W::NviewsPerArea ( )
inline
56 {return eNviewsPerArea;};

Member Data Documentation

◆ eNviewsPerArea

Int_t TOracleServerE2W::eNviewsPerArea
private

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