Modifications for stations 1 et 2 mainly:
authorgosset <gosset@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 4 Dec 2000 17:48:23 +0000 (17:48 +0000)
committergosset <gosset@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 4 Dec 2000 17:48:23 +0000 (17:48 +0000)
* station 1 with 4 mm gas gap and smaller cathode segmentation...
* stations 1 and 2 with "grey" frame crosses
* mean noise at 1.5 ADC channel
* Ar-CO2 gas (80%+20%)

MUON/AliMUONChamber.h
MUON/AliMUONResponseV0.cxx
MUON/AliMUONv1.cxx
MUON/Config_slat.C

index 0d755d9..61639d1 100644 (file)
@@ -107,6 +107,8 @@ public TObject
 //
   virtual Float_t DGas() {return fdGas;}
   virtual Float_t DAlu() {return fdAlu;}  
+  virtual void SetDGas(Float_t DGas) {fdGas = DGas;}
+  virtual void SetDAlu(Float_t DAlu) {fdAlu = DAlu;}  
 // assignment operator  
   AliMUONChamber& operator =(const AliMUONChamber& rhs);
   
index 98393fd..3a5ac74 100644 (file)
 
 /*
 $Log$
+Revision 1.5  2000/11/21 13:47:55  gosset
+All Mathieson parameters (Sqrt(K3), K2 and K4) set in one function,
+SetSqrtKx3AndDeriveKx2Kx4 or SetSqrtKx3AndDeriveKx2Kx4,
+for each cathode plane
+
 Revision 1.4  2000/10/25 10:41:52  morsch
 IntPH(..): Protec Log against random numbers equal to 0.
 
@@ -110,7 +115,10 @@ Float_t AliMUONResponseV0::IntXY(AliSegmentation * segmentation)
 Int_t  AliMUONResponseV0::DigitResponse(Int_t digit)
 {
     // add white noise and do zero-suppression and signal truncation
-    Float_t meanNoise = gRandom->Gaus(1, 0.2);
+//     Float_t meanNoise = gRandom->Gaus(1, 0.2);
+    // correct noise for slat chambers;
+    // one more field to add to AliMUONResponseV0 to allow different noises ????
+    Float_t meanNoise = gRandom->Gaus(1.5, 0.2);
     Float_t noise     = gRandom->Gaus(0, meanNoise);
     digit+=(Int_t)noise; 
     if ( digit <= ZeroSuppression()) digit = 0;
index ecbb217..f253454 100644 (file)
 
 /*
 $Log$
+Revision 1.19  2000/12/02 17:15:46  morsch
+Correction of dead zones in inner regions of stations 3-5
+Correction of length of slats 3 and 9 of station 4.
+
 Revision 1.17  2000/11/24 12:57:10  morsch
 New version of geometry for stations 3-5 "Slats" (A. de Falco)
  - sensitive region at station 3 inner radius
@@ -143,15 +147,24 @@ void AliMUONv1::CreateGeometry()
 //
      Float_t bpar[3];
      Float_t tpar[3];
-     Float_t pgpar[10];
+//      Float_t pgpar[10];
      Float_t zpos1, zpos2, zfpos;
+     // Outer excess and inner recess for mother volume radius
+     // with respect to ROuter and RInner
      Float_t dframep=.001; // Value for station 3 should be 6 ...
-     Float_t dframep1=.001;
-//     Bool_t frames=kTRUE;
-     Bool_t frames=kFALSE;     
+     // Width (RdPhi) of the frame crosses for stations 1 and 2 (cm)
+//      Float_t dframep1=.001;
+     Float_t dframep1 = 11.0;
+//      Bool_t frameCrosses=kFALSE;     
+     Bool_t frameCrosses=kTRUE;     
      
-     Float_t dframez=0.9;
-     Float_t dr;
+//      Float_t dframez=0.9;
+     // Half of the total thickness of frame crosses (including DAlu)
+     // for each chamber in stations 1 and 2:
+     // 3% of X0 of composite material,
+     // but taken as Aluminium here, with same thickness in number of X0
+     Float_t dframez = 3. * 8.9 / 100;
+//      Float_t dr;
      Float_t dstation;
 
 //
@@ -171,12 +184,13 @@ void AliMUONv1::CreateGeometry()
 //
 //   pointer to the current chamber
 //   pointer to the current chamber
-     Int_t idAlu1=idtmed[1103];
-     Int_t idAlu2=idtmed[1104];
+     Int_t idAlu1=idtmed[1103]; // medium 4
+     Int_t idAlu2=idtmed[1104]; // medium 5
 //     Int_t idAlu1=idtmed[1100];
 //     Int_t idAlu2=idtmed[1100];
-     Int_t idAir=idtmed[1100];
-     Int_t idGas=idtmed[1105];
+     Int_t idAir=idtmed[1100]; // medium 1
+//      Int_t idGas=idtmed[1105]; // medium 6 = Ar-isoC4H10 gas
+     Int_t idGas=idtmed[1108]; // medium 9 = Ar-CO2 gas (80%+20%)
      
 
      AliMUONChamber *iChamber, *iChamber1, *iChamber2;
@@ -196,55 +210,66 @@ void AliMUONv1::CreateGeometry()
      zpos1=iChamber1->Z(); 
      zpos2=iChamber2->Z();
      dstation = zpos2 - zpos1;
+     // DGas decreased from standard one (0.5)
+     iChamber->SetDGas(0.4); iChamber2->SetDGas(0.4);
+     // DAlu increased from standard one (3% of X0),
+     // because more electronics with smaller pads
+     iChamber->SetDAlu(3.5 * 8.9 / 100.); iChamber2->SetDAlu(3.5 * 8.9 / 100.);
      zfpos=-(iChamber->DGas()+dframez+iChamber->DAlu())/2;
      
 //
 //   Mother volume
-     tpar[0] = iChamber->RInner()-dframep1; 
-     tpar[1] = (iChamber->ROuter()+dframep1)/TMath::Cos(phi);
+     tpar[0] = iChamber->RInner()-dframep; 
+     tpar[1] = (iChamber->ROuter()+dframep)/TMath::Cos(phi);
      tpar[2] = dstation/5;
 
      gMC->Gsvolu("C01M", "TUBE", idAir, tpar, 3);
      gMC->Gsvolu("C02M", "TUBE", idAir, tpar, 3);
      gMC->Gspos("C01M", 1, "ALIC", 0., 0., zpos1 , 0, "ONLY");
      gMC->Gspos("C02M", 1, "ALIC", 0., 0., zpos2 , 0, "ONLY");     
-// Aluminium frames
-// Outer frames
-     pgpar[0] = 360/12/2;
-     pgpar[1] = 360.;
-     pgpar[2] = 12.;
-     pgpar[3] =   2;
-     pgpar[4] = -dframez/2;
-     pgpar[5] = iChamber->ROuter();
-     pgpar[6] = pgpar[5]+dframep1;
-     pgpar[7] = +dframez/2;
-     pgpar[8] = pgpar[5];
-     pgpar[9] = pgpar[6];
-     gMC->Gsvolu("C01O", "PGON", idAlu1, pgpar, 10);
-     gMC->Gsvolu("C02O", "PGON", idAlu1, pgpar, 10);
-     gMC->Gspos("C01O",1,"C01M", 0.,0.,-zfpos,  0,"ONLY");
-     gMC->Gspos("C01O",2,"C01M", 0.,0.,+zfpos,  0,"ONLY");
-     gMC->Gspos("C02O",1,"C02M", 0.,0.,-zfpos,  0,"ONLY");
-     gMC->Gspos("C02O",2,"C02M", 0.,0.,+zfpos,  0,"ONLY");
-//
-// Inner frame
-     tpar[0]= iChamber->RInner()-dframep1;
-     tpar[1]= iChamber->RInner();
-     tpar[2]= dframez/2;
-     gMC->Gsvolu("C01I", "TUBE", idAlu1, tpar, 3);
-     gMC->Gsvolu("C02I", "TUBE", idAlu1, tpar, 3);
-
-     gMC->Gspos("C01I",1,"C01M", 0.,0.,-zfpos,  0,"ONLY");
-     gMC->Gspos("C01I",2,"C01M", 0.,0.,+zfpos,  0,"ONLY");
-     gMC->Gspos("C02I",1,"C02M", 0.,0.,-zfpos,  0,"ONLY");
-     gMC->Gspos("C02I",2,"C02M", 0.,0.,+zfpos,  0,"ONLY");
+// // Aluminium frames
+// // Outer frames
+//      pgpar[0] = 360/12/2;
+//      pgpar[1] = 360.;
+//      pgpar[2] = 12.;
+//      pgpar[3] =   2;
+//      pgpar[4] = -dframez/2;
+//      pgpar[5] = iChamber->ROuter();
+//      pgpar[6] = pgpar[5]+dframep1;
+//      pgpar[7] = +dframez/2;
+//      pgpar[8] = pgpar[5];
+//      pgpar[9] = pgpar[6];
+//      gMC->Gsvolu("C01O", "PGON", idAlu1, pgpar, 10);
+//      gMC->Gsvolu("C02O", "PGON", idAlu1, pgpar, 10);
+//      gMC->Gspos("C01O",1,"C01M", 0.,0.,-zfpos,  0,"ONLY");
+//      gMC->Gspos("C01O",2,"C01M", 0.,0.,+zfpos,  0,"ONLY");
+//      gMC->Gspos("C02O",1,"C02M", 0.,0.,-zfpos,  0,"ONLY");
+//      gMC->Gspos("C02O",2,"C02M", 0.,0.,+zfpos,  0,"ONLY");
+// //
+// // Inner frame
+//      tpar[0]= iChamber->RInner()-dframep1;
+//      tpar[1]= iChamber->RInner();
+//      tpar[2]= dframez/2;
+//      gMC->Gsvolu("C01I", "TUBE", idAlu1, tpar, 3);
+//      gMC->Gsvolu("C02I", "TUBE", idAlu1, tpar, 3);
+
+//      gMC->Gspos("C01I",1,"C01M", 0.,0.,-zfpos,  0,"ONLY");
+//      gMC->Gspos("C01I",2,"C01M", 0.,0.,+zfpos,  0,"ONLY");
+//      gMC->Gspos("C02I",1,"C02M", 0.,0.,-zfpos,  0,"ONLY");
+//      gMC->Gspos("C02I",2,"C02M", 0.,0.,+zfpos,  0,"ONLY");
 //
 // Frame Crosses
-     if (frames) {
-
-        bpar[0] = (iChamber->ROuter() - iChamber->RInner())/2;
+     if (frameCrosses) {
+         // outside gas
+         // security for inside mother volume
+        bpar[0] = (iChamber->ROuter() - iChamber->RInner())
+          * TMath::Cos(TMath::ASin(dframep1 /
+                                  (iChamber->ROuter() - iChamber->RInner())))
+          / 2.0;
         bpar[1] = dframep1/2;
-        bpar[2] = dframez/2;
+        // total thickness will be (4 * bpar[2]) for each chamber,
+        // which has to be equal to (2 * dframez) - DAlu
+        bpar[2] = (2.0 * dframez - iChamber->DAlu()) / 4.0;
         gMC->Gsvolu("C01B", "BOX", idAlu1, bpar, 3);
         gMC->Gsvolu("C02B", "BOX", idAlu1, bpar, 3);
         
@@ -295,39 +320,40 @@ void AliMUONv1::CreateGeometry()
 //   Sensitive volumes
      // tpar[2] = iChamber->DGas();
      tpar[2] = iChamber->DGas()/2;
-     gMC->Gsvolu("C01G", "TUBE", idtmed[1108], tpar, 3);
-     gMC->Gsvolu("C02G", "TUBE", idtmed[1108], tpar, 3);
+     gMC->Gsvolu("C01G", "TUBE", idGas, tpar, 3);
+     gMC->Gsvolu("C02G", "TUBE", idGas, tpar, 3);
      gMC->Gspos("C01G", 1, "C01A", 0., 0., 0.,  0, "ONLY");
      gMC->Gspos("C02G", 1, "C02A", 0., 0., 0.,  0, "ONLY");
 //
-// Frame Crosses to be placed inside gas 
-     if (frames) {
-
-        dr = (iChamber->ROuter() - iChamber->RInner());
-        bpar[0] = TMath::Sqrt(dr*dr-dframep1*dframep1/4)/2;
-        bpar[1] = dframep1/2;
-        bpar[2] = iChamber->DGas()/2;
-        gMC->Gsvolu("C01F", "BOX", idAlu1, bpar, 3);
-        gMC->Gsvolu("C02F", "BOX", idAlu1, bpar, 3);
+// Frame Crosses to be placed inside gas
+     // NONE: chambers are sensitive everywhere
+//      if (frameCrosses) {
+
+//      dr = (iChamber->ROuter() - iChamber->RInner());
+//      bpar[0] = TMath::Sqrt(dr*dr-dframep1*dframep1/4)/2;
+//      bpar[1] = dframep1/2;
+//      bpar[2] = iChamber->DGas()/2;
+//      gMC->Gsvolu("C01F", "BOX", idAlu1, bpar, 3);
+//      gMC->Gsvolu("C02F", "BOX", idAlu1, bpar, 3);
         
-        gMC->Gspos("C01F",1,"C01G", +iChamber->RInner()+bpar[0] , 0, 0, 
-                   idrotm[1100],"ONLY");
-        gMC->Gspos("C01F",2,"C01G", -iChamber->RInner()-bpar[0] , 0, 0, 
-                   idrotm[1100],"ONLY");
-        gMC->Gspos("C01F",3,"C01G", 0, +iChamber->RInner()+bpar[0] , 0, 
-                   idrotm[1101],"ONLY");
-        gMC->Gspos("C01F",4,"C01G", 0, -iChamber->RInner()-bpar[0] , 0, 
-                   idrotm[1101],"ONLY");
+//      gMC->Gspos("C01F",1,"C01G", +iChamber->RInner()+bpar[0] , 0, 0, 
+//                 idrotm[1100],"ONLY");
+//      gMC->Gspos("C01F",2,"C01G", -iChamber->RInner()-bpar[0] , 0, 0, 
+//                 idrotm[1100],"ONLY");
+//      gMC->Gspos("C01F",3,"C01G", 0, +iChamber->RInner()+bpar[0] , 0, 
+//                 idrotm[1101],"ONLY");
+//      gMC->Gspos("C01F",4,"C01G", 0, -iChamber->RInner()-bpar[0] , 0, 
+//                 idrotm[1101],"ONLY");
         
-        gMC->Gspos("C02F",1,"C02G", +iChamber->RInner()+bpar[0] , 0, 0, 
-                   idrotm[1100],"ONLY");
-        gMC->Gspos("C02F",2,"C02G", -iChamber->RInner()-bpar[0] , 0, 0, 
-                   idrotm[1100],"ONLY");
-        gMC->Gspos("C02F",3,"C02G", 0, +iChamber->RInner()+bpar[0] , 0, 
-                   idrotm[1101],"ONLY");
-        gMC->Gspos("C02F",4,"C02G", 0, -iChamber->RInner()-bpar[0] , 0, 
-                   idrotm[1101],"ONLY");
-     }
+//      gMC->Gspos("C02F",1,"C02G", +iChamber->RInner()+bpar[0] , 0, 0, 
+//                 idrotm[1100],"ONLY");
+//      gMC->Gspos("C02F",2,"C02G", -iChamber->RInner()-bpar[0] , 0, 0, 
+//                 idrotm[1100],"ONLY");
+//      gMC->Gspos("C02F",3,"C02G", 0, +iChamber->RInner()+bpar[0] , 0, 
+//                 idrotm[1101],"ONLY");
+//      gMC->Gspos("C02F",4,"C02G", 0, -iChamber->RInner()-bpar[0] , 0, 
+//                 idrotm[1101],"ONLY");
+//      }
      }
      if (stations[1]) {
         
@@ -342,6 +368,7 @@ void AliMUONv1::CreateGeometry()
      zpos1=iChamber1->Z(); 
      zpos2=iChamber2->Z();
      dstation = zpos2 - zpos1;
+     // DGas and DAlu not changed from standard values
      zfpos=-(iChamber->DGas()+dframez+iChamber->DAlu())/2;
      
 //
@@ -355,43 +382,49 @@ void AliMUONv1::CreateGeometry()
      gMC->Gspos("C03M", 1, "ALIC", 0., 0., zpos1 , 0, "ONLY");
      gMC->Gspos("C04M", 1, "ALIC", 0., 0., zpos2 , 0, "ONLY");
 
-// Aluminium frames
-// Outer frames
-     pgpar[0] = 360/12/2;
-     pgpar[1] = 360.;
-     pgpar[2] = 12.;
-     pgpar[3] =   2;
-     pgpar[4] = -dframez/2;
-     pgpar[5] = iChamber->ROuter();
-     pgpar[6] = pgpar[5]+dframep;
-     pgpar[7] = +dframez/2;
-     pgpar[8] = pgpar[5];
-     pgpar[9] = pgpar[6];
-     gMC->Gsvolu("C03O", "PGON", idAlu1, pgpar, 10);
-     gMC->Gsvolu("C04O", "PGON", idAlu1, pgpar, 10);
-     gMC->Gspos("C03O",1,"C03M", 0.,0.,-zfpos,  0,"ONLY");
-     gMC->Gspos("C03O",2,"C03M", 0.,0.,+zfpos,  0,"ONLY");
-     gMC->Gspos("C04O",1,"C04M", 0.,0.,-zfpos,  0,"ONLY");
-     gMC->Gspos("C04O",2,"C04M", 0.,0.,+zfpos,  0,"ONLY");
-//
-// Inner frame
-     tpar[0]= iChamber->RInner()-dframep;
-     tpar[1]= iChamber->RInner();
-     tpar[2]= dframez/2;
-     gMC->Gsvolu("C03I", "TUBE", idAlu1, tpar, 3);
-     gMC->Gsvolu("C04I", "TUBE", idAlu1, tpar, 3);
-
-     gMC->Gspos("C03I",1,"C03M", 0.,0.,-zfpos,  0,"ONLY");
-     gMC->Gspos("C03I",2,"C03M", 0.,0.,+zfpos,  0,"ONLY");
-     gMC->Gspos("C04I",1,"C04M", 0.,0.,-zfpos,  0,"ONLY");
-     gMC->Gspos("C04I",2,"C04M", 0.,0.,+zfpos,  0,"ONLY");
+// // Aluminium frames
+// // Outer frames
+//      pgpar[0] = 360/12/2;
+//      pgpar[1] = 360.;
+//      pgpar[2] = 12.;
+//      pgpar[3] =   2;
+//      pgpar[4] = -dframez/2;
+//      pgpar[5] = iChamber->ROuter();
+//      pgpar[6] = pgpar[5]+dframep;
+//      pgpar[7] = +dframez/2;
+//      pgpar[8] = pgpar[5];
+//      pgpar[9] = pgpar[6];
+//      gMC->Gsvolu("C03O", "PGON", idAlu1, pgpar, 10);
+//      gMC->Gsvolu("C04O", "PGON", idAlu1, pgpar, 10);
+//      gMC->Gspos("C03O",1,"C03M", 0.,0.,-zfpos,  0,"ONLY");
+//      gMC->Gspos("C03O",2,"C03M", 0.,0.,+zfpos,  0,"ONLY");
+//      gMC->Gspos("C04O",1,"C04M", 0.,0.,-zfpos,  0,"ONLY");
+//      gMC->Gspos("C04O",2,"C04M", 0.,0.,+zfpos,  0,"ONLY");
+// //
+// // Inner frame
+//      tpar[0]= iChamber->RInner()-dframep;
+//      tpar[1]= iChamber->RInner();
+//      tpar[2]= dframez/2;
+//      gMC->Gsvolu("C03I", "TUBE", idAlu1, tpar, 3);
+//      gMC->Gsvolu("C04I", "TUBE", idAlu1, tpar, 3);
+
+//      gMC->Gspos("C03I",1,"C03M", 0.,0.,-zfpos,  0,"ONLY");
+//      gMC->Gspos("C03I",2,"C03M", 0.,0.,+zfpos,  0,"ONLY");
+//      gMC->Gspos("C04I",1,"C04M", 0.,0.,-zfpos,  0,"ONLY");
+//      gMC->Gspos("C04I",2,"C04M", 0.,0.,+zfpos,  0,"ONLY");
 //
 // Frame Crosses
-     if (frames) {
-
-        bpar[0] = (iChamber->ROuter() - iChamber->RInner())/2;
-        bpar[1] = dframep/2;
-        bpar[2] = dframez/2;
+     if (frameCrosses) {
+         // outside gas
+         // security for inside mother volume
+        bpar[0] = (iChamber->ROuter() - iChamber->RInner())
+          * TMath::Cos(TMath::ASin(dframep1 /
+                                  (iChamber->ROuter() - iChamber->RInner())))
+          / 2.0;
+        bpar[1] = dframep1/2;
+        // total thickness will be (4 * bpar[2]) for each chamber,
+        // which has to be equal to (2 * dframez) - DAlu
+        bpar[2] = (2.0 * dframez - iChamber->DAlu()) / 4.0;
         gMC->Gsvolu("C03B", "BOX", idAlu1, bpar, 3);
         gMC->Gsvolu("C04B", "BOX", idAlu1, bpar, 3);
         
@@ -446,35 +479,36 @@ void AliMUONv1::CreateGeometry()
      gMC->Gsvolu("C04G", "TUBE", idGas, tpar, 3);
      gMC->Gspos("C03G", 1, "C03A", 0., 0., 0.,  0, "ONLY");
      gMC->Gspos("C04G", 1, "C04A", 0., 0., 0.,  0, "ONLY");
-
-     if (frames) {
 //
 // Frame Crosses to be placed inside gas 
-        dr = (iChamber->ROuter() - iChamber->RInner());
-        bpar[0] = TMath::Sqrt(dr*dr-dframep*dframep/4)/2;
-        bpar[1] = dframep/2;
-        bpar[2] = iChamber->DGas()/2;
-        gMC->Gsvolu("C03F", "BOX", idAlu1, bpar, 3);
-        gMC->Gsvolu("C04F", "BOX", idAlu1, bpar, 3);
+     // NONE: chambers are sensitive everywhere
+//      if (frameCrosses) {
+
+//      dr = (iChamber->ROuter() - iChamber->RInner());
+//      bpar[0] = TMath::Sqrt(dr*dr-dframep1*dframep1/4)/2;
+//      bpar[1] = dframep1/2;
+//      bpar[2] = iChamber->DGas()/2;
+//      gMC->Gsvolu("C03F", "BOX", idAlu1, bpar, 3);
+//      gMC->Gsvolu("C04F", "BOX", idAlu1, bpar, 3);
         
-        gMC->Gspos("C03F",1,"C03G", +iChamber->RInner()+bpar[0] , 0, 0, 
-                   idrotm[1100],"ONLY");
-        gMC->Gspos("C03F",2,"C03G", -iChamber->RInner()-bpar[0] , 0, 0, 
-                   idrotm[1100],"ONLY");
-        gMC->Gspos("C03F",3,"C03G", 0, +iChamber->RInner()+bpar[0] , 0, 
-                   idrotm[1101],"ONLY");
-        gMC->Gspos("C03F",4,"C03G", 0, -iChamber->RInner()-bpar[0] , 0, 
-                   idrotm[1101],"ONLY");
+//      gMC->Gspos("C03F",1,"C03G", +iChamber->RInner()+bpar[0] , 0, 0, 
+//                 idrotm[1100],"ONLY");
+//      gMC->Gspos("C03F",2,"C03G", -iChamber->RInner()-bpar[0] , 0, 0, 
+//                 idrotm[1100],"ONLY");
+//      gMC->Gspos("C03F",3,"C03G", 0, +iChamber->RInner()+bpar[0] , 0, 
+//                 idrotm[1101],"ONLY");
+//      gMC->Gspos("C03F",4,"C03G", 0, -iChamber->RInner()-bpar[0] , 0, 
+//                 idrotm[1101],"ONLY");
         
-        gMC->Gspos("C04F",1,"C04G", +iChamber->RInner()+bpar[0] , 0, 0, 
-                   idrotm[1100],"ONLY");
-        gMC->Gspos("C04F",2,"C04G", -iChamber->RInner()-bpar[0] , 0, 0, 
-                   idrotm[1100],"ONLY");
-        gMC->Gspos("C04F",3,"C04G", 0, +iChamber->RInner()+bpar[0] , 0, 
-                   idrotm[1101],"ONLY");
-        gMC->Gspos("C04F",4,"C04G", 0, -iChamber->RInner()-bpar[0] , 0, 
-                   idrotm[1101],"ONLY");
-     }
+//      gMC->Gspos("C04F",1,"C04G", +iChamber->RInner()+bpar[0] , 0, 0, 
+//                 idrotm[1100],"ONLY");
+//      gMC->Gspos("C04F",2,"C04G", -iChamber->RInner()-bpar[0] , 0, 0, 
+//                 idrotm[1100],"ONLY");
+//      gMC->Gspos("C04F",3,"C04G", 0, +iChamber->RInner()+bpar[0] , 0, 
+//                 idrotm[1101],"ONLY");
+//      gMC->Gspos("C04F",4,"C04G", 0, -iChamber->RInner()-bpar[0] , 0, 
+//                 idrotm[1101],"ONLY");
+//      }
      }
      // define the id of tracking media:
      Int_t idCopper = idtmed[1110];
@@ -583,7 +617,7 @@ void AliMUONv1::CreateGeometry()
      zpos2=iChamber2->Z();
      dstation = zpos2 - zpos1;
 
-     zfpos=-(iChamber->DGas()+dframez+iChamber->DAlu())/2;
+//      zfpos=-(iChamber->DGas()+dframez+iChamber->DAlu())/2; // not used any more
 //
 //   Mother volume
      tpar[0] = iChamber->RInner()-dframep; 
@@ -793,7 +827,7 @@ void AliMUONv1::CreateGeometry()
      zpos1=iChamber1->Z(); 
      zpos2=iChamber2->Z();
      dstation = zpos2 - zpos1;
-     zfpos=-(iChamber->DGas()+dframez+iChamber->DAlu())/2;
+//      zfpos=-(iChamber->DGas()+dframez+iChamber->DAlu())/2; // not used any more
      
 //
 //   Mother volume
@@ -1002,7 +1036,7 @@ void AliMUONv1::CreateGeometry()
      zpos1=iChamber1->Z(); 
      zpos2=iChamber2->Z();
      dstation = zpos2 - zpos1;
-     zfpos=-(iChamber->DGas()+dframez+iChamber->DAlu())/2;
+//      zfpos=-(iChamber->DGas()+dframez+iChamber->DAlu())/2; // not used any more
      
 //
 //   Mother volume
@@ -1713,7 +1747,7 @@ void AliMUONv1::CreateMaterials()
 {
   // *** DEFINITION OF AVAILABLE MUON MATERIALS *** 
   //
-  //     Ar-CO2 gas 
+  //     Ar-CO2 gas (80%+20%)
     Float_t ag1[3]   = { 39.95,12.01,16. };
     Float_t zg1[3]   = { 18.,6.,8. };
     Float_t wg1[3]   = { .8,.0667,.13333 };
index 6c5a01b..47c8b38 100644 (file)
@@ -352,22 +352,33 @@ AliMUON *MUON  = new AliMUONv1("MUON","normal MUON");
 //  
  Int_t chamber;
  Int_t station;
-// Default response
+ // Default response: 5 mm of gas
  AliMUONResponseV0* response0 = new AliMUONResponseV0;
- response0->SetSqrtKx3AndDeriveKx2Kx4(0.7131);
- response0->SetSqrtKy3AndDeriveKy2Ky4(0.7642);
- //response0->SetSqrtKx3(0.7131);
- //response0->SetKx2(1.0107);
- //response0->SetKx4(0.4036);
- //response0->SetSqrtKy3(0.7642);
- //response0->SetKy2(0.9706);
- //response0->SetKy4(0.3831);
- response0->SetPitch(0.25);
+ response0->SetSqrtKx3AndDeriveKx2Kx4(0.7131); // sqrt(0.5085)
+ response0->SetSqrtKy3AndDeriveKy2Ky4(0.7642); // sqrt(0.5840)
+ response0->SetPitch(0.25); // anode-cathode distance
  response0->SetSigmaIntegration(10.);
  response0->SetChargeSlope(50);
  response0->SetChargeSpread(0.18, 0.18);
  response0->SetMaxAdc(4096);
  response0->SetZeroSuppression(6);
+
+ // Response for 4 mm of gas (station 1)
+ // automatic consistency with width of sensitive medium in CreateGeometry ????
+ AliMUONResponseV0* responseSt1 = new AliMUONResponseV0;
+ // Mathieson parameters from L.Kharmandarian's thesis, page 190
+ responseSt1->SetSqrtKx3AndDeriveKx2Kx4(0.7000); // sqrt(0.4900)
+ responseSt1->SetSqrtKy3AndDeriveKy2Ky4(0.7550); // sqrt(0.5700)
+ responseSt1->SetPitch(0.20); // anode-cathode distance
+ responseSt1->SetSigmaIntegration(10.);
+ // ChargeSlope larger to compensate for the smaller anode-cathode distance
+ // and keep the same most probable ADC channel for mip's
+ responseSt1->SetChargeSlope(62.5); 
+ // assumed proportionality to anode-cathode distance for ChargeSpread
+ responseSt1->SetChargeSpread(0.144, 0.144);
+ responseSt1->SetMaxAdc(4096);
+ responseSt1->SetZeroSuppression(6);
+
 //--------------------------------------------------------
 // Configuration for Chamber TC1/2  (Station 1) ----------           
 //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -381,21 +392,26 @@ AliMUON *MUON  = new AliMUONv1("MUON","normal MUON");
  AliMUONSegmentationV01 *seg11=new AliMUONSegmentationV01;
  
  seg11->SetSegRadii(rseg1);
- seg11->SetPadSize(3, 0.5);
- seg11->SetDAnod(3.0/3./4);
+//  seg11->SetPadSize(3, 0.5);
+ seg11->SetPadSize(2.4, 0.4); // smaller pad size
+//  seg11->SetDAnod(3.0/3./4);
+ seg11->SetDAnod(0.20); // smaller distance between anode wires
  seg11->SetPadDivision(nseg1);
  
  MUON->SetSegmentationModel(chamber-1, 1, seg11);
 //
  AliMUONSegmentationV02 *seg12=new AliMUONSegmentationV02;
  seg12->SetSegRadii(rseg1); 
- seg12->SetPadSize(0.75, 2.0);
- seg12->SetDAnod(3.0/3./4);
+//  seg12->SetPadSize(0.75, 2.0);
+ seg12->SetPadSize(0.6, 1.6); // smaller pad size
+//  seg12->SetDAnod(3.0/3./4);
+ seg12->SetDAnod(0.20); // smaller distance between anode wires
  seg12->SetPadDivision(nseg1);
 
  MUON->SetSegmentationModel(chamber-1, 2, seg12);
 
- MUON->SetResponseModel(chamber-1, response0);     
+//  MUON->SetResponseModel(chamber-1, response0);          
+ MUON->SetResponseModel(chamber-1, responseSt1); // special response       
 
  chamber=2;
 //^^^^^^^^^
@@ -404,19 +420,25 @@ AliMUON *MUON  = new AliMUONv1("MUON","normal MUON");
 //
  AliMUONSegmentationV01 *seg21=new AliMUONSegmentationV01;
  seg21->SetSegRadii(rseg1);
- seg21->SetPadSize(3, 0.5);
- seg21->SetDAnod(3.0/3./4);
+//  seg21->SetPadSize(3, 0.5);
+ seg21->SetPadSize(2.4, 0.4); // smaller pad size
+//  seg21->SetDAnod(3.0/3./4);
+ seg21->SetDAnod(0.20); // smaller distance between anode wires
  seg21->SetPadDivision(nseg1);
  MUON->SetSegmentationModel(chamber-1, 1, seg21);
 //
  AliMUONSegmentationV02 *seg22=new AliMUONSegmentationV02;
  seg22->SetSegRadii(rseg1); 
- seg22->SetPadSize(0.75, 2.);
- seg22->SetDAnod(3.0/3./4);
+//  seg22->SetPadSize(0.75, 2.);
+ seg22->SetPadSize(0.6, 1.6); // smaller pad size
+//  seg22->SetDAnod(3.0/3./4);
+ seg22->SetDAnod(0.20); // smaller distance between anode wires
  seg22->SetPadDivision(nseg1);
  MUON->SetSegmentationModel(chamber-1, 2, seg22);
 
- MUON->SetResponseModel(chamber-1, response0);     
+//  MUON->SetResponseModel(chamber-1, response0);          
+ MUON->SetResponseModel(chamber-1, responseSt1); // special response
+           
 //
 //--------------------------------------------------------
 // Configuration for Chamber TC3/4 (Station 2) -----------