// 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
+// 3. COMPLETEV1 contains now only 10 SM for runs for year 2011
+// 4. COMPLETE12SMV1 contains 12 SM for runs from year 2012 and on
//
// EMCAL_WSUC (Wayne State test stand)
// = no definite equivalent in old notation, was only used by
// these initialisations are needed for a singleton
Bool_t AliEMCALEMCGeometry::fgInit = kFALSE;
-const Char_t* AliEMCALEMCGeometry::fgkDefaultGeometryName = "EMCAL_COMPLETEV1";
+const Char_t* AliEMCALEMCGeometry::fgkDefaultGeometryName = "EMCAL_COMPLETE12SMV1";
AliEMCALEMCGeometry::AliEMCALEMCGeometry()
fGeoName = "EMCAL_PDC06";
}
}
+
if(fGeoName.Contains("WSUC")) fGeoName = "EMCAL_WSUC";
//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_COMPLETEV1"))) {
+ if(!( fGeoName.Contains("EMCAL_PDC06") || fGeoName.Contains("EMCAL_WSUC")
+ || fGeoName.Contains("EMCAL_COMPLETE") || fGeoName.Contains("EMCAL_COMPLETEV1") || fGeoName.Contains("EMCAL_COMPLETE12SMV1")
+ || fGeoName.Contains("EMCAL_FIRSTYEAR") || fGeoName.Contains("EMCAL_FIRSTYEARV1") )) {
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("COMPLETE") || fGeoName.Contains("PDC06") || fGeoName.Contains("12SM")) fKey110DEG = 1; // for GetAbsCellId
if(fGeoName.Contains("COMPLETEV1")) fKey110DEG = 0;
fShishKebabTrd1Modules = 0;
//geometry-name specific options
fNumberOfSuperModules = 12; // 12 = 6 * 2 (6 in phi, 2 in Z)
- fNPhi = 12; // module granularity in phi within smod (azimuth)
+ fNPhi = 12; // module granularity in phi within smod (azimuth)
fNZ = 24; // module granularity along Z within smod (eta)
fNPHIdiv = fNETAdiv = 2; // tower granularity within module
fArm1PhiMin = 80.0; // degrees, Starting EMCAL Phi position
CheckAdditionalOptions();
}
- if(fGeoName.Contains("FIRSTYEARV1") || fGeoName.Contains("COMPLETEV1") ){
+ if(fGeoName.Contains("FIRSTYEARV1") || fGeoName.Contains("COMPLETEV1") || fGeoName.Contains("COMPLETE12SMV1") ){
// Oct 26,2010 : First module has tilt = 0.75 degree :
// look to AliEMCALShishKebabTrd1Module::DefineFirstModule(key)
// New sizes from production drawing, added Al front plate.
fEtaModuleSize = fPhiModuleSize;
fLateralSteelStrip = 0.015; // 0.015cm = 0.15mm
- if(fGeoName.Contains("COMPLETEV1")){
+ if(fGeoName.Contains("COMPLETEV1"))
+ {
fNumberOfSuperModules = 10;
fArm1PhiMax = 180.0;
}
-
+ else if (fGeoName.Contains("COMPLETE12SMV1"))
+ {
+ fNumberOfSuperModules = 12;
+ fArm1PhiMax = 200.0;
+ }
CheckAdditionalOptions();
}
fNCellsInModule = fNPHIdiv*fNETAdiv;
fNCellsInSupMod = fNCellsInModule*fNPhi*fNZ;
fNCells = fNCellsInSupMod*fNumberOfSuperModules;
- if(GetKey110DEG()) fNCells -= fNCellsInSupMod;
+ if(GetKey110DEG() && !fGeoName.Contains("12SMV1")) fNCells -= fNCellsInSupMod; // SM 10 and 11 are 1/2 size on phi
+ if(GetKey110DEG() && fGeoName.Contains("12SMV1") ) fNCells -=2*(2 * fNCellsInSupMod / 3); // SM 10 and 11 are 1/3 size on phi
fNPhiSuperModule = fNumberOfSuperModules/2;
if(fNPhiSuperModule < 1) fNPhiSuperModule = 1;
}
}
if(fNumberOfSuperModules > 10) {
- fPhiBoundariesOfSM[11] = 190.*TMath::DegToRad();
- fPhiBoundariesOfSM[10] = fPhiBoundariesOfSM[11] - TMath::ATan2((fParSM[1]) , fIPDistance);
+ fPhiBoundariesOfSM[10] = fPhiBoundariesOfSM[0] + 20.*TMath::DegToRad()*5; // in the ideal case the phi-gap is constant
+ fPhiBoundariesOfSM[11] = fPhiBoundariesOfSM[10] + 2.*TMath::ATan2((fParSM[1])/3., fIPDistance); // one_third SMs
fPhiCentersOfSM[5] = (fPhiBoundariesOfSM[10]+fPhiBoundariesOfSM[11])/2.;
}
fParSM[0],fParSM[1],fParSM[2]);
printf(" fPhiGapForSM %7.4f cm (%7.4f <- phi size in degree)\n",
fPhiGapForSM, TMath::ATan2(fPhiGapForSM,fIPDistance)*TMath::RadToDeg());
- if(GetKey110DEG()) printf(" Last two modules have size 10 degree in phi (180<phi<190)\n");
+ if(GetKey110DEG() && !fGeoName.Contains("12SMV1") ) printf(" Last two modules have size 10 degree in phi (180<phi<190)\n");
+ if(GetKey110DEG() && fGeoName.Contains("12SMV1")) printf(" Last two modules have size 6.6 degree in phi (180<phi<186.6)\n");
printf(" phi SM boundaries \n");
for(int i=0; i<fPhiBoundariesOfSM.GetSize()/2.; i++) {
printf(" %i : %7.5f(%7.2f) -> %7.5f(%7.2f) : center %7.5f(%7.2f) \n", i,