Пример #1
0
BioXASImagingBeamline::BioXASImagingBeamline()
	: BioXASBeamline("BioXAS Beamline - Imaging Endstation")
{
	setupComponents();
	setupControlsAsDetectors();
	setupExposedControls();
	setupExposedDetectors();
}
Пример #2
0
VESPERSBeamline::VESPERSBeamline()
	: AMBeamline("VESPERS Beamline")
{
	setupSynchronizedDwellTime();
	setupComponents();
	setupDiagnostics();
	setupSampleStage();
	setupEndstation();
	setupDetectors();
	setupControlSets();
	setupMono();
	setupExperimentStatus();
	setupExposedControls();
}
Пример #3
0
IDEASBeamline::IDEASBeamline()
	: CLSBeamline("IDEAS Beamline")
{
	setupComponents();
	setupDiagnostics();
	setupSampleStage();
	setupDetectors();
	setupControlSets();
	setupMono();
	setupMotorGroup();
	setupControlsAsDetectors();
	setupExposedControls();
	setupExposedDetectors();
}
Пример #4
0
BioXASImagingBeamline::BioXASImagingBeamline()
	: CLSBeamline("BioXAS Beamline - Imaging Endstation")
{
	setupSynchronizedDwellTime();
	setupComponents();
	setupDiagnostics();
	setupSampleStage();
	setupDetectors();
	setupControlSets();
	setupMono();
	setupMotorGroup();
	setupControlsAsDetectors();
	setupExposedControls();
	setupExposedDetectors();
}
Пример #5
0
SXRMBBeamline::SXRMBBeamline()
	: CLSBeamline("SXRMB Beamline")
{
	currentEndstation_ = SXRMB::InvalidEndstation;

	setupSynchronizedDwellTime();
	setupComponents();
	setupDiagnostics();
	setupSampleStage();
	setupDetectors();
	setupControlSets();
	setupMono();
	setupMotorGroup();
	setupControlsAsDetectors();
	setupHVControls();
	setupExposedControls();
	setupExposedDetectors();
	setupConnections();

	wasConnected_ = false;
	onPVConnectedHelper();
	onEndstationPVConnected(endstationControl_->isConnected());
}
Пример #6
0
REIXSBeamline::REIXSBeamline() :
	CLSBeamline("REIXSBeamline")
{
	// Upstream controls
	photonSource_ = new REIXSPhotonSource(this);
	addChildControl(photonSource_);

	valvesAndShutters_ = new REIXSValvesAndShutters(this);
	addChildControl(valvesAndShutters_);

	// Spectromter: controls and control set for positioners:
	spectrometer_ = new REIXSSpectrometer(this);
	addChildControl(spectrometer_);

	spectrometerPositionSet_ = new AMControlSet(this);
	spectrometerPositionSet_->addControl(spectrometer()->spectrometerRotationDrive());
	spectrometerPositionSet_->addControl(spectrometer()->detectorTranslation());
	spectrometerPositionSet_->addControl(spectrometer()->detectorTiltDrive());
	spectrometerPositionSet_->addControl(spectrometer()->hexapod()->x());
	spectrometerPositionSet_->addControl(spectrometer()->hexapod()->y());
	spectrometerPositionSet_->addControl(spectrometer()->hexapod()->z());
	spectrometerPositionSet_->addControl(spectrometer()->hexapod()->u());
	spectrometerPositionSet_->addControl(spectrometer()->hexapod()->v());
	spectrometerPositionSet_->addControl(spectrometer()->hexapod()->w());
	spectrometerPositionSet_->addControl(spectrometer()->hexapod()->r());
	spectrometerPositionSet_->addControl(spectrometer()->hexapod()->s());
	spectrometerPositionSet_->addControl(spectrometer()->hexapod()->t());
	spectrometerPositionSet_->addControl(spectrometer()->endstationTranslation());  //DAVID ADDED

	// Sample Chamber: controls and control set for positioners:
	sampleChamber_ = new REIXSSampleChamber(this);
	addChildControl(sampleChamber_);
	sampleManipulatorSet_ = new AMControlSet(this);

	sampleManipulatorSet_->addControl(sampleChamber()->beamNormalTranslation());
	sampleManipulatorSet_->addControl(sampleChamber()->beamHorizontalTranslation());
	sampleManipulatorSet_->addControl(sampleChamber()->beamVerticalTranslation());
	sampleManipulatorSet_->addControl(sampleChamber()->beamVerticalRotation());

	// MCP detector
	mcpDetector_ = new REIXSXESMCPDetector(this);

	scaler_ = new CLSSIS3820Scaler("BL1610-ID-2:mcs", this);

	scaler_->channelAt(3)->setCustomChannelName("PFY");

	scaler_->channelAt(4)->setCustomChannelName("TFY");

	scaler_->channelAt(18)->setCustomChannelName("TEY");
	CLSSR570 *tempSR570 = new CLSSR570("TEY", "AMP1610-4-03", this);
	scaler_->channelAt(18)->setCurrentAmplifier(tempSR570);
	scaler_->channelAt(18)->setVoltagRange(AMRange(0.25, 4.75));

	scaler_->channelAt(16)->setCustomChannelName("I0");
	tempSR570 = new CLSSR570("I0", "AMP1610-4-02", this);
	scaler_->channelAt(16)->setCurrentAmplifier(tempSR570);
	scaler_->channelAt(16)->setVoltagRange(AMRange(0.25, 4.75));

	i0Detector_ = new CLSBasicScalerChannelDetector("I0", "I0", scaler_, 16, this);
	teyDetector_ = new CLSBasicScalerChannelDetector("TEY", "TEY", scaler_, 18, this);
	tfyDetector_ = new CLSBasicScalerChannelDetector("TFY", "TFY", scaler_, 4, this);
	pfyDetector_ = new CLSBasicScalerChannelDetector("PFY", "PFY", scaler_, 3, this);

	i0Current_ = new AMReadOnlyPVControl("I0Current","BL1610-ID-2:mcs16:fbk", this, "I0 Current");
	teyCurrent_ = new AMReadOnlyPVControl("TEYCurrent","BL1610-ID-2:mcs18:fbk", this, "TEY Current");

	/*
	 Build a control set of all the controls we want to make available to REIXSControlMoveAction, as well as record in the scan's scanInitialConditions()
	allControlsSet_ = new AMControlSet(this);
	allControlsSet_->addControl(photonSource()->energy());
	allControlsSet_->addControl(photonSource()->monoGratingSelector());
	allControlsSet_->addControl(photonSource()->monoMirrorSelector());
	allControlsSet_->addControl(photonSource()->monoSlit());
	allControlsSet_->addControl(spectrometer());
	allControlsSet_->addControl(spectrometer()->spectrometerRotationDrive());
	allControlsSet_->addControl(spectrometer()->detectorTranslation());
	allControlsSet_->addControl(spectrometer()->detectorTiltDrive());
	allControlsSet_->addControl(spectrometer()->hexapod()->x());
	allControlsSet_->addControl(spectrometer()->hexapod()->y());
	allControlsSet_->addControl(spectrometer()->hexapod()->z());
	allControlsSet_->addControl(spectrometer()->hexapod()->u());
	allControlsSet_->addControl(spectrometer()->hexapod()->v());
	allControlsSet_->addControl(spectrometer()->hexapod()->w());
	allControlsSet_->addControl(spectrometer()->hexapod()->r());
	allControlsSet_->addControl(spectrometer()->hexapod()->s());
	allControlsSet_->addControl(spectrometer()->hexapod()->t());
	allControlsSet_->addControl(sampleChamber()->x());
	allControlsSet_->addControl(sampleChamber()->y());
	allControlsSet_->addControl(sampleChamber()->z());
	allControlsSet_->addControl(sampleChamber()->r());
	allControlsSet_->addControl(spectrometer()->endstationTranslation()); //DAVID 001 ADDED
	allControlsSet_->addControl(photonSource()->M5Pitch());   //DAVID ADDED 003
	allControlsSet_->addControl(photonSource()->M5Yaw());   //DAVID ADDED 003
	allControlsSet_->addControl(spectrometer()->gratingMask());  //DAVID ADDED 005
	*/

	tmSet_ = new AMControlSet(this);
	tmSet_->addControl(spectrometer()->tmSOE());
	tmSet_->addControl(spectrometer()->tmMCPPreamp());

	meterSet_ = new AMControlSet(this);
	meterSet_->addControl(i0Current_);
	meterSet_->addControl(teyCurrent_);

	setupExposedControls();
	setupExposedDetectors();

	samplePlate_ = new AMSamplePlatePre2013(this);
}