]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ZDC/AliZDCv1.cxx
Changes in AddHit method
[u/mrichter/AliRoot.git] / ZDC / AliZDCv1.cxx
index f24ccf669b515daaeb10114770009a470ac42d45..ca0403fbd73282cca777c7381e64896aecf20369 100644 (file)
 
 /*
 $Log$
+Revision 1.22  2001/05/05 13:33:19  coppedis
+Changes in StepManager to speed simulation
+
+Revision 1.21  2001/05/02 11:54:34  enrico
+Minor change
+
+Revision 1.20  2001/05/02 10:33:11  coppedis
+Modify tmaxfd in media definition
+
+Revision 1.19  2001/04/27 08:35:01  coppedis
+Remove some lines for proton acceptance studies
+
+Revision 1.18  2001/04/20 10:08:45  coppedis
+Preliminary version of optics 6.2 - Insertion of TDI
+
 Revision 1.17  2001/03/16 16:18:10  coppedis
 Correction for superposition of ZDC volumes with MUON arm one
 
@@ -133,8 +148,8 @@ AliZDCv1::AliZDCv1() : AliZDC()
   fMedSensZP  = 0;
   fMedSensZEM = 0;
   fMedSensGR  = 0;
-  fMedSensPI  = 0;
-  fMedSensTDI = 0;
+//  fMedSensPI  = 0;
+//  fMedSensTDI = 0;
 }
  
 //_____________________________________________________________________________
@@ -162,8 +177,8 @@ AliZDCv1::AliZDCv1(const char *name, const char *title)
   fMedSensZP  = 0;
   fMedSensZEM = 0;
   fMedSensGR  = 0;
-  fMedSensPI  = 0;
-  fMedSensTDI = 0;
+//  fMedSensPI  = 0;
+//  fMedSensTDI = 0;
 
   
   // Parameters for light tables
@@ -1016,20 +1031,20 @@ void AliZDCv1::CreateMaterials()
   // --- Tracking media parameters 
   Float_t epsil  = .01, stmin=0.01, stemax = 1.;
   Int_t   isxfld = gAlice->Field()->Integ();
-  Float_t fieldm = gAlice->Field()->Max();
-  Float_t tmaxfd=gAlice->Field()->Max();
+//  Float_t fieldm = gAlice->Field()->Max();
+  Float_t fieldm = 0., tmaxfd = 0.;
   Int_t   ifield = 0, isvolActive = 1, isvol = 0, inofld = 0;
   
-  fieldm = 0.;
-  tmaxfd = 0.05;
   AliMedium(1, "ZTANT", 1, isvolActive, inofld, fieldm, tmaxfd, stemax, deemax, epsil, stmin);
 //  AliMedium(1, "ZW", 1, isvolActive, inofld, fieldm, tmaxfd, stemax, deemax, epsil, stmin);
   AliMedium(2, "ZBRASS",2, isvolActive, inofld, fieldm, tmaxfd, stemax, deemax, epsil, stmin);
   AliMedium(3, "ZSIO2", 3, isvolActive, inofld, fieldm, tmaxfd, stemax, deemax, epsil, stmin);
   AliMedium(4, "ZQUAR", 3, isvolActive, inofld, fieldm, tmaxfd, stemax, deemax, epsil, stmin);
   AliMedium(5, "ZLEAD", 5, isvolActive, inofld, fieldm, tmaxfd, stemax, deemax, epsil, stmin);
-  AliMedium(6, "ZCOPP", 6, isvolActive, inofld, fieldm, tmaxfd, stemax, deemax, epsil, stmin);
-  AliMedium(7, "ZIRON", 7, isvolActive, inofld, fieldm, tmaxfd, stemax, deemax, epsil, stmin);
+//  AliMedium(6, "ZCOPP", 6, isvolActive, inofld, fieldm, tmaxfd, stemax, deemax, epsil, stmin);
+//  AliMedium(7, "ZIRON", 7, isvolActive, inofld, fieldm, tmaxfd, stemax, deemax, epsil, stmin);
+  AliMedium(6, "ZCOPP", 6, isvol, inofld, fieldm, tmaxfd, stemax, deemax, epsil, stmin);
+  AliMedium(7, "ZIRON", 7, isvol, inofld, fieldm, tmaxfd, stemax, deemax, epsil, stmin);
   AliMedium(8, "ZIRONN",8, isvol, inofld, fieldm, tmaxfd, stemax, deemax, epsil, stmin);
   AliMedium(10,"ZVOID",10, isvol, inofld, fieldm, tmaxfd, stemax, deemax, epsil, stmin);
   AliMedium(12,"ZAIR", 12, 0, inofld, fieldm, tmaxfd, stemax,deemax, epsil, stmin);
@@ -1055,6 +1070,13 @@ void AliZDCv1::CreateMaterials()
   gMC->Gstpar(idtmed[i], "CUTNEU", .01);
   gMC->Gstpar(idtmed[i], "CUTHAD", .01);
   
+  // Avoid too detailed showering in TDI 
+  i = 6; //copper
+  gMC->Gstpar(idtmed[i], "CUTGAM", .1);
+  gMC->Gstpar(idtmed[i], "CUTELE", .1);
+  gMC->Gstpar(idtmed[i], "CUTNEU", 1.);
+  gMC->Gstpar(idtmed[i], "CUTHAD", 1.);
+  
   // Avoid too detailed showering along the beam line 
   i = 7; //iron with energy loss (ZIRON)
   gMC->Gstpar(idtmed[i], "CUTGAM", .1);
@@ -1062,6 +1084,13 @@ void AliZDCv1::CreateMaterials()
   gMC->Gstpar(idtmed[i], "CUTNEU", 1.);
   gMC->Gstpar(idtmed[i], "CUTHAD", 1.);
   
+  // Avoid too detailed showering along the beam line 
+  i = 8; //iron with energy loss (ZIRONN)
+  gMC->Gstpar(idtmed[i], "CUTGAM", .1);
+  gMC->Gstpar(idtmed[i], "CUTELE", .1);
+  gMC->Gstpar(idtmed[i], "CUTNEU", 1.);
+  gMC->Gstpar(idtmed[i], "CUTHAD", 1.);
+  
   // Avoid interaction in fibers (only energy loss allowed) 
   i = 3; //fibers (ZSI02)
   gMC->Gstpar(idtmed[i], "DCAY", 0.);
@@ -1091,19 +1120,19 @@ void AliZDCv1::CreateMaterials()
   gMC->Gstpar(idtmed[i], "HADR", 0.);
   
   // Avoid interaction in void 
-//  i = 10; //void
-//  gMC->Gstpar(idtmed[i], "DCAY", 0.);
-//  gMC->Gstpar(idtmed[i], "MULS", 0.);
-//  gMC->Gstpar(idtmed[i], "PFIS", 0.);
-//  gMC->Gstpar(idtmed[i], "MUNU", 0.);
-//  gMC->Gstpar(idtmed[i], "LOSS", 0.);
-//  gMC->Gstpar(idtmed[i], "PHOT", 0.);
-//  gMC->Gstpar(idtmed[i], "COMP", 0.);
-//  gMC->Gstpar(idtmed[i], "PAIR", 0.);
-//  gMC->Gstpar(idtmed[i], "BREM", 0.);
-//  gMC->Gstpar(idtmed[i], "DRAY", 0.);
-//  gMC->Gstpar(idtmed[i], "ANNI", 0.);
-//  gMC->Gstpar(idtmed[i], "HADR", 0.);
+  i = 11; //void with field
+  gMC->Gstpar(idtmed[i], "DCAY", 0.);
+  gMC->Gstpar(idtmed[i], "MULS", 0.);
+  gMC->Gstpar(idtmed[i], "PFIS", 0.);
+  gMC->Gstpar(idtmed[i], "MUNU", 0.);
+  gMC->Gstpar(idtmed[i], "LOSS", 0.);
+  gMC->Gstpar(idtmed[i], "PHOT", 0.);
+  gMC->Gstpar(idtmed[i], "COMP", 0.);
+  gMC->Gstpar(idtmed[i], "PAIR", 0.);
+  gMC->Gstpar(idtmed[i], "BREM", 0.);
+  gMC->Gstpar(idtmed[i], "DRAY", 0.);
+  gMC->Gstpar(idtmed[i], "ANNI", 0.);
+  gMC->Gstpar(idtmed[i], "HADR", 0.);
 
   //
   fMedSensZN  = idtmed[1];  // Sensitive volume: ZN passive material
@@ -1111,8 +1140,8 @@ void AliZDCv1::CreateMaterials()
   fMedSensF1  = idtmed[3];  // Sensitive volume: fibres type 1
   fMedSensF2  = idtmed[4];  // Sensitive volume: fibres type 2
   fMedSensZEM = idtmed[5];  // Sensitive volume: ZEM passive material
-  fMedSensTDI = idtmed[6];  // Sensitive volume: TDI Cu shield
-  fMedSensPI  = idtmed[7];  // Sensitive volume: beam pipes
+//  fMedSensTDI = idtmed[6];  // Sensitive volume: TDI Cu shield
+//  fMedSensPI  = idtmed[7];  // Sensitive volume: beam pipes
   fMedSensGR  = idtmed[12]; // Sensitive volume: air into the grooves
 } 
 
@@ -1376,26 +1405,26 @@ void AliZDCv1::StepManager()
 
   if((gMC->GetMedium() == fMedSensZN) || (gMC->GetMedium() == fMedSensZP) ||
      (gMC->GetMedium() == fMedSensGR) || (gMC->GetMedium() == fMedSensF1) ||
-     (gMC->GetMedium() == fMedSensF2) || (gMC->GetMedium() == fMedSensZEM)||
-     (gMC->GetMedium() == fMedSensPI) || (gMC->GetMedium() == fMedSensTDI)){
+     (gMC->GetMedium() == fMedSensF2) || (gMC->GetMedium() == fMedSensZEM)){
+//     (gMC->GetMedium() == fMedSensPI) || (gMC->GetMedium() == fMedSensTDI)){
        
   // If particle interacts with beam pipe -> return
-    if((gMC->GetMedium() == fMedSensPI) || (gMC->GetMedium() == fMedSensTDI)){ 
+//    if((gMC->GetMedium() == fMedSensPI) || (gMC->GetMedium() == fMedSensTDI)){ 
       // If option NoShower is set -> StopTrack
-      if(fNoShower==1) {
-       if(gMC->GetMedium() == fMedSensPI) {
-          knamed = gMC->CurrentVolName();
-          if((!strncmp(knamed,"MQ",2)) || (!strncmp(knamed,"YM",2)))  fpLostIT += 1;
-          if((!strncmp(knamed,"MD1",3))|| (!strncmp(knamed,"YD1",2))) fpLostD1 += 1;
-       }
-       if(gMC->GetMedium() == fMedSensTDI) fpLostTDI += 1;
-        gMC->StopTrack();
+//      if(fNoShower==1) {
+//     if(gMC->GetMedium() == fMedSensPI) {
+//          knamed = gMC->CurrentVolName();
+//          if((!strncmp(knamed,"MQ",2)) || (!strncmp(knamed,"YM",2)))  fpLostIT += 1;
+//          if((!strncmp(knamed,"MD1",3))|| (!strncmp(knamed,"YD1",2))) fpLostD1 += 1;
+//     }
+//     if(gMC->GetMedium() == fMedSensTDI) fpLostTDI += 1;
+//        gMC->StopTrack();
 //     printf("\n      # of p lost in Inner Triplet = %d\n",fpLostIT);
 //     printf("\n      # of p lost in D1  = %d\n",fpLostD1);
 //     printf("\n      # of p lost in TDI = %d\n",fpLostTDI);
-        return;
-      }
-    }
+//        return;
+//      }
+//    }
   
   //Particle coordinates 
     gMC->TrackPosition(s);
@@ -1434,6 +1463,7 @@ void AliZDCv1::StepManager()
       for(int i=1; i<=4; i++){
          if(xqZP>=(i-3) && xqZP<(i-2)){
           vol[1] = i;
+          if(i==0) printf("\n!!! vol[1] = 0 -> xqZP = %f\n", xqZP);
           break;
         }
       }
@@ -1466,7 +1496,7 @@ void AliZDCv1::StepManager()
        AddHit(gAlice->CurrentTrack(), vol, hits);
        
        if(fNoShower==1){
-         fpDetected += 1;
+//       fpDetected += 1;
          gMC->StopTrack();
 //       printf("\n    # of detected p = %d\n",fpDetected);
          return;