Re: TGeoPhysicalNode::Align()

From: Andrei Gheata <Andrei.Gheata_at_cern.ch>
Date: Fri, 10 Feb 2006 09:57:13 +0100


Hi Michal,

Sorry for not answering earlier - I was not looking to roottalk. The error is not yours :-\ (except calling CloseGeometry twice, but this is harmless...) - the problem was in a recent modification of mine trying to minimize duplication of geometry objects during Align(). For non-replicated volumes the matrix was directly changed (without cloning the volume/node) and this was obviously wrong if the parent of the volume was replicated (changing at the same time the positions in all replicated branches). So much for optimizations...

So thanks a lot for reporting the problem !!! I attached a fix that Rene will put in CVS. I CC-ed all people I know that might be interested by the change.

Cheers,
Andrei

MichaƂ DwuĆŒnik wrote:

>Hi Rooters, Andrei,
>sorry to bother you now...
>
>I'm using CVS head, and noticed a bit strange behaviour of the method in topic.
>The following macro shows a few rectangles around the imaginary beampipe,
>which I want to align. I create a new TGeoCombiTrans as Align() argument,
>printing them shows the desired values, and in the same time _all_ the physical
>nodes get aligned by the last of the TGeoCombiTrans...
>
>Could you please have a look and point the errors , if they're mine?
>Regards
>Michal
>
>
>

Index: geom/src/TGeoPhysicalNode.cxx



RCS file: /user/cvs/root/geom/src/TGeoPhysicalNode.cxx,v retrieving revision 1.10
diff -r1.10 TGeoPhysicalNode.cxx
106,110c106,110
<          if (!node->GetVolume()->IsReplicated()) {
<             vm = node->GetVolume();
<             nnode = node;
<             continue;
<          }   
---

> // if (!node->GetVolume()->IsReplicated()) {
> // vm = node->GetVolume();
> // nnode = node;
> // continue;
> // }
Received on Fri Feb 10 2006 - 09:56:01 MET

This archive was generated by hypermail 2.2.0 : Mon Jan 01 2007 - 16:31:57 MET