// 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*);
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);
- } 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);
+ } 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));
}
}
}
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
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()
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); //
}
{
// 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) {
- 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());
- 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();
}
}
}
} 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;}
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
// 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