Message: Re: Doubt reg C++ statement Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

None Re: Doubt reg C++ statement 

Forum: Run Management
Re: Question Doubt reg C++ statement (Shivang Tripathi)
Date: 20 Feb, 2015
From: Marc Verderi <Marc Verderi>

This is a quite compact line, the idea of it is to get the pointer of 
the current "Run" object (Run is a class).

The issue is that class "Run" inherits from the "G4Run" class. The call 
G4RunManager::GetRunManager()->GetNonConstCurrentRun() returns a "G4Run" 
pointer, but in the UserAction code, you need the "Run" pointer, which 
extends and has more methods than G4Run. The static_cast<Run*>(...) does 
the conversion of a G4Run* to a Run* one.

Maybe your question is also about G4RunManager::GetRunManager() ? 
G4RunManager is a singleton : only one instance of it is created in 
memory. To get the pointer of this unique object, the G4RunManager 
provides the static method GetRunManager(). So 
G4RunManager::GetRunManager() returns a G4RunManager* .

So, what does this line is:
     - getting the unique run manager pointer : 
G4RunManager::GetRunManager()
     - on this pointer call the GetNonConstCurrentRun() method, which 
returns a G4Run* , let's call it currentG4run
     - convert the G4Run* to a Run* with static_cast<Run*>( currentG4run )

Cheers,
Marc


On 02/20/2015 10:50 AM, Shivang Tripathi wrote:
> *** Discussion title: Run Management
>
> Dear All,
>
> I am not able to understand the concept of following line used in UserAction classes.
> Run* run = static_cast<Run*>(
>          G4RunManager::GetRunManager()->GetNonConstCurrentRun());
>
> Please explain the functionality of above kind of statement.
>
> Regards Shivang
>
> -------------------------------------------------------------
> Visit this GEANT4 at hypernews.slac.stanford.edu message (to reply or unsubscribe) at:
> http://hypernews.slac.stanford.edu/HyperNews/geant4/get/runmanage/389.html

 Add Message Add Message
to: "Re: Doubt reg C++ statement"

 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 ]