#include <G4Colour.hh>
#include <G4VisAttributes.hh>
#endif //ALICE_VISUALIZE
-#include <globals.hh>
+#include <G4LogicalVolume.hh>
AliLVStructure::AliLVStructure(G4String path)
: fPathName(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() {
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);
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();