/** Retrieves the properties and checks that they have valid values. * @throw std::invalid_argument If either workspace has no instrument or the instruments have different base instruments. */ void CopyInstrumentParameters::checkProperties() { // Check that both workspaces have an instrument Instrument_const_sptr inst = m_givingWorkspace->getInstrument(); if( !inst ) { throw std::invalid_argument("Input workspace has no instrument"); } Instrument_const_sptr inst2 = m_receivingWorkspace->getInstrument(); if( !inst2 ) { throw std::invalid_argument("Output workspace has no instrument"); } Instrument_const_sptr baseInstGiv = inst->baseInstrument(); Instrument_const_sptr baseInstRec = inst2->baseInstrument(); // Check that both workspaces have the same instrument name if( baseInstRec != baseInstGiv ) { m_different_instrument_sp=true; g_log.warning() << "The base instrument in the output workspace is not the same as the base instrument in the input workspace."<< std::endl; } }