From Bogdan:
authormtadel <mtadel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 28 Apr 2008 19:55:45 +0000 (19:55 +0000)
committermtadel <mtadel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 28 Apr 2008 19:55:45 +0000 (19:55 +0000)
I have a patch for EVE/EveDet/AliEveMUONTrack.cxx (a different way of
drawing the ESD tracks, only the parameters are changed), new macros
and macros to be removed because they are obsolete:

patch_muon.txt         to be applied in EVE/EveDet/
MUON_displaySimu.C     new (display for the simulated data)
MUON_displayData.C     new (display for the reconstruction of real data)
MUON_display.C         out (obsolete)
MUON_trigger_info.C    out (obsolete)
MUON_makeGeom.C        new (create a geometry file to be used for the display)
MUON_geom.C            modified (points to the file created by MUON_makeGeom)
MUON_geomAll.C         modified (points to the file created by MUON_makeGeom)
README_MUON            updated

EVE/EveDet/AliEveMUONTrack.cxx
EVE/README_MUON
EVE/alice-macros/MUON_displayData.C [new file with mode: 0644]
EVE/alice-macros/MUON_displaySimu.C [moved from EVE/alice-macros/MUON_display.C with 71% similarity]
EVE/alice-macros/MUON_geom.C
EVE/alice-macros/MUON_geomAll.C
EVE/alice-macros/MUON_makeGeom.C [new file with mode: 0644]
EVE/alice-macros/MUON_trigger_info.C [deleted file]

index 9c2db9bf17effab68fab840211e58807a175971c..9257f2c655b97878cbfe71f79020af14342497ca 100644 (file)
@@ -471,13 +471,13 @@ void AliEveMUONTrack::MakeMUONTrack(AliMUONTrack *mtrack)
   // builds the track with dipole field
   //
 
