MUONdisplay: (le retour)
authormartinez <martinez@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 1 Oct 2003 09:21:46 +0000 (09:21 +0000)
committermartinez <martinez@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 1 Oct 2003 09:21:46 +0000 (09:21 +0000)
MUON/AliMUONDisplay.cxx
MUON/MUONdisplay.C
MUON/README

index 620e16af9d5303a0215784ba7f02f3d0b9dcf55b..c7234800f88ad1a6fd955e9e4b4b854eb6013cdc 100644 (file)
@@ -621,6 +621,8 @@ void AliMUONDisplay::DrawTitle(Option_t *option)
     Float_t dx   = xmax-xmin;
     Float_t dy   = ymax-ymin;
     
+
+
     if (strlen(option) == 0) {
        TPaveText *title = new TPaveText(xmin +0.01*dx, ymax-0.09*dy, xmin +0.5*dx, ymax-0.01*dy);
 //      title->SetTextSize(0.023932);
@@ -890,14 +892,13 @@ void AliMUONDisplay::LoadCoG(Int_t chamber, Int_t /*cathode*/)
     AliMUONChamber*  iChamber;
     
     TClonesArray *muonRawClusters  = pMUON->GetMUONData()->RawClusters(chamber-1);
-    if (muonRawClusters == 0) return;
 
-//     pMUON->ResetRawClusters();
+    if (muonRawClusters == 0) return;
 
     Int_t nent = 0;
-    if (gAlice->TreeR()) {
-       nent=(Int_t)gAlice->TreeR()->GetEntries();
-       gAlice->TreeR()->GetEvent(0);
+    if (pMUON->GetMUONData()->TreeR()) {
+       nent=(Int_t) pMUON->GetMUONData()->TreeR()->GetEntries();
+       pMUON->GetMUONData()->TreeR()->GetEvent(0);
     }
     
     Int_t nrawcl = muonRawClusters->GetEntriesFast();
@@ -943,21 +944,21 @@ void AliMUONDisplay::LoadHits(Int_t chamber)
     iChamber = &(pMUON->Chamber(chamber-1));
     Float_t zpos=iChamber->Z();
 
-    Int_t ntracks = (Int_t)pMUON->TreeH()->GetEntries(); //skowron
+    Int_t ntracks = (Int_t)pMUON->GetMUONData()->TreeH()->GetEntries(); //skowron
     Int_t nthits  = 0;
     for (track = 0; track < ntracks; track++) {
-       gAlice->ResetHits();
-       pMUON->TreeH()->GetEvent(track);//skowron
-       TClonesArray *muonHits  = pMUON->Hits();
+       pMUON->GetMUONData()->ResetHits();
+       pMUON->GetMUONData()->GetTrack(track);//skowron
+       TClonesArray *muonHits  = pMUON->GetMUONData()->Hits();
        if (muonHits == 0) return;
        nthits += muonHits->GetEntriesFast();
     } 
     if (fPhits == 0) fPhits = new TObjArray(nthits);
     Int_t nhold=0;
     for (track=0; track<ntracks;track++) {
-       gAlice->ResetHits();
-       pMUON->TreeH()->GetEvent(track);//skowron
-       TClonesArray *muonHits  = pMUON->Hits();
+       pMUON->GetMUONData()->ResetHits();
+       pMUON->GetMUONData()->GetTrack(track);//skowron
+       TClonesArray *muonHits  = pMUON->GetMUONData()->Hits();
        if (muonHits == 0) return;
        Int_t nhits = muonHits->GetEntriesFast();
        if (nhits == 0) continue;
index d68ebde5c2284dab4857a8934dc1ff025121de72..b742ea8a5885ef213a4ab5124305a053c733932c 100644 (file)
@@ -1,30 +1,38 @@
 MUONdisplay (Int_t nevent=0, TString fileName="galice.root") {
-// Dynamically link some shared libs
-   if (gClassTable->GetID("AliRun") < 0) {
-      gROOT->LoadMacro("loadlibs.C");
-      loadlibs();
-      /*
-   } else {
-      delete gAlice;
-      gAlice = 0;
-      */
-   }
+  // Getting runloader 
+  AliRunLoader * RunLoader = AliRunLoader::Open(fileName,"MUONFolder","READ");
+  if (RunLoader == 0x0) {
+    Error("MUONdisplay","Inut file %s error!",fileName);
+    return;   
+  }
+  RunLoader->LoadHeader();
+  RunLoader->LoadKinematics("READ");
 
-// Connect the Root Galice file containing Geometry, Kine and Hits
-   TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject(fileName);
-   if (!file) file = new TFile(fileName);
+  // Getting MUONloader 
+  AliLoader * MUONLoader  = RunLoader->GetLoader("MUONLoader");
+  MUONLoader->LoadHits("READ");
+  MUONLoader->LoadDigits("READ");
+  MUONLoader->LoadRecPoints("READ");
+
+  if (RunLoader->GetAliRun() == 0x0) RunLoader->LoadgAlice();
+  gAlice = RunLoader->GetAliRun();
+
+  // Getting Module MUON  
+  AliMUON * MUON  = (AliMUON *) gAlice->GetDetector("MUON");
+  if (!MUON) {
+    Error("MUONdisplay","Module MUON not found in the input file");
+    return;
+  }
+  // Getting Muon data
+  AliMUONData * muondata = MUON->GetMUONData(); 
+  muondata->SetLoader(MUONLoader);
+  muondata->SetTreeAddress("H,D,RC,GLT");
 
-// Get AliRun object from file or create it if not on file
-   if (!gAlice) {
-      gAlice = (AliRun*)file->Get("gAlice");
-      if (gAlice) printf("AliRun object found on file\n");
-      if (!gAlice) gAlice = new AliRun("gAlice","Alice test program");
-   }
-   
 // Create Event Display object
    AliMUONDisplay *muondisplay = new AliMUONDisplay(750);
 
 // Display first event
-   gAlice->GetEvent(nevent);
+   RunLoader->GetEvent(nevent);
    muondisplay->ShowNextEvent(0);
 }
index 3ad046ca3cf3cd22b111860a53cbbd2699da4a23..f5020e39d1e3c4dc5c6d48017fdda7670e842862 100644 (file)
@@ -21,7 +21,7 @@ config files, simulation, digitalization, clusterization,
 reconstruction and macro analysis
 
 ==========================================================
- How to run a MUON simulation 
+ How to run a MUON generation
 ==========================================================
 aliroot
 root [0] gAlice->Run(10,"$ALICE_ROOT/MUON/Config_MUON_test.C");
@@ -126,6 +126,14 @@ gAlice->Init("$ALICE_ROOT/MUON/Config_MUON_test.C");
 G3GUI()
 
 
+============================================================
+ How to run MUONdisplay
+============================================================
+Frist you need to perfomr a full simulation: 
+generation, digitalisation and clusterisation
+.L $ALICE_ROOT/MUON/MUONdisplay.C
+MUONdisplay(0,"galice.root")
+
 ============================================================
  Tracking parameters, cuts, energy loss and physics processes
 ============================================================