118 MsgStream log(messageService(), name());
119 SmartDataPtr<Event::EventHeader> eventHeader(m_eventSvc,
"/Event/EventHeader");
120 int run = eventHeader->runNumber();
122 log << MSG::INFO <<
"This data is the MC sample with the Run Number: " << run << endreq;
125 log << MSG::INFO <<
"Reverse the sign of Run Number" << endreq;
135 if(m_sftver ==
"default" && m_bossRelease ==
"default")
137 log << MSG::FATAL <<
" BossRelease and BossVer for DedxCurve not set!" << endreq;
141 if( (run<m_runFromMax || run>m_runToMin) )
143 if(m_sftver ==
"default")
145 sprintf(stmt1,
"select RunFrom, RunTo, SftVer, ParVer from CalVtxLumVer where BossRelease = '%s' and RunFrom <= %d and RunTo >= %d and DataType = 'DedxCurve'", m_bossRelease.c_str(), run, run);
146 std::cout<<stmt1<<std::endl;
148 int row_no = m_dbsvc->
query(
"offlinedb",stmt1,rest);
150 log << MSG::FATAL <<
"can not find result for DedxCur with: " << stmt1 << endreq;
154 log << MSG::FATAL <<
"find more than 1 results for DedxCur with: " << stmt1 << endreq;
159 m_calParVer = recordst->
GetString(
"ParVer");
160 m_runFromMax = atoi((recordst->
GetString(
"RunFrom")).c_str());
161 m_runToMin = atoi((recordst->
GetString(
"RunTo")).c_str());
162 log << MSG::INFO <<
"get from CalVtxLumVer, m_runFromMax: "<< m_runFromMax <<
" m_runToMin: "<<m_runToMin<< endreq;
167 if(m_calParVer!=
"default")
168 sprintf(stmt1,
"select RunFrom, RunTo, DedxCurvePar,DedxSigmaPar from DedxCurvePar where SftVer = '%s' and RunFrom <= %d and RunTo >= %d and DedxCurveParVer = %s and Status='%s'",sftver.c_str(),run,run,m_calParVer.c_str(), m_dbStatus.c_str());
170 sprintf(stmt1,
"select RunFrom, RunTo, DedxCurvePar,DedxSigmaPar from DedxCurvePar where SftVer = '%s' and RunFrom <= %d and RunTo >= %d and Status='%s' order by DedxCurveParVer desc",sftver.c_str(),run,run, m_dbStatus.c_str());
171 std::cout<<stmt1<<std::endl;
174 int row_no = m_dbsvc->
query(
"offlinedb", stmt1, res);
176 log << MSG::FATAL <<
"can not find result for DedxCur with: "<< stmt1 << endreq;
180 log << MSG::FATAL <<
"find more than 1 results for DedxCur with: "<< stmt1 << endreq;
185 int runFrom = atoi((records->
GetString(
"RunFrom")).c_str());
186 int runTo = atoi((records->
GetString(
"RunTo")).c_str());
187 if(m_sftver==
"default")
189 m_runFromMax = runFrom>m_runFromMax? runFrom:m_runFromMax;
190 m_runToMin = runTo<m_runToMin? runTo:m_runToMin;
194 m_runFromMax = runFrom;
197 log << MSG::INFO <<
"get from DedxCurvePar runFrom: "<< runFrom <<
" runTo: "<<runTo<< endreq;
198 log << MSG::INFO <<
"m_runFromMax: "<< m_runFromMax <<
" m_runToMin: "<<m_runToMin<< endreq;
200 TBuffer *buf1 =
new TBufferFile(TBuffer::kRead);
201 buf1->SetBuffer((*records)[
"DedxCurvePar"],327680,kFALSE);
202 TBuffer *buf2 =
new TBufferFile(TBuffer::kRead);
203 buf2->SetBuffer((*records)[
"DedxSigmaPar"],327680,kFALSE);
206 TTree* curvetree =
new TTree();
207 curvetree->Streamer(*buf1);
209 TTree* sigmatree =
new TTree();
210 sigmatree->Streamer(*buf2);
221 Int_t nentries_curve = (Int_t)curvetree ->GetEntries();
222 Int_t nentries_sigma = (Int_t)sigmatree ->GetEntries();
225 log << MSG::ERROR<<
"CurveSize larger than designed number"<<endreq;
227 for(
int i=0; i<CurveSize;i++){
233 log << MSG::ERROR<<
"SigmaSize larger than designed number"<<endreq;
235 for(
int i=0; i<SigmaSize;i++){
236 m_sigma[i]=sigma[i];}
237 m_curve_size=CurveSize;
238 m_sigma_size=SigmaSize;