AliMUONSegmentation and AliMUONHitMap have been replaced by AliSegmentation and AliHi...
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 3 Jul 2000 11:54:57 +0000 (11:54 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 3 Jul 2000 11:54:57 +0000 (11:54 +0000)
The methods GetPadIxy and GetPadXxy of AliMUONSegmentation have changed name to GetPadI and GetPadC.

33 files changed:
MUON/AliMUON.cxx
MUON/AliMUON.h
MUON/AliMUONChamber.cxx
MUON/AliMUONChamber.h
MUON/AliMUONChamberTrigger.cxx
MUON/AliMUONClusterFinderVS.cxx
MUON/AliMUONClusterFinderVS.h
MUON/AliMUONClusterInput.cxx
MUON/AliMUONClusterInput.h
MUON/AliMUONDisplay.cxx
MUON/AliMUONHitMapA1.cxx
MUON/AliMUONHitMapA1.h
MUON/AliMUONPoints.cxx
MUON/AliMUONResponse.h
MUON/AliMUONResponseTrigger.cxx
MUON/AliMUONResponseTrigger.h
MUON/AliMUONResponseV0.cxx
MUON/AliMUONResponseV0.h
MUON/AliMUONSegmentationTriggerX.cxx
MUON/AliMUONSegmentationTriggerX.h
MUON/AliMUONSegmentationTriggerY.cxx
MUON/AliMUONSegmentationTriggerY.h
MUON/AliMUONSegmentationV0.cxx
MUON/AliMUONSegmentationV0.h
MUON/AliMUONSegmentationV01.cxx
MUON/AliMUONSegmentationV01.h
MUON/AliMUONSegmentationV02.cxx
MUON/AliMUONSegmentationV02.h
MUON/AliMUONSegmentationV1.cxx
MUON/AliMUONSegmentationV1.h
MUON/AliMUONTriggerCircuit.cxx
MUON/AliMUONTriggerCircuit.h
MUON/AliMUONTriggerDecision.cxx

index 6db0605..d60b278 100644 (file)
  **************************************************************************/
 /*
 $Log$
+Revision 1.25  2000/06/29 12:34:09  morsch
+AliMUONSegmentation class has been made independent of AliMUONChamber. This makes
+it usable with any other geometry class. The link to the object to which it belongs is
+established via an index. This assumes that there exists a global geometry manager
+from which the pointer to the parent object can be obtained (in our case gAlice).
+
 Revision 1.24  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
@@ -138,7 +144,7 @@ Log message added
 #include "AliMUONRawCluster.h"
 #include "AliMUONLocalTrigger.h"
 #include "AliMUONGlobalTrigger.h"
-#include "AliMUONHitMap.h"
+#include "AliHitMap.h"
 #include "AliMUONHitMapA1.h"
 #include "AliMUONChamberTrigger.h"
 #include "AliMUONConstants.h"
@@ -796,7 +802,7 @@ void AliMUON::SetMuonAcc(Bool_t acc, Float_t angmin, Float_t angmax)
    fAccMax=angmax;
 }
 //___________________________________________
-void   AliMUON::SetSegmentationModel(Int_t id, Int_t isec, AliMUONSegmentation *segmentation)
+void   AliMUON::SetSegmentationModel(Int_t id, Int_t isec, AliSegmentation *segmentation)
 {
     ((AliMUONChamber*) (*fChambers)[id])->SetSegmentationModel(isec, segmentation);
 
@@ -880,8 +886,8 @@ void AliMUON::Digitise(Int_t nev,Int_t bgrEvent,Option_t *option,Option_t *opt,T
     char *addBackground = strstr(option,"Add");
 
 
-    AliMUONChamber*  iChamber;
-    AliMUONSegmentation*  segmentation;
+    AliMUONChamber*   iChamber;
+    AliSegmentation*  segmentation;
 
     
     Int_t trk[50];
@@ -892,7 +898,7 @@ void AliMUON::Digitise(Int_t nev,Int_t bgrEvent,Option_t *option,Option_t *opt,T
     Int_t digits[5]; 
 
     AliMUON *pMUON  = (AliMUON *) gAlice->GetModule("MUON");
-    AliMUONHitMap** hitMap= new AliMUONHitMap* [AliMUONConstants::NCh()];
+    AliHitMap** hitMap= new AliHitMap* [AliMUONConstants::NCh()];
     for (Int_t i=0; i<AliMUONConstants::NCh(); i++) {hitMap[i]=0;}
     if (addBackground ) {
        if(first) {
@@ -939,7 +945,7 @@ void AliMUON::Digitise(Int_t nev,Int_t bgrEvent,Option_t *option,Option_t *opt,T
     //
     // loop over cathodes
     //
-    AliMUONHitMap* hm;
+    AliHitMap* hm;
     Int_t countadr=0;
     for (int icat=0; icat<2; icat++) { 
        Int_t counter=0;
@@ -1013,7 +1019,7 @@ void AliMUON::Digitise(Int_t nev,Int_t bgrEvent,Option_t *option,Option_t *opt,T
                    // fill the info array
                    Float_t thex, they, thez;
                    segmentation=iChamber->SegmentationModel(cathode);
-                   segmentation->GetPadCxy(ipx,ipy,thex,they,thez);
+                   segmentation->GetPadC(ipx,ipy,thex,they,thez);
 //                 Float_t rpad=TMath::Sqrt(thex*thex+they*they);
 //                 if (rpad < rmin || iqpad ==0 || rpad > rmax) continue;
 
@@ -1131,7 +1137,7 @@ void AliMUON::Digitise(Int_t nev,Int_t bgrEvent,Option_t *option,Option_t *opt,T
                        if (cathode != (icat+1)) continue;
                        Float_t thex, they, thez;
                        segmentation=iChamber->SegmentationModel(cathode);
-                       segmentation->GetPadCxy(ipx,ipy,thex,they,thez);
+                       segmentation->GetPadC(ipx,ipy,thex,they,thez);
                        Float_t rpad=TMath::Sqrt(thex*thex+they*they);
                        if (rpad < rmin || iqpad ==0 || rpad > rmax) continue;
                        new((*pAddress)[countadr++]) TVector(2);
@@ -1457,12 +1463,12 @@ void AliMUON::FindClusters(Int_t nev,Int_t lastEntry)
 void AliMUON::Streamer(TBuffer &R__b)
 {
    // Stream an object of class AliMUON.
-      AliMUONChamber       *iChamber;
+      AliMUONChamber        *iChamber;
       AliMUONTriggerCircuit *iTriggerCircuit;
-      AliMUONSegmentation  *segmentation;
-      AliMUONResponse      *response;
-      TClonesArray         *digitsaddress;
-      TClonesArray         *rawcladdress;
+      AliSegmentation       *segmentation;
+      AliMUONResponse       *response;
+      TClonesArray          *digitsaddress;
+      TClonesArray          *rawcladdress;
       Int_t i;
       if (R__b.IsReading()) {
          Version_t R__v = R__b.ReadVersion(); if (R__v) { }
index 3e30dee..1e02a88 100644 (file)
@@ -16,7 +16,7 @@ class AliMUONLocalTrigger;
 class AliMUONGlobalTrigger;
 class AliMUONTriggerCircuit;
 class AliMUONTriggerDecision;
-class AliMUONSegmentation;
+class AliSegmentation;
 class AliMUONResponse;
 class AliMUONHit;
 class AliMUONPadHit;
@@ -77,7 +77,7 @@ class AliMUON : public  AliDetector {
     virtual void   SetMaxAdc(Int_t id, Int_t p1);
 // Set Segmentation and Response Model
     virtual void   SetSegmentationModel(Int_t id, Int_t isec,
-                                       AliMUONSegmentation *segmentation);
+                                       AliSegmentation *segmentation);
     virtual void   SetResponseModel(Int_t id, AliMUONResponse *response);
     virtual void   SetNsec(Int_t id, Int_t nsec);
 // Set Reconstruction Model
index 9a18dfe..805c2b4 100644 (file)
  **************************************************************************/
 /*
 $Log$
+Revision 1.4  2000/06/29 12:34:09  morsch
+AliMUONSegmentation class has been made independent of AliMUONChamber. This makes
+it usable with any other geometry class. The link to the object to which it belongs is
+established via an index. This assumes that there exists a global geometry manager
+from which the pointer to the parent object can be obtained (in our case gAlice).
+
 Revision 1.3  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
@@ -35,7 +41,6 @@ Log messages included
 */
 
 #include "AliMUONChamber.h"
-#include "AliMUONSegmentation.h"
 #include "AliMUONResponse.h"
 
 #include "TMath.h"
@@ -84,11 +89,11 @@ void AliMUONChamber::Init()
 //
 // ... for chamber segmentation
     if ((*fSegmentation)[0]) 
-    ((AliMUONSegmentation *) (*fSegmentation)[0])->Init(fId);
+    ((AliSegmentation *) (*fSegmentation)[0])->Init(fId);
 
     if (fnsec==2) {
        if ((*fSegmentation)[1])
-       ((AliMUONSegmentation *) (*fSegmentation)[1])->Init(fId);
+       ((AliSegmentation *) (*fSegmentation)[1])->Init(fId);
     }
 }
 
