Skip to content
Snippets Groups Projects
Commit c36ca947 authored by Semen Lebedev's avatar Semen Lebedev
Browse files

RICH: add copy number to nodes to provide a unique path for each node (#2425).

parent d5e086e7
No related branches found
No related tags found
1 merge request!726RICH: add copy number to nodes to provide a unique path for each node (#2425).
void addCopyNumbersToNodes(TGeoVolume* volume);
void Import_GDML_Export_ROOT() void Import_GDML_Export_ROOT()
{ {
...@@ -94,6 +97,7 @@ void Import_GDML_Export_ROOT() ...@@ -94,6 +97,7 @@ void Import_GDML_Export_ROOT()
gdmlTop->Print(); gdmlTop->Print();
gGeoManager->SetTopVolume(rootTop); gGeoManager->SetTopVolume(rootTop);
gGeoManager->SetAllIndex();
// Starting from the version v18a position is defined inside the GDML file // Starting from the version v18a position is defined inside the GDML file
// Define your position HERE // Define your position HERE
...@@ -103,6 +107,8 @@ void Import_GDML_Export_ROOT() ...@@ -103,6 +107,8 @@ void Import_GDML_Export_ROOT()
rootTop->AddNode(gdmlTop, 1, posrot); rootTop->AddNode(gdmlTop, 1, posrot);
addCopyNumbersToNodes(gGeoManager->GetTopNode()->GetVolume());
gGeoManager->CloseGeometry(); gGeoManager->CloseGeometry();
gGeoManager->CheckOverlaps(); gGeoManager->CheckOverlaps();
gGeoManager->PrintOverlaps(); gGeoManager->PrintOverlaps();
...@@ -136,3 +142,21 @@ void Import_GDML_Export_ROOT() ...@@ -136,3 +142,21 @@ void Import_GDML_Export_ROOT()
gROOT->LoadMacro(createmedialist); gROOT->LoadMacro(createmedialist);
gROOT->ProcessLine("create_medialist(\"\", false)"); gROOT->ProcessLine("create_medialist(\"\", false)");
} }
void addCopyNumbersToNodes(TGeoVolume* volume)
{
map<string, int> counterMap;
TGeoIterator geoIterator(volume);
geoIterator.SetType(1);
geoIterator.Reset();
TGeoNode* curNode;
while ((curNode = geoIterator())) {
string volumeName = string(curNode->GetVolume()->GetName());
counterMap[volumeName]++;
int curCounter = counterMap[volumeName];
curNode->SetNumber(curCounter);
curNode->SetName((volumeName + "_" + to_string(curCounter)).c_str());
addCopyNumbersToNodes(curNode->GetVolume());
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment