FEDRA emulsion software from the OPERA Collaboration
scan2db.cpp File Reference
#include <stdlib.h>
#include <string.h>
#include <iostream>
#include <TEnv.h>
#include <TString.h>
#include <TSystem.h>
#include "TOracleServerE2WX.h"
#include "EdbScanProc.h"
#include "EdbLog.h"
Include dependency graph for scan2db.cpp:

Functions

int AddBrick (EdbScan2DB &s2d, int BRICK, const char *dir, TEnv &cenv)
 
void CheckBrick (TEnv &cenv, int brick)
 
bool InitDB (EdbScan2DB &s2d, TEnv &cenv, int do_commit)
 
bool LoadEventBrick (TEnv &cenv, int do_commit, const char *file)
 
int main (int argc, char *argv[])
 
void MakeSets (TEnv &cenv, const char *file)
 
int ParseFileName (const char *filename, ULong64_t &brick, ULong64_t &event)
 
int ParseFileName (const char *filename, ULong64_t &brick, ULong64_t &event, TString &dir)
 
void print_help_message ()
 
void PublicateBrick (TEnv &cenv, int brick)
 
void PublicateBrick (TEnv &cenv, Int_t brick)
 
void set_default (TEnv &cenv)
 
void set_default_NA (TEnv &cenv)
 

Function Documentation

◆ AddBrick()

int AddBrick ( EdbScan2DB s2d,
int  BRICK,
const char *  dir,
TEnv &  cenv 
)

◆ CheckBrick()

void CheckBrick ( TEnv &  cenv,
int  brick 
)
211 {
212  EdbScan2DB s2d;
213  if( InitDB( s2d, cenv, 0))
214  {
215  s2d.eDB->PrintBrickInfoFull(brick,0);
216  }
217 }
BRICK brick
Definition: RecDispMC.C:103
Definition: TOracleServerE2WX.h:98
TOracleServerE2WX * eDB
Definition: TOracleServerE2WX.h:102
void PrintBrickInfoFull(Long_t id_eventbrick, int level)
Definition: TOracleServerE2.cxx:1364
TEnv cenv("emrec")
bool InitDB(EdbScan2DB &s2d, TEnv &cenv, int do_commit)
Definition: scan2db.cpp:408

◆ InitDB()

bool InitDB ( EdbScan2DB s2d,
TEnv &  cenv,
int  do_commit 
)
409 {
410  const char *dbname = cenv.GetValue("scan2db.dbname" , "connection_string");
411  const char *username = cenv.GetValue("scan2db.username" , "username");
412  const char *password = cenv.GetValue("scan2db.password" , "password");
413  const char *rdb = cenv.GetValue("scan2db.rdb" , "");
414 
415  Log(2,"InitDB","Init database \t\t%s%s", dbname, rdb);
416  if( s2d.InitDB( dbname, username, password) )
417  {
418  s2d.eDB->eLab = cenv.GetValue("scan2db.labName" , "NAPOLI");
419  s2d.eDB->eLa = cenv.GetValue("scan2db.labN" , "NA");
420  s2d.eDB->SetCommit(do_commit);
421  return 1;
422  }
423  return 0;
424 }
bool Log(int level, const char *location, const char *fmt,...)
Definition: EdbLog.cxx:75
int InitDB(const char *conn, const char *user, const char *pwd)
Definition: TOracleServerE2WX.cxx:1025
TString eLa
as "NAPOLI"
Definition: TOracleServerE2WX.h:24
TString eLab
Definition: TOracleServerE2WX.h:23
void SetCommit(bool i)
Definition: TOracleServerE2WX.h:33

◆ LoadEventBrick()

bool LoadEventBrick ( TEnv &  cenv,
int  do_commit,
const char *  file 
)
314 {
315  time_t ti = time(NULL);
316  EdbScan2DB s2d;
317  if( !InitDB( s2d, cenv, do_commit)) return 0;
318 
319  if( cenv.GetValue("scan2db.TestLoad",0) ) {
320  s2d.eDB->SetTestLoad( cenv.GetValue("scan2db.NTestLoad",0));
321  Log(1,"LoadEventBrick","TestLoad mode followed by ROLLBACK is active! NTestLoad = %d",
322  cenv.GetValue("scan2db.NTestLoad",0) );
323  }
324 
325  ULong64_t br=0, ev=0;
326  TString dir;
327  ParseFileName( fname, br, ev , dir );
328  TEnv cardenv("eventscan2db");
329  if( cardenv.ReadFile( fname ,kEnvLocal) <0 )
330  {
331  Log(1,"LoadEventBrick","card file %s not found! exit", fname);
332  return false;
333  }
334  printf("\n--------------------------------------------------------------------\n");
335  printf( "----------------------- scan2db ------------------------------------\n");
336  printf( "Process file: %s\n",fname);
337  printf( "--------------------------------------------------------------------\n");
338  cardenv.Print();
339  printf( "--------------------------------------------------------------------\n");
340 
341  int id = br>1000000? br: 1000000+br;
342  s2d.eBrick = br;
343  s2d.eEventBrick = id;
344  s2d.eEvent = ev;
345  s2d.eIsBlackCS = cardenv.GetValue("scan2db.BlackCS", 0);
346 
347  s2d.eX_marks= cardenv.GetValue("scan2db.X_MARKS" , 1);
348  // 2=in case lateral X-rays marks, followed by a calibration scan;
349  // 1=in case lateral X-rays marks only;
350  // 0=calibration scan only
351 
352  s2d.eID_SET = cenv.GetValue("scan2db.BS_ID" , "'OPERA NA SET 01'");
353  sscanf( cenv.GetValue("scan2db.HeaderProgramsettings", "0000000000000000"),"%lld", &(s2d.eHeaderProgramsettings));
354  sscanf( cenv.GetValue("scan2db.CalibrationProgramsettings", "0000000000000000"),"%lld", &(s2d.eCalibrationProgramsettings));
355  sscanf( cenv.GetValue("scan2db.PredictionProgramsettings", "0000000000000000"),"%lld", &(s2d.ePredictionProgramsettings));
356  sscanf( cenv.GetValue("scan2db.VolumeProgramsettings", "0000000000000000"),"%lld", &(s2d.eVolumeProgramsettings));
357  sscanf( cenv.GetValue("scan2db.IdMachine", "0000000000000000"),"%lld", &(s2d.eIdMachine));
358  sscanf( cenv.GetValue("scan2db.IdRequester", "0000000000000000"),"%lld", &(s2d.eIdRequester));
359 
360  if(gEDBDEBUGLEVEL>0) s2d.Print();
361 
363  sproc.eProcDirClient=dir;
364 
365  s2d.AddBrick( sproc );
366 
367  if(cardenv.Lookup("scan2db.CALIBRATION") && (s2d.eDB->GetDBErrors()==0 || s2d.eDB->TestLoad()))
368  {
369  printf( "scan2db CALIBRATION ......\n");
370  time_t ti_c = time(NULL);
371  EdbID idcal = cardenv.GetValue("scan2db.CALIBRATION", "0.0.0.0");
372  s2d.eWriteRawCalibrationData = cardenv.GetValue("scan2db.CALIBRATION.raw", 0);
373  s2d.LoadCalibration(sproc, idcal);
374  time_t tf_c = time(NULL);
375  printf( "scan2db CALIBRATION finished, Elapsed time = %ld s\n", tf_c-ti_c);
376  }
377  if(cardenv.Lookup("scan2db.PREDICTION") && (s2d.eDB->GetDBErrors()==0 || s2d.eDB->TestLoad()))
378  {
379  printf( "scan2db PREDICTION ......\n");
380  time_t ti_p = time(NULL);
381  EdbID idpred = cardenv.GetValue("scan2db.PREDICTION", "0.0.0.0");
382  s2d.LoadPrediction(sproc, idpred);
383  time_t tf_p = time(NULL);
384  printf( "scan2db PREDICTION finished, Elapsed time = %ld s\n", tf_p-ti_p);
385  }
386  if(cardenv.Lookup("scan2db.VOLUME") && (s2d.eDB->GetDBErrors()==0 || s2d.eDB->TestLoad()))
387  {
388  printf( "scan2db VOLUME ......\n");
389  time_t ti_v = time(NULL);
390  EdbID idvol = cardenv.GetValue("scan2db.VOLUME" , "0.0.0.0");
391  EdbID idpred = cardenv.GetValue("scan2db.PREDICTION" , "0.0.0.0");
392  s2d.eIDPATH = cardenv.GetValue("scan2db.VOLUME.IDPATH", -1);
393  s2d.LoadVolume(sproc, idvol, idpred);
394  time_t tf_v = time(NULL);
395  printf( "scan2db VOLUME finished, Elapsed time = %ld s\n", tf_v-ti_v);
396  }
397 
398  s2d.eDB->FinishTransaction();
399 
400  time_t tf = time(NULL);
401  fprintf(stdout,"LoadEventBrick completed\n");
402  fprintf(stdout,"Elapsed time = %ld seconds\n",tf-ti);
403  return 1;
404 }
EdbTrackP * ti[10]
Definition: RecDispMC_Profiles.C:54
FILE * stdout
Definition: EdbID.h:7
ULong64_t eCalibrationProgramsettings
Definition: TOracleServerE2WX.h:113
void AddBrick(EdbScanProc &sproc)
Definition: TOracleServerE2WX.cxx:1578
Bool_t eWriteRawCalibrationData
Definition: TOracleServerE2WX.h:124
ULong64_t eEvent
Definition: TOracleServerE2WX.h:106
Int_t eX_marks
Definition: TOracleServerE2WX.h:121
ULong64_t eHeaderProgramsettings
Definition: TOracleServerE2WX.h:112
void Print()
Definition: TOracleServerE2WX.cxx:999
ULong64_t eIdRequester
Definition: TOracleServerE2WX.h:111
TString eID_SET
Definition: TOracleServerE2WX.h:109
ULong64_t eBrick
Definition: TOracleServerE2WX.h:104
Int_t eIsBlackCS
Definition: TOracleServerE2WX.h:107
ULong64_t eIdMachine
Definition: TOracleServerE2WX.h:110
ULong64_t eEventBrick
Definition: TOracleServerE2WX.h:105
ULong64_t eVolumeProgramsettings
Definition: TOracleServerE2WX.h:115
void LoadCalibration(EdbScanProc &sproc, EdbID edbid)
Definition: TOracleServerE2WX.cxx:1417
void LoadVolume(EdbScanProc &sproc, EdbID edbid, EdbID idstop)
Definition: TOracleServerE2WX.cxx:1473
Int_t eIDPATH
Definition: TOracleServerE2WX.h:108
void LoadPrediction(EdbScanProc &sproc, EdbID edbid)
Definition: TOracleServerE2WX.cxx:1102
ULong64_t ePredictionProgramsettings
Definition: TOracleServerE2WX.h:114
Definition: EdbScanProc.h:12
TString eProcDirClient
Definition: EdbScanProc.h:14
void FinishTransaction()
Definition: TOracleServerE2WX.cxx:45
int GetDBErrors()
Definition: TOracleServerE2WX.h:31
void SetTestLoad(int n)
Definition: TOracleServerE2WX.h:32
Bool_t TestLoad()
Definition: TOracleServerE2WX.h:34
EdbScanProc * sproc
Definition: comptonmap.cpp:29
gEDBDEBUGLEVEL
Definition: energy.C:7
const char * fname
Definition: mc2raw.cxx:41
UInt_t id
Definition: tlg2pattern.C:118
#define NULL
Definition: nidaqmx.h:84
int ParseFileName(const char *filename, ULong64_t &brick, ULong64_t &event)
Definition: scan2db.cpp:427

