Geant4  10.02.p03
G4TouchableHistory Class Reference

#include <G4TouchableHistory.hh>

Inheritance diagram for G4TouchableHistory:
Collaboration diagram for G4TouchableHistory:

Public Member Functions

 G4TouchableHistory ()
 
 G4TouchableHistory (const G4NavigationHistory &history)
 
 ~G4TouchableHistory ()
 
G4VPhysicalVolumeGetVolume (G4int depth=0) const
 
G4VSolidGetSolid (G4int depth=0) const
 
const G4ThreeVectorGetTranslation (G4int depth=0) const
 
const G4RotationMatrixGetRotation (G4int depth=0) const
 
G4int GetReplicaNumber (G4int depth=0) const
 
G4int GetHistoryDepth () const
 
G4int MoveUpHistory (G4int num_levels=1)
 
void UpdateYourself (G4VPhysicalVolume *pPhysVol, const G4NavigationHistory *history=0)
 
const G4NavigationHistoryGetHistory () const
 
void * operator new (size_t)
 
void operator delete (void *aTH)
 
- Public Member Functions inherited from G4VTouchable
 G4VTouchable ()
 
virtual ~G4VTouchable ()
 
G4int GetCopyNumber (G4int depth=0) const
 

Private Member Functions

G4int CalculateHistoryIndex (G4int stackDepth) const
 

Private Attributes

G4RotationMatrix frot
 
G4ThreeVector ftlate
 
G4NavigationHistory fhistory
 

Detailed Description

Definition at line 53 of file G4TouchableHistory.hh.

Constructor & Destructor Documentation

◆ G4TouchableHistory() [1/2]

G4TouchableHistory::G4TouchableHistory ( )

Definition at line 38 of file G4TouchableHistory.cc.

40  ftlate(G4ThreeVector(0.,0.,0.)),
41  fhistory()
42 {
43  G4VPhysicalVolume* pPhysVol=0;
44  fhistory.SetFirstEntry(pPhysVol);
45 }
CLHEP::Hep3Vector G4ThreeVector
CLHEP::HepRotation G4RotationMatrix
G4NavigationHistory fhistory
G4RotationMatrix frot
void SetFirstEntry(G4VPhysicalVolume *pVol)
Here is the call graph for this function:

◆ G4TouchableHistory() [2/2]

G4TouchableHistory::G4TouchableHistory ( const G4NavigationHistory history)

Definition at line 47 of file G4TouchableHistory.cc.

48  : fhistory(history)
49 {
51  ftlate = tf.NetTranslation();
52  frot = tf.NetRotation();
53 }
G4NavigationHistory fhistory
G4RotationMatrix frot
G4AffineTransform Inverse() const
const G4AffineTransform & GetTopTransform() const
Here is the call graph for this function:

◆ ~G4TouchableHistory()

G4TouchableHistory::~G4TouchableHistory ( )

Definition at line 55 of file G4TouchableHistory.cc.

56 {
57 }

Member Function Documentation

◆ CalculateHistoryIndex()

G4int G4TouchableHistory::CalculateHistoryIndex ( G4int  stackDepth) const
inlineprivate
Here is the caller graph for this function:

◆ GetHistory()

const G4NavigationHistory* G4TouchableHistory::GetHistory ( ) const
inlinevirtual

Reimplemented from G4VTouchable.

Here is the caller graph for this function:

◆ GetHistoryDepth()

G4int G4TouchableHistory::GetHistoryDepth ( ) const
inlinevirtual

Reimplemented from G4VTouchable.

Here is the caller graph for this function:

◆ GetReplicaNumber()

G4int G4TouchableHistory::GetReplicaNumber ( G4int  depth = 0) const
inlinevirtual

Reimplemented from G4VTouchable.

Here is the caller graph for this function:

◆ GetRotation()

const G4RotationMatrix * G4TouchableHistory::GetRotation ( G4int  depth = 0) const
virtual

Implements G4VTouchable.

Definition at line 80 of file G4TouchableHistory.cc.

81 {
82  // The value returned will change at the next call
83  // Copy it if you want to use it!
84  //
85  static G4ThreadLocal G4RotationMatrix* rotM = 0;
86  if (!rotM ) { rotM = new G4RotationMatrix(); }
87 
88  if(depth==0)
89  {
90  return &frot;
91  }
92  else
93  {
95  return rotM;
96  }
97 }
const G4AffineTransform & GetTransform(G4int n) const
CLHEP::HepRotation G4RotationMatrix
G4NavigationHistory fhistory
#define G4ThreadLocal
Definition: tls.hh:89
G4RotationMatrix frot
G4RotationMatrix NetRotation() const
G4int CalculateHistoryIndex(G4int stackDepth) const
Here is the call graph for this function:

◆ GetSolid()

G4VSolid* G4TouchableHistory::GetSolid ( G4int  depth = 0) const
inlinevirtual

Reimplemented from G4VTouchable.

◆ GetTranslation()

const G4ThreeVector & G4TouchableHistory::GetTranslation ( G4int  depth = 0) const
virtual

Implements G4VTouchable.

Definition at line 60 of file G4TouchableHistory.cc.

61 {
62  // The value returned will change at the next call
63  // Copy it if you want to use it!
64  //
65  static G4ThreadLocal G4ThreeVector* ctrans = 0;
66  if ( !ctrans ) { ctrans = new G4ThreeVector; }
67  if(depth==0.0)
68  {
69  return ftlate;
70  }
71  else
72  {
73  *ctrans =
75  return *ctrans;
76  }
77 }
const G4AffineTransform & GetTransform(G4int n) const
CLHEP::Hep3Vector G4ThreeVector
G4NavigationHistory fhistory
#define G4ThreadLocal
Definition: tls.hh:89
G4ThreeVector NetTranslation() const
G4int CalculateHistoryIndex(G4int stackDepth) const
Here is the call graph for this function:

◆ GetVolume()

G4VPhysicalVolume* G4TouchableHistory::GetVolume ( G4int  depth = 0) const
inlinevirtual

Reimplemented from G4VTouchable.

Here is the caller graph for this function:

◆ MoveUpHistory()

G4int G4TouchableHistory::MoveUpHistory ( G4int  num_levels = 1)
virtual

Reimplemented from G4VTouchable.

Here is the caller graph for this function:

◆ operator delete()

void G4TouchableHistory::operator delete ( void *  aTH)
inline

◆ operator new()

void* G4TouchableHistory::operator new ( size_t  )
inline

◆ UpdateYourself()

void G4TouchableHistory::UpdateYourself ( G4VPhysicalVolume pPhysVol,
const G4NavigationHistory history = 0 
)
virtual

Reimplemented from G4VTouchable.

Here is the caller graph for this function:

Member Data Documentation

◆ fhistory

G4NavigationHistory G4TouchableHistory::fhistory
private

Definition at line 99 of file G4TouchableHistory.hh.

◆ frot

G4RotationMatrix G4TouchableHistory::frot
private

Definition at line 97 of file G4TouchableHistory.hh.

◆ ftlate

G4ThreeVector G4TouchableHistory::ftlate
private

Definition at line 98 of file G4TouchableHistory.hh.


The documentation for this class was generated from the following files: