Tom's request for steel stainless skin thickness
authorpavlinov <pavlinov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 17 May 2006 15:07:06 +0000 (15:07 +0000)
committerpavlinov <pavlinov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 17 May 2006 15:07:06 +0000 (15:07 +0000)
EMCAL/AliEMCALGeometry.cxx
EMCAL/AliEMCALGeometry.h
EMCAL/AliEMCALShishKebabTrd1Module.cxx
EMCAL/AliEMCALShishKebabTrd1Module.h

index a64371cc960827389d569a629d68c6572afb0b82..f2f6fa67f3c081fa5faa46f2c847090af780f732 100644 (file)
@@ -79,9 +79,10 @@ void AliEMCALGeometry::Init(void){
   // 11-oct-05   - correction for pre final design
   // Feb 06,2006 - decrease the weight of EMCAL
 
   // 11-oct-05   - correction for pre final design
   // Feb 06,2006 - decrease the weight of EMCAL
 
-  fAdditionalOpts[0] = "nl=";   // number of sampling layers
-  fAdditionalOpts[1] = "pbTh="; // cm, Thickness of the Pb
-  fAdditionalOpts[2] = "scTh=";  // cm, Thickness of the Sc
+  fAdditionalOpts[0] = "nl=";    // number of sampling layers (fNECLayers)
+  fAdditionalOpts[1] = "pbTh=";  // cm, Thickness of the Pb   (fECPbRadThick)
+  fAdditionalOpts[2] = "scTh=";  // cm, Thickness of the Sc    (fECScintThick)
+  fAdditionalOpts[3] = "latSS=";  // cm, Thickness of lateral steel strip (fLateralSteelStrip)
 
   fNAdditionalOpts = sizeof(fAdditionalOpts) / sizeof(char*);
 
 
   fNAdditionalOpts = sizeof(fAdditionalOpts) / sizeof(char*);
 
@@ -337,10 +338,13 @@ void AliEMCALGeometry::CheckAdditionalOptions()
       if       (addOpt.Contains("NL=",TString::kIgnoreCase))   {// number of sampling layers
         sscanf(addOpt.Data(),"NL=%i", &fNECLayers);
         AliDebug(2,Form(" fNECLayers %i (new) \n", fNECLayers));
       if       (addOpt.Contains("NL=",TString::kIgnoreCase))   {// number of sampling layers
         sscanf(addOpt.Data(),"NL=%i", &fNECLayers);
         AliDebug(2,Form(" fNECLayers %i (new) \n", fNECLayers));
-      } else if(addOpt.Contains("PBTH=",TString::kIgnoreCase)) {//Thickness of the Pb
+      } else if(addOpt.Contains("PBTH=",TString::kIgnoreCase)) {//Thickness of the Pb(fECPbRadThicknes)
         sscanf(addOpt.Data(),"PBTH=%f", &fECPbRadThickness);
         sscanf(addOpt.Data(),"PBTH=%f", &fECPbRadThickness);
-      } else if(addOpt.Contains("SCTH=",TString::kIgnoreCase)) {//Thickness of the Sc
+      } else if(addOpt.Contains("SCTH=",TString::kIgnoreCase)) {//Thickness of the Sc(fECScintThick)
         sscanf(addOpt.Data(),"SCTH=%f", &fECScintThick);
         sscanf(addOpt.Data(),"SCTH=%f", &fECScintThick);
+      } else if(addOpt.Contains("LATSS=",TString::kIgnoreCase)) {// Thickness of lateral steel strip (fLateralSteelStrip)
+        sscanf(addOpt.Data(),"LATSS=%f", &fLateralSteelStrip);
+        AliDebug(2,Form(" fLateralSteelStrip %f (new) \n", fLateralSteelStrip));
       }
     }
   }
       }
     }
   }
index a3d7102aa9e933824e8c0316f8c83d6842c8118a..572ef0774e57828718fd9856a9579225b223632a 100644 (file)
@@ -274,7 +274,7 @@ private:
   Float_t     fParSM[3];       // SM sizes as in GEANT (TRD1)
   TGeoMatrix* fMatrixOfSM[12]; //![fNumberOfSuperModules]; get from gGeoManager;
 
   Float_t     fParSM[3];       // SM sizes as in GEANT (TRD1)
   TGeoMatrix* fMatrixOfSM[12]; //![fNumberOfSuperModules]; get from gGeoManager;
 
-  char *fAdditionalOpts[3];  //! some additional options for the geometry type and name
+  char *fAdditionalOpts[4];  //! some additional options for the geometry type and name
   int  fNAdditionalOpts;  //! size of additional options parameter
 
   ClassDef(AliEMCALGeometry, 10) // EMCAL geometry class 
   int  fNAdditionalOpts;  //! size of additional options parameter
 
   ClassDef(AliEMCALGeometry, 10) // EMCAL geometry class 
index e0910e4338fc8c46f4d80a389699a821c9bf3587..85854ce8c710ca59c051b4f19dad9b92ac7f4ec2 100644 (file)
@@ -99,6 +99,11 @@ void AliEMCALShishKebabTrd1Module::Init(Double_t A, Double_t B)
   Double_t xk2 = fOK.X() + kk1*TMath::Sin(fTheta);
   Double_t yk2 = fOK.Y() - kk1*TMath::Cos(fTheta) - fgr;
   fOK2.Set(xk2,yk2);
   Double_t xk2 = fOK.X() + kk1*TMath::Sin(fTheta);
   Double_t yk2 = fOK.Y() - kk1*TMath::Cos(fTheta) - fgr;
   fOK2.Set(xk2,yk2);
+
+  // May 15, 2006; position of cell face of cells 
+  fOB.Set(fOK.X()-fgb/2.*TMath::Cos(fTheta),  fOK.Y()-fgb/2.*TMath::Sin(fTheta)-fgr);
+  fOB1.Set(fOB.X()-fga/4.*TMath::Sin(fTheta), fOB.Y()+fga/4.*TMath::Cos(fTheta));
+  fOB2.Set(fOB.X()+fga/4.*TMath::Sin(fTheta), fOB.Y()-fga/4.*TMath::Cos(fTheta));
 }
 
 void AliEMCALShishKebabTrd1Module::DefineFirstModule()
 }
 
 void AliEMCALShishKebabTrd1Module::DefineFirstModule()
@@ -116,6 +121,10 @@ void AliEMCALShishKebabTrd1Module::DefineFirstModule()
   fOK1.Set(fOK.X() - kk1, fOK.Y()-fgr);
   fOK2.Set(fOK.X() + kk1, fOK.Y()-fgr);
 
   fOK1.Set(fOK.X() - kk1, fOK.Y()-fgr);
   fOK2.Set(fOK.X() + kk1, fOK.Y()-fgr);
 
+  fOB.Set(fOK.X(),fOK.Y()-fgb/2.-fgr);
+  fOB1.Set(fOB.X()-fga/4., fOB.Y());
+  fOB2.Set(fOB.X()+fga/4., fOB.Y());
+
   TObject::SetUniqueID(1); //
 }
 
   TObject::SetUniqueID(1); //
 }
 
@@ -152,18 +161,21 @@ void AliEMCALShishKebabTrd1Module::PrintShish(int pri) const
 {
   // service method
   if(pri>=0) {
 {
   // service method
   if(pri>=0) {
-    Info("\n PrintShish()", "\n a %7.3f:%7.3f | b %7.2f | r %7.2f \n TRD1 angle %7.6f(%5.2f) | tanBetta %7.6f", 
+    printf("PrintShish() \n a %7.3f:%7.3f | b %7.2f | r %7.2f \n TRD1 angle %7.6f(%5.2f) | tanBetta %7.6f", 
     fga, fga2, fgb, fgr, fgangle, fgangle*TMath::RadToDeg(), fgtanBetta);
     printf(" fTheta %f : %5.2f : cos(theta) %f\n", 
     fTheta, GetThetaInDegree(),TMath::Cos(fTheta)); 
     if(pri>=1) {
     fga, fga2, fgb, fgr, fgangle, fgangle*TMath::RadToDeg(), fgtanBetta);
     printf(" fTheta %f : %5.2f : cos(theta) %f\n", 
     fTheta, GetThetaInDegree(),TMath::Cos(fTheta)); 
     if(pri>=1) {
-      printf("\n%i |%s| theta %f :  fOK.Phi = %f(%5.2f)\n", 
+      printf(" %i |%s| theta %f :  fOK.Phi = %f(%5.2f)\n", 
       GetUniqueID(), GetName(), fTheta, fOK.Phi(),fOK.Phi()*TMath::RadToDeg());
       printf(" A %f B %f | fThetaA %7.6f(%5.2f)\n", fA,fB, fThetaA,fThetaA*TMath::RadToDeg());
       GetUniqueID(), GetName(), fTheta, fOK.Phi(),fOK.Phi()*TMath::RadToDeg());
       printf(" A %f B %f | fThetaA %7.6f(%5.2f)\n", fA,fB, fThetaA,fThetaA*TMath::RadToDeg());
-      printf(" fOK  : X %8.3f: Y %8.3f \n",  fOK.X(), fOK.Y());
-      printf(" fOK1 : X %8.3f: Y %8.3f (in SM, ieta=2)\n", fOK1.X(), fOK1.Y());
-      printf(" fOK2 : X %8.3f: Y %8.3f (in SM, ieta=1)\n\n", fOK2.X(), fOK2.Y());
-      fOK.Dump();
+      printf(" fOK  : X %9.4f: Y %9.4f \n",  fOK.X(), fOK.Y());
+      printf(" fOK1 : X %9.4f: Y %9.4f (local, ieta=2)\n", fOK1.X(), fOK1.Y());
+      printf(" fOK2 : X %9.4f: Y %9.4f (local, ieta=1)\n\n", fOK2.X(), fOK2.Y());
+      printf(" fOB  : X %9.4f: Y %9.4f \n", fOB.X(), fOB.Y());
+      printf(" fOB1 : X %9.4f: Y %9.4f (local, ieta=2)\n", fOB1.X(), fOB1.Y());
+      printf(" fOB2 : X %9.4f: Y %9.4f (local, ieta=1)\n", fOB2.X(), fOB2.Y());
+      //      fOK.Dump();
     }
   }
 }
     }
   }
 }
index a105a346cf31cbfec90ce99fa6145c1e67524280..da8212ec4074a586a617cfa9db686c00ee82944a 100644 (file)
@@ -52,6 +52,12 @@ class AliEMCALShishKebabTrd1Module : public TNamed {
     } else      {xr = fOK1.Y(); zr = fOK1.X();
     }
   }
     } else      {xr = fOK1.Y(); zr = fOK1.X();
     }
   }
+  // 15-may-06
+  TVector2& GetCenterOfModuleFace() {return fOB;}  
+  TVector2& GetCenterOfModuleFace(Int_t ieta) {
+    if(ieta<=1) return fOB2;
+    else        return fOB1;
+  }  
   // 
   Double_t GetTanBetta() const {return fgtanBetta;}
   Double_t Getb()        const {return fgb;}
   // 
   Double_t GetTanBetta() const {return fgtanBetta;}
   Double_t Getb()        const {return fgb;}
@@ -70,7 +76,7 @@ class AliEMCALShishKebabTrd1Module : public TNamed {
   static Double_t fgtanBetta; // tan(fgangle/2.)
   static Double_t fgr;        // radius to IP
 
   static Double_t fgtanBetta; // tan(fgangle/2.)
   static Double_t fgr;        // radius to IP
 
-  TVector2 fOK;     // position the module center x->y; z->x;
+  TVector2 fOK;     // position the module center in ALICE system; x->y; z->x;
   Double_t fA;      // parameters of right line : y = A*z + B
   Double_t fB;      // system where zero point is IP.
   Double_t fThetaA; // angle coresponding fA - for convinience
   Double_t fA;      // parameters of right line : y = A*z + B
   Double_t fB;      // system where zero point is IP.
   Double_t fThetaA; // angle coresponding fA - for convinience
@@ -79,6 +85,10 @@ class AliEMCALShishKebabTrd1Module : public TNamed {
   // Nov 04,2004; Feb 19,2006 
   TVector2 fOK1; // ieta=2
   TVector2 fOK2; // ieta=1
   // Nov 04,2004; Feb 19,2006 
   TVector2 fOK1; // ieta=2
   TVector2 fOK2; // ieta=1
+  // May 13, 2006; local position of module (cells) face  
+  TVector2 fOB;  // module
+  TVector2 fOB1; // ieta=2
+  TVector2 fOB2; // ieta=1
 
   // public:
   ClassDef(AliEMCALShishKebabTrd1Module,0) // TRD1 Shish-Kebab module 
 
   // public:
   ClassDef(AliEMCALShishKebabTrd1Module,0) // TRD1 Shish-Kebab module