◆ main()

int main ( int  argc,
char *  argv[] 
)
126 {
127  if (argc < 2) { print_help_message(); return 0; }
128 
129  TEnv cenv("scan2db");
130  set_default(cenv);
131  cenv.ReadFile( "scan2db.rootrc" ,kEnvLocal);
132 
133  gEDBDEBUGLEVEL = cenv.GetValue("scan2db.EdbDebugLevel" , 1);
134 
135  int do_checkbrick=0;
136  int brick=0;
137  char *dir=0;
138  char *lab=0;
139 
140  int do_addeventbrick=0;
141  char *fname=0;
142 
143  char *listfile=0;
144  int do_commit=0;
145  int do_makesets=0;
146  int do_publicate=0;
147 
148  for(int i=1; i<argc; i++ ) {
149 
150  char *key = argv[i];
151 
152  if(!strncmp(key,"-file=",6))
153  {
154  do_addeventbrick=1;
155  if(strlen(key)>6) fname=key+6;
156  }
157  else if(!strncmp(key,"-checkbrick=",12))
158  {
159  if(strlen(key)>12) {
160  brick = atoi(key+12);
161  do_checkbrick=1;
162  }
163  }
164  else if(!strncmp(key,"-commit",7))
165  {
166  do_commit=1;
167  }
168  else if(!strncmp(key,"-publicate=",11))
169  {
170  if(strlen(key)>11) {
171  brick = atoi(key+11);
172  do_publicate=1;
173  }
174  }
175  else if(!strncmp(key,"-makesets",9))
176  {
177  do_makesets=1;
178  }
179  else if(!strncmp(key,"-v=",3))
180  {
181  gEDBDEBUGLEVEL = atoi(key+3);
182  }
183  }
184 
185  cenv.WriteFile("scan2db.save.rootrc");
186 
187  if(do_makesets)
188  {
189  MakeSets(cenv, fname);
190  }
191  else
192  {
193  if(do_addeventbrick)
194  {
195  LoadEventBrick( cenv, do_commit, fname );
196  }
197  if(do_checkbrick)
198  {
199  CheckBrick(cenv, brick );
200  }
201  if(do_publicate)
202  {
204  }
205  }
206  return 1;
207 }
void set_default(TEnv &cenv)
Definition: scan2db.cpp:88
void CheckBrick(TEnv &cenv, int brick)
Definition: scan2db.cpp:210
void MakeSets(TEnv &cenv, const char *file)
Definition: scan2db.cpp:234
void print_help_message()
Definition: scan2db.cpp:25
void PublicateBrick(TEnv &cenv, Int_t brick)
bool LoadEventBrick(TEnv &cenv, int do_commit, const char *file)
Definition: scan2db.cpp:313