-  if (!fIsRefTrack) {
-    fIsMUONTrack = kTRUE;
-    fTrack    = mtrack;
-  }
-
-  if (fIsRefTrack) {
-    fTrack = new AliMUONTrack(*mtrack);
+  if (!fIsESDTrack) {
+    if (!fIsRefTrack) {
+      fIsMUONTrack = kTRUE;
+      fTrack    = mtrack;
+    } else {
+      fTrack = new AliMUONTrack(*mtrack);
+    }
   }
 
   Double_t xv, yv;
@@ -502,9 +502,9 @@ void AliEveMUONTrack::MakeMUONTrack(AliMUONTrack *mtrack)
 
   if (fIsMUONTrack) {
     if (mtrack->GetMatchTrigger()) {
-      sprintf(form,"AliEveMUONTrack %2d (MT)", fLabel);
+      sprintf(form,"MUONTrack %2d (MT)", fLabel);
     } else {
-      sprintf(form,"AliEveMUONTrack %2d     ", fLabel);
+      sprintf(form,"MUONTrack %2d     ", fLabel);
     }
     SetName(form);
     SetLineStyle(1);
@@ -515,7 +515,7 @@ void AliEveMUONTrack::MakeMUONTrack(AliMUONTrack *mtrack)
   yRec0  = trackParam->GetBendingCoor();
   zRec0  = trackParam->GetZ();
 
-  if (fIsMUONTrack) {
+  if (fIsMUONTrack || fIsESDTrack) {
     SetPoint(fCount,xRec0,yRec0,zRec0);
     fCount++;
   }
@@ -533,8 +533,9 @@ void AliEveMUONTrack::MakeMUONTrack(AliMUONTrack *mtrack)
     trackParam = (AliMUONTrackParam*) trackParamAtCluster->At(iHit);
 
     if (iHit == 0) {
-      if (IsMUONTrack()) {
+      if (IsMUONTrack() || IsESDTrack()) {
        pt = TMath::Sqrt(trackParam->Px()*trackParam->Px()+trackParam->Py()*trackParam->Py());
+       printf("Set line color = %d \n",ColorIndex(pt));
        SetLineColor(ColorIndex(pt));
       }
       pv[0] = trackParam->Px();
@@ -559,7 +560,7 @@ void AliEveMUONTrack::MakeMUONTrack(AliMUONTrack *mtrack)
 
   Int_t crntCha, lastHitSt12, firstHitSt3, lastHitSt3, firstHitSt45;
 
-  if (fIsMUONTrack) nTrackHits = 10;
+  if (fIsMUONTrack || fIsESDTrack) nTrackHits = 10;
 
   lastHitSt12  = -1;
   firstHitSt3  = -1;
@@ -674,7 +675,7 @@ void AliEveMUONTrack::MakeMUONTrack(AliMUONTrack *mtrack)
     }
   }
 
-  if (!fIsMUONTrack) return;
+  if (!fIsMUONTrack && !fIsESDTrack) return;
 
   Int_t nrc = 0;
   if (mtrack->GetMatchTrigger() && 1) {
@@ -784,18 +785,29 @@ void AliEveMUONTrack::MakeESDTrack(AliESDMuonTrack *mtrack)
 
   fIsESDTrack = kTRUE;
 
+  char form[1000];
+  if (mtrack->GetMatchTrigger()) {
+    sprintf(form,"ESDTrack %2d (MT)", fLabel);
+  } else {
+    sprintf(form,"ESDTrack %2d     ", fLabel);
+  }
+  SetName(form);
+  SetLineStyle(3);
+  SetLineColor(0);
+
   fTrack = new AliMUONTrack();
+
+  // create a simple track from the ESD track
+  AliMUONESDInterface::ESDToMUON(*mtrack,*fTrack);
+
+  MakeMUONTrack(fTrack);
+  return;
+
   AliMUONTrackParam trackParam;
   AliMUONESDInterface::GetParamAtVertex(*mtrack, trackParam);
   fTrack->SetTrackParamAtVertex(&trackParam);
   fTrack->SetMatchTrigger(mtrack->GetMatchTrigger());
 
-  char form[1000];
-  sprintf(form,"ESDTrack %2d ", fLabel);
-  SetName(form);
-  SetLineStyle(3);
-  SetLineColor(0);
-
   Double_t vect[7], vout[7];
   Double_t step = 1.0;
 
@@ -930,7 +942,7 @@ void AliEveMUONTrack::Propagate(Float_t *xr, Float_t *yr, Float_t *zr, Int_t i1,
 
   trackParamAtCluster = fTrack->GetTrackParamAtCluster();
 
-  if (IsMUONTrack()) {
+  if (IsMUONTrack() || IsESDTrack()) {
     trackParam = (AliMUONTrackParam*)trackParamAtCluster->At(i1);
     charge = (Int_t)TMath::Sign(1.0,trackParam->GetInverseBendingMomentum());
   }
@@ -1245,7 +1257,7 @@ Int_t AliEveMUONTrack::ColorIndex(Float_t val)
   //
 
   Float_t threshold =  0.0;
-  Float_t maxVal    =  2.0;
+  Float_t maxVal    = 10.0;
 
   Float_t div  = TMath::Max(1, (Int_t)(maxVal - threshold));
   Int_t   nCol = gStyle->GetNumberOfColors();
index a973f96000c7b30e2dc9b3b4681badd7cf0ed579..a9b70733787795eec9771142f6f770582223ad8f 100644 (file)
@@ -2,6 +2,14 @@
 How to run the MUON display
 ---------------------------
 
+New (28 Apr 2008): there are two version of the MUON_display macro
+
+MUON_displaySimu   - to be used with simulations (shows also reference tracks,
+                     Monte-Carlo tracks and hits)
+MUON_displayData   - to be used with reconstructed raw data (with the option
+                     SAVEDIGITS in the reconstruction, "normal" digits are
+                     also produced and can be visualized)
+
 1. Launch 'alieve' executable
 
    alieve
@@ -9,20 +17,11 @@ How to run the MUON display
 2. Load the following macros (.L ...)
 
    alieve_init.C
-   event_next.C
-   event_prev.C
    event_goto.C
    MUON_display.C
    MUON_geom.C
    MUON_geomAll.C
 
-   also interesting for the vertex
-
-   its_hits.C
-   its_digits.C
-   geom_its.C
-   esd_tracks.C
-
 3. Initialize
 
    alieve_init("directory_to_data",event_number)
@@ -45,14 +44,12 @@ How to run the MUON display
 
    MUON_geom()
 
-Obs: to delete geometry elements from the display, click the right mouse button
-in the "Reve" window, "Object Browser" tab, on the name of the node and select 
-"Destroy" from the menu.
+Obs: use the macro MUON_makeGeom.C to create a geometry file starting from a
+Config.C.  The geometry created by the full chain of simulations has a wrong 
+color palette, this is a problem still to be fixed...
 
 8. Navigate in the event list
 
-   event_next()
-   event_prev()
    event_goto(n)
 
 9. Shift + right mouse button one a muon track opens the context menu:
@@ -72,16 +69,16 @@ in the "Reve" window, "Object Browser" tab, on the name of the node and select
 
 Files:
 
-MUON*.cxx , MUON*.h   in $ALICE_ROOT/EVE/Alieve
-MUON*.C               in $ALICE_ROOT/EVE/alice-macros
+AliEveMUON*.cxx , AliEveMUON*.h   in $ALICE_ROOT/EVE/EveDet
+MUON*.C                           in $ALICE_ROOT/EVE/alice-macros
 
-See also the $ALICE_ROOT/EVE/README file.
+Note: ... this is $ALICE_ROOT/EVE/README_MUON file.
 
 
 
 
 
-Bogdan Vulpescu, 06 Mar 2007
+Bogdan Vulpescu, 28 Apr 2008
 LPC Clermont-Ferrand
 vulpescu@clermont.in2p3.fr
 
diff --git a/EVE/alice-macros/MUON_displayData.C b/EVE/alice-macros/MUON_displayData.C
new file mode 100644 (file)
index 0000000..4bcf2fd
--- /dev/null
@@ -0,0 +1,160 @@
+// $Id: MUON_display.C 24485 2008-03-13 15:27:38Z 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.                                                 *
+ **************************************************************************/
+
+class AliEveMUONData;
+class AliEveEventManager;
+
+AliEveMUONData     *g_muon_data       = 0;
+AliEveEventManager *g_muon_last_event = 0;
+
+Int_t  g_currentEvent = -1;
+Bool_t g_fromRaw      = kFALSE;
+
+AliMagFMaps *g_field = 0;
+
+void MUON_displayData(Bool_t fromRaw = kFALSE, Bool_t showTracks = kTRUE)
+{
+  //
+  // display from real data, eventually with recreated digits
+  // tracks: ESD
+  // 
+
+  if (!AliMpSegmentation::Instance()) AliMpCDB::LoadMpSegmentation();
+  if (!AliMpDDLStore::Instance())     AliMpCDB::LoadDDLStore();
+
+  if (g_field == 0) {
+    printf("Loading field map...\n");
+    g_field = new AliMagFMaps("Maps","Maps", 1, 1., 10., AliMagFMaps::k5kG);
+    AliTracker::SetFieldMap(g_field, kFALSE);
+    AliMUONTrackExtrap::SetField(AliTracker::GetFieldMap());
+  }
+
+  TTree* dt = 0;
+  TTree* ct = 0;
+  TTree* ht = 0;
+
+  if (gAliEveEvent == 0) {
+    printf("No alieve event: use alieve_init(...) \n");
+    return;
+  }
+
+  if (g_currentEvent == gAliEveEvent->GetEventId()) {
+    if (g_fromRaw == fromRaw) {
+      printf("Same event... \n");
+      return;
+    } else {
+      if (g_fromRaw) {
+       printf("Same event with digits.\n");
+       gAliEveEvent->GotoEvent(g_currentEvent);
+      } else {
+       printf("Same event with raw.\n");
+       gAliEveEvent->GotoEvent(g_currentEvent);
+      }
+    }
+  }
+
+  g_fromRaw = fromRaw;
+
+  TString dataPath = TString(gAliEveEvent->GetTitle());
+  dataPath.Append("/rawmuon.root");
+
+  AliRunLoader* rl =  AliEveEventManager::AssertRunLoader();
+  g_muon_data = new AliEveMUONData;
+
+  if (!fromRaw) {
+    rl->LoadDigits("MUON");
+    dt = rl->GetTreeD("MUON", false);
+    if (dt == 0) {
+      cout << "No digits produced!" << endl;
+    } else {
+      cout << "With aliroot digits!" << endl;
+      g_muon_data->LoadDigits(dt);
+    }
+  } else {
+    if (gSystem->AccessPathName(dataPath.Data(),kFileExists)) {
+      cout << "No raw data produced!" << endl;
+    } else {
+      cout << "With raw digits!" << endl;
+      g_muon_data->LoadRaw(dataPath.Data());
+    }
+  }
+
+  rl->LoadRecPoints("MUON");
+  ct = rl->GetTreeR("MUON", false);
+
+  TString esdDataPath = TString(gAliEveEvent->GetTitle());
+  esdDataPath.Append("/AliESDs.root");
+  g_muon_data->LoadRecPointsFromESD(esdDataPath.Data());
+
+  g_muon_last_event = gAliEveEvent;
+
+  g_currentEvent = g_muon_last_event->GetEventId();
+
+  gStyle->SetPalette(1, 0);
+
+  gEve->DisableRedraw();
+
+  TEveElementList* l = new TEveElementList("MUONChambers");
+  l->SetTitle("MUON chambers");
+  l->SetMainColor(Color_t(2));
+  gEve->AddElement(l);
+
+  for (Int_t ic = 0; ic < 14; ic++)
+  {
+    AliEveMUONChamber* mucha = new AliEveMUONChamber(ic);
+
+    mucha->SetFrameColor(2);
+    mucha->SetChamberID(ic);
+
+    mucha->SetDataSource(g_muon_data);
+
+    gEve->AddElement(mucha, l);
+  }
+
+  if (showTracks) {
+    MUON_ESD_tracks();
+  }
+
+  gEve->Redraw3D(kTRUE);
+  gEve->EnableRedraw();
+}
+
+//______________________________________________________________________________
+void MUON_ESD_tracks()
+{
+  AliESDEvent* esd = AliEveEventManager::AssertESD();
+
+  TEveTrackList* lt = new TEveTrackList("ESD-Tracks");
+  lt->SetMainColor(Color_t(6));
+  //lt->SetMUON();
+
+  gEve->AddElement(lt);
+
+  AliESDMuonTrack *mt;
+  TEveRecTrack rt;
+  Int_t nMuonTracks = esd->GetNumberOfMuonTracks();
+  Int_t nTrack = 0;
+  for (Int_t n = 0; n < nMuonTracks; n++)
+  {
+    mt = esd->GetMuonTrack(n);
+
+    if (mt->GetNHit() == 0) continue;
+    nTrack++;
+
+    rt.fLabel = n;
+
+    AliEveMUONTrack* track = new AliEveMUONTrack(&rt, lt->GetPropagator());
+
+    track->MakeESDTrack(mt);
+
+    gEve->AddElement(track, lt);
+  }
+
+}
+
similarity index 71%
rename from EVE/alice-macros/MUON_display.C
rename to EVE/alice-macros/MUON_displaySimu.C
index 22457ed1b8135af8694c12decedc74e446987230..2ad38c056e2fe667de0047dfb30ed5a382c210e7 100644 (file)
@@ -1,4 +1,4 @@
-// $Id$
+// $Id: MUON_display.C 24485 2008-03-13 15:27:38Z mtadel $
 // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
 
 /**************************************************************************
@@ -18,8 +18,13 @@ Bool_t g_fromRaw      = kFALSE;
 
 AliMagFMaps *g_field = 0;
 
-void MUON_display(Bool_t fromRaw = kFALSE, Bool_t showTracks = kTRUE)
+void MUON_displaySimu(Bool_t fromRaw = kFALSE, Bool_t showTracks = kTRUE)
 {
+  //
+  // display from simulated digits (or produced raw data) 
+  // tracks: ESD, Refs, MC
+  // 
+
   if (!AliMpSegmentation::Instance()) AliMpCDB::LoadMpSegmentation();
   if (!AliMpDDLStore::Instance())     AliMpCDB::LoadDDLStore();
 
@@ -86,11 +91,11 @@ void MUON_display(Bool_t fromRaw = kFALSE, Bool_t showTracks = kTRUE)
   TString esdDataPath = TString(gAliEveEvent->GetTitle());
   esdDataPath.Append("/AliESDs.root");
   g_muon_data->LoadRecPointsFromESD(esdDataPath.Data());
-
+  
   rl->LoadHits("MUON");
   ht = rl->GetTreeH("MUON", false);
   g_muon_data->LoadHits(ht);
-
+  
   g_muon_last_event = gAliEveEvent;
 
   g_currentEvent = g_muon_last_event->GetEventId();
@@ -126,110 +131,6 @@ void MUON_display(Bool_t fromRaw = kFALSE, Bool_t showTracks = kTRUE)
   gEve->EnableRedraw();
 }
 
-//______________________________________________________________________________
-void MUON_tracks()
-{
-  AliRunLoader* rl =  AliEveEventManager::AssertRunLoader();
-  rl->LoadTracks("MUON");
-  TTree* tt = rl->GetTreeT("MUON", false);
-
-  TClonesArray *tracks = 0;
-  tt->SetBranchAddress("AliEveMUONTrack",&tracks);
-  tt->GetEntry(0);
-
-  Int_t ntracks = tracks->GetEntriesFast();
-  //printf("Found %d tracks. \n",ntracks);
-
-  TEveTrackList* lt = new TEveTrackList("M-Tracks");
-  lt->SetMainColor(Color_t(6));
-  //lt->SetMUON();
-
-  gEve->AddElement(lt);
-
-  TMatrixD smatrix(2,2);
-  TMatrixD sums(2,1);
-  TMatrixD res(2,1);
-
-  Float_t xRec, xRec0;
-  Float_t yRec, yRec0;
-  Float_t zRec, zRec0;
-
-  Float_t zg[4] = { -1603.5, -1620.5, -1703.5, -1720.5 };
-
-  AliMUONTrack *mt;
-  TEveRecTrack  rt;
-  Int_t count;
-  for (Int_t n = 0; n < ntracks; n++)
-  {
-    count = 0;
-
-    mt = (AliMUONTrack*) tracks->At(n);
-
-    rt.fLabel = n;
-
-    AliEveMUONTrack* track = new AliEveMUONTrack(&rt, lt->GetPropagator());
-
-    track->MakeMUONTrack(mt);
-
-    gEve->AddElement(track, lt);
-  }
-
-  rl->UnloadTracks("MUON");
-
-}
-
-//______________________________________________________________________________
-void MUON_trigger_tracks()
-{
-  AliRunLoader* rl =  AliEveEventManager::AssertRunLoader();
-  rl->LoadTracks("MUON");
-  TTree* tt = rl->GetTreeT("MUON", false);
-
-  TClonesArray *tracks = 0;
-  tt->SetBranchAddress("MUONTriggerTrack",&tracks);
-  tt->GetEntry(0);
-
-  Int_t ntracks = tracks->GetEntriesFast();
-  //printf("Found %d tracks. \n",ntracks);
-
-  TEveTrackList* lt = new TEveTrackList("MT-Tracks");
-  lt->SetMainColor(Color_t(4));
-  //lt->SetMUON();
-
-  gEve->AddElement(lt);
-
-  TMatrixD smatrix(2,2);
-  TMatrixD sums(2,1);
-  TMatrixD res(2,1);
-
-  Float_t xRec, xRec0;
-  Float_t yRec, yRec0;
-  Float_t zRec, zRec0;
-
-  Float_t zg[4] = { -1603.5, -1620.5, -1703.5, -1720.5 };
-
-  AliMUONTriggerTrack *mt;
-  TEveRecTrack  rt;
-  Int_t count;
-  for (Int_t n = 0; n < ntracks; n++)
-  {
-    count = 0;
-
-    mt = (AliMUONTriggerTrack*) tracks->At(n);
-
-    rt.fLabel = n;
-
-    AliEveMUONTrack* track = new AliEveMUONTrack(&rt, lt->GetPropagator());
-
-    track->MakeMUONTriggerTrack(mt);
-
-    gEve->AddElement(track, lt);
-  }
-
-  rl->UnloadTracks("MUON");
-
-}
-
 //______________________________________________________________________________
 void MUON_ESD_tracks()
 {
@@ -244,10 +145,14 @@ void MUON_ESD_tracks()
   AliESDMuonTrack *mt;
   TEveRecTrack rt;
   Int_t nMuonTracks = esd->GetNumberOfMuonTracks();
+  Int_t nTrack = 0;
   for (Int_t n = 0; n < nMuonTracks; n++)
   {
     mt = esd->GetMuonTrack(n);
 
+    if (mt->GetNHit() == 0) continue;
+    nTrack++;
+
     rt.fLabel = n;
 
     AliEveMUONTrack* track = new AliEveMUONTrack(&rt, lt->GetPropagator());
index b1bfb606531129607cf5cb5bc85eeee8d000614b..d96c3727a7b384dd358a8a723e118d6f44780b3f 100644 (file)
@@ -9,7 +9,7 @@
 
 void MUON_geom()
 {
-  gGeoManager = gEve->GetGeometry("$REVESYS/alice-data/alice_fullgeo.root");
+  gGeoManager = gEve->GetGeometry("geometry.root");
 
   TEveElementList* list = new TEveElementList("DiMUON");
   gEve->AddGlobalElement(list);
index 92eca3662ebdef61eeb9c5e33be1164f240aa14d..c5463000c87015b9129e58399cfbb953e5aab5ff 100644 (file)
@@ -9,7 +9,7 @@
 
 void MUON_geomAll()
 {
-  gGeoManager = gEve->GetGeometry("$REVESYS/alice-data/alice_fullgeo.root");
+  gGeoManager = gEve->GetGeometry("geometry.root");
 
   TEveGeoTopNode* topn_re = new TEveGeoTopNode
     (gGeoManager, gGeoManager->GetTopNode());
diff --git a/EVE/alice-macros/MUON_makeGeom.C b/EVE/alice-macros/MUON_makeGeom.C
new file mode 100644 (file)
index 0000000..6525e57
--- /dev/null
@@ -0,0 +1,8 @@
+{
+  AliMpCDB::LoadMpSegmentation2(); 
+  gAlice->Init("$ALICE_ROOT/MUON/Config.C");
+  //gAlice->Init("Config.C");
+
+  gGeoManager->Export("geometry.root");
+
+}
diff --git a/EVE/alice-macros/MUON_trigger_info.C b/EVE/alice-macros/MUON_trigger_info.C
deleted file mode 100644 (file)
index 2f4698c..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-// $Id$
-// 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.                                                 *
- **************************************************************************/
-
-#include <iomanip.h>
-
-void MUON_trigger_info(Int_t label) {
-
-  AliRunLoader* rl = AliEveEventManager::AssertRunLoader();
-
-  TTree* tt = rl->GetTreeT("MUON", false);
-
-  TClonesArray *tracks = 0;
-  tt->SetBranchAddress("AliEveMUONTrack",&tracks);
-  tt->GetEntry(0);
-
-  Int_t ntracks = tracks->GetEntriesFast();
-
-  if (ntracks <= label) return;
-
-  AliMUONTrack *mt = tracks->At(label);
-
-  TTree* tr = rl->GetTreeR("MUON", false);
-
-  TClonesArray *lotrig = 0;
-  tr->SetBranchAddress("MUONLocalTrigger",&lotrig);
-  tr->GetEntry(0);
-
-  Int_t nlotrig = lotrig->GetEntriesFast();
-
-  cout << endl;
-  cout << ">>>>>#########################################################################################################################" << endl;
-  cout << endl;
-  cout << "                   TEveTrack number " << label << endl;
-  cout << endl;
-  AliMUONTrackParam *mtp = (AliMUONTrackParam*)mt->GetTrackParamAtVertex();
-  Float_t pt = TMath::Sqrt(mtp->Px()*mtp->Px()+mtp->Py()*mtp->Py());
-
-  cout << "   Pt = " <<
-    setw(8) << setprecision(3) <<
-    pt << "  GeV/c" << endl;
-
-  cout << endl;
-
-  if (mt->GetLoTrgNum() >= 0) {
-    AliMUONLocalTrigger *lo = (AliMUONLocalTrigger*)lotrig->At(mt->GetLoTrgNum());
-    cout << "   Local trigger information" << endl;
-    cout << "   -----------------------------------------------------" << endl;
-    cout << "   Circuit   " << lo->LoCircuit() << endl;
-    cout << "   StripX    " << lo->LoStripX()  << endl;
-    cout << "   StripY    " << lo->LoStripY()  << endl;
-    cout << "   Dev       " << lo->LoDev()     << endl;
-    cout << "   LoLpt     " << lo->LoLpt()     << endl;
-    cout << "   LoHpt     " << lo->LoHpt()     << endl;
-    cout << "   Pattern X:" << endl;
-    printf("   %016b \n",lo->GetX1Pattern());
-    printf("   %016b \n",lo->GetX2Pattern());
-    printf("   %016b \n",lo->GetX3Pattern());
-    printf("   %016b \n",lo->GetX4Pattern());
-    cout << "   Pattern Y:" << endl;
-    printf("   %016b \n",lo->GetY1Pattern());
-    printf("   %016b \n",lo->GetY2Pattern());
-    printf("   %016b \n",lo->GetY3Pattern());
-    printf("   %016b \n",lo->GetY4Pattern());
-    cout << "   Decision:" << endl;
-    printf("   %04b  \n",lo->GetLoDecision());
-  } else {
-    cout << "   The track has no trigger information!" << endl;
-  }
-  cout << endl;
-  cout << "#########################################################################################################################<<<<<" << endl;
-
-}
-