2 // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
4 /**************************************************************************
5 * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
6 * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for *
7 * full copyright notice. *
8 **************************************************************************/
10 /// \ingroup evemacros
11 /// \file MUON_displayData.C
13 /// \author B. Vulpescu, LPC
16 class AliEveEventManager;
18 AliEveMUONData *g_muon_data = 0;
20 Int_t g_currentEvent = -1;
21 Bool_t g_fromRaw = kFALSE;
23 void MUON_displayData(Bool_t fromRaw = kFALSE, Bool_t showTracks = kTRUE, Bool_t clustersFromESD = kTRUE)
26 // display from real data, eventually with recreated digits
30 if (!AliMpSegmentation::Instance()) AliMpCDB::LoadMpSegmentation();
31 if (!AliMpDDLStore::Instance()) AliMpCDB::LoadDDLStore();
33 // set the magnetic field for track extrapolations
34 AliEveEventManager::AssertMagField();
35 AliMUONTrackExtrap::SetField();
41 if (AliEveEventManager::GetMaster() == 0) {
42 printf("No alieve event: use alieve_init(...) \n");
46 if (g_currentEvent == AliEveEventManager::GetMaster()->GetEventId()) {
47 if (g_fromRaw == fromRaw) {
48 printf("Same event... \n");
52 printf("Same event with digits.\n");
53 AliEveEventManager::GetMaster()->GotoEvent(g_currentEvent);
55 printf("Same event with raw.\n");
56 AliEveEventManager::GetMaster()->GotoEvent(g_currentEvent);
63 TString dataPath = TString(AliEveEventManager::GetMaster()->GetTitle());
64 dataPath.Append("/raw.root");
66 AliRunLoader* rl = AliEveEventManager::AssertRunLoader();
67 g_muon_data = new AliEveMUONData;
70 rl->LoadDigits("MUON");
71 dt = rl->GetTreeD("MUON", false);
73 cout << "No digits produced!" << endl;
75 cout << "With aliroot digits!" << endl;
76 g_muon_data->LoadDigits(dt);
79 if (gSystem->AccessPathName(dataPath.Data(),kFileExists)) {
80 cout << "No raw data produced!" << endl;
82 cout << "With raw digits!" << endl;
83 g_muon_data->LoadRaw(dataPath.Data());
87 TString esdDataPath = TString(AliEveEventManager::GetMaster()->GetTitle());
88 esdDataPath.Append("/AliESDs.root");
89 if (clustersFromESD) {
90 g_muon_data->LoadRecPointsFromESD(esdDataPath.Data());
92 rl->LoadRecPoints("MUON");
93 ct = rl->GetTreeR("MUON", false);
94 g_muon_data->LoadRecPoints(ct);
97 g_currentEvent = AliEveEventManager::GetMaster()->GetEventId();
99 gStyle->SetPalette(1, 0);
101 gEve->DisableRedraw();
103 TEveElementList* l = new TEveElementList("MUONChambers");
104 l->SetTitle("MUON chambers");
108 for (Int_t ic = 0; ic < 14; ic++)
110 AliEveMUONChamber* mucha = new AliEveMUONChamber(ic);
112 mucha->SetFrameColor(2);
113 mucha->SetChamberID(ic);
115 mucha->SetDataSource(g_muon_data);
117 l->AddElement(mucha);
124 gEve->Redraw3D(kTRUE);
125 gEve->EnableRedraw();
128 //______________________________________________________________________________
129 void MUON_ESD_tracks()
131 AliESDEvent* esd = AliEveEventManager::AssertESD();
133 // TEveTrackList* lt = new TEveTrackList("ESD-Tracks");
134 AliEveMUONTrackList* lt = new TEveTrackList("ESD-Tracks");
138 gEve->AddElement(lt);
142 Int_t nMuonTracks = esd->GetNumberOfMuonTracks();
144 for (Int_t n = 0; n < nMuonTracks; n++)
146 mt = esd->GetMuonTrack(n);
148 if (mt->GetNHit() == 0) continue;
153 AliEveMUONTrack* track = new AliEveMUONTrack(&rt, lt->GetPropagator());
155 track->MakeESDTrack(mt);
157 lt->AddElement(track);
159 lt->HackMomentumLimits();