◆ MakeSets()

void MakeSets ( TEnv &  cenv,
const char *  file 
)
235 {
236  TEnv cardenv("eventscan2db");
237  if( cardenv.ReadFile( fname ,kEnvLocal) <0 )
238  {
239  Log(1,"MakeSets","card file %s not found! exit", fname);
240  return;
241  }
242  ULong64_t br=0, ev=0;
243  TString dir;
244  ParseFileName( fname, br, ev , dir );
246  sproc.eProcDirClient=dir;
247  int from_plate = 57;
248  int to_plate = 1;
249  float z0 = 0;
250  float dz = -1300;
251  float dzbase = 210;
252 
253  if(cardenv.Lookup("scan2db.CALIBRATION"))
254  {
255  EdbID id = cardenv.GetValue("scan2db.CALIBRATION", "0.0.0.0");
256  if(id.eBrick != br)
257  Log(1,"MakeSets","ERROR! Calibration set id: %s is not consistent with path %s", id.AsString(), fname);
258  else
259  {
260  EdbScanSet sc(id);
261  sc.MakeNominalSet(id,from_plate, to_plate, z0, dz, 1, dzbase);
262  sproc.MakeScannedIDList( id, sc, from_plate, to_plate, "raw.root");
263  sproc.WriteScanSet(id,sc);
265  sproc.UpdateSetWithAff(id,id);
266  if(gEDBDEBUGLEVEL>1) {
268  ss->Print();
269  }
270  }
271  }
272  if(cardenv.Lookup("scan2db.PREDICTION"))
273  {
274  EdbID id = cardenv.GetValue("scan2db.PREDICTION", "0.0.0.0");
275  if(id.eBrick != br)
276  Log(1,"MakeSets","ERROR! Prediction set id: %s is not consistent with path %s", id.AsString(), fname);
277  else
278  {
279  EdbScanSet sc(id);
280  sc.MakeNominalSet(id,from_plate, to_plate, z0, dz, 1, dzbase);
281  sproc.MakeScannedIDList( id, sc, from_plate, to_plate, "sbt.root");
282  sproc.WriteScanSet(id,sc);
284  sproc.UpdateSetWithAff(id,id);
285  if(gEDBDEBUGLEVEL>1) {
287  ss->Print();
288  }
289  }
290  }
291  if(cardenv.Lookup("scan2db.VOLUME"))
292  {
293  EdbID id = cardenv.GetValue("scan2db.VOLUME", "0.0.0.0");
294  if(id.eBrick != br)
295  Log(1,"MakeSets","ERROR! Volume set id: %s is not consistent with path %s", id.AsString(), fname);
296  else
297  {
298  EdbScanSet sc(id);
299  sc.MakeNominalSet(id,from_plate, to_plate, z0, dz, 1, dzbase);
300  sproc.MakeScannedIDList( id, sc, from_plate, to_plate, "raw.root");
301  sproc.WriteScanSet(id,sc);
303  sproc.UpdateSetWithAff(id,id);
304  if(gEDBDEBUGLEVEL>1) {
306  ss->Print();
307  }
308  }
309  }
310 }
brick z0
Definition: RecDispMC.C:106
brick dz
Definition: RecDispMC.C:107
void UpdateSetWithAff(EdbID idset, EdbAffine2D aff)
Definition: EdbScanProc.cxx:2796
int WriteScanSet(EdbID id, EdbScanSet &ss)
Definition: EdbScanProc.cxx:1467
void UpdateSetWithPlatePar(EdbID id)
Definition: EdbScanProc.cxx:2831
void MakeScannedIDList(EdbID id0, EdbScanSet &sc, int pl_from, int pl_to, const char *suffix)
Definition: EdbScanProc.cxx:686
EdbScanSet * ReadScanSet(EdbID id)
Definition: EdbScanProc.cxx:1521
Definition: EdbScanSet.h:11
ss
Definition: energy.C:62

