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.