]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONDisplay.cxx
Initialize fSepctrum = 0 in ctors
[u/mrichter/AliRoot.git] / MUON / AliMUONDisplay.cxx
index 421029394dc1b632c30b44ae1187feb7def083f0..089e1f83e2980ef05f5d085a64d37e31f39f3de5 100644 (file)
 
 /*
 $Log$
+Revision 1.7  2000/10/02 21:28:09  fca
+Removal of useless dependecies via forward declarations
+
+Revision 1.6  2000/07/03 11:54:57  morsch
+AliMUONSegmentation and AliMUONHitMap have been replaced by AliSegmentation and AliHitMap in STEER
+The methods GetPadIxy and GetPadXxy of AliMUONSegmentation have changed name to GetPadI and GetPadC.
+
+Revision 1.5  2000/06/28 15:16:35  morsch
+(1) Client code adapted to new method signatures in AliMUONSegmentation (see comments there)
+to allow development of slat-muon chamber simulation and reconstruction code in the MUON
+framework. The changes should have no side effects (mostly dummy arguments).
+(2) Hit disintegration uses 3-dim hit coordinates to allow simulation
+of chambers with overlapping modules (MakePadHits, Disintegration).
+
+Revision 1.4  2000/06/27 09:46:57  morsch
+kMAXZOOM global constant now in AliMUONConstants
+
 Revision 1.3  2000/06/26 14:02:38  morsch
 Add class AliMUONConstants with MUON specific constants using static memeber data and access methods.
 
@@ -109,6 +126,7 @@ it is now really the Z position of the chambers.
 #include <TVirtualX.h>
 #include <TMath.h>
 #include <TMatrix.h>
+#include <TGeometry.h>
 #include <X3DBuffer.h>
 #include <TMarker3DBox.h>
 
@@ -125,7 +143,7 @@ it is now really the Z position of the chambers.
 #include "AliMUONDigit.h"
 #include "AliMUONRawCluster.h"
 
-#include "AliMUONSegmentation.h"
+#include "AliSegmentation.h"
 #include "AliMUONResponse.h"
 #include "AliMUONChamber.h"
 #include "AliMUONConstants.h"
@@ -556,8 +574,8 @@ void AliMUONDisplay::DrawSegmentation()
     Int_t icat=1;
     
     AliMUON *pMUON  = (AliMUON*)gAlice->GetModule("MUON");
-    AliMUONChamber*  iChamber;
-    AliMUONSegmentation*  seg;
+    AliMUONChamber*   iChamber;
+    AliSegmentation*  seg;
     iChamber = &(pMUON->Chamber(fChamber));
     seg=iChamber->SegmentationModel(icat);
     Float_t zpos=iChamber->Z();
@@ -568,13 +586,13 @@ void AliMUONDisplay::DrawSegmentation()
        for (Int_t j=0; j<seg->Npy(); j++) {
            Float_t y0;
            y0=j*seg->Dpy()-seg->Dpy()/2.;
-           for (seg->FirstPad(0.,y0,300,0.); 
+           for (seg->FirstPad(0.,y0,0,300,0.); 
                 seg->MorePads();
                 seg->NextPad())
            {
                if (seg->ISector()==0) continue;
-               Float_t x,y;
-               seg->GetPadCxy(seg->Ix(), seg->Iy(), x, y);
+               Float_t x,y,z;
+               seg->GetPadC(seg->Ix(), seg->Iy(), x, y, z);
                Float_t dpx=seg->Dpx(seg->ISector())/2;
                Float_t dpy=seg->Dpy(seg->ISector())/2;
                marker=new TMarker3DBox(x,y,zpos,dpx,dpy,0,0,0);
@@ -589,14 +607,14 @@ void AliMUONDisplay::DrawSegmentation()
            Float_t x0=j*seg->Dpx();
            Float_t y0=TMath::Sqrt(r*r-x0*x0);
            
-           for (seg->FirstPad(x0,0,0,y0); 
+           for (seg->FirstPad(x0,0,0,0,y0); 
                 seg->MorePads();
                 seg->NextPad())
            {
                if (seg->ISector()==0) continue;
                
-               Float_t x,y;
-               seg->GetPadCxy(seg->Ix(), seg->Iy(), x, y);
+               Float_t x,y,z;
+               seg->GetPadC(seg->Ix(), seg->Iy(), x, y, z);
                Float_t dpx=seg->Dpx(seg->ISector())/2;
                Float_t dpy=seg->Dpy(seg->ISector())/2;
                marker=new TMarker3DBox(x,y,zpos,dpx,dpy,0,0,0);
@@ -880,7 +898,7 @@ void AliMUONDisplay::LoadDigits(Int_t chamber, Int_t cathode)
     
     AliMUON *pMUON  = (AliMUON*)gAlice->GetModule("MUON");
     AliMUONChamber*       iChamber;
-    AliMUONSegmentation*  segmentation;
+    AliSegmentation*      segmentation;
     AliMUONResponse*      response;
 
     TClonesArray *muonDigits  = pMUON->DigitsAddress(chamber-1);
@@ -934,8 +952,8 @@ void AliMUONDisplay::LoadDigits(Int_t chamber, Int_t cathode)
        }
 
        // get the center of the pad - add on x and y half of pad size
-       Float_t xpad, ypad;
-       segmentation->GetPadCxy(mdig->fPadX, mdig->fPadY,xpad, ypad);
+       Float_t xpad, ypad, zpad;
+       segmentation->GetPadC(mdig->fPadX, mdig->fPadY,xpad, ypad, zpad);
        
         Int_t isec=segmentation->Sector(mdig->fPadX, mdig->fPadY);
         Float_t dpx=segmentation->Dpx(isec)/2;
@@ -962,9 +980,10 @@ void AliMUONDisplay::LoadDigits(Int_t chamber, Int_t cathode)
         points->SetPoint(0,xpad,ypad,zpos);    
        for (Int_t imark=0;imark<nPara; imark++)
        {
-           segmentation->GetPadCxy(mdig->fPadX + imark*offset, mdig->fPadY,xpad, ypad);
+           Int_t lineColor = (zpad-zpos > 0) ? 2:3;
+           segmentation->GetPadC(mdig->fPadX + imark*offset, mdig->fPadY,xpad, ypad, zpad);
            marker=new TMarker3DBox(xpad,ypad,zpos,dpx,dpy,0,0,0);
-           marker->SetLineColor(2);
+           marker->SetLineColor(lineColor);
            marker->SetFillStyle(1001);
            marker->SetFillColor(color);
            marker->SetRefObject((TObject*)points);
@@ -1113,11 +1132,11 @@ void AliMUONDisplay::LoadHits(Int_t chamber)
             points->SetMarkerColor(kRed);
             points->SetMarkerStyle(5);
             points->SetMarkerSize(1.);
-            points->SetParticle(mHit->fTrack);
+            points->SetParticle(mHit->Track());
             points->SetHitIndex(hit);
             points->SetTrackIndex(track);
             points->SetDigitIndex(-1);
-           points->SetPoint(0,mHit->fX,mHit->fY,zpos);
+           points->SetPoint(0,mHit->X(),mHit->Y(),zpos);
        }
        nhold+=nhits;
     }