File indexing completed on 2025-08-05 08:15:17
0001 void init()
0002 {
0003 gSystem->Load("libGeom");
0004 TGeoManager::Import("ALICE_ITS_tgeo.root");
0005 }
0006
0007 typedef TGeoNode* pTGeoNode;
0008 pTGeoNode getNode(pTGeoNode root, TString name)
0009 {
0010 pTGeoNode node = NULL;
0011 dfs(root, name, node);
0012
0013 cout << name;
0014 if(node != NULL)
0015 {
0016 cout << " Found!" << endl;
0017 }
0018 else
0019 {
0020 cout << " NOT Found!" << endl;
0021 }
0022 return node;
0023 }
0024
0025
0026 void dfs(pTGeoNode node, TString name, pTGeoNode& res)
0027 {
0028 if(res != NULL) return;
0029 if(node->GetName() == name) res = node;
0030 if(node->GetNdaughters() == 0) return;
0031
0032 for(int i = 0; i < node->GetNdaughters(); ++i)
0033 {
0034 dfs(node->GetDaughter(i), name, res);
0035 }
0036 }
0037
0038 void export()
0039 {
0040 pTGeoNode root = gGeoManager->GetTopNode();
0041
0042 pTGeoNode node_inner = getNode(root, "ITSUWrapVol0_1");
0043 pTGeoNode nodeb1 = getNode(node_inner, "Barrel0_1");
0044 pTGeoNode nodeb2 = getNode(node_inner, "Barrel1_1");
0045 pTGeoNode nodeb3 = getNode(node_inner, "Barrel2_1");
0046
0047 TGeoVolume* vol_inner = node_inner->GetVolume();
0048 vol_inner->RemoveNode(nodeb1);
0049 vol_inner->RemoveNode(nodeb2);
0050 vol_inner->RemoveNode(nodeb3);
0051
0052 pTGeoNode node_mid = getNode(root, "ITSUWrapVol1_1");
0053 pTGeoNode nodeb4 = getNode(node_mid, "Barrel3_1");
0054 pTGeoNode nodeb5 = getNode(node_mid, "Barrel4_1");
0055
0056 TGeoVolume* vol_mid = node_mid->GetVolume();
0057 vol_mid->RemoveNode(nodeb4);
0058 vol_mid->RemoveNode(nodeb5);
0059
0060 pTGeoNode node_outer = getNode(root, "ITSUWrapVol2_1");
0061 pTGeoNode nodeb6 = getNode(node_outer, "Barrel5_1");
0062 pTGeoNode nodeb7 = getNode(node_outer, "Barrel6_1");
0063
0064 TGeoVolume* vol_outer = node_outer->GetVolume();
0065 vol_outer->RemoveNode(nodeb6);
0066 vol_outer->RemoveNode(nodeb7);
0067
0068 pTGeoNode top = getNode(root, "ITSV_2");
0069 gGeoManager->SetTopVolume(top->GetVolume());
0070 gROOT->ProcessLine("TGDMLWrite::StartGDMLWriting(gGeoManager,\"all.gdml\",\"\")");
0071 }