In
/afs/cern.ch/atlas/project/tdaq/cmt/tdaq-01-09-00/onasic/src/onasic_is2okscore.cpp
we see
/*--------------Create OKSCLASS from IsInfo--------------------*/
void OKS_GetSchema(ISCallbackInfo * isc)
{
if (verbosity>=5 ) {std::cout << "ONASIC "<< "SDEBUG: " << " Entering in <void OKS_GetSchema(ISCallbackInfo * isc)> function..." << std::endl;} //std::cout << "ONASIC "<< "SDEBUG: " << " Entering in <void OKS_GetSchema(ISCallbackInfo * isc)> function..." << std::endl;
ISInfoAny isa;
isc->value(isa);
if (verbosity >= 2) {std::cout << "ONASIC "<< "INFO: " << "Creating Schema for " << isc->name() << " lumi="<<lumi_block << std::endl;}
if (verbosity >= 3) {std::cout << "ONASIC "<< "DEBUG: " << "Creating Schema for " << isc->name()<<" with isa :\n"<<isa;}
//std::cout << "pname: " << pname.c_str() << " \nisa:" << isa << std::endl ;
if(!strcmp(isc->name(),"RunParams.LuminosityInfo")) RNLB=GetRunLumiNumber(isc);
-- snip --
cout << "PROCESSING OBJECT WITH FORMAT STRING!!!!!!!" << endl;
long long ccc=-1;
/*GetNums(ServersConf["ISService"].sValue(),ServersConf["Format"].sValue(),run_number,lumi_block,ccc);*/
GetNums((*(TIDBRow*)isc->parameter())["ISService"].sValue(),(*(TIDBRow*)isc->parameter())["Format"].sValue(),run_number,lumi_block,ccc);
if (ccc!=-1) {
d.Set(toString(ccc));
o->SetAttributeValue("__OKS2COOL_ID__",&d);
ServersConf["ChannelID"].set(ccc);
/*(*(TIDBRow*)isc->parameter())["ChannelID"].set(ccc);*/
}
if(ServersConf["IOV_Type"].sValue()=="RunLumi")
/*if((*(TIDBRow*)isc->parameter())["IOV_Type"].sValue()=="RunLumi")*/{
//d.Set(toString(10000*run_number+lumi_block));
d.Set(toString((long long)RNLB));
o->SetAttributeValue("__OKS2COOL_TIMESTAMP__",&d);
//WARN("Assigning RunLB: "+toString(10000*run_number+lumi_block));
WARN("Assigning RunLB: "+toString((long long)(run_number*(pow((long double)2,(long double)32))+lumi_block)));
}
in which ONASIC appears to get run number and lumi block information from IS objects called RunParams?.LuminosityInfo? in a special way that is not afforded to other IS objects.