Commit 435ce859 authored by Uldis Locans's avatar Uldis Locans
Browse files

rename SurfacePhysics to ParticleMaterInteraction

parent 2b8f6567
......@@ -46,7 +46,7 @@
#include "ValueDefinitions/RealVariable.h"
#include "Utilities/Timer.h"
#include "Utilities/OpalException.h"
#include "Solvers/SurfacePhysicsHandler.hh"
#include "Solvers/ParticleMaterInteractionHandler.hh"
#include "Structure/BoundaryGeometry.h"
#include "Structure/LossDataSink.h"
......@@ -83,7 +83,7 @@ ParallelTTracker::ParallelTTracker(const Beamline &beamline,
fieldEvaluationTimer_m(IpplTimings::getTimer("External field eval")),
BinRepartTimer_m(IpplTimings::getTimer("Binaryrepart")),
WakeFieldTimer_m(IpplTimings::getTimer("WakeField")),
surfaceStatus_m(false),
particleMaterStatus_m(false),
totalParticlesInSimulation_m(0)
// , logger_m("designPath_" + std::to_string(Ippl::myNode()) + ".dat")
{
......@@ -130,7 +130,7 @@ ParallelTTracker::ParallelTTracker(const Beamline &beamline,
fieldEvaluationTimer_m(IpplTimings::getTimer("External field eval")),
BinRepartTimer_m(IpplTimings::getTimer("Binaryrepart")),
WakeFieldTimer_m(IpplTimings::getTimer("WakeField")),
surfaceStatus_m(false),
particleMaterStatus_m(false),
totalParticlesInSimulation_m(0)
// , logger_m("designPath_" + std::to_string(Ippl::myNode()) + ".dat")
{
......@@ -762,15 +762,15 @@ void ParallelTTracker::computeParticleMatterInteraction(IndexMap::value_t elemen
Inform msg("ParallelTTracker ", *gmsg);
IndexMap::value_t::const_iterator it = elements.begin();
const IndexMap::value_t::const_iterator end = elements.end();
std::set<IndexMap::value_t::value_type> elementsWithSurfacePhysics;
std::set<SurfacePhysicsHandler*> surfacePhysicsHandlers;
std::set<IndexMap::value_t::value_type> elementsWithParticleMaterInteraction;
std::set<ParticleMaterInteractionHandler*> particleMaterInteractionHandlers;
std::pair<double, double> currentRange(0.0, 0.0);
while (elements.size() > 0) {
auto it = elements.begin();
if ((*it)->hasSurfacePhysics()) {
elementsWithSurfacePhysics.insert(*it);
surfacePhysicsHandlers.insert((*it)->getSurfacePhysics());
if ((*it)->hasParticleMaterInteraction()) {
elementsWithParticleMaterInteraction.insert(*it);
particleMaterInteractionHandlers.insert((*it)->getParticleMaterInteraction());
std::pair<double, double> range = oth.getRange(*it, pathLength_m);
currentRange.first = std::min(currentRange.first, range.first);
......@@ -783,50 +783,50 @@ void ParallelTTracker::computeParticleMatterInteraction(IndexMap::value_t elemen
elements.erase(it);
}
if (elementsWithSurfacePhysics.size() > 0) {
std::set<SurfacePhysicsHandler*> oldSPHandlers;
std::vector<SurfacePhysicsHandler*> leftBehindSPHandlers, newSPHandlers;
for (auto it: activeSurfacePhysicsHandlers_m) {
if (elementsWithParticleMaterInteraction.size() > 0) {
std::set<ParticleMaterInteractionHandler*> oldSPHandlers;
std::vector<ParticleMaterInteractionHandler*> leftBehindSPHandlers, newSPHandlers;
for (auto it: activeParticleMaterInteractionHandlers_m) {
oldSPHandlers.insert(it);
}
leftBehindSPHandlers.resize(std::max(oldSPHandlers.size(),
surfacePhysicsHandlers.size()));
particleMaterInteractionHandlers.size()));
auto last = std::set_difference(oldSPHandlers.begin(), oldSPHandlers.end(),
surfacePhysicsHandlers.begin(), surfacePhysicsHandlers.end(),
particleMaterInteractionHandlers.begin(), particleMaterInteractionHandlers.end(),
leftBehindSPHandlers.begin());
leftBehindSPHandlers.resize(last - leftBehindSPHandlers.begin());
for (auto it: leftBehindSPHandlers) {
if (!it->stillActive()) {
activeSurfacePhysicsHandlers_m.erase(it);
activeParticleMaterInteractionHandlers_m.erase(it);
}
}
newSPHandlers.resize(std::max(oldSPHandlers.size(),
elementsWithSurfacePhysics.size()));
last = std::set_difference(surfacePhysicsHandlers.begin(), surfacePhysicsHandlers.end(),
elementsWithParticleMaterInteraction.size()));
last = std::set_difference(particleMaterInteractionHandlers.begin(), particleMaterInteractionHandlers.end(),
oldSPHandlers.begin(), oldSPHandlers.end(),
newSPHandlers.begin());
newSPHandlers.resize(last - newSPHandlers.begin());
for (auto it: newSPHandlers) {
activeSurfacePhysicsHandlers_m.insert(it);
activeParticleMaterInteractionHandlers_m.insert(it);
}
if(!surfaceStatus_m) {
msg << level2 << "============== START SURFACE PHYSICS CALCULATION =============" << endl;
surfaceStatus_m = true;
if(!particleMaterStatus_m) {
msg << level2 << "============== START PARTICLE MATER INTERACTION CALCULATION =============" << endl;
particleMaterStatus_m = true;
}
}
if (surfaceStatus_m) {
if (particleMaterStatus_m) {
do {
///all particles in material if max per node is 2 and other degraders have 0 particles
//check if more than one degrader has particles
SurfacePhysicsHandler* onlyDegraderWithParticles = NULL;
ParticleMaterInteractionHandler* onlyDegraderWithParticles = NULL;
int degradersWithParticlesCount = 0;
for (auto it: activeSurfacePhysicsHandlers_m) {
for (auto it: activeParticleMaterInteractionHandlers_m) {
it->setFlagAllParticlesIn(false);
if (it->getParticlesInMat() > 0) {
onlyDegraderWithParticles = it;
......@@ -848,7 +848,7 @@ void ParallelTTracker::computeParticleMatterInteraction(IndexMap::value_t elemen
auto boundingSphere = itsBunch_m->getLocalBoundingSphere();
unsigned redifusedParticles = 0;
for (auto it: activeSurfacePhysicsHandlers_m) {
for (auto it: activeParticleMaterInteractionHandlers_m) {
ElementBase* element = it->getElement();
CoordinateSystemTrafo refToLocalCSTrafo = (element->getMisalignment() *
(element->getCSTrafoGlobal2Local() * referenceToLabCSTrafo_m));
......@@ -907,9 +907,9 @@ void ParallelTTracker::computeParticleMatterInteraction(IndexMap::value_t elemen
} while (itsBunch_m->getTotalNum() == 0);
if (activeSurfacePhysicsHandlers_m.size() == 0) {
msg << level2 << "============== END SURFACE PHYSICS CALCULATION =============" << endl;
surfaceStatus_m = false;
if (activeParticleMaterInteractionHandlers_m.size() == 0) {
msg << level2 << "============== END PARTICLE MATER INTERACTION CALCULATION =============" << endl;
particleMaterStatus_m = false;
}
}
}
......@@ -1501,4 +1501,4 @@ void ParallelTTracker::evenlyDistributeParticles() {
// mode:c++
// c-basic-offset: 4
// indent-tabs-mode:nil
// End:
\ No newline at end of file
// End:
......@@ -64,7 +64,7 @@
#include <queue>
class BorisPusher;
class SurfacePhysicsHandler;
class ParticleMaterInteractionHandler;
class ParallelTTracker: public Tracker {
......@@ -244,8 +244,8 @@ private:
CoordinateSystemTrafo referenceToLabCSTrafo_m;
std::set<SurfacePhysicsHandler*> activeSurfacePhysicsHandlers_m;
bool surfaceStatus_m;
std::set<ParticleMaterInteractionHandler*> activeParticleMaterInteractionHandlers_m;
bool particleMaterStatus_m;
unsigned long totalParticlesInSimulation_m;
......
......@@ -25,7 +25,7 @@
#include "Fields/Fieldmap.h"
#include "Structure/LossDataSink.h"
#include "Utilities/Options.h"
#include "Solvers/SurfacePhysicsHandler.hh"
#include "Solvers/ParticleMaterInteractionHandler.hh"
#include <memory>
extern Inform *gmsg;
......@@ -68,7 +68,7 @@ Collimator::Collimator():
pitch_m(0.0),
losses_m(0),
lossDs_m(nullptr),
sphys_m(NULL)
parmatint_m(NULL)
{}
......@@ -107,7 +107,7 @@ Collimator::Collimator(const Collimator &right):
pitch_m(right.pitch_m),
losses_m(0),
lossDs_m(nullptr),
sphys_m(NULL)
parmatint_m(NULL)
{
setGeom();
}
......@@ -148,7 +148,7 @@ Collimator::Collimator(const std::string &name):
pitch_m(0.0),
losses_m(0),
lossDs_m(nullptr),
sphys_m(NULL)
parmatint_m(NULL)
{}
......@@ -262,7 +262,7 @@ bool Collimator::checkCollimator(Vector_t r, Vector_t rmin, Vector_t rmax) {
// rectangle collimators in cyclotron cyclindral coordiantes
// without surfacephysics, the particle hitting collimator is deleted directly
// without particlematerinteraction, the particle hitting collimator is deleted directly
bool Collimator::checkCollimator(PartBunch &bunch, const int turnnumber, const double t, const double tstep) {
bool flagNeedUpdate = false;
......@@ -285,7 +285,7 @@ bool Collimator::checkCollimator(PartBunch &bunch, const int turnnumber, const d
if(bunch.PType[i] == ParticleType::REGULAR && bunch.R[i](2) < zend_m && bunch.R[i](2) > zstart_m ) {
pflag = checkPoint(bunch.R[i](0), bunch.R[i](1));
if(pflag != 0) {
if (!sphys_m)
if (!parmatint_m)
lossDs_m->addParticle(bunch.R[i], bunch.P[i], bunch.ID[i]);
bunch.Bin[i] = -1;
flagNeedUpdate = true;
......@@ -295,8 +295,8 @@ bool Collimator::checkCollimator(PartBunch &bunch, const int turnnumber, const d
}
}
reduce(&flagNeedUpdate, &flagNeedUpdate + 1, &flagNeedUpdate, OpBitwiseOrAssign());
if (flagNeedUpdate && sphys_m) {
sphys_m->apply(bunch, boundingSphere);
if (flagNeedUpdate && parmatint_m) {
parmatint_m->apply(bunch, boundingSphere);
}
return flagNeedUpdate;
}
......@@ -305,9 +305,9 @@ void Collimator::initialise(PartBunch *bunch, double &startField, double &endFie
RefPartBunch_m = bunch;
endField = startField + getElementLength();
sphys_m = getSurfacePhysics();
parmatint_m = getParticleMaterInteraction();
// if (!sphys_m) {
// if (!parmatint_m) {
if (filename_m == std::string(""))
lossDs_m = std::unique_ptr<LossDataSink>(new LossDataSink(getName(), !Options::asciidump));
else
......@@ -320,9 +320,9 @@ void Collimator::initialise(PartBunch *bunch, double &startField, double &endFie
void Collimator::initialise(PartBunch *bunch) {
RefPartBunch_m = bunch;
sphys_m = getSurfacePhysics();
parmatint_m = getParticleMaterInteraction();
// if (!sphys_m) {
// if (!parmatint_m) {
if (filename_m == std::string(""))
lossDs_m = std::unique_ptr<LossDataSink>(new LossDataSink(getName(), !Options::asciidump));
else
......
......@@ -199,7 +199,7 @@ private:
std::unique_ptr<LossDataSink> lossDs_m;
SurfacePhysicsHandler *sphys_m;
ParticleMaterInteractionHandler *parmatint_m;
};
......
......@@ -29,7 +29,7 @@
#include "Structure/BoundaryGeometry.h" // OPAL file
#include "Solvers/WakeFunction.hh"
#include "Solvers/SurfacePhysicsHandler.hh"
#include "Solvers/ParticleMaterInteractionHandler.hh"
using namespace std;
......@@ -47,7 +47,7 @@ ElementBase::ElementBase():
userAttribs(),
wake_m(NULL),
bgeometry_m(NULL),
sphys_m(NULL),
parmatint_m(NULL),
elType_m(isOther),
positionIsFixed(false),
elementPosition_m(0.0),
......@@ -67,15 +67,15 @@ ElementBase::ElementBase(const ElementBase &right):
userAttribs(right.userAttribs),
wake_m(right.wake_m),
bgeometry_m(right.bgeometry_m),
sphys_m(right.sphys_m),
parmatint_m(right.parmatint_m),
elType_m(right.elType_m),
positionIsFixed(right.positionIsFixed),
elementPosition_m(right.elementPosition_m),
elemedgeSet_m(right.elemedgeSet_m)
{
if(sphys_m) {
sphys_m->updateElement(this);
if(parmatint_m) {
parmatint_m->updateElement(this);
}
if(bgeometry_m)
bgeometry_m->updateElement(this);
......@@ -93,7 +93,7 @@ ElementBase::ElementBase(const std::string &name):
userAttribs(),
wake_m(NULL),
bgeometry_m(NULL),
sphys_m(NULL),
parmatint_m(NULL),
elType_m(isOther),
positionIsFixed(false),
elementPosition_m(0.0),
......@@ -334,8 +334,8 @@ void ElementBase::setBoundaryGeometry(BoundaryGeometry *geo) {
bgeometry_m = geo;//->clone(getName() + std::string("_wake")); }
}
void ElementBase::setSurfacePhysics(SurfacePhysicsHandler *sphys) {
sphys_m = sphys;
void ElementBase::setParticleMaterInteraction(ParticleMaterInteractionHandler *parmatint) {
parmatint_m = parmatint;
}
void ElementBase::setCurrentSCoordinate(double s) {
......
......@@ -53,7 +53,7 @@ enum ElemType {
class WakeFunction;
class SurfacePhysicsHandler;
class ParticleMaterInteractionHandler;
class BoundaryGeometry;
// Class ElementBase
......@@ -407,11 +407,11 @@ public:
virtual bool hasWake() const;
virtual void setSurfacePhysics(SurfacePhysicsHandler *spys);
virtual void setParticleMaterInteraction(ParticleMaterInteractionHandler *spys);
virtual SurfacePhysicsHandler *getSurfacePhysics() const;
virtual ParticleMaterInteractionHandler *getParticleMaterInteraction() const;
virtual bool hasSurfacePhysics() const;
virtual bool hasParticleMaterInteraction() const;
/// returns element type as enumeration needed in the envelope tracker
ElemType getElType() const;
......@@ -476,7 +476,7 @@ private:
BoundaryGeometry *bgeometry_m;
SurfacePhysicsHandler *sphys_m;
ParticleMaterInteractionHandler *parmatint_m;
ElemType elType_m;
......@@ -565,12 +565,12 @@ bool ElementBase::hasBoundaryGeometry() const
{ return bgeometry_m != NULL; }
inline
SurfacePhysicsHandler *ElementBase::getSurfacePhysics() const
{ return sphys_m; }
ParticleMaterInteractionHandler *ElementBase::getParticleMaterInteraction() const
{ return parmatint_m; }
inline
bool ElementBase::hasSurfacePhysics() const
{ return sphys_m != NULL; }
bool ElementBase::hasParticleMaterInteraction() const
{ return parmatint_m != NULL; }
inline
ElemType ElementBase::getElType() const
......
......@@ -15,7 +15,7 @@ set (HDRS
GreenWakeFunction.hh
CollimatorPhysics.hh
CSRWakeFunction.hh
SurfacePhysicsHandler.hh
ParticleMaterInteractionHandler.hh
WakeFunction.hh
CSRIGFWakeFunction.hh
)
......
......@@ -41,7 +41,7 @@ const int CollimatorPhysics::numpar = 12;
#endif
CollimatorPhysics::CollimatorPhysics(const std::string &name, ElementBase *element, std::string &material):
SurfacePhysicsHandler(name, element),
ParticleMaterInteractionHandler(name, element),
allParticlesIn_m(false),
T_m(0.0),
dT_m(0.0),
......
......@@ -9,7 +9,7 @@
// $Author: Bi, Yang, Stachel, Adelmann$
//-------------------------------------------------------------------------
#include <vector>
#include "Solvers/SurfacePhysicsHandler.hh"
#include "Solvers/ParticleMaterInteractionHandler.hh"
#include "Algorithms/Vektor.h"
#include "AbsBeamline/Component.h"
#include "AbsBeamline/Collimator.h"
......@@ -66,7 +66,7 @@ typedef struct {
#endif
class CollimatorPhysics: public SurfacePhysicsHandler {
class CollimatorPhysics: public ParticleMaterInteractionHandler {
public:
CollimatorPhysics(const std::string &name, ElementBase *element, std::string &mat);
~CollimatorPhysics();
......
#ifndef SURFACEPHYSICSHANDLER_HH
#define SURFACEPHYSICSHANDLER_HH
#ifndef PARTICLEMATERINTERACTIONHANDLER_HH
#define PARTICLEMATERINTERACTIONHANDLER_HH
#include <string>
#include "Algorithms/Vektor.h"
......@@ -8,10 +8,10 @@ class ElementBase;
class PartBunch;
class Inform;
class SurfacePhysicsHandler {
class ParticleMaterInteractionHandler {
public:
SurfacePhysicsHandler(std::string name, ElementBase *elref);
virtual ~SurfacePhysicsHandler() { };
ParticleMaterInteractionHandler(std::string name, ElementBase *elref);
virtual ~ParticleMaterInteractionHandler() { };
virtual void apply(PartBunch &bunch,
const std::pair<Vector_t, double> &boundingSphere,
size_t numParticlesInSimulation = 0) = 0;
......@@ -37,29 +37,29 @@ private:
};
inline
SurfacePhysicsHandler::SurfacePhysicsHandler(std::string name, ElementBase *elref):
ParticleMaterInteractionHandler::ParticleMaterInteractionHandler(std::string name, ElementBase *elref):
element_ref_m(elref),
allParticleInMat_m(false),
name_m(name)
{}
inline
void SurfacePhysicsHandler::updateElement(ElementBase *newref) {
void ParticleMaterInteractionHandler::updateElement(ElementBase *newref) {
element_ref_m = newref;
}
inline
ElementBase* SurfacePhysicsHandler::getElement() {
ElementBase* ParticleMaterInteractionHandler::getElement() {
return element_ref_m;
}
inline
void SurfacePhysicsHandler::setFlagAllParticlesIn(bool p) {
void ParticleMaterInteractionHandler::setFlagAllParticlesIn(bool p) {
allParticleInMat_m = p;
}
inline
bool SurfacePhysicsHandler::getFlagAllParticlesIn() const {
bool ParticleMaterInteractionHandler::getFlagAllParticlesIn() const {
return allParticleInMat_m;
}
#endif // SURFACEPHYSICS_HH
\ No newline at end of file
#endif // PARTICLEMATERINTERACTION_HH
\ No newline at end of file
......@@ -96,8 +96,8 @@ unsigned long OpalBeamline::getFieldAt(const Vector_t &position,
// if(section.hasWake()) {
// rtv |= BEAMLINE_WAKE;
// }
// if(section.hasSurfacePhysics()) {
// rtv |= BEAMLINE_SURFACEPHYSICS;
// if(section.hasParticleMaterInteraction()) {
// rtv |= BEAMLINE_PARTICLEMATERINTERACTION;
// }
return rtv;
......
......@@ -28,7 +28,7 @@
class Tracker;
class PartBunch;
class SurfacePhysicsHandler;
class ParticleMaterInteractionHandler;
class BoundaryGeometry;
class WakeFunction;
class Bend;
......@@ -38,7 +38,7 @@ class Bend;
#define BEAMLINE_GEOM 0x30000000 // has geometry
#define BEAMLINE_WAKE 0x20000000 // has wake
#define BEAMLINE_BEND 0x10000000 // bends
#define BEAMLINE_SURFACEPHYSICS 0x08000000 // has surface physics
#define BEAMLINE_PARTICLEMATERINTERACTION 0x08000000 // has particle mater interaction
class OpalBeamline {
......@@ -97,7 +97,7 @@ public:
WakeFunction *getWakeFunction(const unsigned int &);
std::shared_ptr<const ElementBase> getWakeFunctionOwner(const unsigned int &);
SurfacePhysicsHandler *getSurfacePhysicsHandler(const unsigned int &);
ParticleMaterInteractionHandler *getParticleMaterInteractionHandler(const unsigned int &);
BoundaryGeometry *getBoundaryGeometry(const unsigned int &);
......@@ -164,9 +164,9 @@ private:
// return NULL;
// }
// inline SurfacePhysicsHandler *OpalBeamline::getSurfacePhysicsHandler(const unsigned int &index) {
// inline ParticleMaterInteractionHandler *OpalBeamline::getParticleMaterInteractionHandler(const unsigned int &index) {
// if(index < sections_m.size()) {
// return sections_m[index].getSurfacePhysicsHandler();
// return sections_m[index].getParticleMaterInteractionHandler();
// }
// return 0;
// }
......@@ -315,4 +315,4 @@ inline
bool OpalBeamline::containsSource() {
return containsSource_m;
}
#endif // OPAL_BEAMLINE_H
\ No newline at end of file
#endif // OPAL_BEAMLINE_H
......@@ -19,7 +19,7 @@
#include "Elements/OpalCCollimator.h"
#include "Attributes/Attributes.h"
#include "BeamlineCore/CollimatorRep.h"
#include "Structure/SurfacePhysics.h"
#include "Structure/ParticleMaterInteraction.h"
#include "Physics/Physics.h"
using Physics::pi;
......@@ -30,7 +30,7 @@ using Physics::pi;
OpalCCollimator::OpalCCollimator():
OpalElement(SIZE, "CCOLLIMATOR",
"The \"CCOLLIMATOR\" element defines a rectangular-shape cyclotron collimator"),
sphys_m(NULL) {
parmatint_m(NULL) {
itsAttr[XSTART] = Attributes::makeReal
("XSTART", " Start of x coordinate [mm]");
itsAttr[XEND] = Attributes::makeReal
......@@ -65,14 +65,14 @@ OpalCCollimator::OpalCCollimator():
OpalCCollimator::OpalCCollimator(const std::string &name, OpalCCollimator *parent):
OpalElement(name, parent),
sphys_m(NULL) {
parmatint_m(NULL) {
setElement((new CollimatorRep(name))->makeAlignWrapper());
}
OpalCCollimator::~OpalCCollimator() {
if(sphys_m)
delete sphys_m;
if(parmatint_m)
delete parmatint_m;
}
......@@ -110,10 +110,10 @@ void OpalCCollimator::update() {
coll->setOutputFN(Attributes::getString(itsAttr[OUTFN]));
coll->setCColl();
if(itsAttr[SURFACEPHYSICS] && sphys_m == NULL) {
sphys_m = (SurfacePhysics::find(Attributes::getString(itsAttr[SURFACEPHYSICS])))->clone(getOpalName() + std::string("_sphys"));
sphys_m->initSurfacePhysicsHandler(*coll);
coll->setSurfacePhysics(sphys_m->handler_m);
if(itsAttr[PARTICLEMATERINTERACTION] && parmatint_m == NULL) {
parmatint_m = (ParticleMaterInteraction::find(Attributes::getString(itsAttr[PARTICLEMATERINTERACTION])))->clone(getOpalName() + std::string("_parmatint"));
parmatint_m->initParticleMaterInteractionHandler(*coll);
coll->setParticleMaterInteraction(parmatint_m->handler_m);
}
// Transmit "unknown" attributes.
......
......@@ -20,7 +20,7 @@
#include "Elements/OpalElement.h"
class SurfacePhysics;
class ParticleMaterInteraction;
// Class OpalCCollimator
// ------------------------------------------------------------------------
/// The CCOLLIMATOR element.
......@@ -64,7 +64,7 @@ private:
// Clone constructor.
OpalCCollimator(const std::string &name, OpalCCollimator *parent);
SurfacePhysics *sphys_m;
ParticleMaterInteraction *parmatint_m;
};
#endif // OPAL_OpalCCollimator_HH
......@@ -19,7 +19,7 @@
#include "Elements/OpalDegrader.h"
#include "Attributes/Attributes.h"
#include "BeamlineCore/DegraderRep.h"
#include "Structure/SurfacePhysics.h"
#include "Structure/ParticleMaterInteraction.h"
// Class OpalDegrader
......@@ -28,7 +28,7 @@
OpalDegrader::OpalDegrader():
OpalElement(SIZE, "DEGRADER",
"The \"DEGRADER\" element defines a degrader."),
sphys_m(NULL) {
parmatint_m(NULL) {
itsAttr[XSIZE] = Attributes::makeReal
("XSIZE", "not used",0.0);
itsAttr[YSIZE] = Attributes::makeReal
......@@ -46,14 +46,14 @@ OpalDegrader::OpalDegrader():
OpalDegrader::OpalDegrader(const std::string &name, OpalDegrader *parent):
OpalElement(name, parent),
sphys_m(NULL) {
parmatint_m(NULL) {
setElement((new DegraderRep(name))->makeAlignWrapper());
}
OpalDegrader::~OpalDegrader() {
if(sphys_m)