#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[16];
};
static const struct sqlcxp sqlfpn =
{
15,
"htofparoraio.pc"
};
static unsigned int sqlctx = 2490563;
static struct sqlexd {
unsigned int 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;
void **sqphsv;
unsigned int *sqphsl;
int *sqphss;
void **sqpind;
int *sqpins;
unsigned int *sqparm;
unsigned int **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;
void *sqhstv[17];
unsigned int sqhstl[17];
int sqhsts[17];
void *sqindv[17];
int sqinds[17];
unsigned int sqharm[17];
unsigned int *sqharc[17];
unsigned short sqadto[17];
unsigned short sqtdso[17];
} sqlstm = {12,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(char *, int *); }
static const char *sq0004 =
"select crate ,slot ,channel ,branch ,sector ,module ,rod ,side from tof_ana\
.tof_lookup_at_histdate ";
static const char *sq0007 =
"select module ,rod ,left_k ,right_k ,v_group ,pos_k ,tim_k ,pedestal_l ,pede\
stal_r ,att_len ,gain_asym ,edep_k ,tw_c1 ,tw_c2 ,tw_c3 from tof_ana.tof_calp\
ar_data where (sector=:b0 and version=:b1) ";
static const char *sq0008 =
"select module ,rod ,half_len ,angle_ref ,atten_len ,group_vel ,slope_left_td\
c ,slope_right_tdc ,thr_left_cfd ,thr_right_cfd ,thr_left_adc ,thr_right_adc \
from tof_ana.tof_digipar_data where (sector=:b0 and version=:b1) ";
typedef struct { unsigned short len; unsigned char arr[1]; } VARCHAR;
typedef struct { unsigned short len; unsigned char arr[1]; } varchar;
static const short sqlcud0[] =
{12,4130,1,0,0,
5,0,0,1,86,0,4,123,0,0,3,0,0,1,0,2,3,0,0,2,3,0,0,2,3,0,0,
32,0,0,2,204,0,4,183,0,0,4,0,0,1,0,2,4,0,0,2,4,0,0,2,4,0,0,2,4,0,0,
63,0,0,3,133,0,4,198,0,0,2,0,0,1,0,2,4,0,0,2,4,0,0,
86,0,0,4,111,0,9,251,0,0,0,0,0,1,0,
101,0,0,4,0,0,13,255,0,0,8,0,0,1,0,2,3,0,0,2,3,0,0,2,3,0,0,2,97,0,0,2,3,0,0,2,
3,0,0,2,3,0,0,2,97,0,0,
148,0,0,4,0,0,15,269,0,0,0,0,0,1,0,
163,0,0,5,170,0,4,309,0,0,5,1,0,1,0,2,3,0,0,2,3,0,0,2,4,0,0,2,4,0,0,1,3,0,0,
198,0,0,6,171,0,4,317,0,0,5,1,0,1,0,2,3,0,0,2,3,0,0,2,4,0,0,2,4,0,0,1,3,0,0,
233,0,0,7,207,0,9,403,0,0,2,2,0,1,0,1,3,0,0,1,3,0,0,
256,0,0,7,0,0,13,404,0,0,15,0,0,1,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,
331,0,0,7,0,0,15,428,0,0,0,0,0,1,0,
346,0,0,8,229,0,9,503,0,0,2,2,0,1,0,1,3,0,0,1,3,0,0,
369,0,0,8,0,0,13,504,0,0,12,0,0,1,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,
432,0,0,8,0,0,15,525,0,0,0,0,0,1,0,
447,0,0,9,113,0,4,583,0,0,4,0,0,1,0,2,3,0,0,2,3,0,0,2,3,0,0,2,9,0,0,
478,0,0,10,167,0,4,644,0,0,4,0,0,1,0,2,3,0,0,2,3,0,0,2,3,0,0,2,9,0,0,
509,0,0,11,267,0,3,741,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,
592,0,0,12,277,0,3,823,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,
663,0,0,13,236,0,6,873,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,
698,0,0,14,237,0,6,883,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,
733,0,0,15,140,0,4,910,0,0,2,1,0,1,0,2,3,0,0,1,3,0,0,
};
using namespace std;
#include "htofparoraio.h"
#include "hades.h"
#include "hspectrometer.h"
#include "htofdetector.h"
#include "htoflookup.h"
#include "htofcalpar.h"
#include "htofdigipar.h"
#include "htofgeompar.h"
#include "hgeomcompositevolume.h"
#include "htofclusterfpar.h"
#include "hgeomoradetversion.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(HTofParOraIo)
#define TOF_MAXSEC 6
#define TOF_MAXMODS 132
#define TOF_MAXRODS 1056
#define TOF_MAXSECRODS 176
HTofParOraIo::HTofParOraIo(HOraConn* pC) : HDetParOraIo(pC) {
fName="HTofParIo";
numModules=0;
tofIds=0;
secIds=0;
initModules=0;
geomVers=0;
}
HTofParOraIo::~HTofParOraIo() {
if (tofIds) delete tofIds;
if (secIds) delete secIds;
if (initModules) delete initModules;
if (geomVers) delete geomVers;
}
Bool_t HTofParOraIo::init(HParSet* pPar,Int_t* set) {
const Text_t* name=pPar->IsA()->GetName();
if (strcmp(name,"HTofClusterFPar")==0) return readCond((HParCond*)pPar,set);
if (startIo(pPar)<=0) return kFALSE;
if (strcmp(name,"HTofLookup")==0) return read(((HTofLookup*)pPar),set);
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);
return kFALSE;
}
Int_t HTofParOraIo::write(HParSet* pPar) {
const Text_t* name=pPar->IsA()->GetName();
if (strcmp(name,"HTofClusterFPar")==0) return writeCond((HParCond*)pPar);
if (startIo(pPar)<=0) return 0;
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;
}
Int_t HTofParOraIo::startIo(HParSet* pPar) {
runStart=getRunStart(pPar);
if (runStart>0 && tofIds==0) readIds();
if (runStart==-1 || numModules<=0) {
pPar->setInputVersion(-1,inputNumber);
return -1;
}
return runStart;
}
Int_t HTofParOraIo::readIds() {
HTofDetector* det=(HTofDetector*)(gHades->getSetup()->getDetector("Tof"));
maxModules=det->getMaxModules();
struct {
int id[TOF_MAXMODS];
int sec[TOF_MAXMODS];
int mod[TOF_MAXMODS];
} mods;
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 3;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select module_id ,sector ,segment into :s1 ,:s2 ,:s3 from\
tof_ana.setup_at_run_hist ";
sqlstm.iters = (unsigned int )132;
sqlstm.offset = (unsigned int )5;
sqlstm.selerr = (unsigned short)1;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = ( void *)mods.id;
sqlstm.sqhstl[0] = (unsigned int )sizeof(int);
sqlstm.sqhsts[0] = ( int )sizeof(int);
sqlstm.sqindv[0] = ( void *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqharc[0] = (unsigned int *)0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = ( void *)mods.sec;
sqlstm.sqhstl[1] = (unsigned int )sizeof(int);
sqlstm.sqhsts[1] = ( int )sizeof(int);
sqlstm.sqindv[1] = ( void *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned int )0;
sqlstm.sqharc[1] = (unsigned int *)0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = ( void *)mods.mod;
sqlstm.sqhstl[2] = (unsigned int )sizeof(int);
sqlstm.sqhsts[2] = ( int )sizeof(int);
sqlstm.sqindv[2] = ( void *)0;
sqlstm.sqinds[2] = ( int )0;
sqlstm.sqharm[2] = (unsigned int )0;
sqlstm.sqharc[2] = (unsigned int *)0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (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("readIds()");
}
numModules=sqlca.sqlerrd[2];
if (numModules>0) {
tofIds=new TArrayI(TOF_MAXMODS);
for(Int_t i=0;i<TOF_MAXMODS;i++) tofIds->AddAt(0,i);
secIds=new TArrayI(TOF_MAXSEC);
for(Int_t i=0;i<TOF_MAXSEC;i++) secIds->AddAt(0,i);
initModules=new TArrayI(TOF_MAXMODS);
}
Int_t s, m, pos;
for(Int_t i=0;i<numModules;i++) {
s=mods.sec[i]-1;
m=mods.mod[i]-1;
pos=s*maxModules+m;
if (det->getModule(s,m)) {
tofIds->AddAt(mods.id[i],pos);
secIds->AddAt(mods.sec[i],s);
}
}
return numModules;
}
void HTofParOraIo::printIds() {
if (tofIds) {
for(Int_t i=0;i<TOF_MAXSEC;i++) {
cout<<"sector: "<<i+1<<" tof ids:\n";
for(Int_t j=0;j<maxModules;j++) { cout<<" "<<tofIds->At(i*maxModules+j); }
cout<<'\n';
}
cout<<'\n';
}
}
Int_t HTofParOraIo::getLookupVersion(HTofLookup* pPar) {
HParOraSet* oraSet=getOraSet(pPar);
Int_t contVers=pPar->getInputVersion(inputNumber);
if (contVers!=-1 && runStart>=oraSet->versDate[0] && runStart<=oraSet->versDate[1]) {
return contVers;
}
Double_t dateRange[2]={-1.,1.e+12};
double c_since;
double c_until;
double r_since;
double r_until;
short c_since_ind;
short c_until_ind;
short r_since_ind;
short r_until_ind;
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select hdate.to_ansitime(config_since) ,hdate.to_ansitime(c\
onfig_until) ,hdate.to_ansitime(dc_since) ,hdate.to_ansitime(dc_until) into :b\
0:b1,:b2:b3,:b4:b5,:b6:b7 from tof_ana.tof_lookup_time_range_hist ";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )32;
sqlstm.selerr = (unsigned short)1;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = ( void *)&c_since;
sqlstm.sqhstl[0] = (unsigned int )sizeof(double);
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( void *)&c_since_ind;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = ( void *)&c_until;
sqlstm.sqhstl[1] = (unsigned int )sizeof(double);
sqlstm.sqhsts[1] = ( int )0;
sqlstm.sqindv[1] = ( void *)&c_until_ind;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned int )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = ( void *)&r_since;
sqlstm.sqhstl[2] = (unsigned int )sizeof(double);
sqlstm.sqhsts[2] = ( int )0;
sqlstm.sqindv[2] = ( void *)&r_since_ind;
sqlstm.sqinds[2] = ( int )0;
sqlstm.sqharm[2] = (unsigned int )0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = ( void *)&r_until;
sqlstm.sqhstl[3] = (unsigned int )sizeof(double);
sqlstm.sqhsts[3] = ( int )0;
sqlstm.sqindv[3] = ( void *)&r_until_ind;
sqlstm.sqinds[3] = ( int )0;
sqlstm.sqharm[3] = (unsigned int )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("getLookupVersion(HTofLookup*)");
}
if (c_since_ind==-1||c_until_ind==-1||r_since_ind==-1||r_until_ind==-1) {
oraSet->clearVersDate();
return -1;
}
dateRange[0]=c_since;
dateRange[1]=c_until;
if (r_since>dateRange[0]) dateRange[0]=r_since;
if (r_until<dateRange[1]) dateRange[1]=r_until;
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select hdate.to_ansitime(previous_until) ,hdate.to_ansitime\
(next_since) into :b0:b1,:b2:b3 from tof_ana.tof_lookup_time_range_check ";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )63;
sqlstm.selerr = (unsigned short)1;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = ( void *)&c_since;
sqlstm.sqhstl[0] = (unsigned int )sizeof(double);
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( void *)&c_since_ind;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = ( void *)&c_until;
sqlstm.sqhstl[1] = (unsigned int )sizeof(double);
sqlstm.sqhsts[1] = ( int )0;
sqlstm.sqindv[1] = ( void *)&c_until_ind;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned int )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (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("getLookupVersion(HTofLookup*)");
}
if (c_since_ind!=-1 && c_since>dateRange[0]) dateRange[0]=c_since;
if (c_until_ind!=-1 && c_until<dateRange[1]) dateRange[1]=c_until;
if (contVers==-1 || runStart<oraSet->versDate[0] || runStart>oraSet->versDate[1] ||
dateRange[0]!=oraSet->versDate[0] || dateRange[1]!=oraSet->versDate[1]) {
oraSet->versDate[0]=dateRange[0];
oraSet->versDate[1]=dateRange[1];
return getActRunId();
} else return contVers;
notfound:
oraSet->clearVersDate();
return -1;
};
Bool_t HTofParOraIo::read(HTofLookup* pPar, Int_t* set) {
Int_t version=getLookupVersion(pPar);
if (version==-1) {
pPar->setInputVersion(-1,inputNumber);
return kFALSE;
}
if (version==pPar->getInputVersion(inputNumber)) return kTRUE;
pPar->clear();
initModules->Reset();
struct {
int crate[TOF_MAXRODS];
int slot[TOF_MAXRODS];
int chan[TOF_MAXRODS];
char branch[TOF_MAXRODS][2];
int sec[TOF_MAXRODS];
int mod[TOF_MAXRODS];
int rod[TOF_MAXRODS];
char side[TOF_MAXRODS][2];
} lrec;
struct {
short crate[TOF_MAXRODS];
short slot[TOF_MAXRODS];
short chan[TOF_MAXRODS];
short branch[TOF_MAXRODS];
short sec[TOF_MAXRODS];
short mod[TOF_MAXRODS];
short rod[TOF_MAXRODS];
short side[TOF_MAXRODS];
} lrec_Ind;
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = sq0004;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )86;
sqlstm.selerr = (unsigned short)1;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqcmod = (unsigned int )0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) showSqlError("read(HTofLookup*,Int_t*)");
}
Int_t nbs=0, nbslast=0, s, m, pos;
do {
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 8;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )1056;
sqlstm.offset = (unsigned int )101;
sqlstm.selerr = (unsigned short)1;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqfoff = ( int )0;
sqlstm.sqfmod = (unsigned int )2;
sqlstm.sqhstv[0] = ( void *)lrec.crate;
sqlstm.sqhstl[0] = (unsigned int )sizeof(int);
sqlstm.sqhsts[0] = ( int )sizeof(int);
sqlstm.sqindv[0] = ( void *)lrec_Ind.crate;
sqlstm.sqinds[0] = ( int )sizeof(short);
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqharc[0] = (unsigned int *)0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = ( void *)lrec.slot;
sqlstm.sqhstl[1] = (unsigned int )sizeof(int);
sqlstm.sqhsts[1] = ( int )sizeof(int);
sqlstm.sqindv[1] = ( void *)lrec_Ind.slot;
sqlstm.sqinds[1] = ( int )sizeof(short);
sqlstm.sqharm[1] = (unsigned int )0;
sqlstm.sqharc[1] = (unsigned int *)0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = ( void *)lrec.chan;
sqlstm.sqhstl[2] = (unsigned int )sizeof(int);
sqlstm.sqhsts[2] = ( int )sizeof(int);
sqlstm.sqindv[2] = ( void *)lrec_Ind.chan;
sqlstm.sqinds[2] = ( int )sizeof(short);
sqlstm.sqharm[2] = (unsigned int )0;
sqlstm.sqharc[2] = (unsigned int *)0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = ( void *)lrec.branch;
sqlstm.sqhstl[3] = (unsigned int )2;
sqlstm.sqhsts[3] = ( int )2;
sqlstm.sqindv[3] = ( void *)lrec_Ind.branch;
sqlstm.sqinds[3] = ( int )sizeof(short);
sqlstm.sqharm[3] = (unsigned int )0;
sqlstm.sqharc[3] = (unsigned int *)0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqhstv[4] = ( void *)lrec.sec;
sqlstm.sqhstl[4] = (unsigned int )sizeof(int);
sqlstm.sqhsts[4] = ( int )sizeof(int);
sqlstm.sqindv[4] = ( void *)lrec_Ind.sec;
sqlstm.sqinds[4] = ( int )sizeof(short);
sqlstm.sqharm[4] = (unsigned int )0;
sqlstm.sqharc[4] = (unsigned int *)0;
sqlstm.sqadto[4] = (unsigned short )0;
sqlstm.sqtdso[4] = (unsigned short )0;
sqlstm.sqhstv[5] = ( void *)lrec.mod;
sqlstm.sqhstl[5] = (unsigned int )sizeof(int);
sqlstm.sqhsts[5] = ( int )sizeof(int);
sqlstm.sqindv[5] = ( void *)lrec_Ind.mod;
sqlstm.sqinds[5] = ( int )sizeof(short);
sqlstm.sqharm[5] = (unsigned int )0;
sqlstm.sqharc[5] = (unsigned int *)0;
sqlstm.sqadto[5] = (unsigned short )0;
sqlstm.sqtdso[5] = (unsigned short )0;
sqlstm.sqhstv[6] = ( void *)lrec.rod;
sqlstm.sqhstl[6] = (unsigned int )sizeof(int);
sqlstm.sqhsts[6] = ( int )sizeof(int);
sqlstm.sqindv[6] = ( void *)lrec_Ind.rod;
sqlstm.sqinds[6] = ( int )sizeof(short);
sqlstm.sqharm[6] = (unsigned int )0;
sqlstm.sqharc[6] = (unsigned int *)0;
sqlstm.sqadto[6] = (unsigned short )0;
sqlstm.sqtdso[6] = (unsigned short )0;
sqlstm.sqhstv[7] = ( void *)lrec.side;
sqlstm.sqhstl[7] = (unsigned int )2;
sqlstm.sqhsts[7] = ( int )2;
sqlstm.sqindv[7] = ( void *)lrec_Ind.side;
sqlstm.sqinds[7] = ( int )sizeof(short);
sqlstm.sqharm[7] = (unsigned int )0;
sqlstm.sqharc[7] = (unsigned int *)0;
sqlstm.sqadto[7] = (unsigned short )0;
sqlstm.sqtdso[7] = (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(HTofLookup*,Int_t*)");
}
nbs=sqlca.sqlerrd[2] - nbslast;
nbslast+=nbs;
for(Int_t i=0;i<nbs;i++) {
s=lrec.sec[i]-1;
m=lrec.mod[i]-1;
pos=s*maxModules+m;
if (set[pos]) {
pPar->fill(lrec.crate[i]-1,lrec.slot[i]-1,lrec.branch[i][0],
lrec.chan[i],s,m,lrec.rod[i]-1,lrec.side[i][0]);
initModules->AddAt(pos+1,pos);
}
}
} while (nbs==TOF_MAXRODS);
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 8;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )148;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) showSqlError("read(HTofLookup*,Int_t*)");
}
Bool_t allFound=kTRUE;
Int_t n=TOF_MAXSEC*maxModules;
for(Int_t i=0;i<n;i++) {
if (set[i]>0 && initModules->At(i)<=0) allFound=kFALSE;
}
if (allFound) {
pPar->setInputVersion(version,inputNumber);
setChanged(pPar);
printInfo(pPar->GetName());
} else pPar->clear();
return allFound;
}
Int_t HTofParOraIo::getVersion(HParSet* pPar,Int_t* set,Int_t* versions) {
HParOraSet* oraSet=getOraSet(pPar);
if (oraSet->contextId==-1) return -1;
Int_t contVers=pPar->getInputVersion(inputNumber);
if (contVers!=-1 && runStart>=oraSet->versDate[0] && runStart<=oraSet->versDate[1])
return contVers;
oraSet->clearVersDate();
Int_t tofSectors[TOF_MAXSEC];
putTofSectors(set,tofSectors);
int context;
struct {
int sec[TOF_MAXSEC];
int vers[TOF_MAXSEC];
double since[TOF_MAXSEC];
double until[TOF_MAXSEC];
} parvers;
context=oraSet->contextId;
const Char_t* containerClass=pPar->IsA()->GetName();
if (strcmp(containerClass,"HTofCalPar")==0) {
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 8;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select sector ,version ,hdate.to_ansitime(valid_since) ,h\
date.to_ansitime(valid_until) into :s1 ,:s2 ,:s3 ,:s4 from tof_ana.tof_calpa\
r_vers_at_date where context_id=:b1";
sqlstm.iters = (unsigned int )6;
sqlstm.offset = (unsigned int )163;
sqlstm.selerr = (unsigned short)1;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = ( void *)parvers.sec;
sqlstm.sqhstl[0] = (unsigned int )sizeof(int);
sqlstm.sqhsts[0] = ( int )sizeof(int);
sqlstm.sqindv[0] = ( void *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqharc[0] = (unsigned int *)0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = ( void *)parvers.vers;
sqlstm.sqhstl[1] = (unsigned int )sizeof(int);
sqlstm.sqhsts[1] = ( int )sizeof(int);
sqlstm.sqindv[1] = ( void *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned int )0;
sqlstm.sqharc[1] = (unsigned int *)0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = ( void *)parvers.since;
sqlstm.sqhstl[2] = (unsigned int )sizeof(double);
sqlstm.sqhsts[2] = ( int )sizeof(double);
sqlstm.sqindv[2] = ( void *)0;
sqlstm.sqinds[2] = ( int )0;
sqlstm.sqharm[2] = (unsigned int )0;
sqlstm.sqharc[2] = (unsigned int *)0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = ( void *)parvers.until;
sqlstm.sqhstl[3] = (unsigned int )sizeof(double);
sqlstm.sqhsts[3] = ( int )sizeof(double);
sqlstm.sqindv[3] = ( void *)0;
sqlstm.sqinds[3] = ( int )0;
sqlstm.sqharm[3] = (unsigned int )0;
sqlstm.sqharc[3] = (unsigned int *)0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqhstv[4] = ( void *)&context;
sqlstm.sqhstl[4] = (unsigned int )sizeof(int);
sqlstm.sqhsts[4] = ( int )sizeof(int);
sqlstm.sqindv[4] = ( void *)0;
sqlstm.sqinds[4] = ( int )0;
sqlstm.sqharm[4] = (unsigned int )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 < 0) showSqlError("getVersion(HParOraSet*,Int_t)");
}
} else {
if (strcmp(containerClass,"HTofDigiPar")==0) {
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 8;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select sector ,version ,hdate.to_ansitime(valid_since) ,h\
date.to_ansitime(valid_until) into :s1 ,:s2 ,:s3 ,:s4 from tof_ana.tof_digip\
ar_vers_at_date where context_id=:b1";
sqlstm.iters = (unsigned int )6;
sqlstm.offset = (unsigned int )198;
sqlstm.selerr = (unsigned short)1;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = ( void *)parvers.sec;
sqlstm.sqhstl[0] = (unsigned int )sizeof(int);
sqlstm.sqhsts[0] = ( int )sizeof(int);
sqlstm.sqindv[0] = ( void *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqharc[0] = (unsigned int *)0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = ( void *)parvers.vers;
sqlstm.sqhstl[1] = (unsigned int )sizeof(int);
sqlstm.sqhsts[1] = ( int )sizeof(int);
sqlstm.sqindv[1] = ( void *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned int )0;
sqlstm.sqharc[1] = (unsigned int *)0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = ( void *)parvers.since;
sqlstm.sqhstl[2] = (unsigned int )sizeof(double);
sqlstm.sqhsts[2] = ( int )sizeof(double);
sqlstm.sqindv[2] = ( void *)0;
sqlstm.sqinds[2] = ( int )0;
sqlstm.sqharm[2] = (unsigned int )0;
sqlstm.sqharc[2] = (unsigned int *)0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = ( void *)parvers.until;
sqlstm.sqhstl[3] = (unsigned int )sizeof(double);
sqlstm.sqhsts[3] = ( int )sizeof(double);
sqlstm.sqindv[3] = ( void *)0;
sqlstm.sqinds[3] = ( int )0;
sqlstm.sqharm[3] = (unsigned int )0;
sqlstm.sqharc[3] = (unsigned int *)0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqhstv[4] = ( void *)&context;
sqlstm.sqhstl[4] = (unsigned int )sizeof(int);
sqlstm.sqhsts[4] = ( int )sizeof(int);
sqlstm.sqindv[4] = ( void *)0;
sqlstm.sqinds[4] = ( int )0;
sqlstm.sqharm[4] = (unsigned int )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 < 0) showSqlError("getVersion(HParOraSet*,Int_t)");
}
}
}
for(Int_t i=0;i<sqlca.sqlerrd[2];i++) {
Int_t s=parvers.sec[i]-1;
if (secIds->At(s)>0 && tofSectors[s]>0) {
versions[s]=parvers.vers[i];
if (parvers.since[i]>oraSet->versDate[0]) oraSet->versDate[0]=parvers.since[i];
if (parvers.until[i]<oraSet->versDate[1]) oraSet->versDate[1]=parvers.until[i];
}
}
if (oraSet->versDate[0]>=0) return getActRunId();
return -1;
};
Bool_t HTofParOraIo::read(HTofCalPar* pPar, Int_t* set) {
Int_t contVers=pPar->getInputVersion(inputNumber);
Int_t versions[TOF_MAXSEC];
Int_t version=getVersion(pPar,set,versions);
if (version==-1) {
pPar->setInputVersion(-1,inputNumber);
return kFALSE;
}
if (contVers==version) return kTRUE;
if (inputNumber==1) pPar->clear();
pPar->setInputVersion(version,inputNumber);
initModules->Reset();
int vers;
int sec;
struct {
int mod[TOF_MAXSECRODS];
int rod[TOF_MAXSECRODS];
float sl[TOF_MAXSECRODS];
float sr[TOF_MAXSECRODS];
float gv[TOF_MAXSECRODS];
float op[TOF_MAXSECRODS];
float ot[TOF_MAXSECRODS];
float pl[TOF_MAXSECRODS];
float pr[TOF_MAXSECRODS];
float al[TOF_MAXSECRODS];
float ga[TOF_MAXSECRODS];
float ep[TOF_MAXSECRODS];
float c1[TOF_MAXSECRODS];
float c2[TOF_MAXSECRODS];
float c3[TOF_MAXSECRODS];
} cal;
struct {
short mod[TOF_MAXSECRODS];
short rod[TOF_MAXSECRODS];
short sl[TOF_MAXSECRODS];
short sr[TOF_MAXSECRODS];
short gv[TOF_MAXSECRODS];
short op[TOF_MAXSECRODS];
short ot[TOF_MAXSECRODS];
short pl[TOF_MAXSECRODS];
short pr[TOF_MAXSECRODS];
short al[TOF_MAXSECRODS];
short ga[TOF_MAXSECRODS];
short ep[TOF_MAXSECRODS];
short c1[TOF_MAXSECRODS];
short c2[TOF_MAXSECRODS];
short c3[TOF_MAXSECRODS];
} cal_Ind;
Int_t m=-1, pos=-1;
for(Int_t s=0;s<TOF_MAXSEC;s++) {
if (secIds->At(s)>0 && versions[s]>0) {
sec=s+1;
vers=versions[s];
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 8;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = sq0007;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )233;
sqlstm.selerr = (unsigned short)1;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqcmod = (unsigned int )0;
sqlstm.sqhstv[0] = ( void *)&sec;
sqlstm.sqhstl[0] = (unsigned int )sizeof(int);
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( void *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = ( void *)&vers;
sqlstm.sqhstl[1] = (unsigned int )sizeof(int);
sqlstm.sqhsts[1] = ( int )0;
sqlstm.sqindv[1] = ( void *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned int )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (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*)");
}
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 15;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )176;
sqlstm.offset = (unsigned int )256;
sqlstm.selerr = (unsigned short)1;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqfoff = ( int )0;
sqlstm.sqfmod = (unsigned int )2;
sqlstm.sqhstv[0] = ( void *)cal.mod;
sqlstm.sqhstl[0] = (unsigned int )sizeof(int);
sqlstm.sqhsts[0] = ( int )sizeof(int);
sqlstm.sqindv[0] = ( void *)cal_Ind.mod;
sqlstm.sqinds[0] = ( int )sizeof(short);
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqharc[0] = (unsigned int *)0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = ( void *)cal.rod;
sqlstm.sqhstl[1] = (unsigned int )sizeof(int);
sqlstm.sqhsts[1] = ( int )sizeof(int);
sqlstm.sqindv[1] = ( void *)cal_Ind.rod;
sqlstm.sqinds[1] = ( int )sizeof(short);
sqlstm.sqharm[1] = (unsigned int )0;
sqlstm.sqharc[1] = (unsigned int *)0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = ( void *)cal.sl;
sqlstm.sqhstl[2] = (unsigned int )sizeof(float);
sqlstm.sqhsts[2] = ( int )sizeof(float);
sqlstm.sqindv[2] = ( void *)cal_Ind.sl;
sqlstm.sqinds[2] = ( int )sizeof(short);
sqlstm.sqharm[2] = (unsigned int )0;
sqlstm.sqharc[2] = (unsigned int *)0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = ( void *)cal.sr;
sqlstm.sqhstl[3] = (unsigned int )sizeof(float);
sqlstm.sqhsts[3] = ( int )sizeof(float);
sqlstm.sqindv[3] = ( void *)cal_Ind.sr;
sqlstm.sqinds[3] = ( int )sizeof(short);
sqlstm.sqharm[3] = (unsigned int )0;
sqlstm.sqharc[3] = (unsigned int *)0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqhstv[4] = ( void *)cal.gv;
sqlstm.sqhstl[4] = (unsigned int )sizeof(float);
sqlstm.sqhsts[4] = ( int )sizeof(float);
sqlstm.sqindv[4] = ( void *)cal_Ind.gv;
sqlstm.sqinds[4] = ( int )sizeof(short);
sqlstm.sqharm[4] = (unsigned int )0;
sqlstm.sqharc[4] = (unsigned int *)0;
sqlstm.sqadto[4] = (unsigned short )0;
sqlstm.sqtdso[4] = (unsigned short )0;
sqlstm.sqhstv[5] = ( void *)cal.op;
sqlstm.sqhstl[5] = (unsigned int )sizeof(float);
sqlstm.sqhsts[5] = ( int )sizeof(float);
sqlstm.sqindv[5] = ( void *)cal_Ind.op;
sqlstm.sqinds[5] = ( int )sizeof(short);
sqlstm.sqharm[5] = (unsigned int )0;
sqlstm.sqharc[5] = (unsigned int *)0;
sqlstm.sqadto[5] = (unsigned short )0;
sqlstm.sqtdso[5] = (unsigned short )0;
sqlstm.sqhstv[6] = ( void *)cal.ot;
sqlstm.sqhstl[6] = (unsigned int )sizeof(float);
sqlstm.sqhsts[6] = ( int )sizeof(float);
sqlstm.sqindv[6] = ( void *)cal_Ind.ot;
sqlstm.sqinds[6] = ( int )sizeof(short);
sqlstm.sqharm[6] = (unsigned int )0;
sqlstm.sqharc[6] = (unsigned int *)0;
sqlstm.sqadto[6] = (unsigned short )0;
sqlstm.sqtdso[6] = (unsigned short )0;
sqlstm.sqhstv[7] = ( void *)cal.pl;
sqlstm.sqhstl[7] = (unsigned int )sizeof(float);
sqlstm.sqhsts[7] = ( int )sizeof(float);
sqlstm.sqindv[7] = ( void *)cal_Ind.pl;
sqlstm.sqinds[7] = ( int )sizeof(short);
sqlstm.sqharm[7] = (unsigned int )0;
sqlstm.sqharc[7] = (unsigned int *)0;
sqlstm.sqadto[7] = (unsigned short )0;
sqlstm.sqtdso[7] = (unsigned short )0;
sqlstm.sqhstv[8] = ( void *)cal.pr;
sqlstm.sqhstl[8] = (unsigned int )sizeof(float);
sqlstm.sqhsts[8] = ( int )sizeof(float);
sqlstm.sqindv[8] = ( void *)cal_Ind.pr;
sqlstm.sqinds[8] = ( int )sizeof(short);
sqlstm.sqharm[8] = (unsigned int )0;
sqlstm.sqharc[8] = (unsigned int *)0;
sqlstm.sqadto[8] = (unsigned short )0;
sqlstm.sqtdso[8] = (unsigned short )0;
sqlstm.sqhstv[9] = ( void *)cal.al;
sqlstm.sqhstl[9] = (unsigned int )sizeof(float);
sqlstm.sqhsts[9] = ( int )sizeof(float);
sqlstm.sqindv[9] = ( void *)cal_Ind.al;
sqlstm.sqinds[9] = ( int )sizeof(short);
sqlstm.sqharm[9] = (unsigned int )0;
sqlstm.sqharc[9] = (unsigned int *)0;
sqlstm.sqadto[9] = (unsigned short )0;
sqlstm.sqtdso[9] = (unsigned short )0;
sqlstm.sqhstv[10] = ( void *)cal.ga;
sqlstm.sqhstl[10] = (unsigned int )sizeof(float);
sqlstm.sqhsts[10] = ( int )sizeof(float);
sqlstm.sqindv[10] = ( void *)cal_Ind.ga;
sqlstm.sqinds[10] = ( int )sizeof(short);
sqlstm.sqharm[10] = (unsigned int )0;
sqlstm.sqharc[10] = (unsigned int *)0;
sqlstm.sqadto[10] = (unsigned short )0;
sqlstm.sqtdso[10] = (unsigned short )0;
sqlstm.sqhstv[11] = ( void *)cal.ep;
sqlstm.sqhstl[11] = (unsigned int )sizeof(float);
sqlstm.sqhsts[11] = ( int )sizeof(float);
sqlstm.sqindv[11] = ( void *)cal_Ind.ep;
sqlstm.sqinds[11] = ( int )sizeof(short);
sqlstm.sqharm[11] = (unsigned int )0;
sqlstm.sqharc[11] = (unsigned int *)0;
sqlstm.sqadto[11] = (unsigned short )0;
sqlstm.sqtdso[11] = (unsigned short )0;
sqlstm.sqhstv[12] = ( void *)cal.c1;
sqlstm.sqhstl[12] = (unsigned int )sizeof(float);
sqlstm.sqhsts[12] = ( int )sizeof(float);
sqlstm.sqindv[12] = ( void *)cal_Ind.c1;
sqlstm.sqinds[12] = ( int )sizeof(short);
sqlstm.sqharm[12] = (unsigned int )0;
sqlstm.sqharc[12] = (unsigned int *)0;
sqlstm.sqadto[12] = (unsigned short )0;
sqlstm.sqtdso[12] = (unsigned short )0;
sqlstm.sqhstv[13] = ( void *)cal.c2;
sqlstm.sqhstl[13] = (unsigned int )sizeof(float);
sqlstm.sqhsts[13] = ( int )sizeof(float);
sqlstm.sqindv[13] = ( void *)cal_Ind.c2;
sqlstm.sqinds[13] = ( int )sizeof(short);
sqlstm.sqharm[13] = (unsigned int )0;
sqlstm.sqharc[13] = (unsigned int *)0;
sqlstm.sqadto[13] = (unsigned short )0;
sqlstm.sqtdso[13] = (unsigned short )0;
sqlstm.sqhstv[14] = ( void *)cal.c3;
sqlstm.sqhstl[14] = (unsigned int )sizeof(float);
sqlstm.sqhsts[14] = ( int )sizeof(float);
sqlstm.sqindv[14] = ( void *)cal_Ind.c3;
sqlstm.sqinds[14] = ( int )sizeof(short);
sqlstm.sqharm[14] = (unsigned int )0;
sqlstm.sqharc[14] = (unsigned int *)0;
sqlstm.sqadto[14] = (unsigned short )0;
sqlstm.sqtdso[14] = (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*)");
}
for(Int_t i=0;i<sqlca.sqlerrd[2];i++) {
m=cal.mod[i]-1;
pos=s*maxModules+m;
if (set[pos]) {
HTofCalParCell& cell=(*pPar)[s][m][(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(pos+1,pos);
}
}
}
}
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 15;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )331;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) showSqlError("read(HTofCalPar*,Int_t*)");
}
Bool_t allFound=kTRUE;
Int_t n=TOF_MAXSEC*maxModules;
for(Int_t i=0;i<n;i++) {
if (set[i]>0) {
if (initModules->At(i)>0) set[i]=0;
else allFound=kFALSE;
}
}
setChanged(pPar);
printInfo(pPar->GetName());
return allFound;
}
Bool_t HTofParOraIo::read(HTofDigiPar* pPar, Int_t* set) {
Int_t contVers=pPar->getInputVersion(inputNumber);
Int_t versions[TOF_MAXSEC];
Int_t version=getVersion(pPar,set,versions);
if (version==-1) {
pPar->setInputVersion(-1,inputNumber);
return kFALSE;
}
if (contVers==version) return kTRUE;
if (inputNumber==1) pPar->clear();
pPar->setInputVersion(version,inputNumber);
initModules->Reset();
int vers;
int sec;
struct {
int mod[TOF_MAXSECRODS];
int rod[TOF_MAXSECRODS];
float hl[TOF_MAXSECRODS];
float ar[TOF_MAXSECRODS];
float al[TOF_MAXSECRODS];
float gv[TOF_MAXSECRODS];
float slt[TOF_MAXSECRODS];
float srt[TOF_MAXSECRODS];
int tlc[TOF_MAXSECRODS];
int trc[TOF_MAXSECRODS];
int tla[TOF_MAXSECRODS];
int tra[TOF_MAXSECRODS];
} digi;
struct {
short mod[TOF_MAXSECRODS];
short rod[TOF_MAXSECRODS];
short hl[TOF_MAXSECRODS];
short ar[TOF_MAXSECRODS];
short al[TOF_MAXSECRODS];
short gv[TOF_MAXSECRODS];
short slt[TOF_MAXSECRODS];
short srt[TOF_MAXSECRODS];
short tlc[TOF_MAXSECRODS];
short trc[TOF_MAXSECRODS];
short tla[TOF_MAXSECRODS];
short tra[TOF_MAXSECRODS];
} digi_Ind;
Int_t m=-1, pos=-1;
for(Int_t s=0;s<TOF_MAXSEC;s++) {
if (secIds->At(s)>0 && versions[s]>0) {
HTofDigiParSec& sector=(*pPar)[s];
sec=s+1;
vers=versions[s];
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 15;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = sq0008;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )346;
sqlstm.selerr = (unsigned short)1;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqcmod = (unsigned int )0;
sqlstm.sqhstv[0] = ( void *)&sec;
sqlstm.sqhstl[0] = (unsigned int )sizeof(int);
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( void *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = ( void *)&vers;
sqlstm.sqhstl[1] = (unsigned int )sizeof(int);
sqlstm.sqhsts[1] = ( int )0;
sqlstm.sqindv[1] = ( void *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned int )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (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*)");
}
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 15;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )176;
sqlstm.offset = (unsigned int )369;
sqlstm.selerr = (unsigned short)1;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqfoff = ( int )0;
sqlstm.sqfmod = (unsigned int )2;
sqlstm.sqhstv[0] = ( void *)digi.mod;
sqlstm.sqhstl[0] = (unsigned int )sizeof(int);
sqlstm.sqhsts[0] = ( int )sizeof(int);
sqlstm.sqindv[0] = ( void *)digi_Ind.mod;
sqlstm.sqinds[0] = ( int )sizeof(short);
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqharc[0] = (unsigned int *)0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = ( void *)digi.rod;
sqlstm.sqhstl[1] = (unsigned int )sizeof(int);
sqlstm.sqhsts[1] = ( int )sizeof(int);
sqlstm.sqindv[1] = ( void *)digi_Ind.rod;
sqlstm.sqinds[1] = ( int )sizeof(short);
sqlstm.sqharm[1] = (unsigned int )0;
sqlstm.sqharc[1] = (unsigned int *)0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = ( void *)digi.hl;
sqlstm.sqhstl[2] = (unsigned int )sizeof(float);
sqlstm.sqhsts[2] = ( int )sizeof(float);
sqlstm.sqindv[2] = ( void *)digi_Ind.hl;
sqlstm.sqinds[2] = ( int )sizeof(short);
sqlstm.sqharm[2] = (unsigned int )0;
sqlstm.sqharc[2] = (unsigned int *)0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = ( void *)digi.ar;
sqlstm.sqhstl[3] = (unsigned int )sizeof(float);
sqlstm.sqhsts[3] = ( int )sizeof(float);
sqlstm.sqindv[3] = ( void *)digi_Ind.ar;
sqlstm.sqinds[3] = ( int )sizeof(short);
sqlstm.sqharm[3] = (unsigned int )0;
sqlstm.sqharc[3] = (unsigned int *)0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqhstv[4] = ( void *)digi.al;
sqlstm.sqhstl[4] = (unsigned int )sizeof(float);
sqlstm.sqhsts[4] = ( int )sizeof(float);
sqlstm.sqindv[4] = ( void *)digi_Ind.al;
sqlstm.sqinds[4] = ( int )sizeof(short);
sqlstm.sqharm[4] = (unsigned int )0;
sqlstm.sqharc[4] = (unsigned int *)0;
sqlstm.sqadto[4] = (unsigned short )0;
sqlstm.sqtdso[4] = (unsigned short )0;
sqlstm.sqhstv[5] = ( void *)digi.gv;
sqlstm.sqhstl[5] = (unsigned int )sizeof(float);
sqlstm.sqhsts[5] = ( int )sizeof(float);
sqlstm.sqindv[5] = ( void *)digi_Ind.gv;
sqlstm.sqinds[5] = ( int )sizeof(short);
sqlstm.sqharm[5] = (unsigned int )0;
sqlstm.sqharc[5] = (unsigned int *)0;
sqlstm.sqadto[5] = (unsigned short )0;
sqlstm.sqtdso[5] = (unsigned short )0;
sqlstm.sqhstv[6] = ( void *)digi.slt;
sqlstm.sqhstl[6] = (unsigned int )sizeof(float);
sqlstm.sqhsts[6] = ( int )sizeof(float);
sqlstm.sqindv[6] = ( void *)digi_Ind.slt;
sqlstm.sqinds[6] = ( int )sizeof(short);
sqlstm.sqharm[6] = (unsigned int )0;
sqlstm.sqharc[6] = (unsigned int *)0;
sqlstm.sqadto[6] = (unsigned short )0;
sqlstm.sqtdso[6] = (unsigned short )0;
sqlstm.sqhstv[7] = ( void *)digi.srt;
sqlstm.sqhstl[7] = (unsigned int )sizeof(float);
sqlstm.sqhsts[7] = ( int )sizeof(float);
sqlstm.sqindv[7] = ( void *)digi_Ind.srt;
sqlstm.sqinds[7] = ( int )sizeof(short);
sqlstm.sqharm[7] = (unsigned int )0;
sqlstm.sqharc[7] = (unsigned int *)0;
sqlstm.sqadto[7] = (unsigned short )0;
sqlstm.sqtdso[7] = (unsigned short )0;
sqlstm.sqhstv[8] = ( void *)digi.tlc;
sqlstm.sqhstl[8] = (unsigned int )sizeof(int);
sqlstm.sqhsts[8] = ( int )sizeof(int);
sqlstm.sqindv[8] = ( void *)digi_Ind.tlc;
sqlstm.sqinds[8] = ( int )sizeof(short);
sqlstm.sqharm[8] = (unsigned int )0;
sqlstm.sqharc[8] = (unsigned int *)0;
sqlstm.sqadto[8] = (unsigned short )0;
sqlstm.sqtdso[8] = (unsigned short )0;
sqlstm.sqhstv[9] = ( void *)digi.trc;
sqlstm.sqhstl[9] = (unsigned int )sizeof(int);
sqlstm.sqhsts[9] = ( int )sizeof(int);
sqlstm.sqindv[9] = ( void *)digi_Ind.trc;
sqlstm.sqinds[9] = ( int )sizeof(short);
sqlstm.sqharm[9] = (unsigned int )0;
sqlstm.sqharc[9] = (unsigned int *)0;
sqlstm.sqadto[9] = (unsigned short )0;
sqlstm.sqtdso[9] = (unsigned short )0;
sqlstm.sqhstv[10] = ( void *)digi.tla;
sqlstm.sqhstl[10] = (unsigned int )sizeof(int);
sqlstm.sqhsts[10] = ( int )sizeof(int);
sqlstm.sqindv[10] = ( void *)digi_Ind.tla;
sqlstm.sqinds[10] = ( int )sizeof(short);
sqlstm.sqharm[10] = (unsigned int )0;
sqlstm.sqharc[10] = (unsigned int *)0;
sqlstm.sqadto[10] = (unsigned short )0;
sqlstm.sqtdso[10] = (unsigned short )0;
sqlstm.sqhstv[11] = ( void *)digi.tra;
sqlstm.sqhstl[11] = (unsigned int )sizeof(int);
sqlstm.sqhsts[11] = ( int )sizeof(int);
sqlstm.sqindv[11] = ( void *)digi_Ind.tra;
sqlstm.sqinds[11] = ( int )sizeof(short);
sqlstm.sqharm[11] = (unsigned int )0;
sqlstm.sqharc[11] = (unsigned int *)0;
sqlstm.sqadto[11] = (unsigned short )0;
sqlstm.sqtdso[11] = (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*)");
}
for(Int_t i=0;i<sqlca.sqlerrd[2];i++) {
m=digi.mod[i]-1;
pos=s*maxModules+m;
if (set[pos]) {
HTofDigiParCell& cell=sector[m][(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(pos+1,pos);
}
}
}
}
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 15;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )432;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) showSqlError("read(HTofDigiPar*,Int_t*)");
}
Bool_t allFound=kTRUE;
Int_t n=TOF_MAXSEC*maxModules;
for(Int_t i=0;i<n;i++) {
if (set[i]>0) {
if (initModules->At(i)>0) set[i]=0;
else allFound=kFALSE;
}
}
setChanged(pPar);
printInfo(pPar->GetName());
return allFound;
}
Bool_t HTofParOraIo::read(HTofGeomPar* pPar, Int_t* set) {
Bool_t allFound=kTRUE;
Int_t detId=-1;
if (!geomVers) {
detId=getDetectorId(pPar->getDetectorName());
geomVers=new HGeomOraDetVersion(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 HTofParOraIo::readModGeomNames(HTofGeomPar* pPar,Int_t* set) {
struct {
int tof[TOF_MAXMODS];
int sec[TOF_MAXMODS];
int mod[TOF_MAXMODS];
struct { unsigned short len; unsigned char arr[10]; } oname[132];
} 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 = 12;
sqlstm.arrsiz = 15;
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_ana.setup_at_run_hist ";
sqlstm.iters = (unsigned int )132;
sqlstm.offset = (unsigned int )447;
sqlstm.selerr = (unsigned short)1;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = ( void *)mods.tof;
sqlstm.sqhstl[0] = (unsigned int )sizeof(int);
sqlstm.sqhsts[0] = ( int )sizeof(int);
sqlstm.sqindv[0] = ( void *)mods_Ind.tof_Ind;
sqlstm.sqinds[0] = ( int )sizeof(short);
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqharc[0] = (unsigned int *)0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = ( void *)mods.sec;
sqlstm.sqhstl[1] = (unsigned int )sizeof(int);
sqlstm.sqhsts[1] = ( int )sizeof(int);
sqlstm.sqindv[1] = ( void *)mods_Ind.sec_Ind;
sqlstm.sqinds[1] = ( int )sizeof(short);
sqlstm.sqharm[1] = (unsigned int )0;
sqlstm.sqharc[1] = (unsigned int *)0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = ( void *)mods.mod;
sqlstm.sqhstl[2] = (unsigned int )sizeof(int);
sqlstm.sqhsts[2] = ( int )sizeof(int);
sqlstm.sqindv[2] = ( void *)mods_Ind.mod_Ind;
sqlstm.sqinds[2] = ( int )sizeof(short);
sqlstm.sqharm[2] = (unsigned int )0;
sqlstm.sqharc[2] = (unsigned int *)0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = ( void *)mods.oname;
sqlstm.sqhstl[3] = (unsigned int )11;
sqlstm.sqhsts[3] = ( int )12;
sqlstm.sqindv[3] = ( void *)mods_Ind.oname_Ind;
sqlstm.sqinds[3] = ( int )sizeof(short);
sqlstm.sqharm[3] = (unsigned int )0;
sqlstm.sqharc[3] = (unsigned int *)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 nMods=sqlca.sqlerrd[2];
Int_t pos, s, m;
Char_t ref[10];
initModules->Reset();
for(Int_t i=0;i<nMods;i++) {
s=mods.sec[i]-1;
m=mods.mod[i]-1;
HModGeomPar* pMod=pPar->getModule(s,m);
pos=s*maxModules + m;
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;
Int_t n=TOF_MAXSEC*maxModules;
for(Int_t i=0;i<n;i++) {
if (set[i]>0 && initModules->At(i)==0) allFound=kFALSE;
}
return allFound;
}
Bool_t HTofParOraIo::readCompGeomNames(HTofGeomPar* pPar,Int_t* set) {
struct {
int sec[TOF_MAXRODS];
int mod[TOF_MAXRODS];
int rod[TOF_MAXRODS];
struct { unsigned short len; unsigned char arr[10]; } oname[1056];
} 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 = 12;
sqlstm.arrsiz = 15;
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_ana.setup_at_run_hist s ,tof_ana.rod r\
where s.module_id=r.module_id";
sqlstm.iters = (unsigned int )1056;
sqlstm.offset = (unsigned int )478;
sqlstm.selerr = (unsigned short)1;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = ( void *)rods.sec;
sqlstm.sqhstl[0] = (unsigned int )sizeof(int);
sqlstm.sqhsts[0] = ( int )sizeof(int);
sqlstm.sqindv[0] = ( void *)rods_Ind.sec_Ind;
sqlstm.sqinds[0] = ( int )sizeof(short);
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqharc[0] = (unsigned int *)0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = ( void *)rods.mod;
sqlstm.sqhstl[1] = (unsigned int )sizeof(int);
sqlstm.sqhsts[1] = ( int )sizeof(int);
sqlstm.sqindv[1] = ( void *)rods_Ind.mod_Ind;
sqlstm.sqinds[1] = ( int )sizeof(short);
sqlstm.sqharm[1] = (unsigned int )0;
sqlstm.sqharc[1] = (unsigned int *)0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = ( void *)rods.rod;
sqlstm.sqhstl[2] = (unsigned int )sizeof(int);
sqlstm.sqhsts[2] = ( int )sizeof(int);
sqlstm.sqindv[2] = ( void *)rods_Ind.rod_Ind;
sqlstm.sqinds[2] = ( int )sizeof(short);
sqlstm.sqharm[2] = (unsigned int )0;
sqlstm.sqharc[2] = (unsigned int *)0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = ( void *)rods.oname;
sqlstm.sqhstl[3] = (unsigned int )11;
sqlstm.sqhsts[3] = ( int )12;
sqlstm.sqindv[3] = ( void *)rods_Ind.oname_Ind;
sqlstm.sqinds[3] = ( int )sizeof(short);
sqlstm.sqharm[3] = (unsigned int )0;
sqlstm.sqharc[3] = (unsigned int *)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 nRods=-1, pos, s, m;
nRods=sqlca.sqlerrd[2];
for(Int_t k=0;k<nRods;k++) {
s=rods.sec[k]-1;
m=rods.mod[k]-1;
HModGeomPar* pMod=pPar->getModule(s,m);
pos=s*maxModules + m;
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;
Int_t n=TOF_MAXSEC*maxModules;
for(Int_t i=0;i<n;i++) {
if (set[i]>0 && initModules->At(i)==0) allFound=kFALSE;
}
return allFound;
}
Int_t HTofParOraIo:: writePar(HTofCalPar* pPar) {
Int_t version=createVers(pPar);
if (version==-1) return -1;
int sec[TOF_MAXSECRODS];
int mod[TOF_MAXSECRODS];
int rod[TOF_MAXSECRODS];
int vers[TOF_MAXSECRODS];
float sl[TOF_MAXSECRODS];
float sr[TOF_MAXSECRODS];
float gv[TOF_MAXSECRODS];
float op[TOF_MAXSECRODS];
float ot[TOF_MAXSECRODS];
float pl[TOF_MAXSECRODS];
float pr[TOF_MAXSECRODS];
float al[TOF_MAXSECRODS];
float ga[TOF_MAXSECRODS];
float ep[TOF_MAXSECRODS];
float c1[TOF_MAXSECRODS];
float c2[TOF_MAXSECRODS];
float c3[TOF_MAXSECRODS];
int rows_to_insert;
Int_t id, pos;
for(Int_t s=0; s<pPar->getSize(); s++) {
HTofCalParSec& rSec= (*pPar)[s];
Int_t nRod=0;
for(Int_t m=0; m<rSec.getSize(); m++) {
HTofCalParMod& rMod= rSec[m];
pos=s*maxModules+m;
id=tofIds->At(pos);
if (id>0) {
for(Int_t c=0; c<rMod.getSize(); c++) {
HTofCalParCell& cell= rMod[c];
sec[nRod]=s+1;
mod[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++;
}
}
}
if (nRod==0) continue;
rows_to_insert=nRod;
Int_t nRodO=countRods(s+1);
if (nRod!=nRodO) {
Error("writePar(HTofCalPar*)",
"\n Number of rods in Oracle: %i\n Number of rods in TofCalPar: %i\n",
nRodO,nRod);
rollback();
return -1;
}
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 17;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "insert into tof_ana.calpar_data (rod_id,vers_id,left_k,ri\
ght_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_ana.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 )509;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = ( void *)sec;
sqlstm.sqhstl[0] = (unsigned int )sizeof(int);
sqlstm.sqhsts[0] = ( int )sizeof(int);
sqlstm.sqindv[0] = ( void *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqharc[0] = (unsigned int *)0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = ( void *)mod;
sqlstm.sqhstl[1] = (unsigned int )sizeof(int);
sqlstm.sqhsts[1] = ( int )sizeof(int);
sqlstm.sqindv[1] = ( void *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned int )0;
sqlstm.sqharc[1] = (unsigned int *)0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = ( void *)rod;
sqlstm.sqhstl[2] = (unsigned int )sizeof(int);
sqlstm.sqhsts[2] = ( int )sizeof(int);
sqlstm.sqindv[2] = ( void *)0;
sqlstm.sqinds[2] = ( int )0;
sqlstm.sqharm[2] = (unsigned int )0;
sqlstm.sqharc[2] = (unsigned int *)0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = ( void *)vers;
sqlstm.sqhstl[3] = (unsigned int )sizeof(int);
sqlstm.sqhsts[3] = ( int )sizeof(int);
sqlstm.sqindv[3] = ( void *)0;
sqlstm.sqinds[3] = ( int )0;
sqlstm.sqharm[3] = (unsigned int )0;
sqlstm.sqharc[3] = (unsigned int *)0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqhstv[4] = ( void *)sl;
sqlstm.sqhstl[4] = (unsigned int )sizeof(float);
sqlstm.sqhsts[4] = ( int )sizeof(float);
sqlstm.sqindv[4] = ( void *)0;
sqlstm.sqinds[4] = ( int )0;
sqlstm.sqharm[4] = (unsigned int )0;
sqlstm.sqharc[4] = (unsigned int *)0;
sqlstm.sqadto[4] = (unsigned short )0;
sqlstm.sqtdso[4] = (unsigned short )0;
sqlstm.sqhstv[5] = ( void *)sr;
sqlstm.sqhstl[5] = (unsigned int )sizeof(float);
sqlstm.sqhsts[5] = ( int )sizeof(float);
sqlstm.sqindv[5] = ( void *)0;
sqlstm.sqinds[5] = ( int )0;
sqlstm.sqharm[5] = (unsigned int )0;
sqlstm.sqharc[5] = (unsigned int *)0;
sqlstm.sqadto[5] = (unsigned short )0;
sqlstm.sqtdso[5] = (unsigned short )0;
sqlstm.sqhstv[6] = ( void *)gv;
sqlstm.sqhstl[6] = (unsigned int )sizeof(float);
sqlstm.sqhsts[6] = ( int )sizeof(float);
sqlstm.sqindv[6] = ( void *)0;
sqlstm.sqinds[6] = ( int )0;
sqlstm.sqharm[6] = (unsigned int )0;
sqlstm.sqharc[6] = (unsigned int *)0;
sqlstm.sqadto[6] = (unsigned short )0;
sqlstm.sqtdso[6] = (unsigned short )0;
sqlstm.sqhstv[7] = ( void *)op;
sqlstm.sqhstl[7] = (unsigned int )sizeof(float);
sqlstm.sqhsts[7] = ( int )sizeof(float);
sqlstm.sqindv[7] = ( void *)0;
sqlstm.sqinds[7] = ( int )0;
sqlstm.sqharm[7] = (unsigned int )0;
sqlstm.sqharc[7] = (unsigned int *)0;
sqlstm.sqadto[7] = (unsigned short )0;
sqlstm.sqtdso[7] = (unsigned short )0;
sqlstm.sqhstv[8] = ( void *)ot;
sqlstm.sqhstl[8] = (unsigned int )sizeof(float);
sqlstm.sqhsts[8] = ( int )sizeof(float);
sqlstm.sqindv[8] = ( void *)0;
sqlstm.sqinds[8] = ( int )0;
sqlstm.sqharm[8] = (unsigned int )0;
sqlstm.sqharc[8] = (unsigned int *)0;
sqlstm.sqadto[8] = (unsigned short )0;
sqlstm.sqtdso[8] = (unsigned short )0;
sqlstm.sqhstv[9] = ( void *)pl;
sqlstm.sqhstl[9] = (unsigned int )sizeof(float);
sqlstm.sqhsts[9] = ( int )sizeof(float);
sqlstm.sqindv[9] = ( void *)0;
sqlstm.sqinds[9] = ( int )0;
sqlstm.sqharm[9] = (unsigned int )0;
sqlstm.sqharc[9] = (unsigned int *)0;
sqlstm.sqadto[9] = (unsigned short )0;
sqlstm.sqtdso[9] = (unsigned short )0;
sqlstm.sqhstv[10] = ( void *)pr;
sqlstm.sqhstl[10] = (unsigned int )sizeof(float);
sqlstm.sqhsts[10] = ( int )sizeof(float);
sqlstm.sqindv[10] = ( void *)0;
sqlstm.sqinds[10] = ( int )0;
sqlstm.sqharm[10] = (unsigned int )0;
sqlstm.sqharc[10] = (unsigned int *)0;
sqlstm.sqadto[10] = (unsigned short )0;
sqlstm.sqtdso[10] = (unsigned short )0;
sqlstm.sqhstv[11] = ( void *)al;
sqlstm.sqhstl[11] = (unsigned int )sizeof(float);
sqlstm.sqhsts[11] = ( int )sizeof(float);
sqlstm.sqindv[11] = ( void *)0;
sqlstm.sqinds[11] = ( int )0;
sqlstm.sqharm[11] = (unsigned int )0;
sqlstm.sqharc[11] = (unsigned int *)0;
sqlstm.sqadto[11] = (unsigned short )0;
sqlstm.sqtdso[11] = (unsigned short )0;
sqlstm.sqhstv[12] = ( void *)ga;
sqlstm.sqhstl[12] = (unsigned int )sizeof(float);
sqlstm.sqhsts[12] = ( int )sizeof(float);
sqlstm.sqindv[12] = ( void *)0;
sqlstm.sqinds[12] = ( int )0;
sqlstm.sqharm[12] = (unsigned int )0;
sqlstm.sqharc[12] = (unsigned int *)0;
sqlstm.sqadto[12] = (unsigned short )0;
sqlstm.sqtdso[12] = (unsigned short )0;
sqlstm.sqhstv[13] = ( void *)ep;
sqlstm.sqhstl[13] = (unsigned int )sizeof(float);
sqlstm.sqhsts[13] = ( int )sizeof(float);
sqlstm.sqindv[13] = ( void *)0;
sqlstm.sqinds[13] = ( int )0;
sqlstm.sqharm[13] = (unsigned int )0;
sqlstm.sqharc[13] = (unsigned int *)0;
sqlstm.sqadto[13] = (unsigned short )0;
sqlstm.sqtdso[13] = (unsigned short )0;
sqlstm.sqhstv[14] = ( void *)c1;
sqlstm.sqhstl[14] = (unsigned int )sizeof(float);
sqlstm.sqhsts[14] = ( int )sizeof(float);
sqlstm.sqindv[14] = ( void *)0;
sqlstm.sqinds[14] = ( int )0;
sqlstm.sqharm[14] = (unsigned int )0;
sqlstm.sqharc[14] = (unsigned int *)0;
sqlstm.sqadto[14] = (unsigned short )0;
sqlstm.sqtdso[14] = (unsigned short )0;
sqlstm.sqhstv[15] = ( void *)c2;
sqlstm.sqhstl[15] = (unsigned int )sizeof(float);
sqlstm.sqhsts[15] = ( int )sizeof(float);
sqlstm.sqindv[15] = ( void *)0;
sqlstm.sqinds[15] = ( int )0;
sqlstm.sqharm[15] = (unsigned int )0;
sqlstm.sqharc[15] = (unsigned int *)0;
sqlstm.sqadto[15] = (unsigned short )0;
sqlstm.sqtdso[15] = (unsigned short )0;
sqlstm.sqhstv[16] = ( void *)c3;
sqlstm.sqhstl[16] = (unsigned int )sizeof(float);
sqlstm.sqhsts[16] = ( int )sizeof(float);
sqlstm.sqindv[16] = ( void *)0;
sqlstm.sqinds[16] = ( int )0;
sqlstm.sqharm[16] = (unsigned int )0;
sqlstm.sqharc[16] = (unsigned int *)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<<"sector_id: "<<(s+1)<<" "<<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 HTofParOraIo:: writePar(HTofDigiPar* pPar) {
Int_t version=createVers(pPar);
if (version==-1) return -1;
int sec[TOF_MAXSECRODS];
int mod[TOF_MAXSECRODS];
int rod[TOF_MAXSECRODS];
int vers[TOF_MAXSECRODS];
float hl[TOF_MAXSECRODS];
float ar[TOF_MAXSECRODS];
float al[TOF_MAXSECRODS];
float gv[TOF_MAXSECRODS];
float slt[TOF_MAXSECRODS];
float srt[TOF_MAXSECRODS];
int tlc[TOF_MAXSECRODS];
int trc[TOF_MAXSECRODS];
int tla[TOF_MAXSECRODS];
int tra[TOF_MAXSECRODS];
int rows_to_insert;
Int_t id, pos;
for(Int_t s=0; s<pPar->getSize(); s++) {
HTofDigiParSec& rSec= (*pPar)[s];
Int_t nRod=0;
for(Int_t m=0; m<rSec.getSize(); m++) {
HTofDigiParMod& rMod= rSec[m];
pos=s*maxModules+m;
id=tofIds->At(pos);
if (id>0) {
for(Int_t c=0; c<rMod.getSize(); c++) {
HTofDigiParCell& cell= rMod[c];
sec[nRod]=s+1;
mod[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++;
}
}
}
if (nRod==0) continue;
rows_to_insert=nRod;
Int_t nRodO=countRods(s+1);
if (nRod!=nRodO) {
Error("writePar(HTofDigiPar*)",
"\n Number of rods in Oracle: %i\n Number of rods in TofDigiPar: %i\n",
nRodO,nRod);
rollback();
return -1;
}
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 17;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "insert into tof_ana.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_ana.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 )592;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = ( void *)sec;
sqlstm.sqhstl[0] = (unsigned int )sizeof(int);
sqlstm.sqhsts[0] = ( int )sizeof(int);
sqlstm.sqindv[0] = ( void *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqharc[0] = (unsigned int *)0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = ( void *)mod;
sqlstm.sqhstl[1] = (unsigned int )sizeof(int);
sqlstm.sqhsts[1] = ( int )sizeof(int);
sqlstm.sqindv[1] = ( void *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned int )0;
sqlstm.sqharc[1] = (unsigned int *)0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = ( void *)rod;
sqlstm.sqhstl[2] = (unsigned int )sizeof(int);
sqlstm.sqhsts[2] = ( int )sizeof(int);
sqlstm.sqindv[2] = ( void *)0;
sqlstm.sqinds[2] = ( int )0;
sqlstm.sqharm[2] = (unsigned int )0;
sqlstm.sqharc[2] = (unsigned int *)0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = ( void *)vers;
sqlstm.sqhstl[3] = (unsigned int )sizeof(int);
sqlstm.sqhsts[3] = ( int )sizeof(int);
sqlstm.sqindv[3] = ( void *)0;
sqlstm.sqinds[3] = ( int )0;
sqlstm.sqharm[3] = (unsigned int )0;
sqlstm.sqharc[3] = (unsigned int *)0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqhstv[4] = ( void *)hl;
sqlstm.sqhstl[4] = (unsigned int )sizeof(float);
sqlstm.sqhsts[4] = ( int )sizeof(float);
sqlstm.sqindv[4] = ( void *)0;
sqlstm.sqinds[4] = ( int )0;
sqlstm.sqharm[4] = (unsigned int )0;
sqlstm.sqharc[4] = (unsigned int *)0;
sqlstm.sqadto[4] = (unsigned short )0;
sqlstm.sqtdso[4] = (unsigned short )0;
sqlstm.sqhstv[5] = ( void *)ar;
sqlstm.sqhstl[5] = (unsigned int )sizeof(float);
sqlstm.sqhsts[5] = ( int )sizeof(float);
sqlstm.sqindv[5] = ( void *)0;
sqlstm.sqinds[5] = ( int )0;
sqlstm.sqharm[5] = (unsigned int )0;
sqlstm.sqharc[5] = (unsigned int *)0;
sqlstm.sqadto[5] = (unsigned short )0;
sqlstm.sqtdso[5] = (unsigned short )0;
sqlstm.sqhstv[6] = ( void *)al;
sqlstm.sqhstl[6] = (unsigned int )sizeof(float);
sqlstm.sqhsts[6] = ( int )sizeof(float);
sqlstm.sqindv[6] = ( void *)0;
sqlstm.sqinds[6] = ( int )0;
sqlstm.sqharm[6] = (unsigned int )0;
sqlstm.sqharc[6] = (unsigned int *)0;
sqlstm.sqadto[6] = (unsigned short )0;
sqlstm.sqtdso[6] = (unsigned short )0;
sqlstm.sqhstv[7] = ( void *)gv;
sqlstm.sqhstl[7] = (unsigned int )sizeof(float);
sqlstm.sqhsts[7] = ( int )sizeof(float);
sqlstm.sqindv[7] = ( void *)0;
sqlstm.sqinds[7] = ( int )0;
sqlstm.sqharm[7] = (unsigned int )0;
sqlstm.sqharc[7] = (unsigned int *)0;
sqlstm.sqadto[7] = (unsigned short )0;
sqlstm.sqtdso[7] = (unsigned short )0;
sqlstm.sqhstv[8] = ( void *)slt;
sqlstm.sqhstl[8] = (unsigned int )sizeof(float);
sqlstm.sqhsts[8] = ( int )sizeof(float);
sqlstm.sqindv[8] = ( void *)0;
sqlstm.sqinds[8] = ( int )0;
sqlstm.sqharm[8] = (unsigned int )0;
sqlstm.sqharc[8] = (unsigned int *)0;
sqlstm.sqadto[8] = (unsigned short )0;
sqlstm.sqtdso[8] = (unsigned short )0;
sqlstm.sqhstv[9] = ( void *)srt;
sqlstm.sqhstl[9] = (unsigned int )sizeof(float);
sqlstm.sqhsts[9] = ( int )sizeof(float);
sqlstm.sqindv[9] = ( void *)0;
sqlstm.sqinds[9] = ( int )0;
sqlstm.sqharm[9] = (unsigned int )0;
sqlstm.sqharc[9] = (unsigned int *)0;
sqlstm.sqadto[9] = (unsigned short )0;
sqlstm.sqtdso[9] = (unsigned short )0;
sqlstm.sqhstv[10] = ( void *)tlc;
sqlstm.sqhstl[10] = (unsigned int )sizeof(int);
sqlstm.sqhsts[10] = ( int )sizeof(int);
sqlstm.sqindv[10] = ( void *)0;
sqlstm.sqinds[10] = ( int )0;
sqlstm.sqharm[10] = (unsigned int )0;
sqlstm.sqharc[10] = (unsigned int *)0;
sqlstm.sqadto[10] = (unsigned short )0;
sqlstm.sqtdso[10] = (unsigned short )0;
sqlstm.sqhstv[11] = ( void *)trc;
sqlstm.sqhstl[11] = (unsigned int )sizeof(int);
sqlstm.sqhsts[11] = ( int )sizeof(int);
sqlstm.sqindv[11] = ( void *)0;
sqlstm.sqinds[11] = ( int )0;
sqlstm.sqharm[11] = (unsigned int )0;
sqlstm.sqharc[11] = (unsigned int *)0;
sqlstm.sqadto[11] = (unsigned short )0;
sqlstm.sqtdso[11] = (unsigned short )0;
sqlstm.sqhstv[12] = ( void *)tla;
sqlstm.sqhstl[12] = (unsigned int )sizeof(int);
sqlstm.sqhsts[12] = ( int )sizeof(int);
sqlstm.sqindv[12] = ( void *)0;
sqlstm.sqinds[12] = ( int )0;
sqlstm.sqharm[12] = (unsigned int )0;
sqlstm.sqharc[12] = (unsigned int *)0;
sqlstm.sqadto[12] = (unsigned short )0;
sqlstm.sqtdso[12] = (unsigned short )0;
sqlstm.sqhstv[13] = ( void *)tra;
sqlstm.sqhstl[13] = (unsigned int )sizeof(int);
sqlstm.sqhsts[13] = ( int )sizeof(int);
sqlstm.sqindv[13] = ( void *)0;
sqlstm.sqinds[13] = ( int )0;
sqlstm.sqharm[13] = (unsigned int )0;
sqlstm.sqharc[13] = (unsigned int *)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<<"sector_id: "<<(s+1)<<" "<<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 HTofParOraIo::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,"HTofCalPar")==0) {
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 17;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "begin SELECT tof_ana . tof_par_query . next_version INTO \
:vers FROM DUAL ; INSERT INTO tof_ana . calpar_vers ( vers_id , orig_context_i\
d , run_id , author , description ) VALUES ( :vers , :context , :run , :creato\
r , :descript ) ; END ;";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )663;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = ( void *)&vers;
sqlstm.sqhstl[0] = (unsigned int )sizeof(int);
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( void *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = ( void *)&context;
sqlstm.sqhstl[1] = (unsigned int )sizeof(int);
sqlstm.sqhsts[1] = ( int )0;
sqlstm.sqindv[1] = ( void *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned int )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = ( void *)&run;
sqlstm.sqhstl[2] = (unsigned int )sizeof(int);
sqlstm.sqhsts[2] = ( int )0;
sqlstm.sqindv[2] = ( void *)0;
sqlstm.sqinds[2] = ( int )0;
sqlstm.sqharm[2] = (unsigned int )0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = ( void *)creator;
sqlstm.sqhstl[3] = (unsigned int )0;
sqlstm.sqhsts[3] = ( int )0;
sqlstm.sqindv[3] = ( void *)0;
sqlstm.sqinds[3] = ( int )0;
sqlstm.sqharm[3] = (unsigned int )0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqhstv[4] = ( void *)descript;
sqlstm.sqhstl[4] = (unsigned int )0;
sqlstm.sqhsts[4] = ( int )0;
sqlstm.sqindv[4] = ( void *)0;
sqlstm.sqinds[4] = ( int )0;
sqlstm.sqharm[4] = (unsigned int )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 = 12;
sqlstm.arrsiz = 17;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "begin SELECT tof_ana . tof_par_query . next_version INT\
O :vers FROM DUAL ; INSERT INTO tof_ana . digipar_vers ( vers_id , orig_contex\
t_id , run_id , author , description ) VALUES ( :vers , :context , :run , :cre\
ator , :descript ) ; END ;";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )698;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = ( void *)&vers;
sqlstm.sqhstl[0] = (unsigned int )sizeof(int);
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( void *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = ( void *)&context;
sqlstm.sqhstl[1] = (unsigned int )sizeof(int);
sqlstm.sqhsts[1] = ( int )0;
sqlstm.sqindv[1] = ( void *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned int )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = ( void *)&run;
sqlstm.sqhstl[2] = (unsigned int )sizeof(int);
sqlstm.sqhsts[2] = ( int )0;
sqlstm.sqindv[2] = ( void *)0;
sqlstm.sqinds[2] = ( int )0;
sqlstm.sqharm[2] = (unsigned int )0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = ( void *)creator;
sqlstm.sqhstl[3] = (unsigned int )0;
sqlstm.sqhsts[3] = ( int )0;
sqlstm.sqindv[3] = ( void *)0;
sqlstm.sqinds[3] = ( int )0;
sqlstm.sqharm[3] = (unsigned int )0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqhstv[4] = ( void *)descript;
sqlstm.sqhstl[4] = (unsigned int )0;
sqlstm.sqhsts[4] = ( int )0;
sqlstm.sqindv[4] = ( void *)0;
sqlstm.sqinds[4] = ( int )0;
sqlstm.sqharm[4] = (unsigned int )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 HTofParOraIo::countRods(Int_t sec) {
int id;
int num;
id=sec;
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 17;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select count(rod_id) into :b0 from tof_ana.setup_at_run_hi\
st s ,tof_ana.rod r where ((sector=:b1 and active=1) and s.module_id=r.module_\
id)";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )733;
sqlstm.selerr = (unsigned short)1;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = ( void *)#
sqlstm.sqhstl[0] = (unsigned int )sizeof(int);
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( void *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = ( void *)&id;
sqlstm.sqhstl[1] = (unsigned int )sizeof(int);
sqlstm.sqhsts[1] = ( int )0;
sqlstm.sqindv[1] = ( void *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned int )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (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("countRods(Int_t)");
}
return num;
notfound:
return 0;
}
void HTofParOraIo::putTofSectors(Int_t* modSet,Int_t* secSet) {
Int_t active;
for(Int_t s=0;s<TOF_MAXSEC;s++) {
active=0;
for(Int_t m=0;m<maxModules;m++)
if (modSet[s*maxModules+m]) active=1;
secSet[s]=active;
}
}
void HTofParOraIo::printInfo(const Char_t* contName) {
Bool_t first=kTRUE;
Int_t s, lastSec=-1;
for(Int_t i=0;i<TOF_MAXMODS;i++) {
if (initModules->At(i)) {
if (first) {
cout<<contName<<": sector(s) initialized from Oracle: ";
first=kFALSE;
}
s=(Int_t)floor((Float_t)(i/maxModules));
if (s>lastSec) {
cout<<s<<" ";
lastSec=s;
}
}
}
cout<<'\n';
}
Last change: Sat May 22 13:16:24 2010
Last generated: 2010-05-22 13:16
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.