#ifndef SQL_CRSR
# define SQL_CRSR
struct sql_cursor
{
unsigned int curocn;
void *ptr1;
void *ptr2;
unsigned int magic;
};
typedef struct sql_cursor sql_cursor;
typedef struct sql_cursor SQL_CURSOR;
#endif /* SQL_CRSR */
typedef void * sql_context;
typedef void * SQL_CONTEXT;
struct sqltvn
{
unsigned char *tvnvsn;
unsigned short tvnvsnl;
unsigned char *tvnnm;
unsigned short tvnnml;
unsigned char *tvnsnm;
unsigned short tvnsnml;
};
typedef struct sqltvn sqltvn;
struct sqladts
{
unsigned int adtvsn;
unsigned short adtmode;
unsigned short adtnum;
sqltvn adttvn[1];
};
typedef struct sqladts sqladts;
static struct sqladts sqladt = {
1,1,0,
};
struct sqltdss
{
unsigned int tdsvsn;
unsigned short tdsnum;
unsigned char *tdsval[1];
};
typedef struct sqltdss sqltdss;
static struct sqltdss sqltds =
{
1,
0,
};
struct sqlcxp
{
unsigned short fillen;
char filnam[17];
};
static const struct sqlcxp sqlfpn =
{
16,
"htofparora2io.pc"
};
static unsigned int sqlctx = 4980515;
static struct sqlexd {
unsigned long sqlvsn;
unsigned int arrsiz;
unsigned int iters;
unsigned int offset;
unsigned short selerr;
unsigned short sqlety;
unsigned int occurs;
const short *cud;
unsigned char *sqlest;
const char *stmt;
sqladts *sqladtp;
sqltdss *sqltdsp;
unsigned char **sqphsv;
unsigned long *sqphsl;
int *sqphss;
short **sqpind;
int *sqpins;
unsigned long *sqparm;
unsigned long **sqparc;
unsigned short *sqpadto;
unsigned short *sqptdso;
unsigned int sqlcmax;
unsigned int sqlcmin;
unsigned int sqlcincr;
unsigned int sqlctimeout;
unsigned int sqlcnowait;
int sqfoff;
unsigned int sqcmod;
unsigned int sqfmod;
unsigned int sqlpfmem;
unsigned char *sqhstv[17];
unsigned long sqhstl[17];
int sqhsts[17];
short *sqindv[17];
int sqinds[17];
unsigned long sqharm[17];
unsigned long *sqharc[17];
unsigned short sqadto[17];
unsigned short sqtdso[17];
} sqlstm = {13,17};
extern "C" {
void sqlcxt (void **, unsigned int *,
struct sqlexd *, const struct sqlcxp *);
void sqlcx2t(void **, unsigned int *,
struct sqlexd *, const struct sqlcxp *);
void sqlbuft(void **, char *);
void sqlgs2t(void **, char *);
void sqlorat(void **, unsigned int *, void *);
}
static const int IAPSUCC = 0;
static const int IAPFAIL = 1403;
static const int IAPFTL = 535;
extern "C" { void sqliem(unsigned char *, signed int *); }
typedef struct { unsigned short len; unsigned char arr[1]; } VARCHAR;
typedef struct { unsigned short len; unsigned char arr[1]; } varchar;
static const short sqlcud0[] =
{13,4130,1,0,0,
5,0,0,1,167,0,4,117,0,0,4,1,0,1,0,2,3,0,0,2,4,0,0,2,4,0,0,1,3,0,0,
36,0,0,2,163,0,4,125,0,0,4,1,0,1,0,2,3,0,0,2,4,0,0,2,4,0,0,1,3,0,0,
67,0,0,3,164,0,4,133,0,0,4,1,0,1,0,2,3,0,0,2,4,0,0,2,4,0,0,1,3,0,0,
98,0,0,4,167,0,4,181,0,0,7,1,0,1,0,2,3,0,0,2,3,0,0,2,3,0,0,2,3,0,0,2,3,0,0,2,
97,0,0,1,3,0,0,
141,0,0,5,345,0,4,256,0,0,17,1,0,1,0,2,3,0,0,2,3,0,0,2,3,0,0,2,4,0,0,2,4,0,0,2,
4,0,0,2,4,0,0,2,4,0,0,2,4,0,0,2,4,0,0,2,4,0,0,2,4,0,0,2,4,0,0,2,4,0,0,2,4,0,0,
2,4,0,0,1,3,0,0,
224,0,0,6,337,0,4,346,0,0,14,1,0,1,0,2,3,0,0,2,3,0,0,2,3,0,0,2,4,0,0,2,4,0,0,2,
4,0,0,2,4,0,0,2,4,0,0,2,4,0,0,2,3,0,0,2,3,0,0,2,3,0,0,2,3,0,0,1,3,0,0,
295,0,0,7,114,0,4,432,0,0,4,0,0,1,0,2,3,0,0,2,3,0,0,2,3,0,0,2,9,0,0,
326,0,0,8,173,0,4,488,0,0,4,0,0,1,0,2,3,0,0,2,3,0,0,2,3,0,0,2,9,0,0,
357,0,0,9,242,0,6,545,0,0,5,5,0,1,0,3,3,0,0,1,3,0,0,1,3,0,0,1,97,0,0,1,97,0,0,
392,0,0,10,238,0,6,555,0,0,5,5,0,1,0,3,3,0,0,1,3,0,0,1,3,0,0,1,97,0,0,1,97,0,0,
427,0,0,11,239,0,6,565,0,0,5,5,0,1,0,3,3,0,0,1,3,0,0,1,3,0,0,1,97,0,0,1,97,0,0,
462,0,0,12,269,0,3,638,0,0,17,17,0,1,0,1,3,0,0,1,3,0,0,1,3,0,0,1,3,0,0,1,4,0,0,
1,4,0,0,1,4,0,0,1,4,0,0,1,4,0,0,1,4,0,0,1,4,0,0,1,4,0,0,1,4,0,0,1,4,0,0,1,4,0,
0,1,4,0,0,1,4,0,0,
545,0,0,13,279,0,3,707,0,0,14,14,0,1,0,1,3,0,0,1,3,0,0,1,3,0,0,1,3,0,0,1,4,0,0,
1,4,0,0,1,4,0,0,1,4,0,0,1,4,0,0,1,4,0,0,1,3,0,0,1,3,0,0,1,3,0,0,1,3,0,0,
616,0,0,14,156,0,3,772,0,0,7,7,0,1,0,1,3,0,0,1,3,0,0,1,3,0,0,1,3,0,0,1,3,0,0,1,
3,0,0,1,97,0,0,
};
using namespace std;
#include "htofparora2io.h"
#include "hparora2set.h"
#include "htoftrb2lookup.h"
#include "htofcalpar.h"
#include "htofdigipar.h"
#include "htofgeompar.h"
#include "hgeomcompositevolume.h"
#include "hora2geomdetversion.h"
#include "TClass.h"
#include <iostream>
#include <iomanip>
#include <unistd.h>
#define SQLCA_STORAGE_CLASS extern
#define ORACA_STORAGE_CLASS extern
#include <oraca.h>
#include <sqlca.h>
ClassImp(HTofParOra2Io)
#define TOF_MAXSEC 6
#define TOF_TOTSECMODS 22
#define TOF_MAXSECMODS 8
#define TOF_MAXMODS 48
#define TOF_MAXRODS 384
#define TOF_MAXCHANNELS 800
#define TOF_NCHAN_TRB 128
HTofParOra2Io::HTofParOra2Io(HOra2Conn* pC) : HDetParOra2Io(pC) {
fName="HTofParIo";
initModules=new TArrayI(TOF_MAXSEC*TOF_TOTSECMODS);
geomVers=0;
}
HTofParOra2Io::~HTofParOra2Io() {
if (initModules) delete initModules;
if (geomVers) delete geomVers;
}
Bool_t HTofParOra2Io::init(HParSet* pPar,Int_t* set) {
if (getRunStart(pPar)<0) {
pPar->setInputVersion(-1,inputNumber);
return kFALSE;
}
const Text_t* name=pPar->IsA()->GetName();
if (strcmp(name,"HTofTrb2Lookup")==0) return read((HTofTrb2Lookup*)pPar);
if (strcmp(name,"HTofCalPar")==0) return read(((HTofCalPar*)pPar),set);
if (strcmp(name,"HTofDigiPar")==0) return read(((HTofDigiPar*)pPar),set);
if (strcmp(name,"HTofGeomPar")==0) return read(((HTofGeomPar*)pPar),set);
cout<<"initialization of "<<pPar->GetName()<<" not possible from Oracle!"<<endl;
return kFALSE;
}
Int_t HTofParOra2Io::write(HParSet* pPar) {
if (getRunStart(pPar)<=0) return -1;
const Text_t* name=pPar->IsA()->GetName();
if (strcmp(name,"HTofTrb2Lookup")==0) return writePar((HTofTrb2Lookup*)pPar);
if (strcmp(name,"HTofCalPar")==0) return writePar((HTofCalPar*)pPar);
if (strcmp(name,"HTofDigiPar")==0) return writePar((HTofDigiPar*)pPar);
if (strcmp(name,"HTofGeomPar")==0) return writeAlignment((HTofGeomPar*)pPar);
cout<<"No write-interface to Oracle for parameter container "
<<pPar->GetName()<<endl;
return 0;
}
Bool_t HTofParOra2Io::getVersion(HParSet* pPar,Int_t& version) {
HParOra2Set* oraSet=getOraSet(pPar);
if (oraSet->contextId==-1 || runStart==-1) {
pPar->setInputVersion(-1,inputNumber);
version=-1;
return kFALSE;
}
Int_t contVers=pPar->getInputVersion(inputNumber);
if (contVers!=-1 && runStart>=oraSet->versDate[0] && runStart<=oraSet->versDate[1]) {
version=contVers;
return kFALSE;
}
const Char_t* containerClass=pPar->IsA()->GetName();
oraSet->clearVersDate();
int context;
int vers;
double since;
double until;
context=oraSet->contextId;
if (strcmp(containerClass,"HTofTrb2Lookup")==0) {
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select version ,hanadate.date_to_number(valid_since) ,han\
adate.date_to_number(valid_until) into :b0,:b1,:b2 from tof_ana2.trb2lookup_v\
ers_at_date where context_id=:b3";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )5;
sqlstm.selerr = (unsigned short)1;
sqlstm.sqlpfmem = (unsigned int )0;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)&vers;
sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)&since;
sqlstm.sqhstl[1] = (unsigned long )sizeof(double);
sqlstm.sqhsts[1] = ( int )0;
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = (unsigned char *)&until;
sqlstm.sqhstl[2] = (unsigned long )sizeof(double);
sqlstm.sqhsts[2] = ( int )0;
sqlstm.sqindv[2] = ( short *)0;
sqlstm.sqinds[2] = ( int )0;
sqlstm.sqharm[2] = (unsigned long )0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = (unsigned char *)&context;
sqlstm.sqhstl[3] = (unsigned long )sizeof(int);
sqlstm.sqhsts[3] = ( int )0;
sqlstm.sqindv[3] = ( short *)0;
sqlstm.sqinds[3] = ( int )0;
sqlstm.sqharm[3] = (unsigned long )0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode == 1403) goto notfound;
if (sqlca.sqlcode < 0) showSqlError("getVersion(HParSet*,Int_t&)");
}
} else {
if (strcmp(containerClass,"HTofCalPar")==0) {
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select version ,hanadate.date_to_number(valid_since) ,h\
anadate.date_to_number(valid_until) into :b0,:b1,:b2 from tof_ana2.calpar_ver\
s_at_date where context_id=:b3";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )36;
sqlstm.selerr = (unsigned short)1;
sqlstm.sqlpfmem = (unsigned int )0;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)&vers;
sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)&since;
sqlstm.sqhstl[1] = (unsigned long )sizeof(double);
sqlstm.sqhsts[1] = ( int )0;
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = (unsigned char *)&until;
sqlstm.sqhstl[2] = (unsigned long )sizeof(double);
sqlstm.sqhsts[2] = ( int )0;
sqlstm.sqindv[2] = ( short *)0;
sqlstm.sqinds[2] = ( int )0;
sqlstm.sqharm[2] = (unsigned long )0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = (unsigned char *)&context;
sqlstm.sqhstl[3] = (unsigned long )sizeof(int);
sqlstm.sqhsts[3] = ( int )0;
sqlstm.sqindv[3] = ( short *)0;
sqlstm.sqinds[3] = ( int )0;
sqlstm.sqharm[3] = (unsigned long )0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode == 1403) goto notfound;
if (sqlca.sqlcode < 0) showSqlError("getVersion(HParSet*,Int_t&)");
}
} else {
if (strcmp(containerClass,"HTofDigiPar")==0) {
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select version ,hanadate.date_to_number(valid_since) \
,hanadate.date_to_number(valid_until) into :b0,:b1,:b2 from tof_ana2.digipar_\
vers_at_date where context_id=:b3";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )67;
sqlstm.selerr = (unsigned short)1;
sqlstm.sqlpfmem = (unsigned int )0;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)&vers;
sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)&since;
sqlstm.sqhstl[1] = (unsigned long )sizeof(double);
sqlstm.sqhsts[1] = ( int )0;
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = (unsigned char *)&until;
sqlstm.sqhstl[2] = (unsigned long )sizeof(double);
sqlstm.sqhsts[2] = ( int )0;
sqlstm.sqindv[2] = ( short *)0;
sqlstm.sqinds[2] = ( int )0;
sqlstm.sqharm[2] = (unsigned long )0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = (unsigned char *)&context;
sqlstm.sqhstl[3] = (unsigned long )sizeof(int);
sqlstm.sqhsts[3] = ( int )0;
sqlstm.sqindv[3] = ( short *)0;
sqlstm.sqinds[3] = ( int )0;
sqlstm.sqharm[3] = (unsigned long )0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode == 1403) goto notfound;
if (sqlca.sqlcode < 0) showSqlError("getVersion(HParSet*,Int_t&)");
}
}
}
}
version=vers;
oraSet->versDate[0]=since;
oraSet->versDate[1]=until;
return kTRUE;
notfound:
pPar->setInputVersion(-1,inputNumber);
version=-1;
return kFALSE;
};
Bool_t HTofParOra2Io::read(HTofTrb2Lookup* pPar) {
Int_t oraVersion=-1;
Bool_t rc=getVersion(pPar,oraVersion);
if (oraVersion<0) return kFALSE;
if (oraVersion>=0&&rc==kFALSE) return kTRUE;
pPar->clear();
int vers;
struct {
int address[TOF_MAXCHANNELS];
int chan[TOF_MAXCHANNELS];
int sector[TOF_MAXCHANNELS];
int module[TOF_MAXCHANNELS];
int rod[TOF_MAXCHANNELS];
char side[TOF_MAXCHANNELS][2];
} lookup;
struct {
short address_Ind[TOF_MAXCHANNELS];
short chan_Ind[TOF_MAXCHANNELS];
short sector_Ind[TOF_MAXCHANNELS];
short module_Ind[TOF_MAXCHANNELS];
short rod_Ind[TOF_MAXCHANNELS];
short side_Ind[TOF_MAXCHANNELS];
} lookup_Ind;
vers=oraVersion;
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 7;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select trbnet_address ,channel ,sector ,module ,rod ,side i\
nto :s1:s2 ,:s3:s4 ,:s5:s6 ,:s7:s8 ,:s9:s10 ,:s11:s12 from tof_ana2.trb2look\
up_data_view where vers_id=:b2";
sqlstm.iters = (unsigned int )800;
sqlstm.offset = (unsigned int )98;
sqlstm.selerr = (unsigned short)1;
sqlstm.sqlpfmem = (unsigned int )0;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)lookup.address;
sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
sqlstm.sqhsts[0] = ( int )sizeof(int);
sqlstm.sqindv[0] = ( short *)lookup_Ind.address_Ind;
sqlstm.sqinds[0] = ( int )sizeof(short);
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqharc[0] = (unsigned long *)0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)lookup.chan;
sqlstm.sqhstl[1] = (unsigned long )sizeof(int);
sqlstm.sqhsts[1] = ( int )sizeof(int);
sqlstm.sqindv[1] = ( short *)lookup_Ind.chan_Ind;
sqlstm.sqinds[1] = ( int )sizeof(short);
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqharc[1] = (unsigned long *)0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = (unsigned char *)lookup.sector;
sqlstm.sqhstl[2] = (unsigned long )sizeof(int);
sqlstm.sqhsts[2] = ( int )sizeof(int);
sqlstm.sqindv[2] = ( short *)lookup_Ind.sector_Ind;
sqlstm.sqinds[2] = ( int )sizeof(short);
sqlstm.sqharm[2] = (unsigned long )0;
sqlstm.sqharc[2] = (unsigned long *)0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = (unsigned char *)lookup.module;
sqlstm.sqhstl[3] = (unsigned long )sizeof(int);
sqlstm.sqhsts[3] = ( int )sizeof(int);
sqlstm.sqindv[3] = ( short *)lookup_Ind.module_Ind;
sqlstm.sqinds[3] = ( int )sizeof(short);
sqlstm.sqharm[3] = (unsigned long )0;
sqlstm.sqharc[3] = (unsigned long *)0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqhstv[4] = (unsigned char *)lookup.rod;
sqlstm.sqhstl[4] = (unsigned long )sizeof(int);
sqlstm.sqhsts[4] = ( int )sizeof(int);
sqlstm.sqindv[4] = ( short *)lookup_Ind.rod_Ind;
sqlstm.sqinds[4] = ( int )sizeof(short);
sqlstm.sqharm[4] = (unsigned long )0;
sqlstm.sqharc[4] = (unsigned long *)0;
sqlstm.sqadto[4] = (unsigned short )0;
sqlstm.sqtdso[4] = (unsigned short )0;
sqlstm.sqhstv[5] = (unsigned char *)lookup.side;
sqlstm.sqhstl[5] = (unsigned long )2;
sqlstm.sqhsts[5] = ( int )2;
sqlstm.sqindv[5] = ( short *)lookup_Ind.side_Ind;
sqlstm.sqinds[5] = ( int )sizeof(short);
sqlstm.sqharm[5] = (unsigned long )0;
sqlstm.sqharc[5] = (unsigned long *)0;
sqlstm.sqadto[5] = (unsigned short )0;
sqlstm.sqtdso[5] = (unsigned short )0;
sqlstm.sqhstv[6] = (unsigned char *)&vers;
sqlstm.sqhstl[6] = (unsigned long )sizeof(int);
sqlstm.sqhsts[6] = ( int )sizeof(int);
sqlstm.sqindv[6] = ( short *)0;
sqlstm.sqinds[6] = ( int )0;
sqlstm.sqharm[6] = (unsigned long )0;
sqlstm.sqadto[6] = (unsigned short )0;
sqlstm.sqtdso[6] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) showSqlError("read(HTofTrb2Lookup*)");
}
Int_t nData=sqlca.sqlerrd[2];
for (Int_t i=0;i<nData;i++) {
Char_t s='\0';
if (lookup_Ind.side_Ind[i]!=-1) {
s=lookup.side[i][0];
}
pPar->fill(lookup.address[i],lookup.chan[i],
lookup.sector[i]-1,lookup.module[i]-1,lookup.rod[i]-1,s);
}
if (nData>0) {
setChanged(pPar,oraVersion);
cout<<pPar->GetName()<<" initialized from Oracle"<<endl;
rc=kTRUE;
} else {
pPar->setInputVersion(-1,inputNumber);
rc=kFALSE;
}
return rc;
}
Bool_t HTofParOra2Io::read(HTofCalPar* pPar, Int_t* set) {
Int_t oraVersion=-1;
Bool_t rc=getVersion(pPar,oraVersion);
if (oraVersion<0) return kFALSE;
if (oraVersion>=0&&rc==kFALSE) return kTRUE;
pPar->clear();
initModules->Reset();
int vers;
struct {
int sector[TOF_MAXRODS];
int module[TOF_MAXRODS];
int rod[TOF_MAXRODS];
float sl[TOF_MAXRODS];
float sr[TOF_MAXRODS];
float gv[TOF_MAXRODS];
float op[TOF_MAXRODS];
float ot[TOF_MAXRODS];
float pl[TOF_MAXRODS];
float pr[TOF_MAXRODS];
float al[TOF_MAXRODS];
float ga[TOF_MAXRODS];
float ep[TOF_MAXRODS];
float c1[TOF_MAXRODS];
float c2[TOF_MAXRODS];
float c3[TOF_MAXRODS];
} cal;
struct {
short sector[TOF_MAXRODS];
short module[TOF_MAXRODS];
short rod[TOF_MAXRODS];
short sl[TOF_MAXRODS];
short sr[TOF_MAXRODS];
short gv[TOF_MAXRODS];
short op[TOF_MAXRODS];
short ot[TOF_MAXRODS];
short pl[TOF_MAXRODS];
short pr[TOF_MAXRODS];
short al[TOF_MAXRODS];
short ga[TOF_MAXRODS];
short ep[TOF_MAXRODS];
short c1[TOF_MAXRODS];
short c2[TOF_MAXRODS];
short c3[TOF_MAXRODS];
} cal_Ind;
vers=oraVersion;
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 17;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select sector ,module ,rod ,left_k ,right_k ,v_group ,pos_k\
,tim_k ,pedestal_l ,pedestal_r ,att_len ,gain_asym ,edep_k ,tw_c1 ,tw_c2 ,tw_\
c3 into :s1:s2 ,:s3:s4 ,:s5:s6 ,:s7:s8 ,:s9:s10 ,:s11:s12 ,:s13:s14 ,:s15:s16 \
,:s17:s18 ,:s19:s20 ,:s21:s22 ,:s23:s24 ,:s25:s26 ,:s27:s28 ,:s29:s30 ,:s31:s3\
2 from tof_ana2.calpar_data_view where vers_id=:b2";
sqlstm.iters = (unsigned int )384;
sqlstm.offset = (unsigned int )141;
sqlstm.selerr = (unsigned short)1;
sqlstm.sqlpfmem = (unsigned int )0;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)cal.sector;
sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
sqlstm.sqhsts[0] = ( int )sizeof(int);
sqlstm.sqindv[0] = ( short *)cal_Ind.sector;
sqlstm.sqinds[0] = ( int )sizeof(short);
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqharc[0] = (unsigned long *)0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)cal.module;
sqlstm.sqhstl[1] = (unsigned long )sizeof(int);
sqlstm.sqhsts[1] = ( int )sizeof(int);
sqlstm.sqindv[1] = ( short *)cal_Ind.module;
sqlstm.sqinds[1] = ( int )sizeof(short);
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqharc[1] = (unsigned long *)0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = (unsigned char *)cal.rod;
sqlstm.sqhstl[2] = (unsigned long )sizeof(int);
sqlstm.sqhsts[2] = ( int )sizeof(int);
sqlstm.sqindv[2] = ( short *)cal_Ind.rod;
sqlstm.sqinds[2] = ( int )sizeof(short);
sqlstm.sqharm[2] = (unsigned long )0;
sqlstm.sqharc[2] = (unsigned long *)0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = (unsigned char *)cal.sl;
sqlstm.sqhstl[3] = (unsigned long )sizeof(float);
sqlstm.sqhsts[3] = ( int )sizeof(float);
sqlstm.sqindv[3] = ( short *)cal_Ind.sl;
sqlstm.sqinds[3] = ( int )sizeof(short);
sqlstm.sqharm[3] = (unsigned long )0;
sqlstm.sqharc[3] = (unsigned long *)0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqhstv[4] = (unsigned char *)cal.sr;
sqlstm.sqhstl[4] = (unsigned long )sizeof(float);
sqlstm.sqhsts[4] = ( int )sizeof(float);
sqlstm.sqindv[4] = ( short *)cal_Ind.sr;
sqlstm.sqinds[4] = ( int )sizeof(short);
sqlstm.sqharm[4] = (unsigned long )0;
sqlstm.sqharc[4] = (unsigned long *)0;
sqlstm.sqadto[4] = (unsigned short )0;
sqlstm.sqtdso[4] = (unsigned short )0;
sqlstm.sqhstv[5] = (unsigned char *)cal.gv;
sqlstm.sqhstl[5] = (unsigned long )sizeof(float);
sqlstm.sqhsts[5] = ( int )sizeof(float);
sqlstm.sqindv[5] = ( short *)cal_Ind.gv;
sqlstm.sqinds[5] = ( int )sizeof(short);
sqlstm.sqharm[5] = (unsigned long )0;
sqlstm.sqharc[5] = (unsigned long *)0;
sqlstm.sqadto[5] = (unsigned short )0;
sqlstm.sqtdso[5] = (unsigned short )0;
sqlstm.sqhstv[6] = (unsigned char *)cal.op;
sqlstm.sqhstl[6] = (unsigned long )sizeof(float);
sqlstm.sqhsts[6] = ( int )sizeof(float);
sqlstm.sqindv[6] = ( short *)cal_Ind.op;
sqlstm.sqinds[6] = ( int )sizeof(short);
sqlstm.sqharm[6] = (unsigned long )0;
sqlstm.sqharc[6] = (unsigned long *)0;
sqlstm.sqadto[6] = (unsigned short )0;
sqlstm.sqtdso[6] = (unsigned short )0;
sqlstm.sqhstv[7] = (unsigned char *)cal.ot;
sqlstm.sqhstl[7] = (unsigned long )sizeof(float);
sqlstm.sqhsts[7] = ( int )sizeof(float);
sqlstm.sqindv[7] = ( short *)cal_Ind.ot;
sqlstm.sqinds[7] = ( int )sizeof(short);
sqlstm.sqharm[7] = (unsigned long )0;
sqlstm.sqharc[7] = (unsigned long *)0;
sqlstm.sqadto[7] = (unsigned short )0;
sqlstm.sqtdso[7] = (unsigned short )0;
sqlstm.sqhstv[8] = (unsigned char *)cal.pl;
sqlstm.sqhstl[8] = (unsigned long )sizeof(float);
sqlstm.sqhsts[8] = ( int )sizeof(float);
sqlstm.sqindv[8] = ( short *)cal_Ind.pl;
sqlstm.sqinds[8] = ( int )sizeof(short);
sqlstm.sqharm[8] = (unsigned long )0;
sqlstm.sqharc[8] = (unsigned long *)0;
sqlstm.sqadto[8] = (unsigned short )0;
sqlstm.sqtdso[8] = (unsigned short )0;
sqlstm.sqhstv[9] = (unsigned char *)cal.pr;
sqlstm.sqhstl[9] = (unsigned long )sizeof(float);
sqlstm.sqhsts[9] = ( int )sizeof(float);
sqlstm.sqindv[9] = ( short *)cal_Ind.pr;
sqlstm.sqinds[9] = ( int )sizeof(short);
sqlstm.sqharm[9] = (unsigned long )0;
sqlstm.sqharc[9] = (unsigned long *)0;
sqlstm.sqadto[9] = (unsigned short )0;
sqlstm.sqtdso[9] = (unsigned short )0;
sqlstm.sqhstv[10] = (unsigned char *)cal.al;
sqlstm.sqhstl[10] = (unsigned long )sizeof(float);
sqlstm.sqhsts[10] = ( int )sizeof(float);
sqlstm.sqindv[10] = ( short *)cal_Ind.al;
sqlstm.sqinds[10] = ( int )sizeof(short);
sqlstm.sqharm[10] = (unsigned long )0;
sqlstm.sqharc[10] = (unsigned long *)0;
sqlstm.sqadto[10] = (unsigned short )0;
sqlstm.sqtdso[10] = (unsigned short )0;
sqlstm.sqhstv[11] = (unsigned char *)cal.ga;
sqlstm.sqhstl[11] = (unsigned long )sizeof(float);
sqlstm.sqhsts[11] = ( int )sizeof(float);
sqlstm.sqindv[11] = ( short *)cal_Ind.ga;
sqlstm.sqinds[11] = ( int )sizeof(short);
sqlstm.sqharm[11] = (unsigned long )0;
sqlstm.sqharc[11] = (unsigned long *)0;
sqlstm.sqadto[11] = (unsigned short )0;
sqlstm.sqtdso[11] = (unsigned short )0;
sqlstm.sqhstv[12] = (unsigned char *)cal.ep;
sqlstm.sqhstl[12] = (unsigned long )sizeof(float);
sqlstm.sqhsts[12] = ( int )sizeof(float);
sqlstm.sqindv[12] = ( short *)cal_Ind.ep;
sqlstm.sqinds[12] = ( int )sizeof(short);
sqlstm.sqharm[12] = (unsigned long )0;
sqlstm.sqharc[12] = (unsigned long *)0;
sqlstm.sqadto[12] = (unsigned short )0;
sqlstm.sqtdso[12] = (unsigned short )0;
sqlstm.sqhstv[13] = (unsigned char *)cal.c1;
sqlstm.sqhstl[13] = (unsigned long )sizeof(float);
sqlstm.sqhsts[13] = ( int )sizeof(float);
sqlstm.sqindv[13] = ( short *)cal_Ind.c1;
sqlstm.sqinds[13] = ( int )sizeof(short);
sqlstm.sqharm[13] = (unsigned long )0;
sqlstm.sqharc[13] = (unsigned long *)0;
sqlstm.sqadto[13] = (unsigned short )0;
sqlstm.sqtdso[13] = (unsigned short )0;
sqlstm.sqhstv[14] = (unsigned char *)cal.c2;
sqlstm.sqhstl[14] = (unsigned long )sizeof(float);
sqlstm.sqhsts[14] = ( int )sizeof(float);
sqlstm.sqindv[14] = ( short *)cal_Ind.c2;
sqlstm.sqinds[14] = ( int )sizeof(short);
sqlstm.sqharm[14] = (unsigned long )0;
sqlstm.sqharc[14] = (unsigned long *)0;
sqlstm.sqadto[14] = (unsigned short )0;
sqlstm.sqtdso[14] = (unsigned short )0;
sqlstm.sqhstv[15] = (unsigned char *)cal.c3;
sqlstm.sqhstl[15] = (unsigned long )sizeof(float);
sqlstm.sqhsts[15] = ( int )sizeof(float);
sqlstm.sqindv[15] = ( short *)cal_Ind.c3;
sqlstm.sqinds[15] = ( int )sizeof(short);
sqlstm.sqharm[15] = (unsigned long )0;
sqlstm.sqharc[15] = (unsigned long *)0;
sqlstm.sqadto[15] = (unsigned short )0;
sqlstm.sqtdso[15] = (unsigned short )0;
sqlstm.sqhstv[16] = (unsigned char *)&vers;
sqlstm.sqhstl[16] = (unsigned long )sizeof(int);
sqlstm.sqhsts[16] = ( int )sizeof(int);
sqlstm.sqindv[16] = ( short *)0;
sqlstm.sqinds[16] = ( int )0;
sqlstm.sqharm[16] = (unsigned long )0;
sqlstm.sqadto[16] = (unsigned short )0;
sqlstm.sqtdso[16] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) showSqlError("read(HTofCalPar*,Int_t*)");
}
Int_t nData=sqlca.sqlerrd[2];
Int_t sec=-1, mod=-1, pos=-1;
for(Int_t i=0;i<nData;i++) {
sec=cal.sector[i]-1;
mod=cal.module[i]-1;
pos=sec*TOF_TOTSECMODS+mod;
if (set[pos]) {
HTofCalParCell& cell=(*pPar)[sec][mod][(cal.rod[i]-1)];
cell.setLeftK(cal.sl[i]);
cell.setRightK(cal.sr[i]);
cell.setVGroup(cal.gv[i]);
cell.setPosK(cal.op[i]);
cell.setTimK(cal.ot[i]);
cell.setPedestalL(cal.pl[i]);
cell.setPedestalR(cal.pr[i]);
cell.setAttLen(cal.al[i]);
cell.setGainAsym(cal.ga[i]);
cell.setEdepK(cal.ep[i]);
cell.setTimeWalkC1(cal.c1[i]);
cell.setTimeWalkC2(cal.c2[i]);
cell.setTimeWalkC3(cal.c3[i]);
initModules->AddAt(1,pos);
}
}
Bool_t allFound=kTRUE;
if (nData>0) {
for(Int_t i=0;i<TOF_MAXMODS;i++) {
if (set[i]==1 && initModules->At(i)==0) allFound=kFALSE;
}
} else allFound=kFALSE;
if (allFound) {
setChanged(pPar,oraVersion);
printInfo(pPar->GetName());
} else {
pPar->setInputVersion(-1,inputNumber);
}
return allFound;
}
Bool_t HTofParOra2Io::read(HTofDigiPar* pPar, Int_t* set) {
Int_t oraVersion=-1;
Bool_t rc=getVersion(pPar,oraVersion);
if (oraVersion<0) return kFALSE;
if (oraVersion>=0&&rc==kFALSE) return kTRUE;
pPar->clear();
initModules->Reset();
int vers;
struct {
int sector[TOF_MAXRODS];
int module[TOF_MAXRODS];
int rod[TOF_MAXRODS];
float hl[TOF_MAXRODS];
float ar[TOF_MAXRODS];
float al[TOF_MAXRODS];
float gv[TOF_MAXRODS];
float slt[TOF_MAXRODS];
float srt[TOF_MAXRODS];
int tlc[TOF_MAXRODS];
int trc[TOF_MAXRODS];
int tla[TOF_MAXRODS];
int tra[TOF_MAXRODS];
} digi;
struct {
short sector[TOF_MAXRODS];
short module[TOF_MAXRODS];
short rod[TOF_MAXRODS];
short hl[TOF_MAXRODS];
short ar[TOF_MAXRODS];
short al[TOF_MAXRODS];
short gv[TOF_MAXRODS];
short slt[TOF_MAXRODS];
short srt[TOF_MAXRODS];
short tlc[TOF_MAXRODS];
short trc[TOF_MAXRODS];
short tla[TOF_MAXRODS];
short tra[TOF_MAXRODS];
} digi_Ind;
vers=oraVersion;
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 17;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select sector ,module ,rod ,half_len ,angle_ref ,atten_len \
,group_vel ,slope_left_tdc ,slope_right_tdc ,thr_left_cfd ,thr_right_cfd ,thr_\
left_adc ,thr_right_adc into :s1:s2 ,:s3:s4 ,:s5:s6 ,:s7:s8 ,:s9:s10 ,:s11:s12\
,:s13:s14 ,:s15:s16 ,:s17:s18 ,:s19:s20 ,:s21:s22 ,:s23:s24 ,:s25:s26 from \
tof_ana2.digipar_data_view where vers_id=:b2";
sqlstm.iters = (unsigned int )384;
sqlstm.offset = (unsigned int )224;
sqlstm.selerr = (unsigned short)1;
sqlstm.sqlpfmem = (unsigned int )0;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)digi.sector;
sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
sqlstm.sqhsts[0] = ( int )sizeof(int);
sqlstm.sqindv[0] = ( short *)digi_Ind.sector;
sqlstm.sqinds[0] = ( int )sizeof(short);
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqharc[0] = (unsigned long *)0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)digi.module;
sqlstm.sqhstl[1] = (unsigned long )sizeof(int);
sqlstm.sqhsts[1] = ( int )sizeof(int);
sqlstm.sqindv[1] = ( short *)digi_Ind.module;
sqlstm.sqinds[1] = ( int )sizeof(short);
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqharc[1] = (unsigned long *)0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = (unsigned char *)digi.rod;
sqlstm.sqhstl[2] = (unsigned long )sizeof(int);
sqlstm.sqhsts[2] = ( int )sizeof(int);
sqlstm.sqindv[2] = ( short *)digi_Ind.rod;
sqlstm.sqinds[2] = ( int )sizeof(short);
sqlstm.sqharm[2] = (unsigned long )0;
sqlstm.sqharc[2] = (unsigned long *)0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = (unsigned char *)digi.hl;
sqlstm.sqhstl[3] = (unsigned long )sizeof(float);
sqlstm.sqhsts[3] = ( int )sizeof(float);
sqlstm.sqindv[3] = ( short *)digi_Ind.hl;
sqlstm.sqinds[3] = ( int )sizeof(short);
sqlstm.sqharm[3] = (unsigned long )0;
sqlstm.sqharc[3] = (unsigned long *)0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqhstv[4] = (unsigned char *)digi.ar;
sqlstm.sqhstl[4] = (unsigned long )sizeof(float);
sqlstm.sqhsts[4] = ( int )sizeof(float);
sqlstm.sqindv[4] = ( short *)digi_Ind.ar;
sqlstm.sqinds[4] = ( int )sizeof(short);
sqlstm.sqharm[4] = (unsigned long )0;
sqlstm.sqharc[4] = (unsigned long *)0;
sqlstm.sqadto[4] = (unsigned short )0;
sqlstm.sqtdso[4] = (unsigned short )0;
sqlstm.sqhstv[5] = (unsigned char *)digi.al;
sqlstm.sqhstl[5] = (unsigned long )sizeof(float);
sqlstm.sqhsts[5] = ( int )sizeof(float);
sqlstm.sqindv[5] = ( short *)digi_Ind.al;
sqlstm.sqinds[5] = ( int )sizeof(short);
sqlstm.sqharm[5] = (unsigned long )0;
sqlstm.sqharc[5] = (unsigned long *)0;
sqlstm.sqadto[5] = (unsigned short )0;
sqlstm.sqtdso[5] = (unsigned short )0;
sqlstm.sqhstv[6] = (unsigned char *)digi.gv;
sqlstm.sqhstl[6] = (unsigned long )sizeof(float);
sqlstm.sqhsts[6] = ( int )sizeof(float);
sqlstm.sqindv[6] = ( short *)digi_Ind.gv;
sqlstm.sqinds[6] = ( int )sizeof(short);
sqlstm.sqharm[6] = (unsigned long )0;
sqlstm.sqharc[6] = (unsigned long *)0;
sqlstm.sqadto[6] = (unsigned short )0;
sqlstm.sqtdso[6] = (unsigned short )0;
sqlstm.sqhstv[7] = (unsigned char *)digi.slt;
sqlstm.sqhstl[7] = (unsigned long )sizeof(float);
sqlstm.sqhsts[7] = ( int )sizeof(float);
sqlstm.sqindv[7] = ( short *)digi_Ind.slt;
sqlstm.sqinds[7] = ( int )sizeof(short);
sqlstm.sqharm[7] = (unsigned long )0;
sqlstm.sqharc[7] = (unsigned long *)0;
sqlstm.sqadto[7] = (unsigned short )0;
sqlstm.sqtdso[7] = (unsigned short )0;
sqlstm.sqhstv[8] = (unsigned char *)digi.srt;
sqlstm.sqhstl[8] = (unsigned long )sizeof(float);
sqlstm.sqhsts[8] = ( int )sizeof(float);
sqlstm.sqindv[8] = ( short *)digi_Ind.srt;
sqlstm.sqinds[8] = ( int )sizeof(short);
sqlstm.sqharm[8] = (unsigned long )0;
sqlstm.sqharc[8] = (unsigned long *)0;
sqlstm.sqadto[8] = (unsigned short )0;
sqlstm.sqtdso[8] = (unsigned short )0;
sqlstm.sqhstv[9] = (unsigned char *)digi.tlc;
sqlstm.sqhstl[9] = (unsigned long )sizeof(int);
sqlstm.sqhsts[9] = ( int )sizeof(int);
sqlstm.sqindv[9] = ( short *)digi_Ind.tlc;
sqlstm.sqinds[9] = ( int )sizeof(short);
sqlstm.sqharm[9] = (unsigned long )0;
sqlstm.sqharc[9] = (unsigned long *)0;
sqlstm.sqadto[9] = (unsigned short )0;
sqlstm.sqtdso[9] = (unsigned short )0;
sqlstm.sqhstv[10] = (unsigned char *)digi.trc;
sqlstm.sqhstl[10] = (unsigned long )sizeof(int);
sqlstm.sqhsts[10] = ( int )sizeof(int);
sqlstm.sqindv[10] = ( short *)digi_Ind.trc;
sqlstm.sqinds[10] = ( int )sizeof(short);
sqlstm.sqharm[10] = (unsigned long )0;
sqlstm.sqharc[10] = (unsigned long *)0;
sqlstm.sqadto[10] = (unsigned short )0;
sqlstm.sqtdso[10] = (unsigned short )0;
sqlstm.sqhstv[11] = (unsigned char *)digi.tla;
sqlstm.sqhstl[11] = (unsigned long )sizeof(int);
sqlstm.sqhsts[11] = ( int )sizeof(int);
sqlstm.sqindv[11] = ( short *)digi_Ind.tla;
sqlstm.sqinds[11] = ( int )sizeof(short);
sqlstm.sqharm[11] = (unsigned long )0;
sqlstm.sqharc[11] = (unsigned long *)0;
sqlstm.sqadto[11] = (unsigned short )0;
sqlstm.sqtdso[11] = (unsigned short )0;
sqlstm.sqhstv[12] = (unsigned char *)digi.tra;
sqlstm.sqhstl[12] = (unsigned long )sizeof(int);
sqlstm.sqhsts[12] = ( int )sizeof(int);
sqlstm.sqindv[12] = ( short *)digi_Ind.tra;
sqlstm.sqinds[12] = ( int )sizeof(short);
sqlstm.sqharm[12] = (unsigned long )0;
sqlstm.sqharc[12] = (unsigned long *)0;
sqlstm.sqadto[12] = (unsigned short )0;
sqlstm.sqtdso[12] = (unsigned short )0;
sqlstm.sqhstv[13] = (unsigned char *)&vers;
sqlstm.sqhstl[13] = (unsigned long )sizeof(int);
sqlstm.sqhsts[13] = ( int )sizeof(int);
sqlstm.sqindv[13] = ( short *)0;
sqlstm.sqinds[13] = ( int )0;
sqlstm.sqharm[13] = (unsigned long )0;
sqlstm.sqadto[13] = (unsigned short )0;
sqlstm.sqtdso[13] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) showSqlError("read(HTofDigiPar*,Int_t*)");
}
Int_t nData=sqlca.sqlerrd[2];
Int_t sec=-1, mod=-1, pos=-1;
for(Int_t i=0;i<nData;i++) {
sec=digi.sector[i]-1;
mod=digi.module[i]-1;
pos=sec*TOF_TOTSECMODS+mod;
if (set[pos]) {
HTofDigiParCell& cell=(*pPar)[sec][mod][(digi.rod[i]-1)];
cell.setHalfLen(digi.hl[i]);
cell.setAngleRef(digi.ar[i]);
cell.setAttenLen(digi.al[i]);
cell.setGroupVel(digi.gv[i]);
cell.setLeftTDCSlope(digi.slt[i]);
cell.setRightTDCSlope(digi.srt[i]);
cell.setLeftCFDThreshold(digi.tlc[i]);
cell.setRightCFDThreshold(digi.trc[i]);
cell.setLeftADCThreshold(digi.tla[i]);
cell.setRightADCThreshold(digi.tra[i]);
initModules->AddAt(1,pos);
}
}
Bool_t allFound=kTRUE;
if (nData>0) {
for(Int_t i=0;i<TOF_MAXMODS;i++) {
if (set[i]==1 && initModules->At(i)==0) allFound=kFALSE;
}
} else allFound=kFALSE;
if (allFound) {
setChanged(pPar,oraVersion);
printInfo(pPar->GetName());
} else {
pPar->setInputVersion(-1,inputNumber);
}
return allFound;
}
Bool_t HTofParOra2Io::read(HTofGeomPar* pPar, Int_t* set) {
Bool_t allFound=kTRUE;
Int_t detId=-1;
if (!geomVers) {
detId=getDetectorId(pPar->getDetectorName());
geomVers=new HOra2GeomDetVersion(pPar->getDetectorName(),detId);
} else {
detId=geomVers->getDetectorId();
}
if (detId<=0) {
allFound=kFALSE;
delete geomVers;
geomVers=0;
}
if (detId>0&&pPar->isFirstInitialization()) {
if (!readModGeomNames(pPar,set) || !readCompGeomNames(pPar,set)) {
allFound=kFALSE;
pPar->clear();
} else addGeomOraSet(pPar);
}
if (allFound) allFound=readDetectorGeometry(pPar,set,geomVers);
return allFound;
}
Bool_t HTofParOra2Io::readModGeomNames(HTofGeomPar* pPar,Int_t* set) {
struct {
int tof[TOF_MAXMODS];
int sector[TOF_MAXMODS];
int module[TOF_MAXMODS];
struct { unsigned short len; unsigned char arr[10]; } oname[48];
} mods;
struct {
short tof_Ind[TOF_MAXMODS];
short sec_Ind[TOF_MAXMODS];
short mod_Ind[TOF_MAXMODS];
short oname_Ind[TOF_MAXMODS];
} mods_Ind;
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 17;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select module_id ,sector ,segment ,geom_obj into :s1:s2 ,:s\
3:s4 ,:s5:s6 ,:s7:s8 from tof_ana2.tof_setup_at_date ";
sqlstm.iters = (unsigned int )48;
sqlstm.offset = (unsigned int )295;
sqlstm.selerr = (unsigned short)1;
sqlstm.sqlpfmem = (unsigned int )0;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)mods.tof;
sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
sqlstm.sqhsts[0] = ( int )sizeof(int);
sqlstm.sqindv[0] = ( short *)mods_Ind.tof_Ind;
sqlstm.sqinds[0] = ( int )sizeof(short);
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqharc[0] = (unsigned long *)0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)mods.sector;
sqlstm.sqhstl[1] = (unsigned long )sizeof(int);
sqlstm.sqhsts[1] = ( int )sizeof(int);
sqlstm.sqindv[1] = ( short *)mods_Ind.sec_Ind;
sqlstm.sqinds[1] = ( int )sizeof(short);
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqharc[1] = (unsigned long *)0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = (unsigned char *)mods.module;
sqlstm.sqhstl[2] = (unsigned long )sizeof(int);
sqlstm.sqhsts[2] = ( int )sizeof(int);
sqlstm.sqindv[2] = ( short *)mods_Ind.mod_Ind;
sqlstm.sqinds[2] = ( int )sizeof(short);
sqlstm.sqharm[2] = (unsigned long )0;
sqlstm.sqharc[2] = (unsigned long *)0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = (unsigned char *)mods.oname;
sqlstm.sqhstl[3] = (unsigned long )11;
sqlstm.sqhsts[3] = ( int )12;
sqlstm.sqindv[3] = ( short *)mods_Ind.oname_Ind;
sqlstm.sqinds[3] = ( int )sizeof(short);
sqlstm.sqharm[3] = (unsigned long )0;
sqlstm.sqharc[3] = (unsigned long *)0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) showSqlError("readModGeomNames()");
}
Int_t pos, sec, mod;
Char_t ref[10];
initModules->Reset();
for(Int_t i=0;i<sqlca.sqlerrd[2];i++) {
sec=mods.sector[i]-1;
mod=mods.module[i]-1;
HModGeomPar* pMod=pPar->getModule(sec,mod);
pos=sec*TOF_TOTSECMODS + mod;
if (pMod && set[pos]) {
if (mods_Ind.oname_Ind[i]!=-1) {
mods.oname[i].arr[mods.oname[i].len]='\0';
pMod->SetName((Char_t*)(mods.oname[i].arr));
initModules->AddAt(pos+1,pos);
strcpy(ref,(Char_t*)(mods.oname[i].arr));
ref[4]='1';
pMod->setRefName(ref);
Int_t mr=pPar->getModNumInMod(ref);
HGeomCompositeVolume* refMod=pPar->getRefVolume(mr);
if (refMod==0) {
refMod=new HGeomCompositeVolume(pPar->getNumComponents());
refMod->SetName(ref);
pPar->addRefVolume(refMod,mr);
}
pMod->setVolume(refMod);
}
}
}
Bool_t allFound=kTRUE;
for(Int_t i=0;i<TOF_MAXMODS;i++) {
if (set[i]>0 && initModules->At(i)==0) allFound=kFALSE;
}
return allFound;
}
Bool_t HTofParOra2Io::readCompGeomNames(HTofGeomPar* pPar,Int_t* set) {
struct {
int sector[TOF_MAXRODS];
int module[TOF_MAXRODS];
int rod[TOF_MAXRODS];
struct { unsigned short len; unsigned char arr[10]; } oname[384];
} rods;
struct {
short sec_Ind[TOF_MAXRODS];
short mod_Ind[TOF_MAXRODS];
short rod_Ind[TOF_MAXRODS];
short oname_Ind[TOF_MAXRODS];
} rods_Ind;
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 17;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select sector ,segment ,rod_number ,r.geom_obj_name into :s\
1:s2 ,:s3:s4 ,:s5:s6 ,:s7:s8 from tof_ana2.tof_setup_at_date s ,tof_ana2.tof\
_rod r where s.module_id=r.module_id";
sqlstm.iters = (unsigned int )384;
sqlstm.offset = (unsigned int )326;
sqlstm.selerr = (unsigned short)1;
sqlstm.sqlpfmem = (unsigned int )0;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)rods.sector;
sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
sqlstm.sqhsts[0] = ( int )sizeof(int);
sqlstm.sqindv[0] = ( short *)rods_Ind.sec_Ind;
sqlstm.sqinds[0] = ( int )sizeof(short);
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqharc[0] = (unsigned long *)0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)rods.module;
sqlstm.sqhstl[1] = (unsigned long )sizeof(int);
sqlstm.sqhsts[1] = ( int )sizeof(int);
sqlstm.sqindv[1] = ( short *)rods_Ind.mod_Ind;
sqlstm.sqinds[1] = ( int )sizeof(short);
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqharc[1] = (unsigned long *)0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = (unsigned char *)rods.rod;
sqlstm.sqhstl[2] = (unsigned long )sizeof(int);
sqlstm.sqhsts[2] = ( int )sizeof(int);
sqlstm.sqindv[2] = ( short *)rods_Ind.rod_Ind;
sqlstm.sqinds[2] = ( int )sizeof(short);
sqlstm.sqharm[2] = (unsigned long )0;
sqlstm.sqharc[2] = (unsigned long *)0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = (unsigned char *)rods.oname;
sqlstm.sqhstl[3] = (unsigned long )11;
sqlstm.sqhsts[3] = ( int )12;
sqlstm.sqindv[3] = ( short *)rods_Ind.oname_Ind;
sqlstm.sqinds[3] = ( int )sizeof(short);
sqlstm.sqharm[3] = (unsigned long )0;
sqlstm.sqharc[3] = (unsigned long *)0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) showSqlError("readCompGeomNames(...)");
}
Int_t pos, sec, mod;
for(Int_t k=0;k<sqlca.sqlerrd[2];k++) {
sec=rods.sector[k]-1;
mod=rods.module[k]-1;
HModGeomPar* pMod=pPar->getModule(sec,mod);
pos=sec*TOF_TOTSECMODS + mod;
if (pMod && set[pos]) {
HGeomCompositeVolume* pRefMod=pMod->getRefVolume();
if (rods_Ind.oname_Ind[k]!=-1) {
rods.oname[k].arr[rods.oname[k].len]='\0';
HGeomVolume* volu=pRefMod->getComponent((rods.rod[k]-1));
volu->SetName((Char_t*)(rods.oname[k].arr));
}
}
}
Bool_t allFound=kTRUE;
for(Int_t i=0;i<TOF_MAXSEC*TOF_TOTSECMODS;i++) {
if (set[i]>0 && initModules->At(i)==0) allFound=kFALSE;
}
return allFound;
}
Int_t HTofParOra2Io::createVers(HParSet* pPar) {
cout<<"--------------- "<<pPar->GetName()<<" ---------------\n";
if (strlen(pPar->getAuthor())==0) {
Error("createVers(HParSet*)",
"author of parameters not defined");
return -1;
}
if (strlen(pPar->getDescription())==0) {
Error("createVers(HParSet*)",
"descriction of parameters not defined");
return -1;
}
int vers=-1;
int context;
int run;
char* creator;
char* descript;
context = getContextId(pPar->IsA()->GetName(),pPar->getParamContext());
if (context==-1) return -1;
run=getActRunId();
creator=(Char_t*)pPar->getAuthor();
descript=(Char_t*)pPar->getDescription();
const Char_t* contName=pPar->IsA()->GetName();
if (strcmp(contName,"HTofTrb2Lookup")==0) {
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 17;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "begin SELECT tof_ana2 . tof_par_query . next_version INTO\
:vers FROM DUAL ; INSERT INTO tof_ana2 . trb2lookup_vers ( vers_id , orig_con\
text_id , run_id , author , description ) VALUES ( :vers , :context , :run , :\
creator , :descript ) ; END ;";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )357;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)&vers;
sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)&context;
sqlstm.sqhstl[1] = (unsigned long )sizeof(int);
sqlstm.sqhsts[1] = ( int )0;
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = (unsigned char *)&run;
sqlstm.sqhstl[2] = (unsigned long )sizeof(int);
sqlstm.sqhsts[2] = ( int )0;
sqlstm.sqindv[2] = ( short *)0;
sqlstm.sqinds[2] = ( int )0;
sqlstm.sqharm[2] = (unsigned long )0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = (unsigned char *)creator;
sqlstm.sqhstl[3] = (unsigned long )0;
sqlstm.sqhsts[3] = ( int )0;
sqlstm.sqindv[3] = ( short *)0;
sqlstm.sqinds[3] = ( int )0;
sqlstm.sqharm[3] = (unsigned long )0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqhstv[4] = (unsigned char *)descript;
sqlstm.sqhstl[4] = (unsigned long )0;
sqlstm.sqhsts[4] = ( int )0;
sqlstm.sqindv[4] = ( short *)0;
sqlstm.sqinds[4] = ( int )0;
sqlstm.sqharm[4] = (unsigned long )0;
sqlstm.sqadto[4] = (unsigned short )0;
sqlstm.sqtdso[4] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode == 1403) goto not_found;
if (sqlca.sqlcode < 0) goto not_found;
}
} else {
if (strcmp(contName,"HTofCalPar")==0) {
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 17;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "begin SELECT tof_ana2 . tof_par_query . next_version IN\
TO :vers FROM DUAL ; INSERT INTO tof_ana2 . calpar_vers ( vers_id , orig_conte\
xt_id , run_id , author , description ) VALUES ( :vers , :context , :run , :cr\
eator , :descript ) ; END ;";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )392;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)&vers;
sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)&context;
sqlstm.sqhstl[1] = (unsigned long )sizeof(int);
sqlstm.sqhsts[1] = ( int )0;
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = (unsigned char *)&run;
sqlstm.sqhstl[2] = (unsigned long )sizeof(int);
sqlstm.sqhsts[2] = ( int )0;
sqlstm.sqindv[2] = ( short *)0;
sqlstm.sqinds[2] = ( int )0;
sqlstm.sqharm[2] = (unsigned long )0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = (unsigned char *)creator;
sqlstm.sqhstl[3] = (unsigned long )0;
sqlstm.sqhsts[3] = ( int )0;
sqlstm.sqindv[3] = ( short *)0;
sqlstm.sqinds[3] = ( int )0;
sqlstm.sqharm[3] = (unsigned long )0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqhstv[4] = (unsigned char *)descript;
sqlstm.sqhstl[4] = (unsigned long )0;
sqlstm.sqhsts[4] = ( int )0;
sqlstm.sqindv[4] = ( short *)0;
sqlstm.sqinds[4] = ( int )0;
sqlstm.sqharm[4] = (unsigned long )0;
sqlstm.sqadto[4] = (unsigned short )0;
sqlstm.sqtdso[4] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode == 1403) goto not_found;
if (sqlca.sqlcode < 0) goto not_found;
}
} else {
if (strcmp(contName,"HTofDigiPar")==0) {
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 17;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "begin SELECT tof_ana2 . tof_par_query . next_version \
INTO :vers FROM DUAL ; INSERT INTO tof_ana2 . digipar_vers ( vers_id , orig_co\
ntext_id , run_id , author , description ) VALUES ( :vers , :context , :run , \
:creator , :descript ) ; END ;";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )427;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)&vers;
sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)&context;
sqlstm.sqhstl[1] = (unsigned long )sizeof(int);
sqlstm.sqhsts[1] = ( int )0;
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = (unsigned char *)&run;
sqlstm.sqhstl[2] = (unsigned long )sizeof(int);
sqlstm.sqhsts[2] = ( int )0;
sqlstm.sqindv[2] = ( short *)0;
sqlstm.sqinds[2] = ( int )0;
sqlstm.sqharm[2] = (unsigned long )0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = (unsigned char *)creator;
sqlstm.sqhstl[3] = (unsigned long )0;
sqlstm.sqhsts[3] = ( int )0;
sqlstm.sqindv[3] = ( short *)0;
sqlstm.sqinds[3] = ( int )0;
sqlstm.sqharm[3] = (unsigned long )0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqhstv[4] = (unsigned char *)descript;
sqlstm.sqhstl[4] = (unsigned long )0;
sqlstm.sqhsts[4] = ( int )0;
sqlstm.sqindv[4] = ( short *)0;
sqlstm.sqinds[4] = ( int )0;
sqlstm.sqharm[4] = (unsigned long )0;
sqlstm.sqadto[4] = (unsigned short )0;
sqlstm.sqtdso[4] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode == 1403) goto not_found;
if (sqlca.sqlcode < 0) goto not_found;
}
}
}
}
cout<<"Oracle version for "<<pPar->GetName()<<" created: "<<vers<<endl;
return vers;
not_found:
showSqlError("createVers(HParSet*)");
return vers;
}
Int_t HTofParOra2Io:: writePar(HTofCalPar* pPar) {
Int_t version=createVers(pPar);
if (version==-1) return -1;
int sector[TOF_MAXRODS];
int module[TOF_MAXRODS];
int rod[TOF_MAXRODS];
int vers[TOF_MAXRODS];
float sl[TOF_MAXRODS];
float sr[TOF_MAXRODS];
float gv[TOF_MAXRODS];
float op[TOF_MAXRODS];
float ot[TOF_MAXRODS];
float pl[TOF_MAXRODS];
float pr[TOF_MAXRODS];
float al[TOF_MAXRODS];
float ga[TOF_MAXRODS];
float ep[TOF_MAXRODS];
float c1[TOF_MAXRODS];
float c2[TOF_MAXRODS];
float c3[TOF_MAXRODS];
int rows_to_insert;
Int_t nRod=0;
for(Int_t s=0; s<pPar->getSize(); s++) {
HTofCalParSec& rSec= (*pPar)[s];
for(Int_t m=0; m<rSec.getSize()&&m<TOF_MAXSECMODS; m++) {
HTofCalParMod& rMod= rSec[m];
for(Int_t c=0; c<rMod.getSize(); c++) {
HTofCalParCell& cell= rMod[c];
sector[nRod]=s+1;
module[nRod]=m+1;
rod[nRod]=c+1;
vers[nRod]=version;
sl[nRod]=cell.getLeftK();
sr[nRod]=cell.getRightK();
gv[nRod]=cell.getVGroup();
op[nRod]=cell.getPosK();
ot[nRod]=cell.getTimK();
pl[nRod]=cell.getPedestalL();
pr[nRod]=cell.getPedestalR();
al[nRod]=cell.getAttLen();
ga[nRod]=cell.getGainAsym();
ep[nRod]=cell.getEdepK();
c1[nRod]=cell.getTimeWalkC1();
c2[nRod]=cell.getTimeWalkC2();
c3[nRod]=cell.getTimeWalkC3();
nRod++;
}
}
}
rows_to_insert=nRod;
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 17;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "insert into tof_ana2.calpar_data (rod_id,vers_id,left_k,rig\
ht_k,v_group,pos_k,tim_k,pedestal_l,pedestal_r,att_len,gain_asym,edep_k,tw_c1,\
tw_c2,tw_c3) values (tof_ana2.tof_par_query.get_rod_id(:b1,:b2,:b3),:b4,:b5,:b\
6,:b7,:b8,:b9,:b10,:b11,:b12,:b13,:b14,:b15,:b16,:b17)";
sqlstm.iters = (unsigned int )rows_to_insert;
sqlstm.offset = (unsigned int )462;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)sector;
sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
sqlstm.sqhsts[0] = ( int )sizeof(int);
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqharc[0] = (unsigned long *)0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)module;
sqlstm.sqhstl[1] = (unsigned long )sizeof(int);
sqlstm.sqhsts[1] = ( int )sizeof(int);
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqharc[1] = (unsigned long *)0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = (unsigned char *)rod;
sqlstm.sqhstl[2] = (unsigned long )sizeof(int);
sqlstm.sqhsts[2] = ( int )sizeof(int);
sqlstm.sqindv[2] = ( short *)0;
sqlstm.sqinds[2] = ( int )0;
sqlstm.sqharm[2] = (unsigned long )0;
sqlstm.sqharc[2] = (unsigned long *)0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = (unsigned char *)vers;
sqlstm.sqhstl[3] = (unsigned long )sizeof(int);
sqlstm.sqhsts[3] = ( int )sizeof(int);
sqlstm.sqindv[3] = ( short *)0;
sqlstm.sqinds[3] = ( int )0;
sqlstm.sqharm[3] = (unsigned long )0;
sqlstm.sqharc[3] = (unsigned long *)0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqhstv[4] = (unsigned char *)sl;
sqlstm.sqhstl[4] = (unsigned long )sizeof(float);
sqlstm.sqhsts[4] = ( int )sizeof(float);
sqlstm.sqindv[4] = ( short *)0;
sqlstm.sqinds[4] = ( int )0;
sqlstm.sqharm[4] = (unsigned long )0;
sqlstm.sqharc[4] = (unsigned long *)0;
sqlstm.sqadto[4] = (unsigned short )0;
sqlstm.sqtdso[4] = (unsigned short )0;
sqlstm.sqhstv[5] = (unsigned char *)sr;
sqlstm.sqhstl[5] = (unsigned long )sizeof(float);
sqlstm.sqhsts[5] = ( int )sizeof(float);
sqlstm.sqindv[5] = ( short *)0;
sqlstm.sqinds[5] = ( int )0;
sqlstm.sqharm[5] = (unsigned long )0;
sqlstm.sqharc[5] = (unsigned long *)0;
sqlstm.sqadto[5] = (unsigned short )0;
sqlstm.sqtdso[5] = (unsigned short )0;
sqlstm.sqhstv[6] = (unsigned char *)gv;
sqlstm.sqhstl[6] = (unsigned long )sizeof(float);
sqlstm.sqhsts[6] = ( int )sizeof(float);
sqlstm.sqindv[6] = ( short *)0;
sqlstm.sqinds[6] = ( int )0;
sqlstm.sqharm[6] = (unsigned long )0;
sqlstm.sqharc[6] = (unsigned long *)0;
sqlstm.sqadto[6] = (unsigned short )0;
sqlstm.sqtdso[6] = (unsigned short )0;
sqlstm.sqhstv[7] = (unsigned char *)op;
sqlstm.sqhstl[7] = (unsigned long )sizeof(float);
sqlstm.sqhsts[7] = ( int )sizeof(float);
sqlstm.sqindv[7] = ( short *)0;
sqlstm.sqinds[7] = ( int )0;
sqlstm.sqharm[7] = (unsigned long )0;
sqlstm.sqharc[7] = (unsigned long *)0;
sqlstm.sqadto[7] = (unsigned short )0;
sqlstm.sqtdso[7] = (unsigned short )0;
sqlstm.sqhstv[8] = (unsigned char *)ot;
sqlstm.sqhstl[8] = (unsigned long )sizeof(float);
sqlstm.sqhsts[8] = ( int )sizeof(float);
sqlstm.sqindv[8] = ( short *)0;
sqlstm.sqinds[8] = ( int )0;
sqlstm.sqharm[8] = (unsigned long )0;
sqlstm.sqharc[8] = (unsigned long *)0;
sqlstm.sqadto[8] = (unsigned short )0;
sqlstm.sqtdso[8] = (unsigned short )0;
sqlstm.sqhstv[9] = (unsigned char *)pl;
sqlstm.sqhstl[9] = (unsigned long )sizeof(float);
sqlstm.sqhsts[9] = ( int )sizeof(float);
sqlstm.sqindv[9] = ( short *)0;
sqlstm.sqinds[9] = ( int )0;
sqlstm.sqharm[9] = (unsigned long )0;
sqlstm.sqharc[9] = (unsigned long *)0;
sqlstm.sqadto[9] = (unsigned short )0;
sqlstm.sqtdso[9] = (unsigned short )0;
sqlstm.sqhstv[10] = (unsigned char *)pr;
sqlstm.sqhstl[10] = (unsigned long )sizeof(float);
sqlstm.sqhsts[10] = ( int )sizeof(float);
sqlstm.sqindv[10] = ( short *)0;
sqlstm.sqinds[10] = ( int )0;
sqlstm.sqharm[10] = (unsigned long )0;
sqlstm.sqharc[10] = (unsigned long *)0;
sqlstm.sqadto[10] = (unsigned short )0;
sqlstm.sqtdso[10] = (unsigned short )0;
sqlstm.sqhstv[11] = (unsigned char *)al;
sqlstm.sqhstl[11] = (unsigned long )sizeof(float);
sqlstm.sqhsts[11] = ( int )sizeof(float);
sqlstm.sqindv[11] = ( short *)0;
sqlstm.sqinds[11] = ( int )0;
sqlstm.sqharm[11] = (unsigned long )0;
sqlstm.sqharc[11] = (unsigned long *)0;
sqlstm.sqadto[11] = (unsigned short )0;
sqlstm.sqtdso[11] = (unsigned short )0;
sqlstm.sqhstv[12] = (unsigned char *)ga;
sqlstm.sqhstl[12] = (unsigned long )sizeof(float);
sqlstm.sqhsts[12] = ( int )sizeof(float);
sqlstm.sqindv[12] = ( short *)0;
sqlstm.sqinds[12] = ( int )0;
sqlstm.sqharm[12] = (unsigned long )0;
sqlstm.sqharc[12] = (unsigned long *)0;
sqlstm.sqadto[12] = (unsigned short )0;
sqlstm.sqtdso[12] = (unsigned short )0;
sqlstm.sqhstv[13] = (unsigned char *)ep;
sqlstm.sqhstl[13] = (unsigned long )sizeof(float);
sqlstm.sqhsts[13] = ( int )sizeof(float);
sqlstm.sqindv[13] = ( short *)0;
sqlstm.sqinds[13] = ( int )0;
sqlstm.sqharm[13] = (unsigned long )0;
sqlstm.sqharc[13] = (unsigned long *)0;
sqlstm.sqadto[13] = (unsigned short )0;
sqlstm.sqtdso[13] = (unsigned short )0;
sqlstm.sqhstv[14] = (unsigned char *)c1;
sqlstm.sqhstl[14] = (unsigned long )sizeof(float);
sqlstm.sqhsts[14] = ( int )sizeof(float);
sqlstm.sqindv[14] = ( short *)0;
sqlstm.sqinds[14] = ( int )0;
sqlstm.sqharm[14] = (unsigned long )0;
sqlstm.sqharc[14] = (unsigned long *)0;
sqlstm.sqadto[14] = (unsigned short )0;
sqlstm.sqtdso[14] = (unsigned short )0;
sqlstm.sqhstv[15] = (unsigned char *)c2;
sqlstm.sqhstl[15] = (unsigned long )sizeof(float);
sqlstm.sqhsts[15] = ( int )sizeof(float);
sqlstm.sqindv[15] = ( short *)0;
sqlstm.sqinds[15] = ( int )0;
sqlstm.sqharm[15] = (unsigned long )0;
sqlstm.sqharc[15] = (unsigned long *)0;
sqlstm.sqadto[15] = (unsigned short )0;
sqlstm.sqtdso[15] = (unsigned short )0;
sqlstm.sqhstv[16] = (unsigned char *)c3;
sqlstm.sqhstl[16] = (unsigned long )sizeof(float);
sqlstm.sqhsts[16] = ( int )sizeof(float);
sqlstm.sqindv[16] = ( short *)0;
sqlstm.sqinds[16] = ( int )0;
sqlstm.sqharm[16] = (unsigned long )0;
sqlstm.sqharc[16] = (unsigned long *)0;
sqlstm.sqadto[16] = (unsigned short )0;
sqlstm.sqtdso[16] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode == 1403) goto not_found;
if (sqlca.sqlcode < 0) goto not_found;
}
cout<<rows_to_insert<<" rows inserted\n";
commit();
pPar->setChanged(kFALSE);
return version;
not_found:
showSqlError("writePar(HTofCalPar*)");
rollback();
pPar->setChanged(kFALSE);
return -1;
}
Int_t HTofParOra2Io:: writePar(HTofDigiPar* pPar) {
Int_t version=createVers(pPar);
if (version==-1) return -1;
int sector[TOF_MAXRODS];
int module[TOF_MAXRODS];
int rod[TOF_MAXRODS];
int vers[TOF_MAXRODS];
float hl[TOF_MAXRODS];
float ar[TOF_MAXRODS];
float al[TOF_MAXRODS];
float gv[TOF_MAXRODS];
float slt[TOF_MAXRODS];
float srt[TOF_MAXRODS];
int tlc[TOF_MAXRODS];
int trc[TOF_MAXRODS];
int tla[TOF_MAXRODS];
int tra[TOF_MAXRODS];
int rows_to_insert;
Int_t nRod=0;
for(Int_t s=0; s<pPar->getSize(); s++) {
HTofDigiParSec& rSec=(*pPar)[s];
for(Int_t m=0; m<rSec.getSize()&&m<TOF_MAXSECMODS; m++) {
HTofDigiParMod& rMod= rSec[m];
for(Int_t c=0; c<rMod.getSize(); c++) {
HTofDigiParCell& cell= rMod[c];
sector[nRod]=s+1;
module[nRod]=m+1;
rod[nRod]=c+1;
vers[nRod]=version;
hl[nRod]=cell.getHalfLen();
ar[nRod]=cell.getAngleRef();
al[nRod]=cell.getAttenLen();
gv[nRod]=cell.getGroupVel();
slt[nRod]=cell.getLeftTDCSlope();
srt[nRod]=cell.getRightTDCSlope();
tlc[nRod]=cell.getLeftCFDThreshold();
trc[nRod]=cell.getRightCFDThreshold();
tla[nRod]=cell.getLeftADCThreshold();
tra[nRod]=cell.getRightADCThreshold();
nRod++;
}
}
}
rows_to_insert=nRod;
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 17;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "insert into tof_ana2.digipar_data (rod_id,vers_id,half_len,\
angle_ref,atten_len,group_vel,slope_left_tdc,slope_right_tdc,thr_left_cfd,thr_\
right_cfd,thr_left_adc,thr_right_adc) values (tof_ana2.tof_par_query.get_rod_i\
d(:b1,:b2,:b3),:b4,:b5,:b6,:b7,:b8,:b9,:b10,:b11,:b12,:b13,:b14)";
sqlstm.iters = (unsigned int )rows_to_insert;
sqlstm.offset = (unsigned int )545;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)sector;
sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
sqlstm.sqhsts[0] = ( int )sizeof(int);
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqharc[0] = (unsigned long *)0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)module;
sqlstm.sqhstl[1] = (unsigned long )sizeof(int);
sqlstm.sqhsts[1] = ( int )sizeof(int);
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqharc[1] = (unsigned long *)0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = (unsigned char *)rod;
sqlstm.sqhstl[2] = (unsigned long )sizeof(int);
sqlstm.sqhsts[2] = ( int )sizeof(int);
sqlstm.sqindv[2] = ( short *)0;
sqlstm.sqinds[2] = ( int )0;
sqlstm.sqharm[2] = (unsigned long )0;
sqlstm.sqharc[2] = (unsigned long *)0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = (unsigned char *)vers;
sqlstm.sqhstl[3] = (unsigned long )sizeof(int);
sqlstm.sqhsts[3] = ( int )sizeof(int);
sqlstm.sqindv[3] = ( short *)0;
sqlstm.sqinds[3] = ( int )0;
sqlstm.sqharm[3] = (unsigned long )0;
sqlstm.sqharc[3] = (unsigned long *)0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqhstv[4] = (unsigned char *)hl;
sqlstm.sqhstl[4] = (unsigned long )sizeof(float);
sqlstm.sqhsts[4] = ( int )sizeof(float);
sqlstm.sqindv[4] = ( short *)0;
sqlstm.sqinds[4] = ( int )0;
sqlstm.sqharm[4] = (unsigned long )0;
sqlstm.sqharc[4] = (unsigned long *)0;
sqlstm.sqadto[4] = (unsigned short )0;
sqlstm.sqtdso[4] = (unsigned short )0;
sqlstm.sqhstv[5] = (unsigned char *)ar;
sqlstm.sqhstl[5] = (unsigned long )sizeof(float);
sqlstm.sqhsts[5] = ( int )sizeof(float);
sqlstm.sqindv[5] = ( short *)0;
sqlstm.sqinds[5] = ( int )0;
sqlstm.sqharm[5] = (unsigned long )0;
sqlstm.sqharc[5] = (unsigned long *)0;
sqlstm.sqadto[5] = (unsigned short )0;
sqlstm.sqtdso[5] = (unsigned short )0;
sqlstm.sqhstv[6] = (unsigned char *)al;
sqlstm.sqhstl[6] = (unsigned long )sizeof(float);
sqlstm.sqhsts[6] = ( int )sizeof(float);
sqlstm.sqindv[6] = ( short *)0;
sqlstm.sqinds[6] = ( int )0;
sqlstm.sqharm[6] = (unsigned long )0;
sqlstm.sqharc[6] = (unsigned long *)0;
sqlstm.sqadto[6] = (unsigned short )0;
sqlstm.sqtdso[6] = (unsigned short )0;
sqlstm.sqhstv[7] = (unsigned char *)gv;
sqlstm.sqhstl[7] = (unsigned long )sizeof(float);
sqlstm.sqhsts[7] = ( int )sizeof(float);
sqlstm.sqindv[7] = ( short *)0;
sqlstm.sqinds[7] = ( int )0;
sqlstm.sqharm[7] = (unsigned long )0;
sqlstm.sqharc[7] = (unsigned long *)0;
sqlstm.sqadto[7] = (unsigned short )0;
sqlstm.sqtdso[7] = (unsigned short )0;
sqlstm.sqhstv[8] = (unsigned char *)slt;
sqlstm.sqhstl[8] = (unsigned long )sizeof(float);
sqlstm.sqhsts[8] = ( int )sizeof(float);
sqlstm.sqindv[8] = ( short *)0;
sqlstm.sqinds[8] = ( int )0;
sqlstm.sqharm[8] = (unsigned long )0;
sqlstm.sqharc[8] = (unsigned long *)0;
sqlstm.sqadto[8] = (unsigned short )0;
sqlstm.sqtdso[8] = (unsigned short )0;
sqlstm.sqhstv[9] = (unsigned char *)srt;
sqlstm.sqhstl[9] = (unsigned long )sizeof(float);
sqlstm.sqhsts[9] = ( int )sizeof(float);
sqlstm.sqindv[9] = ( short *)0;
sqlstm.sqinds[9] = ( int )0;
sqlstm.sqharm[9] = (unsigned long )0;
sqlstm.sqharc[9] = (unsigned long *)0;
sqlstm.sqadto[9] = (unsigned short )0;
sqlstm.sqtdso[9] = (unsigned short )0;
sqlstm.sqhstv[10] = (unsigned char *)tlc;
sqlstm.sqhstl[10] = (unsigned long )sizeof(int);
sqlstm.sqhsts[10] = ( int )sizeof(int);
sqlstm.sqindv[10] = ( short *)0;
sqlstm.sqinds[10] = ( int )0;
sqlstm.sqharm[10] = (unsigned long )0;
sqlstm.sqharc[10] = (unsigned long *)0;
sqlstm.sqadto[10] = (unsigned short )0;
sqlstm.sqtdso[10] = (unsigned short )0;
sqlstm.sqhstv[11] = (unsigned char *)trc;
sqlstm.sqhstl[11] = (unsigned long )sizeof(int);
sqlstm.sqhsts[11] = ( int )sizeof(int);
sqlstm.sqindv[11] = ( short *)0;
sqlstm.sqinds[11] = ( int )0;
sqlstm.sqharm[11] = (unsigned long )0;
sqlstm.sqharc[11] = (unsigned long *)0;
sqlstm.sqadto[11] = (unsigned short )0;
sqlstm.sqtdso[11] = (unsigned short )0;
sqlstm.sqhstv[12] = (unsigned char *)tla;
sqlstm.sqhstl[12] = (unsigned long )sizeof(int);
sqlstm.sqhsts[12] = ( int )sizeof(int);
sqlstm.sqindv[12] = ( short *)0;
sqlstm.sqinds[12] = ( int )0;
sqlstm.sqharm[12] = (unsigned long )0;
sqlstm.sqharc[12] = (unsigned long *)0;
sqlstm.sqadto[12] = (unsigned short )0;
sqlstm.sqtdso[12] = (unsigned short )0;
sqlstm.sqhstv[13] = (unsigned char *)tra;
sqlstm.sqhstl[13] = (unsigned long )sizeof(int);
sqlstm.sqhsts[13] = ( int )sizeof(int);
sqlstm.sqindv[13] = ( short *)0;
sqlstm.sqinds[13] = ( int )0;
sqlstm.sqharm[13] = (unsigned long )0;
sqlstm.sqharc[13] = (unsigned long *)0;
sqlstm.sqadto[13] = (unsigned short )0;
sqlstm.sqtdso[13] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode == 1403) goto not_found;
if (sqlca.sqlcode < 0) goto not_found;
}
cout<<rows_to_insert<<" rows inserted\n";
commit();
pPar->setChanged(kFALSE);
return version;
not_found:
showSqlError("writePar(HTofDigiPar*)");
rollback();
pPar->setChanged(kFALSE);
return -1;
}
Int_t HTofParOra2Io::writePar(HTofTrb2Lookup* pPar) {
Int_t version=createVers(pPar);
if (version==-1) return -1;
int rows_to_insert;
int vers[TOF_NCHAN_TRB];
int address[TOF_NCHAN_TRB];
int chan[TOF_NCHAN_TRB];
int sector[TOF_NCHAN_TRB];
int module[TOF_NCHAN_TRB];
int rod[TOF_NCHAN_TRB];
char side[TOF_NCHAN_TRB][2];
Int_t nChan=0;
Int_t arrayOffset=pPar->getArrayOffset();
for(Int_t b=0;b<pPar->getSize();b++) {
HTofTrb2LookupBoard* board=(*pPar)[b];
if (board) {
nChan=0;
for(Int_t t=0;t<board->getSize();t++) {
HTofTrb2LookupChan& rChan=(*board)[t];
if (rChan.getSector()!=-1&&rChan.getModule()!=-1&&rChan.getCell()!=-1) {
vers[nChan]=version;
address[nChan]=arrayOffset+b;
chan[nChan]=t;
sector[nChan]=rChan.getSector()+1;
module[nChan]=rChan.getModule()+1;
rod[nChan]=rChan.getCell()+1;
side[nChan][0]=rChan.getSide();
if (side[nChan][0]!='\0') {
side[nChan][1]='\0';
} else {
Error("writePar(HTofTrb2Lookup*)",
"Side not defined for trbnet-address=0x%x channel=%i",arrayOffset+b,t);
rollback();
pPar->setChanged(kFALSE);
return -1;
}
nChan++;
}
}
rows_to_insert=nChan;
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 17;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "insert into tof_ana2.trb2lookup_data (vers_id,trbnet_ad\
dress,channel_id,rod_id,side) values (:b1,:b2,:b3,tof_ana2.tof_par_query.get_r\
od_id(:b4,:b5,:b6),:b7)";
sqlstm.iters = (unsigned int )rows_to_insert;
sqlstm.offset = (unsigned int )616;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)vers;
sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
sqlstm.sqhsts[0] = ( int )sizeof(int);
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqharc[0] = (unsigned long *)0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)address;
sqlstm.sqhstl[1] = (unsigned long )sizeof(int);
sqlstm.sqhsts[1] = ( int )sizeof(int);
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqharc[1] = (unsigned long *)0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = (unsigned char *)chan;
sqlstm.sqhstl[2] = (unsigned long )sizeof(int);
sqlstm.sqhsts[2] = ( int )sizeof(int);
sqlstm.sqindv[2] = ( short *)0;
sqlstm.sqinds[2] = ( int )0;
sqlstm.sqharm[2] = (unsigned long )0;
sqlstm.sqharc[2] = (unsigned long *)0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = (unsigned char *)sector;
sqlstm.sqhstl[3] = (unsigned long )sizeof(int);
sqlstm.sqhsts[3] = ( int )sizeof(int);
sqlstm.sqindv[3] = ( short *)0;
sqlstm.sqinds[3] = ( int )0;
sqlstm.sqharm[3] = (unsigned long )0;
sqlstm.sqharc[3] = (unsigned long *)0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqhstv[4] = (unsigned char *)module;
sqlstm.sqhstl[4] = (unsigned long )sizeof(int);
sqlstm.sqhsts[4] = ( int )sizeof(int);
sqlstm.sqindv[4] = ( short *)0;
sqlstm.sqinds[4] = ( int )0;
sqlstm.sqharm[4] = (unsigned long )0;
sqlstm.sqharc[4] = (unsigned long *)0;
sqlstm.sqadto[4] = (unsigned short )0;
sqlstm.sqtdso[4] = (unsigned short )0;
sqlstm.sqhstv[5] = (unsigned char *)rod;
sqlstm.sqhstl[5] = (unsigned long )sizeof(int);
sqlstm.sqhsts[5] = ( int )sizeof(int);
sqlstm.sqindv[5] = ( short *)0;
sqlstm.sqinds[5] = ( int )0;
sqlstm.sqharm[5] = (unsigned long )0;
sqlstm.sqharc[5] = (unsigned long *)0;
sqlstm.sqadto[5] = (unsigned short )0;
sqlstm.sqtdso[5] = (unsigned short )0;
sqlstm.sqhstv[6] = (unsigned char *)side;
sqlstm.sqhstl[6] = (unsigned long )2;
sqlstm.sqhsts[6] = ( int )2;
sqlstm.sqindv[6] = ( short *)0;
sqlstm.sqinds[6] = ( int )0;
sqlstm.sqharm[6] = (unsigned long )0;
sqlstm.sqharc[6] = (unsigned long *)0;
sqlstm.sqadto[6] = (unsigned short )0;
sqlstm.sqtdso[6] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode == 1403) goto errorfound;
if (sqlca.sqlcode < 0) goto errorfound;
}
cout<<"Trbnet-address "<<"0x"<<hex<<(arrayOffset+b)<<dec<<": "<<rows_to_insert<<" rows inserted\n";
}
}
commit();
pPar->setChanged(kFALSE);
return version;
errorfound:
showSqlError("writePar(HTofTrb2Lookup*)");
rollback();
pPar->setChanged(kFALSE);
return -1;
}
void HTofParOra2Io::printInfo(const Char_t* contName) {
Bool_t first=kTRUE;
Int_t s, lastSec=-1;
for(Int_t i=0;i<TOF_MAXSEC*TOF_TOTSECMODS;i++) {
if (initModules->At(i)) {
if (first) {
cout<<contName<<": sector(s) initialized from Oracle: ";
first=kFALSE;
}
s=(Int_t)floor((i+0.1)/TOF_TOTSECMODS);
if (s>lastSec) {
cout<<s<<" ";
lastSec=s;
}
}
}
cout<<'\n';
}