Skip to content
Snippets Groups Projects
Commit 651217ba authored by Frank Winklmeier's avatar Frank Winklmeier
Browse files

Merge branch 'leak.MuonGeoModel-20201218' into 'master'

MuonGeoModel: Fix memory leaks.

See merge request atlas/athena!39299
parents 39ee4258 9e9f084f
No related branches found
No related tags found
No related merge requests found
...@@ -321,6 +321,7 @@ GeoFullPhysVol* MultiLayer::build() ...@@ -321,6 +321,7 @@ GeoFullPhysVol* MultiLayer::build()
double tL = longWidth/2.0 - (tubePitch/2.)*TrdDwoverL; double tL = longWidth/2.0 - (tubePitch/2.)*TrdDwoverL;
stube = new GeoTube(0.0, tubePitch/2., tL); stube = new GeoTube(0.0, tubePitch/2., tL);
stube = & ( (*stube) << GeoTrf::RotateX3D(90.*Gaudi::Units::deg) ); stube = & ( (*stube) << GeoTrf::RotateX3D(90.*Gaudi::Units::deg) );
stube->ref();
const GeoShape* stubewithcut = nullptr; const GeoShape* stubewithcut = nullptr;
if (cutoutNsteps > 1 && !m_nonCutoutXSteps.size()) { // adaption of tube cuts only needed for cutouts along amdb-y if (cutoutNsteps > 1 && !m_nonCutoutXSteps.size()) { // adaption of tube cuts only needed for cutouts along amdb-y
double toptubelength = cutoutTubeLength[cutoutNsteps-1]; double toptubelength = cutoutTubeLength[cutoutNsteps-1];
...@@ -331,8 +332,6 @@ GeoFullPhysVol* MultiLayer::build() ...@@ -331,8 +332,6 @@ GeoFullPhysVol* MultiLayer::build()
GeoShape* sbox = new GeoTrd(mdtthickness, mdtthickness, longWidth, GeoShape* sbox = new GeoTrd(mdtthickness, mdtthickness, longWidth,
longWidth, tubePitch/2.); longWidth, tubePitch/2.);
GeoShape* sboxf = new GeoTrd(mdtthickness, mdtthickness, longWidth,
longWidth, tubePitch/4.+1*Gaudi::Units::mm);
slay = &(slay->subtract( (*sbox)<<GeoTrf::Translate3D(0.,0.,length/2.))); slay = &(slay->subtract( (*sbox)<<GeoTrf::Translate3D(0.,0.,length/2.)));
for (int i = 0; i < nrOfLayers; i++) { for (int i = 0; i < nrOfLayers; i++) {
...@@ -371,6 +370,8 @@ GeoFullPhysVol* MultiLayer::build() ...@@ -371,6 +370,8 @@ GeoFullPhysVol* MultiLayer::build()
} }
} // Loop over layers } // Loop over layers
stube->unref();
const GeoMaterial* mlay = getMaterialManager()->getMaterial("std::Air"); const GeoMaterial* mlay = getMaterialManager()->getMaterial("std::Air");
GeoLogVol* llay = new GeoLogVol(logVolName, slay, mlay); GeoLogVol* llay = new GeoLogVol(logVolName, slay, mlay);
GeoFullPhysVol* play = new GeoFullPhysVol(llay); GeoFullPhysVol* play = new GeoFullPhysVol(llay);
...@@ -389,6 +390,8 @@ GeoFullPhysVol* MultiLayer::build() ...@@ -389,6 +390,8 @@ GeoFullPhysVol* MultiLayer::build()
sfoam = new GeoTrd(foamthicknesslow/2.-eps, foamthicknesslow/2.-eps, sfoam = new GeoTrd(foamthicknesslow/2.-eps, foamthicknesslow/2.-eps,
width/2.-eps, longWidth/2.-eps, length/2.); width/2.-eps, longWidth/2.-eps, length/2.);
} }
GeoShape* sboxf = new GeoTrd(mdtthickness, mdtthickness, longWidth,
longWidth, tubePitch/4.+1*Gaudi::Units::mm);
sfoam = &(sfoam->subtract( (*sboxf)<<GeoTrf::Translate3D(0.,0.,length/2.-tubePitch/4.))); sfoam = &(sfoam->subtract( (*sboxf)<<GeoTrf::Translate3D(0.,0.,length/2.-tubePitch/4.)));
mfoam = getMaterialManager()->getMaterial("muo::Foam"); mfoam = getMaterialManager()->getMaterial("muo::Foam");
lfoam = new GeoLogVol("MultiLayerFoam", sfoam, mfoam); lfoam = new GeoLogVol("MultiLayerFoam", sfoam, mfoam);
...@@ -401,6 +404,8 @@ GeoFullPhysVol* MultiLayer::build() ...@@ -401,6 +404,8 @@ GeoFullPhysVol* MultiLayer::build()
sfoam = new GeoTrd(foamthicknessup/2.-eps, foamthicknessup/2.-eps, sfoam = new GeoTrd(foamthicknessup/2.-eps, foamthicknessup/2.-eps,
width/2.-eps, longWidth/2.-eps, length/2.); width/2.-eps, longWidth/2.-eps, length/2.);
} }
GeoShape* sboxf = new GeoTrd(mdtthickness, mdtthickness, longWidth,
longWidth, tubePitch/4.+1*Gaudi::Units::mm);
sfoam = &(sfoam->subtract( (*sboxf)<<GeoTrf::Translate3D(0.,0.,length/2.-tubePitch/4.))); sfoam = &(sfoam->subtract( (*sboxf)<<GeoTrf::Translate3D(0.,0.,length/2.-tubePitch/4.)));
mfoam = getMaterialManager()->getMaterial("muo::Foam"); mfoam = getMaterialManager()->getMaterial("muo::Foam");
lfoam = new GeoLogVol("MultiLayerFoam", sfoam, mfoam); lfoam = new GeoLogVol("MultiLayerFoam", sfoam, mfoam);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment