]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Bug fixed in segmentation and slat geometry
authorcussonno <cussonno@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 13 Sep 2004 08:52:10 +0000 (08:52 +0000)
committercussonno <cussonno@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 13 Sep 2004 08:52:10 +0000 (08:52 +0000)
MUON/AliMUONFactory.cxx
MUON/AliMUONSlatGeometryBuilder.cxx

index 6c11471807f8be03b4a638f2c288be10e457b79f..b51acf2c870a2d0be910758b2ebc3f2151f04a7d 100644 (file)
@@ -333,7 +333,7 @@ void AliMUONFactory::BuildStation4()
                           0,0,0,3,
                           0,0,0,2};
        Float_t xpos7[13]   = {2., 2., 2., 2., 2., 2., 40.5, 2., 2., 2., 2., 2., 2.};
-       Float_t ypos7       = -(20.+5.*(40.-2.*shift));
+       Float_t ypos7       = -(20.+6.*(40.-2.*shift));  
        
        seg71->SetNSlats(13);  
        seg71->SetShift(shift);  
@@ -349,7 +349,7 @@ void AliMUONFactory::BuildStation4()
        AliMUONSegmentationSlatN *seg72=new AliMUONSegmentationSlatN(4);
        
        fMUON->SetSegmentationModel(chamber-1, 2, seg72);
-       seg72->SetNSlats(11);  
+       seg72->SetNSlats(13);  
        seg72->SetShift(shift);   
        seg72->SetNPCBperSector(npcb7); 
        seg72->SetSlatXPositions(xpos7);
@@ -380,7 +380,7 @@ void AliMUONFactory::BuildStation4()
        AliMUONSegmentationSlat *seg82=new AliMUONSegmentationSlatN(4);
        
        fMUON->SetSegmentationModel(chamber-1, 2, seg82);
-       seg82->SetNSlats(11);  
+       seg82->SetNSlats(13);  
        seg82->SetShift(shift);  
        seg82->SetNPCBperSector(npcb7); 
        seg82->SetSlatXPositions(xpos7);
index 24f3b4150dc8c5ad05d850f3595727545d7746dd..e3882cd837b653818c36764eeaddda71cc914792 100644 (file)
@@ -197,7 +197,6 @@ void AliMUONSlatGeometryBuilder::CreateGeometry()
 
     Int_t* fStations = new Int_t[5];
     for (Int_t i=0; i<5; i++) fStations[i] = 1;
-    fStations[2] = 1;
 
     if (fStations[2])
     {
@@ -773,32 +772,33 @@ void AliMUONSlatGeometryBuilder::CreateGeometry()
 //      // position the volumes approximating the circular section of the pipe
      Float_t yoffs = kSensHeight/2. - kYoverlap; 
      Float_t epsilon = 0.001; 
-     Int_t ndiv = 6;
+     Int_t ndiv = 10;
      Double_t divpar[3];
      Double_t dydiv= kSensHeight/ndiv;
      Double_t ydiv = yoffs -dydiv;
      Int_t imax=0; 
      imax = 1; 
-     Float_t rmin = 40.;
+     Float_t rmin = 39.5;
+     Float_t shiftR = 0.;
      for (Int_t idiv = 0; idiv < ndiv; idiv++){ 
        ydiv += dydiv;
        Float_t xdiv = 0.; 
        if (ydiv < rmin) xdiv = rmin * TMath::Sin( TMath::ACos(ydiv/rmin) );
-       divpar[0] = (kPcbLength-xdiv)/2.; 
+       divpar[0] = (kPcbLength-xdiv-shiftR)/2.; 
        divpar[1] = dydiv/2. - epsilon;
        divpar[2] = kSensWidth/2.; 
-       Float_t xvol = (kPcbLength+xdiv)/2.+1.999;
+       Float_t xvol = (kPcbLength+xdiv)/2.+shiftR;
        Float_t yvol = ydiv + dydiv/2.;
-
+       
        for (Int_t quadrant=1; quadrant<=4; quadrant++) {
         sprintf(idSlatCh7,"LC%d",ConvertSlatNum(1,quadrant,kNslats4-1));
         sprintf(idSlatCh8,"LD%d",ConvertSlatNum(1,quadrant,kNslats4-1));
-
+        
         GetChamber(6)->GetGeometry()->AddEnvelopeConstituentParam("S07G",idSlatCh7, quadrant*100+imax+4*idiv+1,
-                       TGeoTranslation(xvol-kPcbLength * kNPCB4[1]/2.,yvol-kPcbLength+kYoverlap,0.),3,divpar);
-
+                                                                  TGeoTranslation(xvol-kPcbLength * kNPCB4[1]/2.,yvol-kPcbLength+kYoverlap,0.),3,divpar);
+        
         GetChamber(7)->GetGeometry()->AddEnvelopeConstituentParam("S08G", idSlatCh8, quadrant*100+imax+4*idiv+1,
-                       TGeoTranslation(xvol-kPcbLength * kNPCB4[1]/2.,yvol-kPcbLength+kYoverlap,0.),3,divpar);
+                                                                  TGeoTranslation(xvol-kPcbLength * kNPCB4[1]/2.,yvol-kPcbLength+kYoverlap,0.),3,divpar);
        }
      }
      cout << "Geometry for Station 4...... done" << endl;
@@ -806,7 +806,7 @@ void AliMUONSlatGeometryBuilder::CreateGeometry()
     }
     
     if (fStations[4]) {
-       
+      
 
 // //********************************************************************
 // //                            Station 5                             **
@@ -1009,22 +1009,23 @@ void AliMUONSlatGeometryBuilder::CreateGeometry()
      //      // position the volumes approximating the circular section of the pipe
      Float_t yoffs = kSensHeight/2. - kYoverlap; 
      Float_t epsilon = 0.001; 
-     Int_t ndiv = 6;
+     Int_t ndiv = 10;
      Double_t divpar[3];
      Double_t dydiv = kSensHeight/ndiv;
      Double_t ydiv = yoffs -dydiv;
      Int_t imax = 0; 
      //     for (Int_t islat=0; islat<kNslats3; islat++) imax += kNPCB3[islat]; 
      imax = 1; 
-     Float_t rmin = 40.; 
+     Float_t rmin = 40.;
+     Float_t shiftR = 0.;
      for (Int_t idiv = 0;idiv < ndiv; idiv++){ 
        ydiv += dydiv;
        Float_t xdiv = 0.; 
        if (ydiv < rmin) xdiv = rmin * TMath::Sin( TMath::ACos(ydiv/rmin) );
-       divpar[0] = (kPcbLength-xdiv)/2.; 
+       divpar[0] = (kPcbLength-xdiv-shiftR)/2.; 
        divpar[1] = dydiv/2. - epsilon;
        divpar[2] = kSensWidth/2.; 
-       Float_t xvol = (kPcbLength+xdiv)/2.+ 1.999;
+       Float_t xvol = (kPcbLength+xdiv)/2.+ shiftR;
        Float_t yvol = ydiv + dydiv/2.;
 
        for (Int_t quadrant = 1; quadrant <= 4; quadrant++) {
@@ -1032,10 +1033,10 @@ void AliMUONSlatGeometryBuilder::CreateGeometry()
         sprintf(idSlatCh10,"LF%d",ConvertSlatNum(1,quadrant,kNslats5-1));
 
         GetChamber(8)->GetGeometry()->AddEnvelopeConstituentParam("S09G", idSlatCh9, quadrant*100+imax+4*idiv+1,
-                       TGeoTranslation(xvol-kPcbLength * kNPCB5[1]/2.,yvol-kPcbLength+kYoverlap,0.),3,divpar);
+                                                                  TGeoTranslation(xvol-kPcbLength * kNPCB5[1]/2.,yvol-kPcbLength+kYoverlap,0.),3,divpar);
 
         GetChamber(9)->GetGeometry()->AddEnvelopeConstituentParam("S10G", idSlatCh10,  quadrant*100+imax+4*idiv+1,
-                       TGeoTranslation(xvol-kPcbLength * kNPCB5[1]/2.,yvol-kPcbLength+kYoverlap,0.),3,divpar);
+                                                                  TGeoTranslation(xvol-kPcbLength * kNPCB5[1]/2.,yvol-kPcbLength+kYoverlap,0.),3,divpar);
        }
      }
      cout << "Geometry for Station 5...... done" << endl;