Code indexing in gitaly is broken and leads to code not being visible to the user. We work on the issue with highest priority.

Skip to content
Snippets Groups Projects

Resolve "Renaming particle matter interactions models and types"

All threads resolved!
Files
8
@@ -42,7 +42,6 @@
#include "AbsBeamline/Cyclotron.h"
#include "AbsBeamline/Degrader.h"
#include "AbsBeamline/Drift.h"
#include "AbsBeamline/ElementBase.h"
#include "AbsBeamline/Offset.h"
#include "AbsBeamline/Marker.h"
#include "AbsBeamline/Monitor.h"
@@ -323,62 +322,6 @@ void ParallelCyclotronTracker::closeFiles() {
}
}
/**
*
* @param ring
*/
void ParallelCyclotronTracker::visitRing(const Ring &ring) {
*gmsg << "* ----------------------------- Adding Ring ------------------------------ *" << endl;
delete opalRing_m;
opalRing_m = dynamic_cast<Ring*>(ring.clone());
myElements.push_back(opalRing_m);
opalRing_m->initialise(itsBunch_m);
referenceR = opalRing_m->getBeamRInit();
referencePr = opalRing_m->getBeamPRInit();
referenceTheta = opalRing_m->getBeamPhiInit();
if(referenceTheta <= -180.0 || referenceTheta > 180.0) {
throw OpalException("Error in ParallelCyclotronTracker::visitRing",
"PHIINIT is out of [-180, 180)!");
}
referenceZ = 0.0;
referencePz = 0.0;
referencePtot = itsReference.getGamma() * itsReference.getBeta();
referencePt = std::sqrt(referencePtot * referencePtot - referencePr * referencePr);
if(referencePtot < 0.0)
referencePt *= -1.0;
sinRefTheta_m = std::sin(referenceTheta * Physics::deg2rad);
cosRefTheta_m = std::cos(referenceTheta * Physics::deg2rad);
double BcParameter[8] = {}; // zero initialise array
buildupFieldList(BcParameter, ElementBase::RING, opalRing_m);
// Finally print some diagnostic
*gmsg << "* Initial beam radius = " << referenceR << " [mm] " << endl;
*gmsg << "* Initial gamma = " << itsReference.getGamma() << endl;
*gmsg << "* Initial beta = " << itsReference.getBeta() << endl;
*gmsg << "* Total reference momentum = " << referencePtot * 1000.0
<< " [MCU]" << endl;
*gmsg << "* Reference azimuthal momentum = " << referencePt * 1000.0
<< " [MCU]" << endl;
*gmsg << "* Reference radial momentum = " << referencePr * 1000.0
<< " [MCU]" << endl;
*gmsg << "* " << opalRing_m->getSymmetry() << " fold field symmetry "
<< endl;
*gmsg << "* Harmonic number h= " << opalRing_m->getHarmonicNumber() << " "
<< endl;
}
/**
*
@@ -547,39 +490,6 @@ void ParallelCyclotronTracker::visitCyclotron(const Cyclotron &cycl) {
buildupFieldList(BcParameter, ElementBase::CYCLOTRON, cycl_m);
}
void ParallelCyclotronTracker::visitVacuum(const Vacuum &vac) {
*gmsg << "* ------------------------------ Vacuum ------------------------------" << endl;
Vacuum* elptr = dynamic_cast<Vacuum*>(vac.clone());
myElements.push_back(elptr);
double BcParameter[8] = {};
if(elptr->getPressureMapFN() == "") {
double pressure = elptr->getPressure();
*gmsg << "* Pressure = " << pressure << " [mbar]" << endl;
BcParameter[0] = pressure;
}
double temperature = elptr->getTemperature();
*gmsg << "* Temperature = " << temperature << " [K]" << endl;
std::string gas = elptr->getResidualGasName();
*gmsg << "* Residual gas = " << gas << endl;
bool stop = elptr->getStop();
*gmsg << std::boolalpha << "* Particles stripped will be deleted after interaction -> " << stop << endl;
elptr->initialise(itsBunch_m, elptr->getPScale());
BcParameter[1] = temperature;
BcParameter[2] = stop;
buildupFieldList(BcParameter, ElementBase::VACUUM, elptr);
}
/**
*
*
@@ -647,7 +557,6 @@ void ParallelCyclotronTracker::visitDegrader(const Degrader &deg) {
}
/**
*
*
@@ -823,57 +732,10 @@ void ParallelCyclotronTracker::visitRBend(const RBend &bend) {
myElements.push_back(dynamic_cast<RBend *>(bend.clone()));
}
void ParallelCyclotronTracker::visitSBend3D(const SBend3D &bend) {
*gmsg << "Adding SBend3D" << endl;
if (opalRing_m != NULL)
opalRing_m->appendElement(bend);
else
throw OpalException("ParallelCyclotronTracker::visitSBend3D",
"Need to define a RINGDEFINITION to use SBend3D element");
}
void ParallelCyclotronTracker::visitScalingFFAMagnet(const ScalingFFAMagnet &bend) {
*gmsg << "Adding ScalingFFAMagnet" << endl;
if (opalRing_m != NULL) {
opalRing_m->appendElement(bend);
} else {
throw OpalException("ParallelCyclotronTracker::visitScalingFFAMagnet",
"Need to define a RINGDEFINITION to use ScalingFFAMagnet element");
}
}
void ParallelCyclotronTracker::visitVariableRFCavity(const VariableRFCavity &cav) {
*gmsg << "Adding Variable RF Cavity" << endl;
if (opalRing_m != NULL)
opalRing_m->appendElement(cav);
else
throw OpalException("ParallelCyclotronTracker::visitVariableRFCavity",
"Need to define a RINGDEFINITION to use VariableRFCavity element");
}
void ParallelCyclotronTracker::visitVariableRFCavityFringeField
(const VariableRFCavityFringeField &cav) {
*gmsg << "Adding Variable RF Cavity with Fringe Field" << endl;
if (opalRing_m != NULL)
opalRing_m->appendElement(cav);
else
throw OpalException("ParallelCyclotronTracker::visitVariableRFCavityFringeField",
"Need to define a RINGDEFINITION to use VariableRFCavity element");
}
void ParallelCyclotronTracker::visitVerticalFFAMagnet(const VerticalFFAMagnet &mag) {
*gmsg << "Adding Vertical FFA Magnet" << endl;
if (opalRing_m != NULL)
opalRing_m->appendElement(mag);
else
throw OpalException("ParallelCyclotronTracker::visitVerticalFFAMagnet",
"Need to define a RINGDEFINITION to use VerticalFFAMagnet element");
}
/**
*
*
* @param as
* @param rf cavity
*/
void ParallelCyclotronTracker::visitRFCavity(const RFCavity &as) {
@@ -961,6 +823,63 @@ void ParallelCyclotronTracker::visitRFCavity(const RFCavity &as) {
buildupFieldList(BcParameter, ElementBase::RFCAVITY, elptr);
}
/**
*
* @param ring
*/
void ParallelCyclotronTracker::visitRing(const Ring &ring) {
*gmsg << "* ----------------------------- Adding Ring ------------------------------ *" << endl;
delete opalRing_m;
opalRing_m = dynamic_cast<Ring*>(ring.clone());
myElements.push_back(opalRing_m);
opalRing_m->initialise(itsBunch_m);
referenceR = opalRing_m->getBeamRInit();
referencePr = opalRing_m->getBeamPRInit();
referenceTheta = opalRing_m->getBeamPhiInit();
if(referenceTheta <= -180.0 || referenceTheta > 180.0) {
throw OpalException("Error in ParallelCyclotronTracker::visitRing",
"PHIINIT is out of [-180, 180)!");
}
referenceZ = 0.0;
referencePz = 0.0;
referencePtot = itsReference.getGamma() * itsReference.getBeta();
referencePt = std::sqrt(referencePtot * referencePtot - referencePr * referencePr);
if(referencePtot < 0.0)
referencePt *= -1.0;
sinRefTheta_m = std::sin(referenceTheta * Physics::deg2rad);
cosRefTheta_m = std::cos(referenceTheta * Physics::deg2rad);
double BcParameter[8] = {}; // zero initialise array
buildupFieldList(BcParameter, ElementBase::RING, opalRing_m);
// Finally print some diagnostic
*gmsg << "* Initial beam radius = " << referenceR << " [mm] " << endl;
*gmsg << "* Initial gamma = " << itsReference.getGamma() << endl;
*gmsg << "* Initial beta = " << itsReference.getBeta() << endl;
*gmsg << "* Total reference momentum = " << referencePtot * 1000.0
<< " [MCU]" << endl;
*gmsg << "* Reference azimuthal momentum = " << referencePt * 1000.0
<< " [MCU]" << endl;
*gmsg << "* Reference radial momentum = " << referencePr * 1000.0
<< " [MCU]" << endl;
*gmsg << "* " << opalRing_m->getSymmetry() << " fold field symmetry "
<< endl;
*gmsg << "* Harmonic number h= " << opalRing_m->getHarmonicNumber() << " "
<< endl;
}
/**
*
*
@@ -971,6 +890,25 @@ void ParallelCyclotronTracker::visitSBend(const SBend &bend) {
myElements.push_back(dynamic_cast<SBend *>(bend.clone()));
}
void ParallelCyclotronTracker::visitSBend3D(const SBend3D &bend) {
*gmsg << "Adding SBend3D" << endl;
if (opalRing_m != NULL)
opalRing_m->appendElement(bend);
else
throw OpalException("ParallelCyclotronTracker::visitSBend3D",
"Need to define a RINGDEFINITION to use SBend3D element");
}
void ParallelCyclotronTracker::visitScalingFFAMagnet(const ScalingFFAMagnet &bend) {
*gmsg << "Adding ScalingFFAMagnet" << endl;
if (opalRing_m != NULL) {
opalRing_m->appendElement(bend);
} else {
throw OpalException("ParallelCyclotronTracker::visitScalingFFAMagnet",
"Need to define a RINGDEFINITION to use ScalingFFAMagnet element");
}
}
/**
*
*
@@ -998,7 +936,6 @@ void ParallelCyclotronTracker::visitSeptum(const Septum &sept) {
double width = elptr->getWidth();
*gmsg << "* Width = " << width << " [m]" << endl;
// initialise, do nothing
elptr->initialise(itsBunch_m);
@@ -1033,7 +970,6 @@ void ParallelCyclotronTracker::visitSolenoid(const Solenoid &solenoid) {
*
* @param stripper
*/
void ParallelCyclotronTracker::visitStripper(const Stripper &stripper) {
*gmsg << "* ------------------------------ Stripper ------------------------------" << endl;
@@ -1079,6 +1015,72 @@ void ParallelCyclotronTracker::visitStripper(const Stripper &stripper) {
buildupFieldList(BcParameter, ElementBase::STRIPPER, elptr);
}
/**
*
*
* @param vacuum
*/
void ParallelCyclotronTracker::visitVacuum(const Vacuum &vac) {
*gmsg << "* ------------------------------ Vacuum ------------------------------" << endl;
Vacuum* elptr = dynamic_cast<Vacuum*>(vac.clone());
myElements.push_back(elptr);
double BcParameter[8] = {};
if(elptr->getPressureMapFN() == "") {
double pressure = elptr->getPressure();
*gmsg << "* Pressure = " << pressure << " [mbar]" << endl;
BcParameter[0] = pressure;
}
double temperature = elptr->getTemperature();
*gmsg << "* Temperature = " << temperature << " [K]" << endl;
std::string gas = elptr->getResidualGasName();
*gmsg << "* Residual gas = " << gas << endl;
bool stop = elptr->getStop();
*gmsg << std::boolalpha << "* Particles stripped will be deleted after interaction -> " << stop << endl;
elptr->initialise(itsBunch_m, elptr->getPScale());
BcParameter[1] = temperature;
BcParameter[2] = stop;
buildupFieldList(BcParameter, ElementBase::VACUUM, elptr);
}
void ParallelCyclotronTracker::visitVariableRFCavity(const VariableRFCavity &cav) {
*gmsg << "Adding Variable RF Cavity" << endl;
if (opalRing_m != NULL)
opalRing_m->appendElement(cav);
else
throw OpalException("ParallelCyclotronTracker::visitVariableRFCavity",
"Need to define a RINGDEFINITION to use VariableRFCavity element");
}
void ParallelCyclotronTracker::visitVariableRFCavityFringeField
(const VariableRFCavityFringeField &cav) {
*gmsg << "Adding Variable RF Cavity with Fringe Field" << endl;
if (opalRing_m != NULL)
opalRing_m->appendElement(cav);
else
throw OpalException("ParallelCyclotronTracker::visitVariableRFCavityFringeField",
"Need to define a RINGDEFINITION to use VariableRFCavity element");
}
void ParallelCyclotronTracker::visitVerticalFFAMagnet(const VerticalFFAMagnet &mag) {
*gmsg << "Adding Vertical FFA Magnet" << endl;
if (opalRing_m != NULL)
opalRing_m->appendElement(mag);
else
throw OpalException("ParallelCyclotronTracker::visitVerticalFFAMagnet",
"Need to define a RINGDEFINITION to use VerticalFFAMagnet element");
}
/**
*
*
Loading