Message: question about G4AssemblyVolume data access Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

Question question about G4AssemblyVolume data access 

Forum: Geometry
Date: 08 Jul, 2013
From: Jeremy McCormick <Jeremy McCormick>

Hi,

I am going to be doing some "advanced" operations on G4AssemblyVolume objects and before I started I wanted to ask about 
accessing the volumes that compose them.

I see there are the following methods along these lines that might be useful:

inline std::vector::iterator GetVolumesIterator();

inline unsigned int TotalImprintedVolumes() const;

unsigned int GetImprintsCount() const;

My question is about the best way to iterate over the volumes.  There is a method for getting an iterator that points to the first volume, 
but then there is no method for getting an iterator that points to the end of that list.  

So should I make a loop based upon the number of volumes and number of imprints and then increment the iterator manually? 

Am I correct that the total number of volumes would be numberOfImprints * imprintedVolumes?

Would it be possible to add some more accessors to this class?  

For instance, some additional methods like this would be useful:

// Get a volume by index.
G4VPhysicalVolume* GetImprintedVolume(int idx);

// Get volumes * imprints count.
int GetTotalNumberOfVolumes();

I think it would make iterating over the contents much easier, as now it seems a little bit too complicated.

--Jeremy

 Add Message Add Message
to: "question about G4AssemblyVolume data access"

 Subscribe Subscribe

This site runs SLAC HyperNews version 1.11-slac-98, derived from the original HyperNews


[ Geant 4 Home | Geant 4 HyperNews | Search | Request New Forum | Feedback ]