◆ ParseFileName() [1/2]

int ParseFileName ( const char *  filename,
ULong64_t &  brick,
ULong64_t &  event 
)
428 {
429  if( gSystem->AccessPathName(fname) ) {
430  Log(1,"fb2db::ParseFileName","ERROR: can not access file: %s", fname);
431  return 0;
432  }
433  if(2 != sscanf(gSystem->BaseName(fname),"b%lld_e%lld.scan2db.rootrc",&brickid,&eventid)) {
434  Log(1,"Error parsing filename (expected bXXXX_eXXXXX.scan2db.rootrc): %s", fname);
435  return 0;
436  }
437  return 1;
438 }

◆ ParseFileName() [2/2]

int ParseFileName ( const char *  filename,
ULong64_t &  brick,
ULong64_t &  event,
TString &  dir 
)
442 {
443  if(ParseFileName( fname, brickid, eventid) ) {
444  const char *dir1 = gSystem->DirName(fname);
445  if(!dir1) return 0;
446  const char *dir = gSystem->DirName(dir1);
447  if(!dir) return 0;
448  if( strlen(dir1) < 2 ) return 0;
449  onlinedir=dir;
450  return 1;
451  }
452  return 0;
453 }

◆ print_help_message()

void print_help_message ( )
26 {
27  cout<< "\nUsage: \n\t scan2db -file=bXXX_eYYY.scan2db.rootrc [-commit -v=V]\n";
28  cout<< "\t\t Assumed that feedbackfile name is like bBBBB_eEEEE.feedback as b010234_e11293015645.feedback\n";
29  cout<< "\t\t brick id and event id extracted from the file name are used for data insertion into db\n";
30 
31  cout<< "\n\t scan2db -file=bXXX_eYYY.scan2db.rootrc -makesets \n";
32  cout<< "\t\t make *.set.root files for the involved datasets (use default OPERA geometry settings)\n";
33 
34  cout<< "\n\t scan2db -checkbrick=BRICK \n";
35  cout<< "\t\t check if the brick structure was already loaded";
36 
37  cout<< "\n\t scan2db -publicate=BRICK \n";
38  cout<< "\t\t replicate brick in opfra";
39 
40  cout<< "\n\n\t-----------------------------------------------------------------------------------------";
41  cout<< "\n\t By default the application is started in test mode and does not commit transactions";
42  cout<< "\n\t TO LOAD DATA USE -commit OPTION";
43  cout<< "\n\t-------------------------------------------------------------------------------------------";
44 
45  cout<< "\n\n\t If the input parameters file (scan2db.rootrc) is not present in the current dir - the default";
46  cout<< "\n\t parameters used. After the execution them are saved into scan2db.save.rootrc file\n";
47 
48  cout<< "\n\t Options: \n";
49  cout<< "\t\t -v=V verbosity level (0-4) \n";
50 
51  cout <<"\nExample of b010234_e11293015645.feedback file:\n";
52  cout <<"\
53 ##-------------------------------------------------------------\n\
54 ## - EventBrick operations and datasets definitions\n\
55 ## - Used by scan2db as the input cards\n\
56 ## - To be placed into the brick folder as\n\
57 ## \"bXXXXXX_eYYYYYYYYYYY.scan2db.rootrc\" (b102143_e12186044883.scan2db.rootrc)\n\
58 ## - All datasets should be correctly assembled using\n\
59 ## the \"makescanset\" application before scan2db starts (*.set.root)\n\
60 ##\n\
61 ## scan2db.X_MARKS:\n\
62 ## 2=in case lateral X-rays marks, followed by a calibration scan;\n\
63 ## 1=in case lateral X-rays marks only;\n\
64 ## 0=calibration scan only\n\
65 ##\n\
66 ## scan2db.BlackCS:\n\
67 ## 1 - fill TB_SCANBACK_PATHS only\n\
68 ## 0 - try to fill also TB_B_CSCANDS_SBPATHS\n\
69 ##\n\
70 ## scan2db.VOLUME.IDPATH:\n\
71 ## <0 - (default) do not connect path and volume (table TB_B_SBPATHS_VOLUMES). This is useful when volume\n\
72 ## was scanned because of a vertex hunting and not because it's related to a SB track\n\
73 ## >=0 - is prediction path id to be connected\n\
74 ##\n\
75 ##-------------------------------------------------------------\n\
76 scan2db.X_MARKS: 1\n\
77 scan2db.BlackCS: 1\n\
78 scan2db.CALIBRATION: 76735.0.1.1000\n\
79 scan2db.CALIBRATION.raw: 0\n\
80 scan2db.PREDICTION: 76735.0.1.100\n\
81 scan2db.VOLUME: 76735.0.1.1000\n\
82 scan2db.VOLUME.IDPATH: 1\n";
83 
84  cout<<endl;
85 }

