Adding makefile for Darwin and XLC compiler
[u/mrichter/AliRoot.git] / RICH / AliRICHDisplay.cxx
index 8ff8656..8cbaa1e 100644 (file)
@@ -13,7 +13,6 @@
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
-/* $Id$ */
 
 //////////////////////////////////////////////////////////////////////////
 //                                                                      //
 #include <TRandom.h>
 #include <X3DBuffer.h>
 #include <TParticle.h>
-
+#include "AliRICHChamber.h"
 #include "AliRun.h"
 #include "AliPDG.h"
 #include "AliDetector.h"
 #include "AliRICH.h"
-#include "AliRICHConst.h"
 #include "AliRICHDisplay.h"
 #include "AliRICHPoints.h"
 #include "AliHeader.h"
 
-#include "AliRICHSDigit.h"
-#include "AliRICHDigit.h"
-#include "AliRICHRawCluster.h"
 #include "AliMC.h"
 
 ClassImp(AliRICHDisplay)
@@ -85,56 +80,6 @@ AliRICHDisplay::AliRICHDisplay()
 //_____________________________________________________________________________
 AliRICHDisplay::AliRICHDisplay(Int_t size)
 {
-// Create an event display object.
-// A canvas named "edisplay" is created with a vertical size in pixels
-//
-//    A QUICK Overview of the Event Display functions
-//    ===============================================
-//
-//  The event display can ve invoked by executing the macro "display.C"
-// A canvas like in the picture below will appear.
-//
-//  On the left side of the canvas, the following buttons appear:
-//   *Next*       to move to the next event
-//   *Previous*   to move to the previous event
-
-//   *Pick*       Select this option to be able to point on a track with the
-//                mouse. Once on the track, use the right button to select
-//                an action. For example, select SetMarkerAttributes to
-//                change the marker type/color/size for the track.
-//   *Zoom*       Select this option (default) if you want to zoom.
-//                To zoom, simply select the selected area with the left button.
-//   *UnZoom*     To revert to the previous picture size.
-//
-//   slider R     On the left side, the vertical slider can be used to
-//                set the default picture size.
-//
-//    When you are in Zoom mode, you can click on the black part of the canvas
-//  to select special options with the right mouse button.
-
-//
-//  When you are in pick mode, you can "Inspect" the object pointed by the mouse.
-//  When you are on a track, select the menu item "InspectParticle"
-//  to display the current particle attributes.
-//
-//  You can activate the Root browser by selecting the Inspect menu
-//  in the canvas tool bar menu. Then select "Start Browser"
-//  This will open a new canvas with the browser. At this point, you may want
-//  to display some histograms (from the Trees). Go to the "File" menu
-//  of the browser and click on "New canvas".
-//  In the browser, click on item "ROOT files" in the left pane.
-//  Click on galice.root.
-//  Click on TH
-//  Click on TPC for example
-//  Click on any variable (eg TPC.fX) to histogram the variable.
-//
-//   If you are lost, you can click on HELP in any Root canvas or browser.
-//Begin_Html
-/*
-  <img src="gif/AliRICHDisplay.gif">
-*/
-//End_Html
-    
     
     fPad = 0;
     
@@ -741,19 +686,15 @@ void AliRICHDisplay::LoadCoG(Int_t chamber, Int_t cathode)
 // Read raw clusters info and store x,y,z info in arrays fRpoints
 // Loop on all detectors
 
-   if (chamber > 6) return;
-
-   //printf("Entering LoadCoG\n");
-
+   if (chamber > 7) return;
 
    AliRICH *pRICH  = (AliRICH*)gAlice->GetModule("RICH");
    AliRICHChamber*  iChamber;
 
-   TClonesArray *pRICHrawclust  = pRICH->RawClustAddress(chamber);
-   //printf ("Chamber:%d has adress:%p\n", chamber, pRICHrawclust );
+   TClonesArray *pRICHrawclust  = pRICH->Clusters(chamber);
    if (pRICHrawclust == 0) return;
 
-   pRICH->ResetRawClusters();
+   pRICH->ResetClusters();
 
 
    Int_t nent=(Int_t)gAlice->TreeR()->GetEntries();
@@ -763,14 +704,14 @@ void AliRICHDisplay::LoadCoG(Int_t chamber, Int_t cathode)
    if (nrawcl == 0) return;
    if (fRpoints == 0) fRpoints = new TObjArray(nrawcl);
    
-   iChamber = &(pRICH->Chamber(chamber));
-   AliRICHRawCluster  *mRaw;
+   iChamber = pRICH->C(chamber);
+   AliRICHcluster  *mRaw;
    AliRICHPoints *points = 0;
    //
    //loop over all raw clusters and store their position
    points = new AliRICHPoints(nrawcl);
    for (Int_t iraw=0;iraw<nrawcl;iraw++) {
-       mRaw   = (AliRICHRawCluster*)pRICHrawclust->UncheckedAt(iraw);
+       mRaw   = (AliRICHcluster*)pRICHrawclust->UncheckedAt(iraw);
        fRpoints->AddAt(points,iraw);
        points->SetMarkerColor(3);
        points->SetMarkerStyle(3);
@@ -779,12 +720,12 @@ void AliRICHDisplay::LoadCoG(Int_t chamber, Int_t cathode)
        points->SetHitIndex(-1);
        points->SetTrackIndex(-1);
        points->SetDigitIndex(-1);
-       Float_t  vectorLoc[3]={mRaw->fX,5,mRaw->fY};
+       Float_t  vectorLoc[3]={mRaw->X(),5,mRaw->Y()};
        Float_t  vectorGlob[3];
        iChamber->LocaltoGlobal(vectorLoc,vectorGlob);
        points->SetPoint(iraw,vectorGlob[0],vectorGlob[1],vectorGlob[2]);
    }
-}
+}//LoadCoG()
 //___________________________________________
 void AliRICHDisplay::LoadRecHits(Int_t chamber, Int_t cathode)
 {
@@ -808,34 +749,30 @@ void AliRICHDisplay::LoadDigits()
    if (gAlice->TreeD())
      {
    
-       for (ich=0; ich<kNCH; ich++) {
-        TClonesArray *pRICHdigits  = pRICH->DigitsAddress(ich);
-        //printf ("Chamber:%d has adress:%p\n", ich, pRICHdigits );
+       for (ich=1; ich<=kNCH; ich++) {
+        TClonesArray *pRICHdigits  = pRICH->Digits(ich);
         if (pRICHdigits == 0) continue;
         gAlice->ResetDigits();
         gAlice->TreeD()->GetEvent(0);
         Int_t ndigits = pRICHdigits->GetEntriesFast();
-        //printf("ndigits:%d\n",ndigits);
         nAllDigits+=ndigits;
        }
        
        if (fPoints == 0) fPoints = new TObjArray(nAllDigits);   
        Int_t counter=0;
-       for (ich=0; ich<kNCH; ich++) {
-        TClonesArray *pRICHdigits  = pRICH->DigitsAddress(ich);
+       for (ich=1; ich<=kNCH; ich++) {
+        TClonesArray *pRICHdigits  = pRICH->Digits(ich);
         if (pRICHdigits == 0) continue;
         gAlice->ResetDigits();
         gAlice->TreeD()->GetEvent(0);
         Int_t ndigits = pRICHdigits->GetEntriesFast();
         if (ndigits == 0) continue;
-        iChamber = &(pRICH->Chamber(ich));
-        segmentation=iChamber->GetSegmentationModel();
-        Float_t dpx  = segmentation->Dpx();
-        Float_t dpy  = segmentation->Dpy();
+        iChamber = pRICH->C(ich);
+        Float_t dpx  = AliRICHParam::PadSizeX();
+        Float_t dpy  = AliRICHParam::PadSizeY();
         
-        //printf("Dpx:%d, Dpy:%d\n",dpx,dpy);
         
-        AliRICHDigit  *mdig;
+        AliRICHdigit  *mdig;
         AliRICHPoints *points = 0;
         TMarker3DBox  *marker = 0;
         //
@@ -843,11 +780,11 @@ void AliRICHDisplay::LoadDigits()
         Int_t npoints=1;
         
         for (Int_t digit=0;digit<ndigits;digit++) {
-          mdig    = (AliRICHDigit*)pRICHdigits->UncheckedAt(digit);
+          mdig    = (AliRICHdigit*)pRICHdigits->UncheckedAt(digit);
           points = new AliRICHPoints(npoints);
           fPoints->AddAt(points,counter);
           counter++;
-          Int_t charge=mdig->Signal();
+          Int_t charge=(Int_t)mdig->Q();
           Int_t index=Int_t(TMath::Log(charge)/(TMath::Log(kadc_satm)/22));
           Int_t color=701+index;
           if (color>722) color=722;
@@ -855,7 +792,7 @@ void AliRICHDisplay::LoadDigits()
           points->SetMarkerStyle(21);
           points->SetMarkerSize(0.5);
           Float_t xpad, ypad, zpad;
-          segmentation->GetPadC(mdig->PadX(), mdig->PadY(),xpad, ypad, zpad);
+          segmentation->GetPadC(mdig->X(), mdig->Y(),xpad, ypad, zpad);
           Float_t vectorLoc[3]={xpad,5,ypad};
           Float_t  vectorGlob[3];
           iChamber->LocaltoGlobal(vectorLoc,vectorGlob);
@@ -866,7 +803,7 @@ void AliRICHDisplay::LoadDigits()
           points->SetPoint(0,vectorGlob[0],vectorGlob[1],vectorGlob[2]);
           //printf("Y position (digit): %f\n", vectorGlob[1]);
           
-          segmentation->GetPadC(mdig->PadX(), mdig->PadY(), xpad, ypad, zpad);
+          segmentation->GetPadC(mdig->X(), mdig->Y(), xpad, ypad, zpad);
           Float_t theta = iChamber->GetRotMatrix()->GetTheta();
           Float_t phi   = iChamber->GetRotMatrix()->GetPhi();     
           marker=new TMarker3DBox(vectorGlob[0],vectorGlob[1],vectorGlob[2],
@@ -879,10 +816,8 @@ void AliRICHDisplay::LoadDigits()
         } // loop over digits
        } // loop over chambers 
      } //if TreeD
-}
-
-
-//___________________________________________
+}//LoadDigits();
+//__________________________________________________________________________________________________
 void AliRICHDisplay::LoadHits(Int_t chamber)
 {
 // Read hits info and store x,y,z info in arrays fPhits
@@ -895,7 +830,7 @@ void AliRICHDisplay::LoadHits(Int_t chamber)
     AliRICH *pRICH  = (AliRICH*)gAlice->GetDetector("RICH");
     AliRICHChamber*  iChamber;
     
-    iChamber = &(pRICH->Chamber(chamber-1));
+    iChamber = pRICH->C(chamber-1);
     Int_t ntracks = (Int_t)pRICH->TreeH()->GetEntries();
     Int_t track;
     
@@ -949,73 +884,13 @@ void AliRICHDisplay::LoadHits(Int_t chamber)
            npoints++;
        }
     }
-}
-
-//_____________________________________________________________________________
-
+}//LoadHits()
+//__________________________________________________________________________________________________
 void AliRICHDisplay::LoadCerenkovs(Int_t chamber)
 {
 // Read cerenkov hits info and store x,y,z info in array fPCerenkovs
 // Loop on all detectors
-    
-    fChamber=chamber; 
-    ResetPCerenkovs();
-    
-    AliRICH *pRICH  = (AliRICH*)gAlice->GetDetector("RICH");
-    AliRICHChamber*  iChamber;
-    
-    iChamber = &(pRICH->Chamber(chamber-1));
-    
-    pRICH->SetTreeAddress();
-    Int_t ntracks = (Int_t)pRICH->TreeH()->GetEntries();
-    
-    if (fPCerenkovs == 0) fPCerenkovs = new TObjArray(ntracks);
-    TVector *xp = new TVector(1000);
-    TVector *yp = new TVector(1000);
-    TVector *zp = new TVector(1000);
-    TVector *ptrk = new TVector(1000);
-    TVector *phit = new TVector(1000);
-    for (Int_t track=0; track<ntracks;track++) {
-       gAlice->ResetHits();
-       pRICH->TreeH()->GetEvent(track);
-       TClonesArray *pRICHCerenkovs  = pRICH->Cerenkovs();
-       if (pRICHCerenkovs == 0) return;
-       Int_t nhits = pRICHCerenkovs->GetEntriesFast();
-       if (nhits == 0) continue;
-       AliRICHCerenkov *mCerenkov;
-       AliRICHPoints *cpoints = 0;
-       Int_t npoints=0;
-       
-       
-//Display Cerenkov hits in blue
-       
-       for (Int_t hit=0;hit<nhits;hit++) {
-            mCerenkov = (AliRICHCerenkov*)pRICHCerenkovs->UncheckedAt(hit);
-           (*xp)(npoints)=mCerenkov->X();
-            (*yp)(npoints)=mCerenkov->Y();
-            (*zp)(npoints)=mCerenkov->Z();
-            (*ptrk)(npoints)=Float_t(mCerenkov->GetTrack());
-            (*phit)(npoints)=Float_t(hit);
-            npoints++;
-       }
-       if (npoints == 0) continue;
-       cpoints = new AliRICHPoints(npoints);
-       for (Int_t p=0;p<npoints;p++) {
-           cpoints->SetMarkerColor(kBlue);
-           cpoints->SetMarkerStyle(5);
-           cpoints->SetMarkerSize(1.);
-           cpoints->SetParticle(Int_t((*ptrk)(p)));
-           cpoints->SetHitIndex(Int_t((*phit)(p)));
-           cpoints->SetTrackIndex(track);
-           cpoints->SetDigitIndex(-1);
-           cpoints->SetPoint(p,(*xp)(p),(*yp)(p),(*zp)(p));
-       }
-       xp->Zero();
-       yp->Zero();
-       ptrk->Zero();
-       phit->Zero();
-       fPCerenkovs->AddAt(cpoints,track);
-    }
+  chamber++;    
 }
 
 //_____________________________________________________________________________