80 int runFrom,
int runTo ) {
82 int run_From = std::abs( runFrom );
83 int run_To = std::abs( runTo );
88 StatusCode sc = Gaudi::svcLocator()->service(
"DatabaseSvc", m_dbsvc,
true );
91 std::cout <<
"MSG::ERROR "
92 <<
"Unable to find DatabaseSvc " << std::endl;
97 "select run_number,BPR_PRB,BER_PRB from RunParams where run_number >= %d and "
101 int row_no = m_dbsvc->query(
"run", stmt1, results );
104 std::cout <<
"ERROR:"
105 <<
"Run:" << run_From <<
" Can not read the beam energy from the Database"
119 for (
int i = 0; i < row_no; i++ )
122 int run_No = dbrec.
GetInt(
"run_number" );
123 std::vector<double> beamEnergy;
124 beamEnergy.push_back( dbrec.
GetDouble(
"BPR_PRB" ) );
125 beamEnergy.push_back( dbrec.
GetDouble(
"BER_PRB" ) );
126 m_mapBeamEnergy[run_No] = beamEnergy;
128 beam1 = beamEnergy[0];
129 beam2 = beamEnergy[1];
135 std::cerr << __FILE__ <<
":" << __LINE__ <<
": should not reach here" << std::endl;
140 int runFrom,
int runTo ) {
142 int run_From = std::abs( runFrom );
143 int run_To = std::abs( runTo );
148 StatusCode sc = Gaudi::svcLocator()->service(
"DatabaseSvc", m_dbsvc,
true );
149 if ( sc.isFailure() )
151 std::cout <<
"MSG::ERROR "
152 <<
"Unable to find DatabaseSvc " << std::endl;
156 "select run_number,Magnet_Current,SCQL,SCQR from SC_magnet where run_number >= "
157 "%d and run_number<=%d ",
160 int row_no = m_dbsvc->query(
"run", stmt1, results );
163 std::cout <<
"ERROR Read the SSM and SCQ current from the Database"
164 <<
" Run:" << run_From << endl;
169 for (
int i = 0; i < row_no; i++ )
172 int run_No = dbrec.
GetInt(
"run_number" );
173 std::vector<double> SCMagnet;
174 SCMagnet.push_back( dbrec.
GetDouble(
"Magnet_Current" ) );
175 SCMagnet.push_back( dbrec.
GetDouble(
"SCQL" ) );
176 SCMagnet.push_back( dbrec.
GetDouble(
"SCQR" ) );
177 m_mapMagnetInfo[run_No] = SCMagnet;
187 int run_No = std::abs(
runNo );
189 sprintf( stmt1,
"select BPR_PRB,BER_PRB from RunParams where run_number = %d ", run_No );
193 int status = m_dbsvc->query(
"run", stmt1, results );
196 std::cout <<
"ERROR Read the beam energy from the Database" << endmsg;
200 int RowNumber = results.size();
202 if ( RowNumber == 0 )
204 beamE.push_back( 1.843 );
205 beamE.push_back( 1.843 );
210 if ( RowNumber != 1 )
212 std::cout <<
"ERROR:error searching beam energy in the database, check your selection "
218 beamE.push_back( atof( ( *results[0] )[
"BPR_PRB"] ) );
219 beamE.push_back( atof( ( *results[0] )[
"BER_PRB"] ) );
221 beam1 = atof( ( *results[0] )[
"BPR_PRB"] );
222 beam2 = atof( ( *results[0] )[
"BER_PRB"] );