◆ PublicateBrick() [1/2]

void PublicateBrick ( TEnv &  cenv,
int  brick 
)
221 {
222  const char *labN = cenv.GetValue("scan2db.labN" , " ");
223  Int_t eventbrick = brick>1000000? brick: 1000000+brick;
224  EdbScan2DB s2d;
225  if( InitDB( s2d, cenv, 1) )
226  {
227  s2d.eDB->MyQuery(
228  Form("call operapub.xp_replicate_%s(0,%d)",labN,eventbrick)
229  );
230  }
231 }
Int_t MyQuery(const char *sqlquery)
Definition: TOracleServerE2WX.cxx:57

◆ PublicateBrick() [2/2]

void PublicateBrick ( TEnv &  cenv,
Int_t  brick 
)

◆ set_default()

void set_default ( TEnv &  cenv)
89 {
90  cenv.SetValue("scan2db.dbname" , "oracle://mysrv/MYDB");
91  cenv.SetValue("scan2db.username" , "username");
92  cenv.SetValue("scan2db.password" , "password");
93  cenv.SetValue("scan2db.rdb" , "");
94  cenv.SetValue("scan2db.X_MARKS" , 1);
95  cenv.SetValue("scan2db.labName" , "LAB");
96  cenv.SetValue("scan2db.labN" , "LA");
97  cenv.SetValue("scan2db.BS_ID" , "'OPERA LA SET XX'");
98  cenv.SetValue("scan2db.IdMachine" , "0000000000000000");
99  cenv.SetValue("scan2db.IdRequester" , "0000000000000000");
100  cenv.SetValue("scan2db.HeaderProgramsettings" , "0000000000000000");
101  cenv.SetValue("scan2db.CalibrationProgramsettings" , "0000000000000000");
102  cenv.SetValue("scan2db.PredictionProgramsettings" , "0000000000000000");
103  cenv.SetValue("scan2db.VolumeProgramsettings" , "0000000000000000");
104  cenv.SetValue("scan2db.FeedbackProgramsettings" , "0000000000000000");
105  cenv.SetValue("scan2db.TestLoad" , 0);
106  cenv.SetValue("scan2db.TestLoadN" , 10);
107  cenv.SetValue("scan2db.EdbDebugLevel" , 1);
108 }

◆ set_default_NA()

void set_default_NA ( TEnv &  cenv)
112 {
113  cenv.SetValue("scan2db.labName" , "NAPOLI");
114  cenv.SetValue("scan2db.labN" , "NA");
115  cenv.SetValue("scan2db.BS_ID" , "'OPERA NA SET 01'");
116  cenv.SetValue("scan2db.IdMachine" , "6000000000010002");
117  cenv.SetValue("scan2db.IdRequester" , "6000000000100379");
118  cenv.SetValue("scan2db.HeaderProgramsettings" , "6000000000700006");
119  cenv.SetValue("scan2db.CalibrationProgramsettings" , "6000000000700004");
120  cenv.SetValue("scan2db.PredictionProgramsettings" , "6000000000700005");
121  cenv.SetValue("scan2db.VolumeProgramsettings" , "6000000000100374");
122 }