From 503bfbc8497c5aae7895a67dbaf7b287b13af616 Mon Sep 17 00:00:00 2001 From: mtadel Date: Fri, 11 Apr 2008 09:09:27 +0000 Subject: [PATCH] alice-data/gentle_geo_trd.root alice-macros/trd_clusters.C alice-macros/geom_gentle_trd.C alice-macros/visscan_init.C test-macros/geom_extr_trd.C Add simplified geometry for TRD and methods to extract it from the full geometry. Optionally include it in also in visual-scanning application. alice-macros/tpc_clusters.C - Remove debug printout. --- EVE/alice-data/gentle_geo_trd.root | Bin 0 -> 3829 bytes EVE/alice-macros/geom_gentle_trd.C | 35 +++++++++++++++++++++++++++ EVE/alice-macros/tpc_clusters.C | 2 -- EVE/alice-macros/trd_clusters.C | 29 +++++++++++----------- EVE/alice-macros/visscan_init.C | 19 +++++++++++---- EVE/test-macros/geom_extr_trd.C | 37 +++++++++++++++++++++++++++++ 6 files changed, 102 insertions(+), 20 deletions(-) create mode 100644 EVE/alice-data/gentle_geo_trd.root create mode 100644 EVE/alice-macros/geom_gentle_trd.C create mode 100644 EVE/test-macros/geom_extr_trd.C diff --git a/EVE/alice-data/gentle_geo_trd.root b/EVE/alice-data/gentle_geo_trd.root new file mode 100644 index 0000000000000000000000000000000000000000..ec2a0a9e09ad174a9b4b78710430748bfeab8e5b GIT binary patch literal 3829 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 zO4l10u%ZmAddGlobalElement(gsre); + f.Close(); + + // Fix visibility, color and transparency + gsre->SetRnrSelf(kFALSE); + for (TEveElement::List_i i = gsre->BeginChildren(); i != gsre->EndChildren(); ++i) + { + TEveGeoShape* lvl1 = (TEveGeoShape*) *i; + lvl1->SetRnrSelf(kFALSE); + for (TEveElement::List_i j = lvl1->BeginChildren(); j != lvl1->EndChildren(); ++j) + { + TEveGeoShape* lvl2 = (TEveGeoShape*) *j; + lvl2->SetRnrSelf(kTRUE); + lvl2->SetMainColor((Color_t)3); + lvl2->SetMainTransparency(80); + } + + } + + return gsre; +} diff --git a/EVE/alice-macros/tpc_clusters.C b/EVE/alice-macros/tpc_clusters.C index f06b741d248..5d1ac09b539 100644 --- a/EVE/alice-macros/tpc_clusters.C +++ b/EVE/alice-macros/tpc_clusters.C @@ -52,8 +52,6 @@ TEvePointSet* tpc_clusters(TEveElement* cont=0, Float_t maxR=270) TClonesArray *cl = clrow->GetArray(); Int_t ncl = cl->GetEntriesFast(); - printf("%d: %d\n", i, ncl); - while (ncl--) { AliCluster *c = (AliCluster*) cl->UncheckedAt(ncl); diff --git a/EVE/alice-macros/trd_clusters.C b/EVE/alice-macros/trd_clusters.C index 9ab1cc450aa..902c46a4a69 100644 --- a/EVE/alice-macros/trd_clusters.C +++ b/EVE/alice-macros/trd_clusters.C @@ -17,22 +17,23 @@ class TEveElement; #include "AliRunLoader.h" #include "AliCluster.h" -#include "AliTRDcluster.h" +#include "TRD/AliTRDcluster.h" #endif -TEvePointSet* trd_clusters(TEveElement *cont = 0){ - const Int_t kMaxClusters = 18 * 6 * 24 *10; - AliEveEventManager::AssertGeometry(); +TEvePointSet* trd_clusters(TEveElement *cont = 0) +{ + const Int_t kMaxClusters = 18 * 6 * 24 *10; + AliEveEventManager::AssertGeometry(); - TEvePointSet *clusters = new TEvePointSet(kMaxClusters); - clusters->SetOwnIds(kTRUE); + TEvePointSet *clusters = new TEvePointSet(kMaxClusters); + clusters->SetOwnIds(kTRUE); - AliRunLoader *rl = AliEveEventManager::AssertRunLoader(); - rl->LoadRecPoints("TRD"); + AliRunLoader *rl = AliEveEventManager::AssertRunLoader(); + rl->LoadRecPoints("TRD"); - TObjArray *TRDcluster = 0x0; - TTree *recPoints = rl->GetTreeR("TRD", kFALSE); - recPoints->SetBranchAddress("TRDcluster", &TRDcluster); + TObjArray *TRDcluster = 0x0; + TTree *recPoints = rl->GetTreeR("TRD", kFALSE); + recPoints->SetBranchAddress("TRDcluster", &TRDcluster); Int_t nentr=(Int_t)recPoints->GetEntries(); for (Int_t i=0; iUncheckedAt(ncl); Float_t g[3]; //global coordinates c->GetGlobalXYZ(g); - clusters->SetNextPoint(g[0], g[1], g[2]); - AliCluster *atp = new AliCluster(*c); - clusters->SetPointId(atp); + clusters->SetNextPoint(g[0], g[1], g[2]); + AliCluster *atp = new AliCluster(*c); + clusters->SetPointId(atp); } TRDcluster->Clear(); } diff --git a/EVE/alice-macros/visscan_init.C b/EVE/alice-macros/visscan_init.C index 7b2685e5f2e..758ba1a70b3 100644 --- a/EVE/alice-macros/visscan_init.C +++ b/EVE/alice-macros/visscan_init.C @@ -14,7 +14,10 @@ class TEveUtil; R__EXTERN TEveProjectionManager *gRPhiMgr; R__EXTERN TEveProjectionManager *gRhoZMgr; -TEveGeoShape *gGeomGentle = 0; +TEveGeoShape *gGeomGentle = 0; +TEveGeoShape *gGeomGentleTRD = 0; + +Bool_t gShowTRD = kFALSE; void visscan_init() { @@ -22,11 +25,13 @@ void visscan_init() alieve_init(".", -1); TEveUtil::LoadMacro("geom_gentle.C"); + if (gShowTRD) TEveUtil::LoadMacro("geom_gentle_trd.C"); TEveUtil::LoadMacro("primary_vertex.C"); TEveUtil::LoadMacro("esd_tracks.C"); TEveUtil::LoadMacro("its_clusters.C+"); TEveUtil::LoadMacro("tpc_clusters.C+"); + TEveUtil::LoadMacro("trd_clusters.C+"); TEveLine::SetDefaultSmooth(1); @@ -49,7 +54,8 @@ void visscan_init() // geometry - gGeomGentle = geom_gentle(); + gGeomGentle = geom_gentle(); + if (gShowTRD) gGeomGentleTRD = geom_gentle_trd(); gROOT->ProcessLine(".L SplitGLView.C+g"); // !!!! debug-mode @@ -63,7 +69,6 @@ void visscan_init() a->SetFontFile("comicbd"); a->SetFontSize(10); gEve->GetScenes()->FindChild("R-Phi Projection")->AddElement(a); - gRPhiMgr->ImportElements(gGeomGentle); } if (gRhoZMgr) { TEveProjectionAxes* a = new TEveProjectionAxes(gRhoZMgr); @@ -72,7 +77,6 @@ void visscan_init() a->SetFontFile("comicbd"); a->SetFontSize(10); gEve->GetScenes()->FindChild("Rho-Z Projection")->AddElement(a); - gRhoZMgr->ImportElements(gGeomGentle); } // event @@ -92,6 +96,11 @@ void on_new_event() TEvePointSet* tpcc = tpc_clusters(); tpcc->SetMarkerColor(4); + + TEvePointSet* trdc = trd_clusters(); + trdc->SetMarkerColor(7); + trdc->SetMarkerStyle(4); + trdc->SetMarkerSize(0.5); } catch(TEveException& exc) { printf("Exception loading ITS/TPC clusters: %s\n", exc.Data()); @@ -129,12 +138,14 @@ void on_new_event() gRPhiMgr->DestroyElements(); gRPhiMgr->SetCenter(x[0], x[1], x[2]); gRPhiMgr->ImportElements(gGeomGentle); + if (gShowTRD) gRPhiMgr->ImportElements(gGeomGentleTRD); gRPhiMgr->ImportElements(top); } if (gRhoZMgr && top) { gRhoZMgr->DestroyElements(); gRhoZMgr->SetCenter(x[0], x[1], x[2]); gRhoZMgr->ImportElements(gGeomGentle); + if (gShowTRD) gRhoZMgr->ImportElements(gGeomGentleTRD); gRhoZMgr->ImportElements(top); } diff --git a/EVE/test-macros/geom_extr_trd.C b/EVE/test-macros/geom_extr_trd.C new file mode 100644 index 00000000000..5f6cdaddcbc --- /dev/null +++ b/EVE/test-macros/geom_extr_trd.C @@ -0,0 +1,37 @@ +// $Id: geom_trd_tof.C 23442 2008-01-21 16:02:24Z mtadel $ +// Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 + +/************************************************************************** + * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. * + * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for * + * full copyright notice. * + **************************************************************************/ + +void geom_extr_trd() +{ + // Extract reasonably top-level mother-volumes of TRD and + // store them as geo-shape-extract. + + gGeoManager = gEve->GetGeometry("$REVESYS/alice-data/alice_fullgeo.root"); + + TGeoNode* tnode = gGeoManager->GetTopVolume()->FindNode("B077_1"); + + TEveGeoTopNode* eve_tnode = new TEveGeoTopNode(gGeoManager, tnode); + + + for (Int_t i = 0; i < 18; ++i) + { + TGeoNode * node1 = tnode->GetVolume()->FindNode(Form("BSEGMO%d_1", i)); + printf("%2d - node1 = %p\n", i, node1); + TEveGeoNode * eve_node1 = new TEveGeoNode(node1); + eve_tnode->AddElement(eve_node1); + + TGeoNode * node2 = node1->GetVolume()->FindNode(Form("BTRD%d_1", i)); + printf("%2d - node2 = %p\n", i, node2); + TEveGeoNode * eve_node2 = new TEveGeoNode(node2); + eve_node1->AddElement(eve_node2); + } + + eve_tnode->Save("gentle_geo_trd.root", "Gentle TRD"); + +} -- 2.31.1