]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - AliGeant4/AliLVStructure.cxx
Minor changes
[u/mrichter/AliRoot.git] / AliGeant4 / AliLVStructure.cxx
index 66de67ea0a876e250b76b1fb433033107ad70cfb..d9ac1ba81d6e44de39ff4bf2e54d85882033cb5d 100644 (file)
@@ -12,7 +12,7 @@
 #include <G4Colour.hh>
 #include <G4VisAttributes.hh>
 #endif //ALICE_VISUALIZE
-#include <globals.hh>
+#include <G4LogicalVolume.hh>
 
 AliLVStructure::AliLVStructure(G4String path)
   : fPathName(path),
@@ -31,25 +31,8 @@ AliLVStructure::AliLVStructure(G4String path)
 
 AliLVStructure::AliLVStructure(const AliLVStructure& right)
 {
-  // copy vector of structures
-  fStructures.clearAndDestroy();
-  G4int i;
-  for (i=0; i<right.fStructures.entries(); i++) {
-    // new full structure tree has to be created
-    AliLVStructure* rhsStructure = right.fStructures[i];
-    fStructures.insert(new AliLVStructure(*rhsStructure)); 
-  }  
-  
-  // copy vector of logical volumes
-  fLogicalVolumes.clear();
-  for (i=0; i<right.fLogicalVolumes.entries(); i++) {
-    G4LogicalVolume* rhsLV = right.fLogicalVolumes[i];
-    fLogicalVolumes.insert(rhsLV); 
-  }  
-  
-  fPathName = right.fPathName;
-  fDirName = right.fPathName;
-  fVerboseLevel = right.fVerboseLevel;
+  // copy stuff
+  *this = right;
 }
 
 AliLVStructure::AliLVStructure() {
@@ -257,8 +240,14 @@ void AliLVStructure::SetTreeVisibility(G4bool visibility)
   for (G4int i=0; i<fLogicalVolumes.entries(); i++) {
     G4LogicalVolume* lv = fLogicalVolumes(i);
 
-    const G4VisAttributes* kpVisAttributes = lv->GetVisAttributes ();
-    G4VisAttributes* newVisAttributes = new G4VisAttributes(kpVisAttributes); 
+    const G4VisAttributes* kpVisAttributes = lv->GetVisAttributes();
+    G4VisAttributes* newVisAttributes; 
+    if (kpVisAttributes) {
+      G4Colour colour   = kpVisAttributes->GetColour();
+      newVisAttributes = new G4VisAttributes(colour); 
+    }
+    else
+      newVisAttributes = new G4VisAttributes();
     delete kpVisAttributes;
 
     newVisAttributes->SetVisibility(visibility); 
@@ -280,7 +269,13 @@ void AliLVStructure::SetTreeColour(G4String colName)
     G4LogicalVolume* lv = fLogicalVolumes(i);
 
     const G4VisAttributes* kpVisAttributes = lv->GetVisAttributes ();
-    G4VisAttributes* newVisAttributes = new G4VisAttributes(kpVisAttributes); 
+    G4VisAttributes* newVisAttributes; 
+    if (kpVisAttributes) {
+      G4bool oldVisibility = kpVisAttributes->IsVisible();
+      newVisAttributes = new G4VisAttributes(oldVisibility); 
+    }
+    else
+      newVisAttributes = new G4VisAttributes();
     delete kpVisAttributes;
 
     AliColourStore* pColours = AliColourStore::Instance();