default geant cuts for EMCAL's material: cutele=cutgam=100KeV
authorpavlinov <pavlinov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 10 Oct 2005 21:19:05 +0000 (21:19 +0000)
committerpavlinov <pavlinov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 10 Oct 2005 21:19:05 +0000 (21:19 +0000)
EMCAL/AliEMCAL.cxx
EMCAL/AliEMCAL.h
EMCAL/AliEMCALGeometry.cxx
EMCAL/AliEMCALGeometry.h
EMCAL/AliEMCALv2.cxx
EMCAL/AliEMCALv2.h

index 044c664..806b83f 100644 (file)
@@ -135,20 +135,20 @@ void AliEMCAL::CreateMaterials()
   Float_t sxmgmx = gAlice->Field()->Max() ;
 
   // Air                                                                         -> idtmed[1599]
- AliMedium(0, "Air          $", 0, 0,
+ AliMedium(0, "Air$", 0, 0,
             isxfld, sxmgmx, 10.0, 1.0, 0.1, 0.1, 10.0, 0, 0) ;
 
   // The Lead                                                                      -> idtmed[1600]
  
-  AliMedium(1, "Lead      $", 1, 0,
+  AliMedium(1, "Lead$", 1, 0,
             isxfld, sxmgmx, 10.0, 0.1, 0.1, 0.1, 0.1, 0, 0) ;
 
  // The scintillator of the CPV made of Polystyrene scintillator                   -> idtmed[1601]
-  AliMedium(2, "CPV scint.   $", 2, 1,
+  AliMedium(2, "Scintillator$", 2, 1,
             isxfld, sxmgmx, 10.0, 0.001, 0.1, 0.001, 0.001, 0, 0) ;
 
   // Various Aluminium parts made of Al                                            -> idtmed[1602]
-  AliMedium(3, "Al parts     $", 3, 0,
+  AliMedium(3, "Al$", 3, 0,
              isxfld, sxmgmx, 10.0, 0.1, 0.1, 0.001, 0.001, 0, 0) ;
 
   // 25-aug-04 by PAI : see  PMD/AliPMDv0.cxx for STEEL definition                 -> idtmed[1603]
@@ -158,36 +158,62 @@ void AliEMCAL::CreateMaterials()
 // --- Set decent energy thresholds for gamma and electron tracking
 
   // Tracking threshold for photons and electrons in Lead 
-  gMC->Gstpar(idtmed[1600],"CUTGAM",0.00008) ;
-  gMC->Gstpar(idtmed[1600],"CUTELE",0.001) ;
-  gMC->Gstpar(idtmed[1600],"BCUTE",0.0001) ;
+  Float_t cutgam=10.e-5; // 100 kev;
+  Float_t cutele=10.e-5; // 100 kev;
+  TString ntmp(GetTitle()); 
+  ntmp.ToUpper();
+  if(ntmp.Contains("10KEV")) {
+    cutele = cutgam = 1.e-5;
+  } else if(ntmp.Contains("50KEV")) {
+    cutele = cutgam = 5.e-5;
+  } else if(ntmp.Contains("100KEV")) {
+    cutele = cutgam = 1.e-4;
+  } else if(ntmp.Contains("200KEV")) {
+    cutele = cutgam = 2.e-4;
+  } else if(ntmp.Contains("500KEV")) {
+    cutele = cutgam = 5.e-4;
+  }
 
+  gMC->Gstpar(idtmed[1600],"CUTGAM", cutgam);
+  gMC->Gstpar(idtmed[1600],"CUTELE", cutele); // 1MEV -> 0.1MEV; 15-aug-05
+  gMC->Gstpar(idtmed[1600],"BCUTE",  cutgam);  // BCUTE and BCUTM start from GUTGUM
+  gMC->Gstpar(idtmed[1600],"BCUTM",  cutgam);  // BCUTE and BCUTM start from GUTGUM
   // --- Generate explicitly delta rays in Lead ---
   gMC->Gstpar(idtmed[1600], "LOSS",3.) ;
   gMC->Gstpar(idtmed[1600], "DRAY",1.) ;
-  gMC->Gstpar(idtmed[1600], "DCUTE",0.00001) ;
-  gMC->Gstpar(idtmed[1600], "DCUTM",0.00001) ;
+  gMC->Gstpar(idtmed[1600], "DCUTE", cutele) ;
+  gMC->Gstpar(idtmed[1600], "DCUTM", cutele) ;
 
 // --- in aluminium parts ---
+  gMC->Gstpar(idtmed[1602],"CUTGAM", cutgam) ;
+  gMC->Gstpar(idtmed[1602],"CUTELE", cutele) ;
+  gMC->Gstpar(idtmed[1602],"BCUTE",  cutgam);  // BCUTE and BCUTM start from GUTGUM
+  gMC->Gstpar(idtmed[1602],"BCUTM",  cutgam);  // BCUTE and BCUTM start from GUTGUM
   gMC->Gstpar(idtmed[1602], "LOSS",3.) ;
   gMC->Gstpar(idtmed[1602], "DRAY",1.) ;
-  gMC->Gstpar(idtmed[1602], "DCUTE",0.00001) ;
-  gMC->Gstpar(idtmed[1602], "DCUTM",0.00001) ;
+  gMC->Gstpar(idtmed[1602], "DCUTE", cutele) ;
+  gMC->Gstpar(idtmed[1602], "DCUTM", cutele) ;
 
 // --- and finally thresholds for photons and electrons in the scintillator ---
-  gMC->Gstpar(idtmed[1601],"CUTGAM",0.00008) ;
-  gMC->Gstpar(idtmed[1601],"CUTELE",0.001) ;
-  gMC->Gstpar(idtmed[1601],"BCUTE",0.0001) ;
-
-  // the same parameters as for Pb - 10-sep-04
-  gMC->Gstpar(idtmed[1603],"CUTGAM",0.00008) ;
-  gMC->Gstpar(idtmed[1603],"CUTELE",0.001) ;
-  gMC->Gstpar(idtmed[1603],"BCUTE", 0.0001); 
-  // --- Generate explicitly delta rays in Lead ---
+  gMC->Gstpar(idtmed[1601],"CUTGAM", cutgam) ;
+  gMC->Gstpar(idtmed[1601],"CUTELE", cutele) ;// 1MEV -> 0.1MEV; 15-aug-05
+  gMC->Gstpar(idtmed[1601],"BCUTE",  cutgam);  // BCUTE and BCUTM start from GUTGUM
+  gMC->Gstpar(idtmed[1601],"BCUTM",  cutgam);  // BCUTE and BCUTM start from GUTGUM
+  gMC->Gstpar(idtmed[1601], "LOSS",3.) ; // generate delta rays 
+  gMC->Gstpar(idtmed[1601], "DRAY",1.) ;
+  gMC->Gstpar(idtmed[1601], "DCUTE", cutele) ;
+  gMC->Gstpar(idtmed[1601], "DCUTM", cutele) ;
+
+  // S steel - 
+  gMC->Gstpar(idtmed[1603],"CUTGAM", cutgam);
+  gMC->Gstpar(idtmed[1603],"CUTELE", cutele);
+  gMC->Gstpar(idtmed[1603],"BCUTE",  cutgam);  // BCUTE and BCUTM start from GUTGUM
+  gMC->Gstpar(idtmed[1603],"BCUTM",  cutgam);  // BCUTE and BCUTM start from GUTGUM
+  // --- Generate explicitly delta rays 
   gMC->Gstpar(idtmed[1603], "LOSS",3.);
   gMC->Gstpar(idtmed[1603], "DRAY",1.);
-  gMC->Gstpar(idtmed[1603], "DCUTE",0.00001);
-  gMC->Gstpar(idtmed[1603], "DCUTM",0.00001);
+  gMC->Gstpar(idtmed[1603], "DCUTE", cutele) ;
+  gMC->Gstpar(idtmed[1603], "DCUTM", cutele) ;
 
   //set constants for Birk's Law implentation
   fBirkC0 =  1;
index 36093e4..82e9377 100644 (file)
@@ -39,6 +39,7 @@ class AliEMCAL : public AliDetector {
   virtual void  Copy(AliEMCAL & emcal) ; 
   virtual AliDigitizer* CreateDigitizer(AliRunDigitizer* manager) const;
   virtual void  CreateMaterials() ;   
+  //  virtual void  
   virtual void  Digits2Raw();
   virtual void  FinishRun() {}                  
   virtual AliEMCALGeometry * GetGeometry() const 
index 6a9fc2e..037ea74 100644 (file)
@@ -81,6 +81,7 @@ void AliEMCALGeometry::Init(void){
   fArm1EtaMin     = -0.7;      // pseudorapidity, Starting EMCAL Eta position
   fArm1EtaMax     = +0.7;      // pseudorapidity, Ending EMCAL Eta position
   fIPDistance     = 454.0;      // cm, Radial distance to inner surface of EMCAL
+  fPhiGapForSM    = 0.;         // cm, only for final TRD1 geometry
 
   // geometry
   if (name == "EMCAL_55_25") {
@@ -97,7 +98,11 @@ void AliEMCALGeometry::Init(void){
     Fatal("Init", "%s is an old geometry! Please update your Config file", name.Data()) ;
   }
   else if(name.Contains("SHISH")){
-    fNumberOfSuperModules = 12; // 12 = 6 * 2 (6 in phi, 2 in Z);
+    // 7-sep-05; integration issue
+    fArm1PhiMin     = 80.0;    // 60  -> 80
+    fArm1PhiMax     = 180.0;   // 180 -> 200
+
+    fNumberOfSuperModules = 10; // 12 = 6 * 2 (6 in phi, 2 in Z);
     fSteelFrontThick = 2.54;    //  9-sep-04
     fIPDistance      = 460.0;
     fFrontSteelStrip = fPassiveScintThick = 0.0; // 13-may-05
@@ -126,7 +131,8 @@ void AliEMCALGeometry::Init(void){
 // http://pdsfweb01.nersc.gov/~pavlinov/ALICE/SHISHKEBAB/RES/linearityAndResolutionForTRD1.html
       if(name.Contains("TRD1")) {       // 30-jan-05
        // for final design
-        if(name.Contains("MAY05") || name.Contains("WSUC")){
+        fPhiGapForSM    = 2.;         // cm, only for final TRD1 geometry
+        if(name.Contains("MAY05") || name.Contains("WSUC") || name.Contains("FINAL")){
           fNumberOfSuperModules = 12; // 20-may-05
           if(name.Contains("WSUC")) fNumberOfSuperModules = 1; // 27-may-05
           fNECLayers     = 77;       // (13-may-05 from V.Petrov)
@@ -138,6 +144,12 @@ void AliEMCALGeometry::Init(void){
           fPassiveScintThick = 0.8;  // 0.8cm   = 8mm     (13-may-05 from V.Petrov)
           fNZ                = 24;
           fTrd1Angle         = 1.5;  // 1.3 or 1.5
+
+          if(name.Contains("FINAL")) { // 9-sep-05
+            fNumberOfSuperModules = 10;
+            fPhiModuleSize = 12.26 - fPhiGapForSM / Float_t(fNPhi); // first assumption
+            fEtaModuleSize = fPhiModuleSize;
+          }
        }
       } else if(name.Contains("TRD2")) {       // 30-jan-05
         fSteelFrontThick = 0.0;         // 11-mar-05
@@ -214,7 +226,7 @@ void AliEMCALGeometry::Init(void){
   
   if (kTRUE) {
     printf("Init: geometry of EMCAL named %s is as follows:\n", name.Data());
-    printf( "               ECAL      : %d x (%f mm Pb, %f mm Sc) \n", GetNECLayers(), GetECPbRadThick(), GetECScintThick() ) ; 
+    printf( "               ECAL      : %d x (%f cm Pb, %f cm Sc) \n", GetNECLayers(), GetECPbRadThick(), GetECScintThick() ) ; 
     if(name.Contains("SHISH")){
       printf(" fIPDistance       %6.3f cm \n", fIPDistance);
       if(fSteelFrontThick>0.) 
@@ -239,9 +251,11 @@ void AliEMCALGeometry::Init(void){
       if(name.Contains("TRD2")) {
         printf(" fTrd2AngleY     %7.4f\n", fTrd2AngleY);
         printf(" f2Trd2Dy2       %7.4f\n", f2Trd2Dy2);
-        printf(" fTubsR          %7.2f\n", fTubsR);
+        printf(" fTubsR          %7.2f cm\n", fTubsR);
         printf(" fTubsTurnAngle  %7.4f\n", fTubsTurnAngle);
-        printf(" fEmptySpace     %7.4f\n", fEmptySpace);
+        printf(" fEmptySpace     %7.4f cm\n", fEmptySpace);
+      } else if(name.Contains("TRD1") && name.Contains("FINAL")){
+        printf(" fPhiGapForSM  %7.4f cm \n",  fPhiGapForSM);
       }
     }
     printf("Granularity: %d in eta and %d in phi\n", GetNZ(), GetNPhi()) ;
index cb17c68..a22eacc 100644 (file)
@@ -80,6 +80,7 @@ public:
   Bool_t IsInECA(Int_t index) const { if ( (index > 0 && (index <= GetNZ() * GetNPhi()))) return kTRUE; else return kFALSE ;}
 
   Int_t   GetNumberOfSuperModules() {return fNumberOfSuperModules;}
+  Float_t GetfPhiGapForSuperModules() {return fPhiGapForSM;}
   Float_t GetPhiModuleSize() const  {return fPhiModuleSize;}
   Float_t GetEtaModuleSize() const  {return fEtaModuleSize;}
   Float_t GetFrontSteelStrip() const {return fFrontSteelStrip;}
@@ -183,6 +184,7 @@ private:
   // TRD1 options - 30-sep-04
   Float_t fTrd1Angle;                    // angle in x-z plane (in degree) 
   Float_t f2Trd1Dx2;                     // 2*dx2 for TRD1
+  Float_t fPhiGapForSM;                  // Gap betweeen supermodules in phi direction
   // TRD2 options - 27-jan-07
   Float_t fTrd2AngleY;                   // angle in y-z plane (in degree) 
   Float_t f2Trd2Dy2;                     // 2*dy2 for TRD2
index 7234e0c..4dc0de4 100644 (file)
@@ -73,12 +73,14 @@ AliEMCALv2::AliEMCALv2(const char *name, const char *title): AliEMCALv1(name,tit
     fTimeCut  = 30e-09;
 
     fGeometry = GetGeometry(); 
-    fHDe = 0;
+    fHDe = fHNhits = 0;
     //    if (gDebug>0){
     if (1){
       TH1::AddDirectory(0);
       fHDe = new TH1F("fHDe","De in EMCAL", 1000, 0., 1.);
+      fHNhits = new TH1F("fHNhits","#hits in EMCAL", 1001, -0.5, 1000.5);
       fHistograms->Add(fHDe);
+      fHistograms->Add(fHNhits);
       TH1::AddDirectory(1);
     }
 }
@@ -262,6 +264,7 @@ void AliEMCALv2::StepManager(void){
 void AliEMCALv2::FinishEvent()
 { // 26-may-05
   static double de=0.;
+  fHNhits->Fill(double(fHits->GetEntries()));
   de = GetDepositEnergy(0);
   if(fHDe) fHDe->Fill(de);
 }
@@ -302,7 +305,8 @@ void AliEMCALv2::DrawCalorimeterCut(const char *name, int axis, double dcut)
   if(sn.Contains("SCM")) colo=5;
   SetVolumeAttributes(name, 1, colo, fill);
 
-  TString st("Shish-Kebab, Compact, zcut , ");
+  TString st(GetTitle());
+  st += ", zcut, ";
   st += name;
 
   char *optShad = "on", *optHide="on";
index f3e2992..dffa098 100644 (file)
@@ -67,6 +67,7 @@ public:
 
   AliEMCALGeometry* fGeometry; //!
   TH1F*             fHDe;      //!
+  TH1F*             fHNhits;      //!
 
   ClassDef(AliEMCALv2,1)    //Implementation of EMCAL manager class to produce hits in a Shish-Kebab