]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONRecoDisplay.cxx
MC-dependent part of AliRun extracted in AliMC (F.Carminati)
[u/mrichter/AliRoot.git] / MUON / AliMUONRecoDisplay.cxx
index 6d13a8fa4eca2276afc0e6eaf7004d9fe508d177..31ddc46f77e50d66eec9706f3084d56c7c7eb6a4 100644 (file)
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
-/*
-$Log$
-Revision 1.3  2000/12/21 17:51:54  morsch
-RN3 violations corrected
-
-Revision 1.2  2000/11/23 10:09:39  gosset
-Bug correction in AliMUONRecoDisplay.
-Copyright, $Log$
-Copyright, Revision 1.3  2000/12/21 17:51:54  morsch
-Copyright, RN3 violations corrected
-Copyright,, $Id$, comments at the right place for automatic documentation,
-in AliMUONRecoEvent and AliMUONRecoDisplay
-
-*/
+/* $Id$ */
 
 //Authors: Mihaela Gheata, Andrei Gheata 09/10/00
 //////////////////////////////////////////////////////////////////////
@@ -57,16 +44,24 @@ in AliMUONRecoEvent and AliMUONRecoDisplay
 //                                                                  //
 //////////////////////////////////////////////////////////////////////
 
-#include <iostream.h>
-#include <AliRun.h>
-#include <TClonesArray.h>
-#include "AliMUONRecoEvent.h"
-#include "AliMUONRecoDisplay.h"
+#include <Riostream.h>
+
 #include <TROOT.h>
-#include <AliPoints.h>
+#include <TFolder.h>
+#include <TClonesArray.h>
+#include <TGeometry.h>
 #include <TSlider.h>
-#include <TView.h>
 #include <TGeometry.h>
+#include <TView.h>
+
+#include <AliRun.h>
+#include <AliConfig.h>
+#include <AliHeader.h>
+#include <AliPoints.h>
+
+#include "AliMUONRecoEvent.h"
+#include "AliMUONRecoDisplay.h"
+#include "AliMC.h"
 
 ClassImp(AliMUONRecoDisplay)
 
@@ -172,7 +167,6 @@ void AliMUONRecoDisplay::MapEvent(Int_t nevent)
    if (fEvGen) fEvGen->Clear();
    fEvGen->SetNoEvent(nevent);
    // get list of particles
-   TClonesArray *particles = gAlice->Particles();
    // connect MUON module
    AliDetector *pMUON = gAlice->GetDetector("MUON");
    if (!pMUON) {
@@ -180,7 +174,7 @@ void AliMUONRecoDisplay::MapEvent(Int_t nevent)
       gApplication->Terminate(0);
    }
    // get the number of generated tracks
-   Int_t ntracks = (Int_t)gAlice->TreeH()->GetEntries();
+   Int_t ntracks = (Int_t)pMUON->TreeH()->GetEntries();
    // Fill the fEvGen object
    AliMUONRecoTrack *gtrack = 0;
    AliMUONHit *hit = 0;
@@ -190,7 +184,7 @@ void AliMUONRecoDisplay::MapEvent(Int_t nevent)
    for (Int_t track=0; track<ntracks; track++) {
       hit = (AliMUONHit *) pMUON->FirstHit(track);
       if (!hit) continue;
-      particle = (TParticle *) particles->UncheckedAt(hit->Track());
+      particle = gAlice->GetMCApp()->Particle(hit->Track());
       if (IsReconstructible(track) && TMath::Abs(particle->GetPdgCode())==13) {
          gtrack = fEvGen->AddEmptyTrack();
         gtrack->SetSign(TMath::Sign((Int_t)1, -particle->GetPdgCode()));
@@ -200,7 +194,7 @@ void AliMUONRecoDisplay::MapEvent(Int_t nevent)
         for (AliMUONHit *muonHit=(AliMUONHit*)pMUON->FirstHit(track);
              muonHit;
              muonHit=(AliMUONHit*)pMUON->NextHit()) {
-           ch = muonHit->fChamber - 1;
+           ch = muonHit->Chamber() - 1;
            if (ch<0 || ch>9) continue;
            gtrack->SetHitPosition(ch, muonHit->X(),  muonHit->Y(),  muonHit->Z());
            gtrack->SetMomReconstr(particle->Px(), particle->Py(), particle->Pz());
@@ -417,7 +411,29 @@ void AliMUONRecoDisplay::ShowNextEvent(Int_t delta)
       if (newEvent<0 || newEvent>(gAlice->TreeE()->GetEntries() - 1)) return;
       Int_t nparticles = gAlice->GetEvent(newEvent);
       cout << "Event : " << newEvent << " with " << nparticles << " particles\n";
-      if (!gAlice->TreeH()) return;
+
+/******************************************************************/
+      AliConfig* config = AliConfig::Instance();
+      TFolder* topfold = (TFolder*)config->GetTopFolder();
+      if (topfold == 0x0)
+       {
+         Error("Exec","Can not get Alice top folder");
+         return; 
+       }
+      TString fmdfoldname(config->GetDataFolderName()+"/"+"MUON");
+      TFolder* fmdfold = (TFolder*)topfold->FindObject(fmdfoldname);
+      if (fmdfold == 0x0)
+       {
+         Error("Exec","Can not get MUON folder");
+         return; 
+       }
+      TTree* treeH = dynamic_cast<TTree*>(fmdfold->FindObject("TreeH"));
+      if (treeH == 0x0)
+       {
+         Error("Exec","Can not get TreeH");
+         return;
+       }
+/******************************************************************/     
       MapEvent(newEvent);
       fHighlited = -1;
    }
@@ -440,7 +456,7 @@ Bool_t AliMUONRecoDisplay::IsReconstructible(Int_t track)
    for (AliMUONHit *muonHit=(AliMUONHit*)pMUON->FirstHit(track);
         muonHit;
        muonHit=(AliMUONHit*)pMUON->NextHit()) {
-      ch = muonHit->fChamber - 1;
+      ch = muonHit->Chamber() - 1;
       if (ch<0 || ch>9) continue;
       chHit[ch] = kTRUE;
    }