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 :
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:21
Int_t N() const
Definition: EdbPattern.h:86
EdbSegP * GetSegment(int i) const
Definition: EdbPattern.h:66
TSQLResult * Query(const char *sql)
Definition: TOracleServer.cxx:97
s
Definition: check_shower.C:55

◆ 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:147
Int_t Aid(int i) const
Definition: EdbSegP.h:169
Int_t AddBaseTrack(char *database)
Definition: TOracleServerE2W.cxx:370
gEDBDEBUGLEVEL
Definition: energy.C:7
EdbSegP * s1
Definition: tlg2couples.C:29
EdbSegP * s2
Definition: tlg2couples.C:30

◆ 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:38
virtual void Transform(const EdbAffine2D *aff)
Definition: EdbSegment.cxx:59
virtual Float_t GetTx() const
Definition: EdbSegment.h:41
virtual Float_t GetY0() const
Definition: EdbSegment.h:39
virtual Float_t GetTy() const
Definition: EdbSegment.h:42
segment of the track
Definition: EdbSegment.h:63
Int_t GetVolume() const
Definition: EdbSegment.h:91
Int_t GetPuls() const
Definition: EdbSegment.h:90
float GetSigmaX() const
Definition: EdbSegment.h:86
Float_t GetZ4() const
Definition: EdbView.h:113
EdbAffine2D const * GetAffine() const
Definition: EdbView.h:72
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
EdbSegment * GetSegment(int i) const
Definition: EdbView.h:219
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
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
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}
EdbView * GetView() const
Definition: EdbRun.h:110
int GetEntries() const
Definition: EdbRun.h:136
EdbView * GetEntry(int entry, int ih=1, int icl=0, int iseg=1, int itr=0, int ifr=0)
Definition: EdbRun.cxx:462
Base scanning data object: entry into Run tree.
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: