Moved setting of variables to constructor. Init is now responsible for calculating...
authorjbarbosa <jbarbosa@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 13 Feb 2001 20:13:20 +0000 (20:13 +0000)
committerjbarbosa <jbarbosa@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 13 Feb 2001 20:13:20 +0000 (20:13 +0000)
Corrected all calculations for padplane definition.

RICH/AliRICHSegmentationV1.cxx

index b12507e1ea1cedc02788b18ba61b74b4a069f17a..64cb0d6ad9dd705b213e887bb64f2b716bb361ba 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
   $Log$
+  Revision 1.6  2001/01/24 21:00:29  jbarbosa
+  Redefinition of sectors and pad coordinates/real coordinates transformations.
+
   Revision 1.5  2001/01/22 21:37:39  jbarbosa
   Added parametrised definiton sectors
 
@@ -44,25 +47,34 @@ AliRICHSegmentationV1::AliRICHSegmentationV1()
 
 // Default constructor for AliRICHSegmantionV1 (with dead zones)
 
-  fNpx=160;
-  fNpy=144;
+  fNpx=144;
+  fNpy=160;
   //fNpx=80;
   //fNpy=48;
   fDeadZone=2.6;
   fSector=-1;
 }
 
-//________________________________________________________________________________
-AliRICHSegmentationV1::~AliRICHSegmentationV1()
-{ 
-// Destructor
+void AliRICHSegmentationV1::Init(Int_t id)
+{
 
-}
+// Initialisation of chambers
 
+  //printf("*            Initialising SegmentationV1 (dead zones) in chamber %d              *\n",id+1);
+
+  // parametrised definition
+
+  Float_t csi_length = fNpy*fDpy + fDeadZone;
+  Float_t csi_width = fNpx*fDpx + 2*fDeadZone;
+
+  fPadPlane_Width = (csi_width - 2*fDeadZone)/3;
+  fPadPlane_Length = (csi_length - fDeadZone)/2;
+
+}
 
 // calculate sector from x-y coordinates
 
-Int_t AliRICHSegmentationV1::Sector(Float_t y, Float_t x)
+Int_t AliRICHSegmentationV1::Sector(Float_t x, Float_t y)
 {
 
 // Calculate in which sector is the hit
@@ -108,54 +120,45 @@ Int_t AliRICHSegmentationV1::Sector(Float_t y, Float_t x)
        }
     }*/
 
-  
-  // parametrised definition
-
-  Float_t csi_length = fNpx*fDpx + fDeadZone;
-  Float_t csi_width = fNpy*fDpy + 2*fDeadZone;
-
-  fPadPlane_Width = (csi_width - 2*fDeadZone)/3;
-  fPadPlane_Length = (csi_length - fDeadZone)/2;
+  //Parametrized definition
 
-  //printf("\n\n\n\n\n\n  csi      w: %f l:%f          \n\n\n\n\n\n\n\n",  csi_width,csi_length); 
-  //printf("\n\n\n\n\n\n  padplane w: %f l:%f wr: %f   \n\n\n\n\n\n\n\n",  fPadPlane_Width,fPadPlane_Length,63.1-22.75); 
-
-  if (x<-fDeadZone/2)
+  if (y<-fDeadZone/2)
     {
-      if (y> fPadPlane_Width/2 +fDeadZone)
+      if (x> fPadPlane_Width/2 +fDeadZone)
        {
-         if ( y<fPadPlane_Width/2 +fDeadZone + fPadPlane_Width)
+         if ( x<fPadPlane_Width/2 +fDeadZone + fPadPlane_Width)
            fSector=0;
        }
-      if (y< fPadPlane_Width/2)
+      if (x< fPadPlane_Width/2)
        {
-         if (y> -( fPadPlane_Width/2))
+         if (x> -( fPadPlane_Width/2))
            fSector=2;
        }
-      if (y< -( fPadPlane_Width/2 +fDeadZone))
+      if (x< -( fPadPlane_Width/2 +fDeadZone))
        {
-         if (y> -( fPadPlane_Width/2 +fDeadZone +  fPadPlane_Width))
+         if (x> -( fPadPlane_Width/2 +fDeadZone +  fPadPlane_Width))
            fSector=4;
        }
     }
-  else if (x>fDeadZone/2)
+  else if (y>fDeadZone/2)
     {
-      if (y> fPadPlane_Width/2 +fDeadZone)
+      if (x> fPadPlane_Width/2 +fDeadZone)
        {
-         if (y< fPadPlane_Width/2 +fDeadZone +  fPadPlane_Width)
-           fSector=0;
+         if (x< fPadPlane_Width/2 +fDeadZone +  fPadPlane_Width)
+           fSector=1;
        }
-      if (y< fPadPlane_Width/2)
+      if (x< fPadPlane_Width/2)
        {
-         if (y> -( fPadPlane_Width/2))
-           fSector=2;
+         if (x> -( fPadPlane_Width/2))
+           fSector=3;
        }
-      if (y< -( fPadPlane_Width/2 +fDeadZone))
+      if (x< -( fPadPlane_Width/2 +fDeadZone))
        {
-         if (y> -( fPadPlane_Width/2 +fDeadZone +  fPadPlane_Width))
-           fSector=4;
+         if (x> -( fPadPlane_Width/2 +fDeadZone +  fPadPlane_Width))
+           fSector=5;
        }
     }
+
   
   //if (fSector==2)
     //printf("x:%f, y:%f, sector:%d\n",x,y,fSector);
@@ -174,39 +177,39 @@ void AliRICHSegmentationV1::GetPadI(Float_t x, Float_t y, Int_t &ix, Int_t &iy)
 
   //printf("Sector: %d\n",sector);
 
-
   if (sector==0)
     {
       //ix = (x>0)? Int_t(x/fDpx)+1 : Int_t(x/fDpx);
       //iy = (y>0)? Int_t(y/fDpy)+1 : Int_t(y/fDpy);
-      iy = (y>0)? iy = Int_t (y/fDpy+fDeadZone) : iy = Int_t (y/fDpy+fDeadZone)-1;
-      ix = (x>0)? ix = Int_t (x/fDpx-fDeadZone/2) : ix = Int_t (x/fDpx-fDeadZone/2)-1;
+      ix = Int_t ((x-fDeadZone)/fDpx);
+      iy = Int_t ((y+fDeadZone/2)/fDpy)-1;
     }
   if (sector==1)
     {
-      iy = (y>0)? iy = Int_t (y/fDpy+fDeadZone) : iy = Int_t (y/fDpy+fDeadZone)-1;
-      ix = (x>0)? ix = Int_t (x/fDpx+fDeadZone/2) : ix = Int_t (x/fDpx+fDeadZone/2)-1;
+      ix = Int_t ((x-fDeadZone)/fDpx);
+      iy = Int_t ((y-fDeadZone/2)/fDpy);
     }
   if (sector==2)
     {
-      iy = (y>0)? iy = Int_t (y/fDpy) : iy = Int_t (y/fDpy)-1;
-      ix = (x>0)? ix = Int_t (x/fDpx-fDeadZone/2) : ix = Int_t (x/fDpx-fDeadZone/2)-1;
+      ix = (x>=0)? ix = Int_t (x/fDpx) : ix = Int_t (x/fDpx)-1;
+      iy = Int_t ((y+fDeadZone/2)/fDpy)-1;
     }
   if (sector==3)
     {
-      iy = (y>0)? iy = Int_t (y/fDpy) : iy = Int_t (y/fDpy)-1;
-      ix = (x>0)? ix = Int_t (x/fDpx+fDeadZone/2) : ix = Int_t (x/fDpx+fDeadZone/2)-1;
+      ix = (x>=0)? ix = Int_t (x/fDpx) : ix = Int_t (x/fDpx)-1;
+      iy = Int_t ((y-fDeadZone/2)/fDpy);
     }
   if (sector==4)
     {
-      iy = (y>0)? iy = Int_t (y/fDpy-fDeadZone) : iy = Int_t (y/fDpy-fDeadZone)-1;
-      ix = (x>0)? ix = Int_t (x/fDpx-fDeadZone/2) : ix = Int_t (x/fDpx-fDeadZone/2)-1;
+      ix = Int_t ((x+fDeadZone)/fDpx)-1;
+      iy = Int_t ((y+fDeadZone/2)/fDpy)-1;
     }
   if (sector==5)
     {
-      iy = (y>0)? iy = Int_t (y/fDpy-fDeadZone) : iy = Int_t (y/fDpy-fDeadZone)-1;
-      ix = (x>0)? ix = Int_t (x/fDpx+fDeadZone/2) : ix = Int_t (x/fDpx+fDeadZone/2)-1;
+      ix = Int_t ((x+fDeadZone)/fDpx)-1;
+      iy = Int_t ((y-fDeadZone/2)/fDpy);
     }
+
   
   //ix = Int_t (x/fDpx);
   //iy = Int_t (y/fDpy);
@@ -277,43 +280,42 @@ GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y)
   
   //  parametrised definition
 
+  Float_t padplane_width = fNpx/3;
   
-  Float_t padplane_width = fNpy/3;
-  
-  if (iy<=0)
+  if (iy<0)
     {
-      if (ix <= fNpy/2)
+      if (ix < fNpx/2)
        {
-         if (ix > fNpy/2 - padplane_width)
+         if (ix >= padplane_width/2)
            sector=0;
        }
-      if (ix<= padplane_width/2)
+      if (ix< padplane_width/2)
        {
-         if (ix > -(padplane_width/2))
+         if (ix >= -(padplane_width/2))
            sector=2;
        }
-      if (ix <= -(padplane_width/2))
+      if (ix >= -(fNpx/2))
        {
-         if (ix > -(fNpy/2))
+         if (ix < -(padplane_width/2))
            sector=4;
        }
     }
-  if (iy>0)
+  if (iy>=0)
     {
-      if (ix <= fNpy/2)
+      if (ix < fNpx/2)
        {
-         if (ix > fNpy/2 - padplane_width)
-           sector=0;
+         if (ix >= padplane_width/2)
+           sector=1;
        }
-      if (ix<= padplane_width/2)
+      if (ix< padplane_width/2)
        {
-         if (ix > -(padplane_width/2))
-           sector=2;
+         if (ix >= -(padplane_width/2))
+           sector=3;
        }
-      if (ix <= -(padplane_width/2))
+      if (ix >= -(fNpx/2))
        {
-         if (ix > -(fNpy/2))
-           sector=4;
+         if (ix < -(padplane_width/2))
+           sector=5;
        }
     }
 
@@ -321,34 +323,35 @@ GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y)
     {
       //x = (ix>0) ? Float_t(ix*fDpx)-fDpx/2. : Float_t(ix*fDpx)-fDpx/2.;
       //y = (iy>0) ? Float_t(iy*fDpy)-fDpy/2. : Float_t(iy*fDpy)-fDpy/2.;
-      y = Float_t(iy*fDpy)-fDpy/2-fDeadZone;
-      x = Float_t(ix*fDpx)-fDpx/2+fDeadZone/2;
+      x = Float_t(ix)*fDpx+fDpx/2+fDeadZone;
+      y = Float_t(iy)*fDpy+fDpy/2-fDeadZone/2;
     }
   if (sector==1)
     {
-      y = Float_t(iy*fDpy)-fDpy/2-fDeadZone;
-      x = Float_t(ix*fDpx)-fDpx/2-fDeadZone/2;
+      x = Float_t(ix)*fDpx+fDpx/2+fDeadZone;
+      y = Float_t(iy)*fDpy+fDpy/2+fDeadZone/2;
     }
   if (sector==2)
     {
-      y = Float_t(iy*fDpy)-fDpy/2;
-      x = Float_t(ix*fDpx)-fDpx/2+fDeadZone/2;
+      x = (ix>=0) ? x = Float_t(ix)*fDpx+fDpx/2 : x = Float_t(ix)*fDpx+fDpx/2;
+      y = Float_t(iy)*fDpy+fDpy/2-fDeadZone/2;
     }
   if (sector==3)
     {
-      y = Float_t(iy*fDpy)-fDpy/2;
-      x = Float_t(ix*fDpx)-fDpx/2-fDeadZone/2;
+      x = (ix>=0) ? x = Float_t(ix)*fDpx+fDpx/2 : x = Float_t(ix)*fDpx+fDpx/2;
+      y = Float_t(iy)*fDpy+fDpy/2+fDeadZone/2;
     }
   if (sector==4)
     {
-      y = Float_t(iy*fDpy)-fDpy/2+fDeadZone;
-      x = Float_t(ix*fDpx)-fDpx/2+fDeadZone/2;
+      x = Float_t(ix)*fDpx+fDpx/2-fDeadZone;
+      y = Float_t(iy)*fDpy+fDpy/2-fDeadZone/2;
     }
   if (sector==5)
     {
-      y = Float_t(iy*fDpy)-fDpy/2+fDeadZone;
-      x = Float_t(ix*fDpx)-fDpx/2-fDeadZone/2;
+      x = Float_t(ix)*fDpx+fDpx/2-fDeadZone;
+      y = Float_t(iy)*fDpy+fDpy/2+fDeadZone/2;
     }
   
   //if (sector==2)
     //printf("fSector:%d x:%f y:%f\n",fSector,x,y);