@@ -96,12 +101,12 @@ Int_t   AliMUONChamber::SigGenCond(Float_t x, Float_t y, Float_t z)
 {
 // Ask segmentation if signal should be generated 
     if (fnsec==1) {
-       return ((AliMUONSegmentation*) (*fSegmentation)[0])
+       return ((AliSegmentation*) (*fSegmentation)[0])
            ->SigGenCond(x, y, z) ;
     } else {
-       return (((AliMUONSegmentation*) (*fSegmentation)[0])
+       return (((AliSegmentation*) (*fSegmentation)[0])
                ->SigGenCond(x, y, z)) ||
-           (((AliMUONSegmentation*) (*fSegmentation)[1])
+           (((AliSegmentation*) (*fSegmentation)[1])
             ->SigGenCond(x, y, z)) ;
     }
 }
@@ -113,10 +118,10 @@ void    AliMUONChamber::SigGenInit(Float_t x, Float_t y, Float_t z)
 // Initialisation of segmentation for hit
 //  
     if (fnsec==1) {
-       ((AliMUONSegmentation*) (*fSegmentation)[0])->SigGenInit(x, y, z) ;
+       ((AliSegmentation*) (*fSegmentation)[0])->SigGenInit(x, y, z) ;
     } else {
-       ((AliMUONSegmentation*) (*fSegmentation)[0])->SigGenInit(x, y, z) ;
-       ((AliMUONSegmentation*) (*fSegmentation)[1])->SigGenInit(x, y, z) ;
+       ((AliSegmentation*) (*fSegmentation)[0])->SigGenInit(x, y, z) ;
+       ((AliSegmentation*) (*fSegmentation)[1])->SigGenInit(x, y, z) ;
     }
 }
 
@@ -143,8 +148,8 @@ void AliMUONChamber::DisIntegration(Float_t eloss, Float_t tof,
     nnew=0;
     for (Int_t i=1; i<=fnsec; i++) {
        qcheck=0;
-       AliMUONSegmentation * segmentation=
-           (AliMUONSegmentation *) (*fSegmentation)[i-1];
+       AliSegmentation * segmentation=
+           (AliSegmentation *) (*fSegmentation)[i-1];
        for (segmentation->FirstPad(xhit, yhit, zhit, dx, dy); 
             segmentation->MorePads(); 
             segmentation->NextPad()) 
index 0ecb647..147dbe8 100644 (file)
@@ -6,12 +6,12 @@
 /* $Id$ */
 
 #include "TObjArray.h"
-#include "AliMUONSegmentation.h"
+#include "AliSegmentation.h"
 #include "AliMUONResponse.h"
 
 class AliMUONClusterFinderVS;
 //class AliMUONResponse ;
-//class AliMUONSegmentation ;
+//class AliSegmentation ;
 
 class AliMUONChamber:
 public TObject
@@ -48,7 +48,7 @@ public TObject
   virtual void    SetResponseModel(AliMUONResponse* thisResponse) {fResponse=thisResponse;}
 //  
 // Set segmentation model
-  virtual void    SetSegmentationModel(Int_t i, AliMUONSegmentation* thisSegmentation) {
+  virtual void    SetSegmentationModel(Int_t i, AliSegmentation* thisSegmentation) {
       (*fSegmentation)[i-1] = thisSegmentation;
   }
 // Set Cluster reconstruction model  
@@ -60,8 +60,8 @@ public TObject
   virtual AliMUONResponse* &ResponseModel(){return fResponse;}
 //  
 //  Get reference to segmentation model
-  virtual AliMUONSegmentation*  SegmentationModel(Int_t isec) {
-      return (AliMUONSegmentation *) (*fSegmentation)[isec-1];
+  virtual AliSegmentation*  SegmentationModel(Int_t isec) {
+      return (AliSegmentation *) (*fSegmentation)[isec-1];
   }
   virtual TObjArray* ChamberSegmentation() {return fSegmentation;}
 //  Get pointer to cluster reconstruction model
@@ -95,7 +95,7 @@ public TObject
   virtual void   SetMaxAdc(Int_t p1)                   {fResponse->SetMaxAdc(p1);}
 // Set Pad size
   virtual void   SetPadSize(Int_t isec, Float_t p1, Float_t p2) {
-      ((AliMUONSegmentation*) (*fSegmentation)[isec-1])->SetPadSize(p1,p2);
+      ((AliSegmentation*) (*fSegmentation)[isec-1])->SetPadSize(p1,p2);
   }
 //  
 // Cluster formation method (charge disintegration)
index 4643c03..6eff4f5 100644 (file)
 
 /*
 $Log$
+Revision 1.5  2000/06/29 12:34:09  morsch
+AliMUONSegmentation class has been made independent of AliMUONChamber. This makes
+it usable with any other geometry class. The link to the object to which it belongs is
+established via an index. This assumes that there exists a global geometry manager
+from which the pointer to the parent object can be obtained (in our case gAlice).
+
 Revision 1.4  2000/06/29 06:52:02  pcrochet
 pow changed to TMath::Power
 
@@ -84,13 +90,13 @@ void AliMUONChamberTrigger::DisIntegration(Float_t eloss, Float_t tof,
   Float_t qp;
   nnew=0;
   for (Int_t i=1; i<=fnsec; i++) {
-    AliMUONSegmentation * segmentation=
-      (AliMUONSegmentation*) (*fSegmentation)[i-1];
+    AliSegmentation * segmentation=
+      (AliSegmentation*) (*fSegmentation)[i-1];
     
 // Find the module & strip Id. which has fired
     Int_t ix,iy;
     
-    segmentation->GetPadIxy(xhit,yhit,0,ix,iy);
+    segmentation->GetPadI(xhit,yhit,0,ix,iy);
     segmentation->SetPad(ix,iy);
 
 // treatment of GEANT hits w/o corresponding strip (due to the fact that
@@ -116,7 +122,7 @@ void AliMUONChamberTrigger::DisIntegration(Float_t eloss, Float_t tof,
        
        // neighbour real coordinates (just for checks here)
        Float_t x,y,z;
-       segmentation->GetPadCxy(xList[j],yList[j],x,y,z);
+       segmentation->GetPadC(xList[j],yList[j],x,y,z);
        // set pad (fx fy & fix fiy are the current pad coord. & Id.)
        segmentation->SetPad(xList[j],yList[j]);
        // get the chamber (i.e. current strip) response
index 424137f..d0fb7f0 100644 (file)
  **************************************************************************/
 /*
 $Log$
+Revision 1.7  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.6  2000/06/28 12:19:18  morsch
 More consequent seperation of global input data services (AliMUONClusterInput singleton) and the
 cluster and hit reconstruction algorithms in AliMUONClusterFinderVS.
@@ -60,9 +67,8 @@ Revised and extended SplitByLocalMaxima method (Isabelle Chevrot):
 #include "AliMUONClusterFinderVS.h"
 #include "AliMUONDigit.h"
 #include "AliMUONRawCluster.h"
-#include "AliMUONSegmentation.h"
+#include "AliSegmentation.h"
 #include "AliMUONResponse.h"
-#include "AliMUONHitMap.h"
 #include "AliMUONHitMapA1.h"
 #include "AliRun.h"
 #include "AliMUON.h"
@@ -138,7 +144,7 @@ void AliMUONClusterFinderVS::SplitByLocalMaxima(AliMUONRawCluster *c)
            fQ[i][cath] = fDig[i][cath]->fSignal;
            // pad centre coordinates
            fInput->Segmentation(cath)->
-               GetPadCxy(fIx[i][cath], fIy[i][cath], fX[i][cath], fY[i][cath], zdum);
+               GetPadC(fIx[i][cath], fIy[i][cath], fX[i][cath], fY[i][cath], zdum);
        } // loop over cluster digits
     }  // loop over cathodes
 
@@ -895,7 +901,7 @@ void AliMUONClusterFinderVS::FindLocalMaxima(AliMUONRawCluster* c)
 // get neighbours for that digit and assume that it is local maximum       
            isLocal[i][cath]=kTRUE;
 // compare signal to that on the two neighbours on the left and on the right
-           fInput->Segmentation(cath)->GetPadIxy(fX[i][cath],fY[i][cath]+dpy,0,ix,iy);
+           fInput->Segmentation(cath)->GetPadI(fX[i][cath],fY[i][cath]+dpy,0,ix,iy);
 // iNN counts the number of neighbours with signal, it should be 1 or 2
            Int_t iNN=0;
            if (fHitMap[cath]->TestHit(ix, iy)!=kEmpty) {
@@ -903,7 +909,7 @@ void AliMUONClusterFinderVS::FindLocalMaxima(AliMUONRawCluster* c)
                digt=(AliMUONDigit*) fHitMap[cath]->GetHit(ix,iy);
                if (digt->fSignal > fQ[i][cath]) isLocal[i][cath]=kFALSE;
            }
-           fInput->Segmentation(cath)->GetPadIxy(fX[i][cath],fY[i][cath]-dpy,0,ix,iy);
+           fInput->Segmentation(cath)->GetPadI(fX[i][cath],fY[i][cath]-dpy,0,ix,iy);
            if (fHitMap[cath]->TestHit(ix, iy)!=kEmpty) {
                iNN++;
                digt=(AliMUONDigit*) fHitMap[cath]->GetHit(ix,iy);
@@ -948,7 +954,7 @@ void AliMUONClusterFinderVS::FindLocalMaxima(AliMUONRawCluster* c)
 // get neighbours for that digit and assume that it is local maximum       
            isLocal[i][cath]=kTRUE;
 // compare signal to that on the two neighbours on the left and on the right
-           fInput->Segmentation(cath)->GetPadIxy(fX[i][cath]+dpx,fY[i][cath],0,ix,iy);
+           fInput->Segmentation(cath)->GetPadI(fX[i][cath]+dpx,fY[i][cath],0,ix,iy);
 // iNN counts the number of neighbours with signal, it should be 1 or 2
            Int_t iNN=0;
            if (fHitMap[cath]->TestHit(ix, iy)!=kEmpty) {
@@ -956,7 +962,7 @@ void AliMUONClusterFinderVS::FindLocalMaxima(AliMUONRawCluster* c)
                digt=(AliMUONDigit*) fHitMap[cath]->GetHit(ix,iy);
                if (digt->fSignal > fQ[i][cath]) isLocal[i][cath]=kFALSE;
            }
-           fInput->Segmentation(cath)->GetPadIxy(fX[i][cath]-dpx,fY[i][cath],0,ix,iy);
+           fInput->Segmentation(cath)->GetPadI(fX[i][cath]-dpx,fY[i][cath],0,ix,iy);
            if (fHitMap[cath]->TestHit(ix, iy)!=kEmpty) {
                iNN++;
                digt=(AliMUONDigit*) fHitMap[cath]->GetHit(ix,iy);
@@ -1031,7 +1037,7 @@ void  AliMUONClusterFinderVS::FillCluster(AliMUONRawCluster* c, Int_t flag, Int_
        }
 //
        if (flag) {
-           fInput->Segmentation(cath)->GetPadCxy(ix, iy, x, y, z);
+           fInput->Segmentation(cath)->GetPadC(ix, iy, x, y, z);
            c->fX[cath] += q*x;
            c->fY[cath] += q*y;
            c->fQ[cath] += q;
@@ -1049,8 +1055,8 @@ void  AliMUONClusterFinderVS::FillCluster(AliMUONRawCluster* c, Int_t flag, Int_
 //
        x=c->fX[cath];   
        y=c->fY[cath];
-       fInput->Segmentation(cath)->GetPadIxy(x, y, 0, ix, iy);
-       fInput->Segmentation(cath)->GetPadCxy(ix, iy, x, y, z);
+       fInput->Segmentation(cath)->GetPadI(x, y, 0, ix, iy);
+       fInput->Segmentation(cath)->GetPadC(ix, iy, x, y, z);
        Int_t isec=fInput->Segmentation(cath)->Sector(ix,iy);
        TF1* cogCorr = fInput->Segmentation(cath)->CorrFunc(isec-1);
        
@@ -1081,7 +1087,7 @@ void  AliMUONClusterFinderVS::FillCluster(AliMUONRawCluster* c, Int_t cath)
     {
        dig = fInput->Digit(cath,c->fIndexMap[i][cath]);
        fInput->Segmentation(cath)->
-       GetPadCxy(dig->fPadX,dig->fPadY,xpad,ypad, zpad);
+       GetPadC(dig->fPadX,dig->fPadY,xpad,ypad, zpad);
        fprintf(stderr,"x %f y %f cx %f cy %f\n",xpad,ypad,c->fX[0],c->fY[0]);
        dx = xpad - c->fX[0];
        dy = ypad - c->fY[0];
@@ -1164,7 +1170,7 @@ void  AliMUONClusterFinderVS::FindCluster(Int_t i, Int_t j, Int_t cath, AliMUONR
 
 // Prepare center of gravity calculation
     Float_t x, y, z;
-    fInput->Segmentation(cath)->GetPadCxy(i, j, x, y, z);
+    fInput->Segmentation(cath)->GetPadC(i, j, x, y, z);
            
     c.fX[cath] += q*x;
     c.fY[cath] += q*y;
@@ -1196,7 +1202,7 @@ void  AliMUONClusterFinderVS::FindCluster(Int_t i, Int_t j, Int_t cath, AliMUONR
        xc=xmin+.001;
        while (xc < xmax) {
            xc+=fInput->Segmentation(iop)->Dpx(isec);
-           fInput->Segmentation(iop)->GetPadIxy(xc,y,0,ix,iy);
+           fInput->Segmentation(iop)->GetPadI(xc,y,0,ix,iy);
            if (ix>=(fInput->Segmentation(iop)->Npx()) || (iy>=fInput->Segmentation(iop)->Npy())) continue;
            if (fHitMap[iop]->TestHit(ix,iy)==kUnused) FindCluster(ix, iy, iop, c);
        }
@@ -1207,7 +1213,7 @@ void  AliMUONClusterFinderVS::FindCluster(Int_t i, Int_t j, Int_t cath, AliMUONR
        yc=ymin+.001;
        while (yc < ymax) {
            yc+=fInput->Segmentation(iop)->Dpy(isec);
-           fInput->Segmentation(iop)->GetPadIxy(x,yc,0,ix,iy);
+           fInput->Segmentation(iop)->GetPadI(x,yc,0,ix,iy);
            if (ix>=(fInput->Segmentation(iop)->Npx()) || (iy>=fInput->Segmentation(iop)->Npy())) continue;
            if (fHitMap[iop]->TestHit(ix,iy)==kUnused) FindCluster(ix, iy, iop, c);
        }
@@ -1330,7 +1336,7 @@ Float_t AliMUONClusterFinderVS::SingleMathiesonFit(AliMUONRawCluster *c, Int_t c
 // lower and upper limits
     static Double_t lower[2], upper[2];
     Int_t ix,iy;
-    fInput->Segmentation(cath)->GetPadIxy(c->fX[cath], c->fY[cath], 0, ix, iy);
+    fInput->Segmentation(cath)->GetPadI(c->fX[cath], c->fY[cath], 0, ix, iy);
     Int_t isec=fInput->Segmentation(cath)->Sector(ix, iy);
     lower[0]=vstart[0]-fInput->Segmentation(cath)->Dpx(isec)/2;
     lower[1]=vstart[1]-fInput->Segmentation(cath)->Dpy(isec)/2;
@@ -1389,10 +1395,10 @@ Float_t AliMUONClusterFinderVS::CombiSingleMathiesonFit(AliMUONRawCluster *c)
 // lower and upper limits
     static Double_t lower[2], upper[2];
     Int_t ix,iy,isec;
-    fInput->Segmentation(0)->GetPadIxy(fXInit[0], fYInit[0], 0, ix, iy);
+    fInput->Segmentation(0)->GetPadI(fXInit[0], fYInit[0], 0, ix, iy);
     isec=fInput->Segmentation(0)->Sector(ix, iy);
     Float_t dpy=fInput->Segmentation(0)->Dpy(isec)/2;
-    fInput->Segmentation(1)->GetPadIxy(fXInit[0], fYInit[0], 0, ix, iy);
+    fInput->Segmentation(1)->GetPadI(fXInit[0], fYInit[0], 0, ix, iy);
     isec=fInput->Segmentation(1)->Sector(ix, iy);
     Float_t dpx=fInput->Segmentation(1)->Dpx(isec)/2;
 
@@ -1532,11 +1538,11 @@ Float_t AliMUONClusterFinderVS::CombiDoubleMathiesonFit(AliMUONRawCluster *c)
     Int_t ix,iy,isec;
     Float_t dpx, dpy;
     
-    fInput->Segmentation(1)->GetPadIxy(fXInit[0], fYInit[0], 0, ix, iy);
+    fInput->Segmentation(1)->GetPadI(fXInit[0], fYInit[0], 0, ix, iy);
     isec=fInput->Segmentation(1)->Sector(ix, iy);
     dpx=fInput->Segmentation(1)->Dpx(isec);
 
-    fInput->Segmentation(0)->GetPadIxy(fXInit[0], fYInit[0], 0, ix, iy);
+    fInput->Segmentation(0)->GetPadI(fXInit[0], fYInit[0], 0, ix, iy);
     isec=fInput->Segmentation(0)->Sector(ix, iy);
     dpy=fInput->Segmentation(0)->Dpy(isec);
 
@@ -1546,10 +1552,10 @@ Float_t AliMUONClusterFinderVS::CombiDoubleMathiesonFit(AliMUONRawCluster *c)
     upper[1]=vstart[1]+dpy;
 
 
-    fInput->Segmentation(1)->GetPadIxy(fXInit[1], fYInit[1], 0, ix, iy);
+    fInput->Segmentation(1)->GetPadI(fXInit[1], fYInit[1], 0, ix, iy);
     isec=fInput->Segmentation(1)->Sector(ix, iy);
     dpx=fInput->Segmentation(1)->Dpx(isec);
-    fInput->Segmentation(0)->GetPadIxy(fXInit[1], fYInit[1], 0, ix, iy);
+    fInput->Segmentation(0)->GetPadI(fXInit[1], fYInit[1], 0, ix, iy);
     isec=fInput->Segmentation(0)->Sector(ix, iy);
     dpy=fInput->Segmentation(0)->Dpy(isec);
 
index 8b11f07..8943e8f 100644 (file)
@@ -14,7 +14,7 @@
 #include "TF1.h"
 
 class AliMUONResponse;
-class AliMUONSegmentation;
+class AliSegmentation;
 class TClonesArray;
 class AliMUONRawCluster;
 class AliMUONDigit;
index 71f82e0..a204282 100644 (file)
 
 /*
 $Log$
+Revision 1.3  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.2  2000/06/28 12:19:18  morsch
 More consequent seperation of global input data services (AliMUONClusterInput singleton) and the
 cluster and hit reconstruction algorithms in AliMUONClusterFinderVS.
@@ -33,7 +40,7 @@ It also naturally takes care of the TMinuit instance.
 #include "AliMUON.h"
 #include "AliMUONChamber.h"
 #include "AliMUONClusterInput.h"
-#include "AliMUONSegmentation.h"
+#include "AliSegmentation.h"
 #include "AliMUONResponse.h"
 #include "AliMUONRawCluster.h"
 #include "AliMUONDigit.h"
index 41a42eb..d6b473a 100644 (file)
@@ -11,7 +11,7 @@
 class TMinuit;
 class AliMUONDigit;
 class AliMUONRawCluster;
-class AliMUONSegmentation;
+class AliSegmentation;
 class AliMUONResponse;
 
 
@@ -28,7 +28,7 @@ class AliMUONClusterInput : public TObject {
     AliMUONDigit* Digit(Int_t cath, Int_t i) {return (AliMUONDigit*) (fDigits[cath]->UncheckedAt(i));}
     TClonesArray* Digits(Int_t cath) {return fDigits[cath];}
     Int_t NDigits(Int_t cath) {return fNDigits[cath];}
-    AliMUONSegmentation* Segmentation(Int_t cath)  {return fSegmentation[cath];}
+    AliSegmentation* Segmentation(Int_t cath)  {return fSegmentation[cath];}
     AliMUONResponse* Response()  {return fResponse;}    
 // Fitting    
     TMinuit*      Fitter() {return fgMinuit;}
@@ -51,7 +51,7 @@ class AliMUONClusterInput : public TObject {
     // Digits
     TClonesArray*        fDigits[2];       // ! Array of pointers to digits
     Int_t                fNDigits[2];      // ! Number of digits
-    AliMUONSegmentation* fSegmentation[2]; // ! Segmentation per cathode
+    AliSegmentation*     fSegmentation[2]; // ! Segmentation per cathode
     AliMUONResponse*     fResponse;        // ! Response
     Int_t                fNseg;            // ! number of cathode planes
     Int_t                fChamber;         // ! Current chamber number
index 54ec9c5..a560e2c 100644 (file)
 
 /*
 $Log$
+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
 
@@ -128,7 +135,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"
@@ -559,8 +566,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();
@@ -577,7 +584,7 @@ void AliMUONDisplay::DrawSegmentation()
            {
                if (seg->ISector()==0) continue;
                Float_t x,y,z;
-               seg->GetPadCxy(seg->Ix(), seg->Iy(), 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);
@@ -599,7 +606,7 @@ void AliMUONDisplay::DrawSegmentation()
                if (seg->ISector()==0) continue;
                
                Float_t x,y,z;
-               seg->GetPadCxy(seg->Ix(), seg->Iy(), 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);
@@ -883,7 +890,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);
@@ -938,7 +945,7 @@ 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, zpad;
-       segmentation->GetPadCxy(mdig->fPadX, mdig->fPadY,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;
@@ -965,7 +972,7 @@ 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, zpad);
+           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->SetFillStyle(1001);
index b06c014..523aef3 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.2  2000/06/15 07:58:48  morsch
+Code from MUON-dev joined
+
 Revision 1.1.2.2  2000/06/12 07:58:06  morsch
 include TMath.h
 
@@ -25,7 +28,7 @@ Most coding rule violations corrected.
 */
 
 #include "AliMUONHitMapA1.h"
-#include "AliMUONSegmentation.h"
+#include "AliSegmentation.h"
 #include "AliMUONResponse.h"
 #include "AliMUONDigit.h"
 
@@ -35,7 +38,7 @@ Most coding rule violations corrected.
 ClassImp(AliMUONHitMapA1)
 
 
-AliMUONHitMapA1::AliMUONHitMapA1(AliMUONSegmentation *seg, TObjArray *dig)
+AliMUONHitMapA1::AliMUONHitMapA1(AliSegmentation *seg, TObjArray *dig)
 {
 // Constructor
     fSegmentation = seg;
index f490c7a..f8d6f34 100644 (file)
@@ -6,17 +6,17 @@
 
 /* $Id$ */
 
-#include "AliMUONHitMap.h"
-class AliMUONSegmentation;
+#include "AliHitMap.h"
+class AliSegmentation;
 class TObjArray;
 
 
 
 class AliMUONHitMapA1 :
-public AliMUONHitMap 
+public AliHitMap 
 {
  public:
-    AliMUONHitMapA1(AliMUONSegmentation *seg, TObjArray *dig);
+    AliMUONHitMapA1(AliSegmentation *seg, TObjArray *dig);
     AliMUONHitMapA1(const AliMUONHitMapA1 & hitMap);
     
     virtual ~AliMUONHitMapA1();
@@ -43,7 +43,7 @@ public AliMUONHitMap
     // Check index
     Int_t CheckedIndex(Int_t ix, Int_t iy);
  private:
-    AliMUONSegmentation *fSegmentation;   // Chamber segmentation
+    AliSegmentation *fSegmentation;       // Chamber segmentation
     Int_t fNpx;                           // Maximum number of pads in x
     Int_t fNpy;                           // Maximum number of pads in y
     TObjArray *fDigits;                   // Pointer to digits
index 8287bcf..fc9fd6c 100644 (file)
@@ -14,6 +14,9 @@
  **************************************************************************/
 /*
 $Log$
+Revision 1.3  2000/06/27 10:13:01  morsch
+Obsolete global variables removed from file.
+
 Revision 1.2  2000/06/15 07:58:48  morsch
 Code from MUON-dev joined
 
@@ -45,7 +48,6 @@ Log messages included
 #include "AliRun.h"
 #include "AliMUON.h"
 #include "AliMUONChamber.h"
-#include "AliMUONSegmentation.h"
 #include "AliMUONResponse.h"
 #include "AliMUONHit.h"
 #include "AliMUONPadHit.h"
index 0b5ad31..ab12ca9 100644 (file)
@@ -8,9 +8,7 @@
 #include "TObject.h"
 
 class TF1;
-class AliMUONChamber;
-class AliMUONRecCluster;
-class AliMUONSegmentation;
+class AliSegmentation;
 
 
 class AliMUONResponse :
@@ -50,7 +48,7 @@ public TObject {
     // Pulse height from scored quantity (eloss)
     virtual Float_t IntPH(Float_t eloss)                      =0;
     // Charge disintegration 
-    virtual Float_t IntXY(AliMUONSegmentation *)              =0;
+    virtual Float_t IntXY(AliSegmentation *)                  =0;
     // Noise, zero-suppression, adc saturation
     virtual Int_t DigitResponse(Int_t digit)                  =0;
     // 
index ff701ac..d1bb2f9 100644 (file)
 
 /*
 $Log$
+Revision 1.2  2000/06/15 07:58:48  morsch
+Code from MUON-dev joined
+
 Revision 1.1.2.1  2000/06/09 21:48:28  morsch
 Code from AliMUONSegResTrigger.cxx
 
 */
 
 #include "AliMUONResponseTrigger.h"
-#include "AliMUONSegmentation.h"
+#include "AliSegmentation.h"
 #include <TMath.h>
 #include <TRandom.h>
 #include <iostream.h> 
@@ -30,7 +33,7 @@ Code from AliMUONSegResTrigger.cxx
 ClassImp(AliMUONResponseTrigger)
 
 //------------------------------------------------------------------   
-Float_t AliMUONResponseTrigger::IntXY(AliMUONSegmentation * segmentation){    
+Float_t AliMUONResponseTrigger::IntXY(AliSegmentation * segmentation){    
 // Returns 1 or 0 if the current strip is fired or not according 
 // to the cluster size and the width of the main strip.
 // For the time being the probability to fire a neighbour depends
index 2fc4740..cce273f 100644 (file)
@@ -13,7 +13,7 @@ public AliMUONResponseV0 {
   AliMUONResponseTrigger(){};
   virtual ~AliMUONResponseTrigger(){} 
   // Charge disintegration
-  virtual Float_t  IntXY(AliMUONSegmentation * segmentation);
+  virtual Float_t  IntXY(AliSegmentation * segmentation);
   virtual Int_t    DigitResponse(Int_t digit);    
   ClassDef(AliMUONResponseTrigger,1) // Implementation of RPC response
     
index 4a7f347..a4d8bc4 100644 (file)
 
 /*
 $Log$
+Revision 1.2  2000/06/15 07:58:48  morsch
+Code from MUON-dev joined
+
 Revision 1.1.2.1  2000/06/09 21:33:35  morsch
 AliMUONResponse code  from  AliMUONSegResV0.cxx
 
 */
 
 #include "AliMUONResponseV0.h"
-#include "AliMUONSegmentation.h"
+#include "AliSegmentation.h"
 #include <TMath.h>
 #include <TRandom.h>
 
@@ -41,7 +44,7 @@ Float_t AliMUONResponseV0::IntPH(Float_t eloss)
 }
 // -------------------------------------------
 
-Float_t AliMUONResponseV0::IntXY(AliMUONSegmentation * segmentation)
+Float_t AliMUONResponseV0::IntXY(AliSegmentation * segmentation)
 {
 // Calculate charge on current pad according to Mathieson distribution
 // 
index 6ec01c0..0fb5f3a 100644 (file)
@@ -60,7 +60,7 @@ public AliMUONResponse {
     // Pulse height from scored quantity (eloss)
     virtual Float_t  IntPH(Float_t eloss);
     // Charge disintegration
-    virtual Float_t  IntXY(AliMUONSegmentation * segmentation);
+    virtual Float_t  IntXY(AliSegmentation * segmentation);
     // Noise, zero-suppression, adc saturation
     virtual Int_t DigitResponse(Int_t digit);
 
index 3cd4a48..738bbd3 100644 (file)
 
 /*
 $Log$
+Revision 1.4  2000/06/29 12:34:09  morsch
+AliMUONSegmentation class has been made independent of AliMUONChamber. This makes
+it usable with any other geometry class. The link to the object to which it belongs is
+established via an index. This assumes that there exists a global geometry manager
+from which the pointer to the parent object can be obtained (in our case gAlice).
+
 Revision 1.3  2000/06/26 10:01:26  pcrochet
 global variables removed
 
@@ -76,7 +82,7 @@ void AliMUONSegmentationTriggerX::Init(Int_t chamber)
 }
 
 //------------------------------------------------------------------
-void AliMUONSegmentationTriggerX::GetPadIxy(Float_t x,Float_t y,Int_t &ix,Int_t &iy){
+void AliMUONSegmentationTriggerX::GetPadI(Float_t x,Float_t y,Int_t &ix,Int_t &iy){
 //  Returns pad coordinates (ix,iy) for given real coordinates (x,y)
 //  x,y = real coordinates; ix = module number , iy = strip number
   ix = 0;    
@@ -95,7 +101,7 @@ void AliMUONSegmentationTriggerX::GetPadIxy(Float_t x,Float_t y,Int_t &ix,Int_t
 }
 
 //------------------------------------------------------------------
-void AliMUONSegmentationTriggerX::GetPadCxy(Int_t ix, Int_t iy, Float_t &x, Float_t &y){
+void AliMUONSegmentationTriggerX::GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y){
 //  Returns real coordinates (x,y) for given pad coordinates (ix,iy)
 //  ix = module number , iy = strip number;  x,y = center of strip
   x = 0.;    
@@ -153,8 +159,8 @@ void AliMUONSegmentationTriggerX::SetPad(Int_t ix, Int_t iy)
 {
   // Sets virtual pad coordinates, needed for evaluating pad response 
   // outside the tracking program
-  GetPadCxy(ix,iy,fx,fy);
-  GetPadIxy(fx,fy,fix,fiy);
+  GetPadC(ix,iy,fx,fy);
+  GetPadI(fx,fy,fix,fiy);
   fSector=Sector(ix,iy);
 }
 
@@ -255,8 +261,8 @@ IntegrationLimits(Float_t& x1, Float_t& x2, Float_t& x3, Float_t& width)
 
   Int_t ix,iy;
   Float_t xstrip,ystrip;
-  GetPadIxy(fxhit,fyhit,ix,iy);  
-  GetPadCxy(ix,iy,xstrip,ystrip);  
+  GetPadI(fxhit,fyhit,ix,iy);  
+  GetPadC(ix,iy,xstrip,ystrip);  
   x1=fyhit;        // hit y position
   x2=ystrip;       // y coordinate of the main strip
   x3=fy;           // current strip real y coordinate  
index 5158668..887a271 100644 (file)
@@ -19,13 +19,13 @@ public AliMUONSegmentationTrigger {
   AliMUONSegmentationTriggerX(){}
   virtual ~AliMUONSegmentationTriggerX(){}
   // Transform from pad to real coordinates
-  virtual void    GetPadIxy(Float_t x, Float_t y, Int_t &ix, Int_t &iy);
-  virtual void    GetPadIxy(Float_t x, Float_t y, Float_t z, Int_t &ix, Int_t &iy)
-      {GetPadIxy(x, y, ix, iy);}
+  virtual void    GetPadI(Float_t x, Float_t y, Int_t &ix, Int_t &iy);
+  virtual void    GetPadI(Float_t x, Float_t y, Float_t z, Int_t &ix, Int_t &iy)
+      {GetPadI(x, y, ix, iy);}
   // Transform from real to pad coordinates
-  virtual void    GetPadCxy(Int_t ix, Int_t iy, Float_t &x, Float_t &y);
-  virtual void    GetPadCxy(Int_t ix, Int_t iy, Float_t &x, Float_t &y, Float_t &z)
-      {z=0; GetPadCxy(ix, iy, x , y);}
+  virtual void    GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y);
+  virtual void    GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y, Float_t &z)
+      {z=0; GetPadC(ix, iy, x , y);}
   // Pad size Dx*Dy 
   virtual void SetPadSize(Float_t dp1, Float_t dp2);
   // Strip size 
index e046e01..dd0d93c 100644 (file)
 
 /*
 $Log$
+Revision 1.4  2000/06/29 12:34:09  morsch
+AliMUONSegmentation class has been made independent of AliMUONChamber. This makes
+it usable with any other geometry class. The link to the object to which it belongs is
+established via an index. This assumes that there exists a global geometry manager
+from which the pointer to the parent object can be obtained (in our case gAlice).
+
 Revision 1.3  2000/06/26 10:01:26  pcrochet
 global variables removed
 
@@ -82,7 +88,7 @@ void AliMUONSegmentationTriggerY::Init(Int_t chamber)
 }
 
 //------------------------------------------------------------------
-void AliMUONSegmentationTriggerY::GetPadIxy(Float_t x,Float_t y,Int_t &ix,Int_t &iy){
+void AliMUONSegmentationTriggerY::GetPadI(Float_t x,Float_t y,Int_t &ix,Int_t &iy){
 //  Returns pad coordinates (ix,iy) for given real coordinates (x,y)
 //  x,y = real coordinates; ix = module number , iy = strip number
 
@@ -102,7 +108,7 @@ void AliMUONSegmentationTriggerY::GetPadIxy(Float_t x,Float_t y,Int_t &ix,Int_t
 }
 
 //------------------------------------------------------------------
-void AliMUONSegmentationTriggerY::GetPadCxy(Int_t ix, Int_t iy, Float_t &x, Float_t &y){
+void AliMUONSegmentationTriggerY::GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y){
 //  Returns real coordinates (x,y) for given pad coordinates (ix,iy)
 //  ix = module number , iy = strip number;  x,y = center of strip
   x = 0.;    
@@ -170,8 +176,8 @@ void AliMUONSegmentationTriggerY::SetPad(Int_t ix, Int_t iy)
 {
   // Sets virtual pad coordinates, needed for evaluating pad response 
   // outside the tracking program 
-  GetPadCxy(ix,iy,fx,fy);
-  GetPadIxy(fx,fy,fix,fiy);
+  GetPadC(ix,iy,fx,fy);
+  GetPadI(fx,fy,fix,fiy);
   fSector=Sector(ix,iy);    
 }
 
@@ -259,8 +265,8 @@ IntegrationLimits(Float_t& x1, Float_t& x2, Float_t& x3, Float_t& width)
 // returns quantities needed to evaluate neighbour strip response
   Int_t ix,iy;
   Float_t xstrip,ystrip;
-  GetPadIxy(fxhit,fyhit,ix,iy);  
-  GetPadCxy(ix,iy,xstrip,ystrip);  
+  GetPadI(fxhit,fyhit,ix,iy);  
+  GetPadC(ix,iy,xstrip,ystrip);  
   x1=fxhit;        // hit x position
   x2=xstrip;       // x coordinate of the main strip
   x3=fx;           // current strip real x coordinate  
index c87cbb9..cec67b5 100644 (file)
@@ -19,13 +19,13 @@ public AliMUONSegmentationTrigger {
   AliMUONSegmentationTriggerY(){}
   virtual ~AliMUONSegmentationTriggerY(){}
   // Transform from pad to real coordinates
-  virtual void    GetPadIxy(Float_t x,Float_t y,Int_t &ix,Int_t &iy);
-  virtual void    GetPadIxy(Float_t x, Float_t y, Float_t z, Int_t &ix, Int_t &iy)
-      {GetPadIxy(x, y, ix, iy);}
+  virtual void    GetPadI(Float_t x,Float_t y,Int_t &ix,Int_t &iy);
+  virtual void    GetPadI(Float_t x, Float_t y, Float_t z, Int_t &ix, Int_t &iy)
+      {GetPadI(x, y, ix, iy);}
   // Transform from real to pad coordinates
-  virtual void    GetPadCxy(Int_t ix,Int_t iy,Float_t &x,Float_t &y);
-  virtual void    GetPadCxy(Int_t ix, Int_t iy, Float_t &x, Float_t &y, Float_t &z)
-      {z=0; GetPadCxy(ix, iy, x , y);}
+  virtual void    GetPadC(Int_t ix,Int_t iy,Float_t &x,Float_t &y);
+  virtual void    GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y, Float_t &z)
+      {z=0; GetPadC(ix, iy, x , y);}
   // Pad size Dx*Dy 
   virtual void SetPadSize(Float_t dp1, Float_t dp2);
   // Strip size by Module
index fa9ae4b..6f99835 100644 (file)
  **************************************************************************/
 /*
 $Log$
+Revision 1.3  2000/06/29 12:34:09  morsch
+AliMUONSegmentation class has been made independent of AliMUONChamber. This makes
+it usable with any other geometry class. The link to the object to which it belongs is
+established via an index. This assumes that there exists a global geometry manager
+from which the pointer to the parent object can be obtained (in our case gAlice).
+
 Revision 1.2  2000/06/15 07:58:48  morsch
 Code from MUON-dev joined
 
@@ -72,7 +78,7 @@ void AliMUONSegmentationV0::SetPadSize(Float_t p1, Float_t p2)
     fDpy=p2;
 }
 void AliMUONSegmentationV0::
-    GetPadIxy(Float_t x, Float_t y, Int_t &ix, Int_t &iy)
+    GetPadI(Float_t x, Float_t y, Int_t &ix, Int_t &iy)
 {
 //  Returns pad coordinates (ix,iy) for given real coordinates (x,y)
 //
@@ -84,7 +90,7 @@ void AliMUONSegmentationV0::
     if (ix < -fNpx) ix=-fNpx;
 }
 void AliMUONSegmentationV0::
-GetPadCxy(Int_t ix, Int_t iy, Float_t &x, Float_t &y)
+GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y)
 {
 //  Returns real coordinates (x,y) for given pad coordinates (ix,iy)
 //
@@ -117,7 +123,7 @@ SetPad(Int_t ix, Int_t iy)
     //
     // Sets virtual pad coordinates, needed for evaluating pad response 
     // outside the tracking program 
-    GetPadCxy(ix,iy,fx,fy);
+    GetPadC(ix,iy,fx,fy);
 }
 
 void AliMUONSegmentationV0::
@@ -138,13 +144,13 @@ FirstPad(Float_t xhit, Float_t yhit, Float_t dx, Float_t dy)
     Float_t y02=yhit + dy;
     //
     // find the pads over which the charge distributes
-    GetPadIxy(x01,y01,fixmin,fiymin);
-    GetPadIxy(x02,y02,fixmax,fiymax);    
+    GetPadI(x01,y01,fixmin,fiymin);
+    GetPadI(x02,y02,fixmax,fiymax);    
     // 
     // Set current pad to lower left corner
     fix=fixmin;
     fiy=fiymin;
-    GetPadCxy(fix,fiy,fx,fy);
+    GetPadC(fix,fiy,fx,fy);
 }
 
 void AliMUONSegmentationV0::NextPad()
@@ -164,7 +170,7 @@ void AliMUONSegmentationV0::NextPad()
     } else {
        printf("\n Error: Stepping outside integration region\n ");
     }
-    GetPadCxy(fix,fiy,fx,fy);
+    GetPadC(fix,fiy,fx,fy);
 }
 
 Int_t AliMUONSegmentationV0::MorePads()
@@ -186,7 +192,7 @@ void AliMUONSegmentationV0::SigGenInit(Float_t x,Float_t y,Float_t z)
 //  Initialises pad and wire position during stepping
     fxt =x;
     fyt =y;
-    GetPadIxy(x,y,fixt,fiyt);
+    GetPadI(x,y,fixt,fiyt);
     fiwt= (x>0) ? Int_t(x/fWireD)+1 : Int_t(x/fWireD)-1 ;
 }
 
@@ -206,7 +212,7 @@ Int_t AliMUONSegmentationV0::SigGenCond(Float_t x,Float_t y,Float_t z)
 //  Signal will be generated if particle crosses pad boundary or
 //  boundary between two wires. 
     Int_t ixt, iyt;
-    GetPadIxy(x,y,ixt,iyt);
+    GetPadI(x,y,ixt,iyt);
     Int_t iwt=(x>0) ? Int_t(x/fWireD)+1 : Int_t(x/fWireD)-1;
     if ((ixt != fixt) || (iyt !=fiyt) || (iwt != fiwt)) {
        return 1;
@@ -249,7 +255,7 @@ Float_t AliMUONSegmentationV0::Distance2AndOffset(Int_t iX, Int_t iY, Float_t X,
 // labelled by its Channel numbers and a coordinate
 {
   Float_t x,y;
-  GetPadCxy(iX,iY,x,y);
+  GetPadC(iX,iY,x,y);
   return (x-X)*(x-X) + (y-Y)*(y-Y);
 }
 
index fd4800c..0012e6f 100644 (file)
@@ -5,14 +5,14 @@
 
 /* $Id$ */
 
-#include "AliMUONSegmentation.h"
+#include "AliSegmentation.h"
 
 //----------------------------------------------
 //
 // Chamber segmentation for homogeneously segmented circular chamber
 //
 class AliMUONSegmentationV0 :
-public AliMUONSegmentation {
+public AliSegmentation {
  public:
     AliMUONSegmentationV0(){}
     AliMUONSegmentationV0(const AliMUONSegmentationV0 & segmentation);
@@ -29,13 +29,13 @@ public AliMUONSegmentation {
     // Anod wire coordinate closest to xhit
     virtual Float_t GetAnod(Float_t xhit);
     // Transform from pad to real coordinates
-    virtual void    GetPadIxy(Float_t x, Float_t y , Int_t &ix, Int_t &iy);
-    virtual void    GetPadIxy(Float_t x, Float_t y , Float_t z, Int_t &ix, Int_t &iy)
-       {GetPadIxy(x, y, ix, iy);}
+    virtual void    GetPadI(Float_t x, Float_t y , Int_t &ix, Int_t &iy);
+    virtual void    GetPadI(Float_t x, Float_t y , Float_t z, Int_t &ix, Int_t &iy)
+       {GetPadI(x, y, ix, iy);}
     // Transform from real to pad coordinates
-    virtual void    GetPadCxy(Int_t ix, Int_t iy, Float_t &x, Float_t &y);
-    virtual void    GetPadCxy(Int_t ix, Int_t iy, Float_t &x, Float_t &y, Float_t &z)
-       {z=0; GetPadCxy(ix, iy, x , y);}
+    virtual void    GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y);
+    virtual void    GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y, Float_t &z)
+       {z=0; GetPadC(ix, iy, x , y);}
     //
     // Initialisation
     virtual void Init(Int_t chamber);
index 7bbb39a..59d15c8 100644 (file)
 
 /*
 $Log$
+Revision 1.3  2000/06/29 12:34:09  morsch
+AliMUONSegmentation class has been made independent of AliMUONChamber. This makes
+it usable with any other geometry class. The link to the object to which it belongs is
+established via an index. This assumes that there exists a global geometry manager
+from which the pointer to the parent object can be obtained (in our case gAlice).
+
 Revision 1.2  2000/06/15 07:58:48  morsch
 Code from MUON-dev joined
 
@@ -180,7 +186,7 @@ Int_t AliMUONSegmentationV01::Sector(Int_t ix, Int_t iy)
 }
 
 void AliMUONSegmentationV01::
-GetPadIxy(Float_t x, Float_t y, Int_t &ix, Int_t &iy)
+GetPadI(Float_t x, Float_t y, Int_t &ix, Int_t &iy)
 {
 //  Returns pad coordinates (ix,iy) for given real coordinates (x,y)
 //
@@ -210,7 +216,7 @@ GetPadIxy(Float_t x, Float_t y, Int_t &ix, Int_t &iy)
 }
 
 void AliMUONSegmentationV01::
-GetPadCxy(Int_t ix, Int_t iy, Float_t &x, Float_t &y)
+GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y)
 {
 //  Returns real coordinates (x,y) for given pad coordinates (ix,iy)
 //
@@ -235,7 +241,7 @@ SetPad(Int_t ix, Int_t iy)
     //
     // Sets virtual pad coordinates, needed for evaluating pad response 
     // outside the tracking program 
-    GetPadCxy(ix,iy,fx,fy);
+    GetPadC(ix,iy,fx,fy);
     fSector=Sector(ix,iy);
 }
 
@@ -259,8 +265,8 @@ FirstPad(Float_t xhit, Float_t yhit, Float_t dx, Float_t dy)
     Float_t y02=yhit + dy;
     //
     // find the pads over which the charge distributes
-    GetPadIxy(x01,y01,fixmin,fiymin);
-    GetPadIxy(x02,y02,fixmax,fiymax);
+    GetPadI(x01,y01,fixmin,fiymin);
+    GetPadI(x02,y02,fixmax,fiymax);
     fxmin=x01;
     fxmax=x02;
     fymin=y01;
@@ -272,7 +278,7 @@ FirstPad(Float_t xhit, Float_t yhit, Float_t dx, Float_t dy)
     if (fiymax < fiymin) fiymax=fiymin;    
     fix=fixmin;
     fiy=fiymin;
-    GetPadCxy(fix,fiy,fx,fy);
+    GetPadC(fix,fiy,fx,fy);
 }
 
 
@@ -295,13 +301,13 @@ void AliMUONSegmentationV01::NextPad()
        if (fiy==-1) fiy++;
        fiy++;
 //      get y-position of next row (yc), xc not used here      
-       GetPadCxy(fix,fiy,xc,yc);
+       GetPadC(fix,fiy,xc,yc);
 //      get x-pad coordiante for first pad in row (fix)
-       GetPadIxy(fxmin,yc,fix,iyc);
+       GetPadI(fxmin,yc,fix,iyc);
     } else {
        printf("\n Error: Stepping outside integration region\n ");
     }
-    GetPadCxy(fix,fiy,fx,fy);
+    GetPadC(fix,fiy,fx,fy);
     fSector=Sector(fix,fiy);
     if (MorePads() && 
        (fSector ==-1 || fSector==0)) 
@@ -355,8 +361,8 @@ Neighbours(Int_t iX, Int_t iY, Int_t* Nlist, Int_t Xlist[10], Int_t Ylist[10])
     Ylist[i++]=iY;
 //
 //  step up 
-    AliMUONSegmentationV01::GetPadCxy(iX,iY,x,y);
-    AliMUONSegmentationV01::GetPadIxy(x+kEpsilon,y+fDpy,ixx,iyy);
+    AliMUONSegmentationV01::GetPadC(iX,iY,x,y);
+    AliMUONSegmentationV01::GetPadI(x+kEpsilon,y+fDpy,ixx,iyy);
     Xlist[i]=ixx;
     Ylist[i++]=iyy;
     isec1=AliMUONSegmentationV01::Sector(ixx,iyy);
@@ -393,8 +399,8 @@ Neighbours(Int_t iX, Int_t iY, Int_t* Nlist, Int_t Xlist[10], Int_t Ylist[10])
 
 //
 // step down 
-    AliMUONSegmentationV01::GetPadCxy(iX,iY,x,y);
-    AliMUONSegmentationV01::GetPadIxy(x+kEpsilon,y-fDpy,ixx,iyy);
+    AliMUONSegmentationV01::GetPadC(iX,iY,x,y);
+    AliMUONSegmentationV01::GetPadI(x+kEpsilon,y-fDpy,ixx,iyy);
     Xlist[i]=ixx;
     Ylist[i++]=iyy;
     isec1=AliMUONSegmentationV01::Sector(ixx,iyy);
index 486ed81..148d0ac 100644 (file)
@@ -37,13 +37,13 @@ public AliMUONSegmentationV0 {
     // Transform from pad (wire) to real coordinates and vice versa
     //
     // Transform from pad to real coordinates
-    virtual void    GetPadIxy(Float_t x ,Float_t y ,Int_t   &ix,Int_t &iy);
-    virtual void    GetPadIxy(Float_t x, Float_t y , Float_t z, Int_t &ix, Int_t &iy)
-       {GetPadIxy(x, y, ix, iy);}
+    virtual void    GetPadI(Float_t x ,Float_t y ,Int_t   &ix,Int_t &iy);
+    virtual void    GetPadI(Float_t x, Float_t y , Float_t z, Int_t &ix, Int_t &iy)
+       {GetPadI(x, y, ix, iy);}
     // Transform from real to pad coordinates
-    virtual void    GetPadCxy(Int_t   ix,Int_t   iy,Float_t &x ,Float_t &y );
-    virtual void    GetPadCxy(Int_t ix, Int_t iy, Float_t &x, Float_t &y, Float_t &z)
-       {z=0; GetPadCxy(ix, iy, x , y);}
+    virtual void    GetPadC(Int_t   ix,Int_t   iy,Float_t &x ,Float_t &y );
+    virtual void    GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y, Float_t &z)
+       {z=0; GetPadC(ix, iy, x , y);}
     //
     // Initialisation
     virtual void Init(Int_t chamber);
index d21ebc7..3aedd92 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.2  2000/06/15 07:58:48  morsch
+Code from MUON-dev joined
+
 Revision 1.1.2.1  2000/06/09 21:37:56  morsch
 AliMUONSegmentationV02 code  from  AliMUONSegResV02.cxx
 
@@ -64,27 +67,27 @@ Int_t AliMUONSegmentationV02::Sector(Int_t ix, Int_t iy)
 
 void AliMUONSegmentationV02::
 
-GetPadIxy(Float_t x, Float_t y, Int_t &ix, Int_t &iy)
+GetPadI(Float_t x, Float_t y, Int_t &ix, Int_t &iy)
 //  Returns pad coordinates (ix,iy) for given real coordinates (x,y)
 //
 {
-AliMUONSegmentationV01::GetPadIxy(y, x, iy, ix);
+AliMUONSegmentationV01::GetPadI(y, x, iy, ix);
 // printf("\n x,y,ix,iy %f %f %d %d", x,y,ix,iy);
 }
 
 void AliMUONSegmentationV02::
-GetPadCxy(Int_t ix, Int_t iy, Float_t &x, Float_t &y)
+GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y)
 //  Returns real coordinates (x,y) for given pad coordinates (ix,iy)
 //
 {
-    AliMUONSegmentationV01::GetPadCxy(iy, ix, y, x);
+    AliMUONSegmentationV01::GetPadC(iy, ix, y, x);
 }
 void AliMUONSegmentationV02::SetPad(Int_t ix,Int_t iy)
 {
     //
     // Sets virtual pad coordinates, needed for evaluating pad response 
     // outside the tracking program 
-    GetPadCxy(ix,iy,fx,fy);
+    GetPadC(ix,iy,fx,fy);
     fSector=Sector(ix,iy);    
 }
 
@@ -108,13 +111,13 @@ void AliMUONSegmentationV02::NextPad()
        if (fix==-1) fix++;
        fix++;
 //      get y-position of next row (yc), xc not used here      
-       GetPadCxy(fix,fiy,xc,yc);
+       GetPadC(fix,fiy,xc,yc);
 //      get x-pad coordiante for 1 pad in row (fix)
-       GetPadIxy(xc,fymin,ixc,fiy);
+       GetPadI(xc,fymin,ixc,fiy);
     } else {
        printf("\n Error: Stepping outside integration region\n ");
     }
-    GetPadCxy(fix,fiy,fx,fy);
+    GetPadC(fix,fiy,fx,fy);
     fSector=Sector(fix,fiy);
     if (MorePads() && 
        (fSector ==-1 || fSector==0 )) 
index 6b9f165..85c8a31 100644 (file)
@@ -39,13 +39,13 @@ public AliMUONSegmentationV01 {
     //
     // Transform from pad (wire) to real coordinates and vice versa
     // Transform from pad to real coordinates
-    virtual void    GetPadCxy(Int_t ix, Int_t iy, Float_t &x ,Float_t &y );
-    virtual void    GetPadCxy(Int_t ix, Int_t iy, Float_t &x, Float_t &y, Float_t &z)
-       {z=0; GetPadCxy(ix, iy, x , y);}
+    virtual void    GetPadC(Int_t ix, Int_t iy, Float_t &x ,Float_t &y );
+    virtual void    GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y, Float_t &z)
+       {z=0; GetPadC(ix, iy, x , y);}
     // Transform from pad to real coordinates
-    virtual void    GetPadIxy(Float_t x ,Float_t y , Int_t &ix, Int_t &iy);
-    virtual void    GetPadIxy(Float_t x, Float_t y , Float_t z, Int_t &ix, Int_t &iy)
-       {GetPadIxy(x, y, ix, iy);}
+    virtual void    GetPadI(Float_t x ,Float_t y , Int_t &ix, Int_t &iy);
+    virtual void    GetPad(Float_t x, Float_t y , Float_t z, Int_t &ix, Int_t &iy)
+       {GetPadI(x, y, ix, iy);}
     // Set pad position
     virtual void    SetPad(Int_t ix,Int_t iy);
     // Stepper
index 3887db0..8e1c6b2 100644 (file)
 
 /*
 $Log$
+Revision 1.3  2000/06/29 12:34:09  morsch
+AliMUONSegmentation class has been made independent of AliMUONChamber. This makes
+it usable with any other geometry class. The link to the object to which it belongs is
+established via an index. This assumes that there exists a global geometry manager
+from which the pointer to the parent object can be obtained (in our case gAlice).
+
 Revision 1.2  2000/06/15 07:58:48  morsch
 Code from MUON-dev joined
 
@@ -116,7 +122,7 @@ void AliMUONSegmentationV1::SetPadSize(Float_t p1, Float_t p2)
 }
 
 void AliMUONSegmentationV1::
-GetPadIxy(Float_t x, Float_t y, Int_t &ix, Int_t &iy)
+GetPadI(Float_t x, Float_t y, Int_t &ix, Int_t &iy)
 {
 //  returns pad coordinates (ix,iy) for given real coordinates (x,y)
 //
@@ -125,7 +131,7 @@ GetPadIxy(Float_t x, Float_t y, Int_t &ix, Int_t &iy)
 }
 
 void AliMUONSegmentationV1::
-GetPadCxy(Int_t ix, Int_t iy, Float_t &x, Float_t &y)
+GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y)
 {
 //  returns real coordinates (x,y) for given pad coordinates (ix,iy)
 //
@@ -148,7 +154,7 @@ Int_t AliMUONSegmentationV1::GetZone(Float_t X, Float_t Y)
 {
 // Get segmentation zone
     Int_t iX, iY;
-    GetPadIxy(X,Y,iX,iY);
+    GetPadI(X,Y,iX,iY);
     return GetZone( iX , iY );
 }
 
@@ -182,14 +188,14 @@ void AliMUONSegmentationV1::
 SetPad(Int_t ix, Int_t iy)
 {
 // Set current pad position
-    GetPadCxy(ix,iy,fx,fy);
+    GetPadC(ix,iy,fx,fy);
 }
 
 
 void AliMUONSegmentationV1::SetPadCoord(Int_t iX, Int_t iY)
 {    
 // Set current pad coordinates
-GetPadCxy(iX,iY,fx,fy);
+GetPadC(iX,iY,fx,fy);
  Float_t radius2;
  if ( ( (radius2=fx*fx+fy*fy) > frSensMax2 || radius2 < frSensMin2 ) 
       && MorePads() )
@@ -221,8 +227,8 @@ void AliMUONSegmentationV1::FirstPad(Float_t xhit, Float_t yhit, Float_t dx, Flo
       y02 = TMath::Sign(fSensOffset, yhit);
     //
     // find the pads over which the charge distributes
-    GetPadIxy(x01,y01,fixmin,fiymin);
-    GetPadIxy(x02,y02,fixmax,fiymax);
+    GetPadI(x01,y01,fixmin,fiymin);
+    GetPadI(x02,y02,fixmax,fiymax);
     // 
     // Set current pad to lower left corner
     fix=fixmin;
@@ -368,7 +374,7 @@ void AliMUONSegmentationV1::SigGenInit(Float_t x,Float_t y,Float_t z)
 //  Initialises pad and wire position during stepping
     fxt =x;
     fyt =y;
-    GetPadIxy(x,y,fixt,fiyt);
+    GetPadI(x,y,fixt,fiyt);
     fiwt= GetiAnod(x);
 
 }
@@ -380,7 +386,7 @@ Int_t AliMUONSegmentationV1::SigGenCond(Float_t x,Float_t y,Float_t z)
 //  boundary between two wires. 
     Int_t ixt;
     Int_t iyt;
-    GetPadIxy(x,y,ixt,iyt);
+    GetPadI(x,y,ixt,iyt);
     Int_t iwt= GetiAnod(x);
     
     if ((ixt != fixt) || (iyt !=fiyt) || (iwt != fiwt)) {
@@ -440,7 +446,7 @@ Float_t AliMUONSegmentationV1::Distance2AndOffset(Int_t iX, Int_t iY, Float_t X,
     for (Int_t i=0;i<nPara; i++)
     {
        Float_t x,y;
-       GetPadCxy(iX+i*offset,iY,x,y);
+       GetPadC(iX+i*offset,iY,x,y);
        Float_t d2=(x-X)*(x-X) + (y-Y)*(y-Y);
        if ( d2min > d2)
        {
index 92f1bbf..0221ed3 100644 (file)
@@ -5,14 +5,14 @@
 
 /* $Id$ */
 
-#include "AliMUONSegmentation.h"
+#include "AliSegmentation.h"
 
 const Int_t kNzone = 3;                // Specific for chamber with equal pads
 const Int_t kNzonem1 = 2;              // kNzone - 1
 const Int_t kNzoneCUT = 30;            
 
 class AliMUONSegmentationV1 :
-public AliMUONSegmentation {
+public AliSegmentation {
  public:
     AliMUONSegmentationV1();
     AliMUONSegmentationV1(const AliMUONSegmentationV1 & segmentation);
@@ -60,13 +60,13 @@ public AliMUONSegmentation {
     // Anod wire coordinate closest to xhit
     virtual Float_t GetAnod(Float_t xhit);
     // Transform from pad to real coordinates
-    virtual void    GetPadIxy(Float_t x ,Float_t y , Int_t &ix, Int_t &iy);
-    virtual void    GetPadIxy(Float_t x, Float_t y , Float_t z, Int_t &ix, Int_t &iy)
-       {GetPadIxy(x, y, ix, iy);}
+    virtual void    GetPadI(Float_t x ,Float_t y , Int_t &ix, Int_t &iy);
+    virtual void    GetPadI(Float_t x, Float_t y , Float_t z, Int_t &ix, Int_t &iy)
+       {GetPadI(x, y, ix, iy);}
     // Transform from real to pad coordinates
-    virtual void    GetPadCxy(Int_t ix, Int_t iy, Float_t &x, Float_t &y);
-    virtual void    GetPadCxy(Int_t ix, Int_t iy, Float_t &x, Float_t &y, Float_t &z)
-       {z=0; GetPadCxy(ix, iy, x , y);}
+    virtual void    GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y);
+    virtual void    GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y, Float_t &z)
+       {z=0; GetPadC(ix, iy, x , y);}
     // Set pad position
     virtual void     SetPad(Int_t ix, Int_t iy);
     // Set hit position
index 8a2706d..9d0cc96 100644 (file)
  **************************************************************************/
 /*
 $Log$
+Revision 1.4  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.3  2000/06/26 10:04:49  pcrochet
 problem with HP compiler solved (PH), static variables removed : now defined in AliMUONTriggerConstants
 
@@ -24,7 +31,7 @@ problem with HP compiler solved (PH), static variables removed : now defined in
 #include "AliMUONPoints.h"
 #include "AliMUONTriggerCircuit.h"
 #include "AliMUONTriggerConstants.h"
-#include "AliMUONSegmentation.h"
+#include "AliSegmentation.h"
 #include "AliMUONResponse.h"
 #include "AliMUONChamber.h"
 #include "TMath.h"
@@ -283,7 +290,7 @@ void AliMUONTriggerCircuit::LoadYPos(){
 
   AliMUON *pMUON  = (AliMUON*)gAlice->GetModule("MUON");  
   AliMUONChamber*  iChamber;
-  AliMUONSegmentation*  segmentation;    
+  AliSegmentation*  segmentation;    
 
 // first plane (11)
   chamber=11;
@@ -297,7 +304,7 @@ void AliMUONTriggerCircuit::LoadYPos(){
     idStrip=TMath::Abs(code-idModule*100); // corresp. strip number in module
     idSector=segmentation->Sector(idModule,idStrip); // corresponding sector
     width=segmentation->Dpy(idSector);      // corresponding strip width
-    segmentation->GetPadCxy(idModule,idStrip,x,y,z); // get strip real position
+    segmentation->GetPadC(idModule,idStrip,x,y,z); // get strip real position
     
     fYpos11[2*istrip]=y;
     if (istrip!=15) fYpos11[2*istrip+1]=y+width/2.;
@@ -315,7 +322,7 @@ void AliMUONTriggerCircuit::LoadYPos(){
     idStrip=TMath::Abs(code-idModule*100); // corresp. strip number in module
     idSector=segmentation->Sector(idModule,idStrip); // corresponding sector
     width=segmentation->Dpy(idSector);      // corresponding strip width
-    segmentation->GetPadCxy(idModule,idStrip,x,y,z); // get strip real position
+    segmentation->GetPadC(idModule,idStrip,x,y,z); // get strip real position
     
 // using idModule!=0 prevents to fill garbage in case of circuits 
 // in the first and last rows 
@@ -340,7 +347,7 @@ void AliMUONTriggerCircuit::LoadXPos(){
   Int_t cathode=2;
   AliMUON *pMUON  = (AliMUON*)gAlice->GetModule("MUON");  
   AliMUONChamber*  iChamber;
-  AliMUONSegmentation*  segmentation; 
+  AliSegmentation*  segmentation; 
   iChamber = &(pMUON->Chamber(chamber-1));
   segmentation=iChamber->SegmentationModel(cathode);
   
@@ -353,14 +360,14 @@ void AliMUONTriggerCircuit::LoadXPos(){
 // first case : up middle and down parts have all 8 or 16 strip 
   if ((nStrY==16)||(nStrY==8&&fx2m==0&&fx2ud==0)) { 
     for (istrip=0; istrip<nStrY; istrip++) {
-      segmentation->GetPadCxy(idModule,istrip,x,y,z); 
+      segmentation->GetPadC(idModule,istrip,x,y,z); 
       fXpos11[istrip]=x;
     }
 // second case : mixing 8 and 16 strips within same circuit      
   } else {
     for (istrip=0; istrip<nStrY; istrip++) {
       if (nStrY!=8) { cout << " bug in LoadXpos " << "\n";}
-      segmentation->GetPadCxy(idModule,istrip,x,y,z); 
+      segmentation->GetPadC(idModule,istrip,x,y,z); 
       fXpos11[2*istrip]=x-width/4.;
       fXpos11[2*istrip+1]=fXpos11[2*istrip]+width/2.;
     }
index 55f559d..80788f2 100644 (file)
@@ -43,8 +43,8 @@ public TObject {
   Float_t GetX11Pos(Int_t istrip);
  
   //  Get reference to segmentation model
-  virtual AliMUONSegmentation*  SegmentationModel(Int_t isec) {
-      return (AliMUONSegmentation *) (*fSegmentation)[isec-1];
+  virtual AliSegmentation*  SegmentationModel(Int_t isec) {
+      return (AliSegmentation *) (*fSegmentation)[isec-1];
   }
 
  protected:
index e2fe1ff..d80727e 100644 (file)
@@ -14,6 +14,9 @@
  **************************************************************************/
 /*
 $Log$
+Revision 1.3  2000/06/25 17:02:19  pcrochet
+scope problem on HP, i declared once, pow replaced by TMath::Power (PH)
+
 Revision 1.2  2000/06/15 07:58:49  morsch
 Code from MUON-dev joined
 
@@ -45,7 +48,7 @@ Author and responsible for the code: Philippe Crochet
 #include "AliRun.h"
 #include "AliMUON.h"
 #include "AliMUONPoints.h"
-#include "AliMUONSegmentation.h"
+#include "AliSegmentation.h"
 #include "AliMUONResponse.h"
 #include "AliMUONChamber.h"
 #include "AliMUONDigit.h"
@@ -221,8 +224,8 @@ void AliMUONTriggerDecision::SetBit(){
   for (Int_t chamber=11; chamber<15; chamber++){
     for (Int_t cathode=1; cathode<3; cathode++){
       
-      AliMUONChamber*  iChamber;
-      AliMUONSegmentation*  segmentation;
+      AliMUONChamber*   iChamber;
+      AliSegmentation*  segmentation;
       
       TClonesArray *muonDigits  = pMUON->DigitsAddress(chamber-1);
       if (muonDigits == 0) return;