44 G4ThreadLocal unsigned int G4AssemblyVolume::fsInstanceCounter = 0;
 
   73   unsigned int howmany = fTriplets.size();
 
   76     for( 
unsigned int i = 0; i < howmany; i++ )
 
   79       if( pRotToClean != 0 )
 
   87   howmany = fPVStore.size();
 
   90     for( 
unsigned int j = 0; j < howmany; j++ )
 
  115   if( pRotation != 0 )  { *toStore = *pRotation; }
 
  118   fTriplets.push_back( toAdd );
 
  136   G4bool isReflection = 
false;
 
  137   if (scale(0,0)*scale(1,1)*scale(2,2) < 0.)  { isReflection = 
true; }
 
  140   fTriplets.push_back( toAdd );
 
  152   if( pRotation != 0 )  { *toStore = *pRotation; }
 
  155   fTriplets.push_back( toAdd );
 
  175   G4bool isReflection = 
false;
 
  176   if (scale(0,0)*scale(1,1)*scale(2,2) < 0.)  { isReflection = 
true; }
 
  179   fTriplets.push_back( toAdd );
 
  226   unsigned int  numberOfDaughters;
 
  228   if( copyNumBase == 0 )
 
  234     numberOfDaughters = copyNumBase;
 
  243   std::vector<G4AssemblyTriplet> triplets = pAssembly->fTriplets;
 
  245   for( 
unsigned int   i = 0; i < triplets.size(); i++ )
 
  248                       triplets[i].GetTranslation() );
 
  249     if ( triplets[i].IsReflection() )  { Ta = Ta * 
G4ReflectZ3D(); }
 
  253     if ( triplets[i].GetVolume() )
 
  265       std::stringstream pvName;
 
  271              << triplets[i].GetVolume()->GetName().c_str()
 
  282                                                   pvName.str().c_str(),
 
  283                                                   triplets[i].GetVolume(),
 
  286                                                   numberOfDaughters + i,
 
  291       fPVStore.push_back( pvPlaced.first );
 
  292       if ( pvPlaced.second )  { fPVStore.push_back( pvPlaced.second ); }
 
  294     else if ( triplets[i].GetAssembly() )
 
  299                    Tfinal, i*100+copyNumBase, surfCheck ); 
 
  305                   "Triplet has no volume and no assembly");
 
  324   if( pRotationInMother == 0 )
 
  333                             translationInMother );
 
  334   MakeImprint(
this, pMotherLV, transform, copyNumBase, surfCheck);
 
  348   MakeImprint(
this, pMotherLV, transformation, copyNumBase, surfCheck);
 
  353   return G4AssemblyVolume::fsInstanceCounter;
 
  358   G4AssemblyVolume::fsInstanceCounter = 
value;
 
  363   G4AssemblyVolume::fsInstanceCounter++;
 
  368   G4AssemblyVolume::fsInstanceCounter--;
 
unsigned int GetInstanceCount() const 
 
void MakeImprint(G4LogicalVolume *pMotherLV, G4ThreeVector &translationInMother, G4RotationMatrix *pRotationInMother, G4int copyNumBase=0, G4bool surfCheck=false)
 
void SetImprintsCount(unsigned int value)
 
void SetAssemblyID(unsigned int value)
 
CLHEP::HepRotation G4RotationMatrix
 
void SetInstanceCount(unsigned int value)
 
unsigned int GetAssemblyID() const 
 
unsigned int GetImprintsCount() const 
 
static G4ReflectionFactory * Instance()
 
static DLL_API const HepRotation IDENTITY
 
G4PhysicalVolumesPair Place(const G4Transform3D &transform3D, const G4String &name, G4LogicalVolume *LV, G4LogicalVolume *motherLV, G4bool isMany, G4int copyNo, G4bool surfCheck=false)
 
const XML_Char int const XML_Char * value
 
G4int GetNoDaughters() const 
 
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
 
void AddPlacedVolume(G4LogicalVolume *pPlacedVolume, G4ThreeVector &translation, G4RotationMatrix *rotation)
 
void InstanceCountMinus()
 
std::pair< G4VPhysicalVolume *, G4VPhysicalVolume * > G4PhysicalVolumesPair
 
void AddPlacedAssembly(G4AssemblyVolume *pAssembly, G4Transform3D &transformation)