Add new geometry option EMCAL_COMPLETEV1, with 10 SM for 2011 runs.
authorgconesab <gconesab@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 17 Nov 2010 14:13:59 +0000 (14:13 +0000)
committergconesab <gconesab@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 17 Nov 2010 14:13:59 +0000 (14:13 +0000)
Change sampling fraction for new geometry options with name containing V1.
Change X0 for depth calculation in accordance with defined material in geometry.

EMCAL/AliEMCALEMCGeometry.cxx
EMCAL/AliEMCALGeoUtils.cxx
EMCAL/AliEMCALGeometry.cxx
EMCAL/AliEMCALRecPoint.cxx
EMCAL/AliEMCALRecPoint.h
EMCAL/AliEMCALShishKebabTrd1Module.cxx
EMCAL/AliEMCALv0.cxx
EMCAL/macros/Config.C

index 1967eb6..e047608 100644 (file)
 //   EMCAL_FIRSTYEAR - geometry for December 2009 to December 2010 run period
 //                     with four Super Modules
 //  
-//   EMCAL_FIRSTYEARV1 - geometry for December 2009 to December 2010 run period; 
+//   Adding V1 (EMCAL_FIRSTYEARV1, EMCAL_COMPLETEV1) - geometry from December 2009 ; 
 //                1. Fixed bug for positions of modules inside SM
 //                   (first module has tilt 0.75 degree);
 //                2. Added Al front plate (width 1 cm) and 2 paper sheets per sampling
 //                   layer (additional 0.2 mm) 
 //                   The sizes have updated with last information from production
 //                   drawing (end of October 2010). 
+//                3. COMPLETEV1 contains now only 10 SM for runs from 2011
 //
 //   EMCAL_WSUC (Wayne State test stand)
 //      = no definite equivalent in old notation, was only used by
@@ -76,7 +77,7 @@ ClassImp(AliEMCALEMCGeometry)
 
 // these initialisations are needed for a singleton
 Bool_t    AliEMCALEMCGeometry::fgInit      = kFALSE;
-const Char_t*   AliEMCALEMCGeometry::fgkDefaultGeometryName = "EMCAL_COMPLETE";
+const Char_t*   AliEMCALEMCGeometry::fgkDefaultGeometryName = "EMCAL_COMPLETEV1";
 
 
 AliEMCALEMCGeometry::AliEMCALEMCGeometry() 
@@ -260,13 +261,14 @@ void AliEMCALEMCGeometry::Init(void){
 
   //check that we have a valid geometry name
   if(!(fGeoName.Contains("EMCAL_PDC06") || fGeoName.Contains("EMCAL_COMPLETE") || fGeoName.Contains("EMCAL_WSUC") 
-       || fGeoName.Contains("EMCAL_FIRSTYEAR") || fGeoName.Contains("EMCAL_FIRSTYEARV1"))) {
+       || fGeoName.Contains("EMCAL_FIRSTYEAR") || fGeoName.Contains("EMCAL_FIRSTYEARV1") || fGeoName.Contains("EMCAL_COMPLETEV1"))) {
     Fatal("Init", "%s is an undefined geometry!", fGeoName.Data()) ; 
   }
 
   // Option to know whether we have the "half" supermodule(s) or not
   fKey110DEG = 0;
   if(fGeoName.Contains("COMPLETE") || fGeoName.Contains("PDC06")) fKey110DEG = 1; // for GetAbsCellId
+  if(fGeoName.Contains("COMPLETEV1"))  fKey110DEG = 0; 
   fShishKebabTrd1Modules = 0;
 
   // JLK 13-Apr-2008
@@ -325,24 +327,32 @@ void AliEMCALEMCGeometry::Init(void){
   if(fGeoName.Contains("FIRSTYEAR")){  
     fNumberOfSuperModules = 4; 
     fArm1PhiMax           = 120.0; 
-    if(fGeoName.Contains("FIRSTYEARV1")){
-      // Oct 26,2010 : First module has tilt = 0.75 degree : 
-      // look to AliEMCALShishKebabTrd1Module::DefineFirstModule(key)
-      // New sizes from production drawing, added Al front plate.
-      // The thickness of sampling is change due to existing two sheets of paper.
-
-      // Will replace fFrontSteelStrip
-      fTrd1AlFrontThick   = 1.0;  // one cm
-      // Bond paper - two sheets around Sc tile
-      fTrd1BondPaperThick = 0.01; // 0.01cm = 0.1 mm
-
-      fPhiModuleSize = 12.0;
-      fEtaModuleSize = fPhiModuleSize;
-      fLateralSteelStrip = 0.015; // 0.015cm  = 0.15mm
-    }
     CheckAdditionalOptions();  
   }    
-       
+  
+  if(fGeoName.Contains("FIRSTYEARV1") || fGeoName.Contains("COMPLETEV1") ){
+    // Oct 26,2010 : First module has tilt = 0.75 degree : 
+    // look to AliEMCALShishKebabTrd1Module::DefineFirstModule(key)
+    // New sizes from production drawing, added Al front plate.
+    // The thickness of sampling is change due to existing two sheets of paper.
+    
+    // Will replace fFrontSteelStrip
+    fTrd1AlFrontThick   = 1.0;  // one cm
+    // Bond paper - two sheets around Sc tile
+    fTrd1BondPaperThick = 0.01; // 0.01cm = 0.1 mm
+    
+    fPhiModuleSize = 12.0;
+    fEtaModuleSize = fPhiModuleSize;
+    fLateralSteelStrip = 0.015; // 0.015cm  = 0.15mm
+    
+    if(fGeoName.Contains("COMPLETEV1")){
+      fNumberOfSuperModules = 10;      
+      fArm1PhiMax           = 180.0; 
+    }
+    
+    CheckAdditionalOptions();  
+  }
+
   // constant for transition absid <--> indexes
   fNCellsInModule = fNPHIdiv*fNETAdiv;
   fNCellsInSupMod = fNCellsInModule*fNPhi*fNZ;
@@ -356,7 +366,7 @@ void AliEMCALEMCGeometry::Init(void){
   fEtaTileSize = fEtaModuleSize/double(fNETAdiv) - fLateralSteelStrip; // 13-may-05 
 
   fLongModuleSize = fNECLayers*(fECScintThick + fECPbRadThickness);  
-  if(fGeoName.Contains("FIRSTYEARV1")){
+  if(fGeoName.Contains("V1")){
     Double_t ws = fECScintThick + fECPbRadThickness + 2.*fTrd1BondPaperThick; // sampling width
     // Number of Pb tiles = Number of Sc tiles - 1
     fLongModuleSize = fTrd1AlFrontThick + (ws*fNECLayers - fECPbRadThickness);
@@ -533,7 +543,9 @@ void AliEMCALEMCGeometry::DefineSamplingFraction()
   } else if(fNECLayers == 61) { // 20% layer reduction
     fSampling = 12.80;
   } else if(fNECLayers == 77) {
-    if       (fECScintThick>0.159 && fECScintThick<0.161) { // original sampling fraction, equal layers
+    if(fGeoName.Contains("V1")){
+      fSampling = 12.82; //Adding paper sheets and cover plate
+    } else if   (fECScintThick>0.159 && fECScintThick<0.161) { // original sampling fraction, equal layers
       fSampling = 12.327; // fECScintThick = fECPbRadThickness = 0.160;
     } else if (fECScintThick>0.175 && fECScintThick<0.177) { // 10% Pb thicknes reduction
       fSampling = 10.5; // fECScintThick = 0.176, fECPbRadThickness=0.144;
index d4225c5..4bba996 100644 (file)
@@ -26,7 +26,7 @@
 //        You have to use just the correct name of geometry. If name is empty string the
 //        default name of geometry will be used.
 //         
-//  AliEMCALGeoUtils* geom = new AliEMCALGeoUtils("EMCAL_COMPLETE","EMCAL");
+//  AliEMCALGeoUtils* geom = new AliEMCALGeoUtils("EMCAL_COMPLETEV1","EMCAL");
 //  TGeoManager::Import("geometry.root");
 //
 //  MC:   If you work with MC data you have to get geometry the next way: 
index 59b2445..c8471e8 100644 (file)
 //   EMCAL_COMPLETE (geometry for expected complete detector)
 //      = equivalent to SHISH_77_TRD1_2X2_FINAL_110DEG scTh=0.176 pbTh=0.144
 //          in old notation
-//   EMCAL_4SMs - geometry for December 2009 to December 2010 run period; 
+//   EMCAL_FIRSTYEARV1 - geometry for December 2009 to December 2010 run period; 
 //                fixed bug for positions of modules inside SM
 //                (first module has tilt 0.75 degree);
 //                the sizes updated with last information from production
 //                drawing (end of October 2010). 
-//                
+//      
+//   EMCAL_COMPLETEV1: Same fixes as FIRSTYEAR and 10 SM instead of 10+2 half SM
 //
 //   EMCAL_WSUC (Wayne State test stand)
 //      = no definite equivalent in old notation, was only used by
@@ -71,7 +72,7 @@ ClassImp(AliEMCALGeometry)
 
 // these initialisations are needed for a singleton
 AliEMCALGeometry  *AliEMCALGeometry::fgGeom      = 0;
-const Char_t*      AliEMCALGeometry::fgkDefaultGeometryName = "EMCAL_COMPLETE";
+const Char_t*      AliEMCALGeometry::fgkDefaultGeometryName = "EMCAL_COMPLETEV1";
 //
 // Usage: 
 //        You can create the AliEMCALGeometry object independently from anything.
index 92663d1..525859d 100644 (file)
@@ -1458,9 +1458,12 @@ Double_t AliEMCALRecPoint::TmaxInCm(const Double_t e , const Int_t key)
   // key  =  0(gamma, default)
   //     !=  0(electron)
   const Double_t ca   = 4.82;  // shower max parameter - first guess; ca=TMath::Log(1000./8.07)
-  const Double_t x0   = 1.23;  // radiation lenght (cm)
   Double_t tmax = 0.;    // position of electromagnetic shower max in cm
 
+  Double_t x0   = 1.31;  // radiation lenght (cm)
+  //If old geometry in use
+  if(!((fGeomPtr->GetEMCGeometry()->GetGeoName()).Contains("V1"))) x0 = 1.28;
+
   if(e>0.1) {
     tmax = TMath::Log(e) + ca;
     if      (key==0) tmax += 0.5; 
index dc64d06..b4af8a0 100644 (file)
@@ -132,7 +132,7 @@ class AliEMCALRecPoint : public AliCluster {
   virtual void    Paint(Option_t * option="");
   virtual void    Print(Option_t * option="") const ; 
   
-  static Double_t TmaxInCm(const Double_t e=0.0, const Int_t key=0);
+  Double_t TmaxInCm(const Double_t e=0.0, const Int_t key=0);
 
   Float_t     GetDistanceToBadTower() const {return fDistToBadTower;}
   void        EvalDistanceToBadChannels(AliCaloCalibPedestal* caloped);
index 11c5783..739aa25 100644 (file)
@@ -63,6 +63,7 @@ AliEMCALShishKebabTrd1Module::AliEMCALShishKebabTrd1Module(Double_t theta, AliEM
   TString snam(g->GetName());
   Int_t key=0;
   if(snam.Contains("FIRSTYEARv1",TString::kIgnoreCase)) key=1;
+  if(snam.Contains("COMPLETEv1",TString::kIgnoreCase)) key=1;
   if(GetParameters()) {
     DefineFirstModule(key);
   }
index 56a7358..c8df86b 100644 (file)
@@ -96,7 +96,7 @@ AliEMCALv0::AliEMCALv0(const char *name, const char *title)
   fShishKebabModules = g->GetShishKebabTrd1Modules(); 
   fGeometry = g;
   fSampleWidth = double(g->GetECPbRadThick()+g->GetECScintThick());
-  if(gn.Contains("FIRSTYEARV1")) fSampleWidth += 2.*g->GetTrd1BondPaperThick();
+  if(gn.Contains("V1")) fSampleWidth += 2.*g->GetTrd1BondPaperThick();
   printf("<I> AliEMCALv0::AliEMCALv : fGeometry %p : gMC %p : fSampleWidth %5.4f\n", 
         fGeometry, gMC, fSampleWidth);
 }
@@ -222,7 +222,7 @@ void AliEMCALv0::CreateShishKebabGeometry()
   // Sensitive SC  (2x2 tiles)
   double parSCM0[5]={0,0,0,0}, *dummy = 0, parTRAP[11];
 
-  if(!gn.Contains("FIRSTYEARV1")) {
+  if(!gn.Contains("V1")) {
     double wallThickness = g->GetPhiModuleSize()/g->GetNPHIdiv() -  g->GetPhiTileSize();
     for(int i=0; i<3; i++) parSCM0[i] = fParEMOD[i] - wallThickness;
     parSCM0[3] = fParEMOD[3];
@@ -277,7 +277,7 @@ void AliEMCALv0::CreateShishKebabGeometry()
     int nr=0; 
     ypos = 0.0; 
     double xCenterSCMX =  (parTRAP[4] +  parTRAP[8])/2.;
-    if(!gn.Contains("FIRSTYEARV1")) {
+    if(!gn.Contains("V1")) {
       par[1] = parSCM0[2]/2;            // y 
       par[2] = g->GetECPbRadThick()/2.; // z
       gMC->Gsvolu("PBTI", "BOX", fIdTmedArr[kIdPB], dummy, 0);
index 7e4be8b..69e2aa5 100755 (executable)
@@ -79,7 +79,7 @@ void Config()
        return;
       }
     rl->SetCompressionLevel(2);
-    rl->SetNumberOfEventsPerFile(3);
+    rl->SetNumberOfEventsPerFile(100);
     gAlice->SetRunLoader(rl);
 
     // Set the trigger configuration
@@ -308,7 +308,7 @@ void Config()
     if (iEMCAL)
     {
         //=================== EMCAL parameters ============================
-        AliEMCAL *EMCAL = new AliEMCALv2("EMCAL", "EMCAL_COMPLETE");
+        AliEMCAL *EMCAL = new AliEMCALv2("EMCAL", "EMCAL_FIRSTYEARV1");
         //AliEMCAL *EMCAL = new AliEMCALv2("EMCAL", "EMCAL_COMPLETE pbTh=0.144 scTh=0.176");
     }