fCentersOfCellsPhiDir(0x0),fEtaCentersOfCells(0x0),
fNCells(0),fNPhi(0),fCentersOfCellsXDir(0x0),fArm1EtaMin(0),
fArm1EtaMax(0),fArm1PhiMin(0),fArm1PhiMax(0),fEtaMaxOfTRD1(0),
- fShishKebabTrd1Modules(0),fParSM(0x0),fPhiModuleSize(0.),
+ fShishKebabTrd1Modules(0),fPhiModuleSize(0.),
fEtaModuleSize(0.),fPhiTileSize(0.),fEtaTileSize(0.),fNZ(0),
fIPDistance(0.),fLongModuleSize(0.),fShellThickness(0.),
fZLength(0.),fSampling(0.)
fEnvelop[0] = 0.;
fEnvelop[1] = 0.;
fEnvelop[2] = 0.;
+ fParSM[0] = 0.;
+ fParSM[1] = 0.;
+ fParSM[2] = 0.;
for(Int_t i=0;i<12;i++)fkSModuleMatrix[i]=0 ;
for (Int_t i = 0; i < 48; i++)
fCentersOfCellsPhiDir(geo.fCentersOfCellsPhiDir),fEtaCentersOfCells(geo.fEtaCentersOfCells),
fNCells(geo.fNCells),fNPhi(geo.fNPhi),fCentersOfCellsXDir(geo.fCentersOfCellsXDir),fArm1EtaMin(geo.fArm1EtaMin),
fArm1EtaMax(geo.fArm1EtaMax),fArm1PhiMin(geo.fArm1PhiMin),fArm1PhiMax(geo.fArm1PhiMax),fEtaMaxOfTRD1(geo.fEtaMaxOfTRD1),
- fShishKebabTrd1Modules(geo.fShishKebabTrd1Modules),fParSM(geo.fParSM),fPhiModuleSize(geo.fPhiModuleSize),
+ fShishKebabTrd1Modules(geo.fShishKebabTrd1Modules),fPhiModuleSize(geo.fPhiModuleSize),
fEtaModuleSize(geo.fEtaModuleSize),fPhiTileSize(geo.fPhiTileSize),fEtaTileSize(geo.fEtaTileSize),fNZ(geo.fNZ),
fIPDistance(geo.fIPDistance),fLongModuleSize(geo.fLongModuleSize),fShellThickness(geo.fShellThickness),
fZLength(geo.fZLength),fSampling(geo.fSampling)
fEnvelop[0] = geo.fEnvelop[0];
fEnvelop[1] = geo.fEnvelop[1];
fEnvelop[2] = geo.fEnvelop[2];
+ fParSM[0] = geo.fParSM[0];
+ fParSM[1] = geo.fParSM[1];
+ fParSM[2] = geo.fParSM[2];
for(Int_t i=0;i<12;i++)fkSModuleMatrix[i]=0 ;
for (Int_t i = 0; i < 48; i++)
fCentersOfCellsPhiDir(0x0),fEtaCentersOfCells(0x0),
fNCells(0),fNPhi(0),fCentersOfCellsXDir(0x0),fArm1EtaMin(0),
fArm1EtaMax(0),fArm1PhiMin(0),fArm1PhiMax(0),fEtaMaxOfTRD1(0),
- fShishKebabTrd1Modules(0),fParSM(0x0),fPhiModuleSize(0.),
+ fShishKebabTrd1Modules(0),fPhiModuleSize(0.),
fEtaModuleSize(0.),fPhiTileSize(0.),fEtaTileSize(0.),fNZ(0),
fIPDistance(0.),fLongModuleSize(0.),fShellThickness(0.),
fZLength(0.),fSampling(0.)
fEnvelop[0] = fEMCGeometry->GetEnvelop(0);
fEnvelop[1] = fEMCGeometry->GetEnvelop(1);
fEnvelop[2] = fEMCGeometry->GetEnvelop(2);
+ fParSM[0] = fEMCGeometry->GetSuperModulesPar(0);
+ fParSM[1] = fEMCGeometry->GetSuperModulesPar(1);
+ fParSM[2] = fEMCGeometry->GetSuperModulesPar(2);
fArm1EtaMin = fEMCGeometry->GetArm1EtaMin();
fArm1EtaMax = fEMCGeometry->GetArm1EtaMax();
fArm1PhiMin = fEMCGeometry->GetArm1PhiMin();
fArm1PhiMax = fEMCGeometry->GetArm1PhiMax();
fShellThickness = fEMCGeometry->GetShellThickness();
- fZLength = fEMCGeometry->GetZLength();
- fSampling = fEMCGeometry->GetSampling();
- fParSM = fEMCGeometry->GetSuperModulesPars();
+ fZLength = fEMCGeometry->GetZLength();
+ fSampling = fEMCGeometry->GetSampling();
fEtaModuleSize = fEMCGeometry->GetEtaModuleSize();
fPhiModuleSize = fEMCGeometry->GetPhiModuleSize();
fEtaTileSize = fEMCGeometry->GetEtaTileSize();
fPhiTileSize = fEMCGeometry->GetPhiTileSize();
- fNZ = fEMCGeometry->GetNZ();
- fIPDistance = fEMCGeometry->GetIPDistance();
+ fNZ = fEMCGeometry->GetNZ();
+ fIPDistance = fEMCGeometry->GetIPDistance();
fLongModuleSize = fEMCGeometry->GetLongModuleSize();
CreateListOfTrd1Modules();
// misalignment shifts to global position in case of need.
// Federico.Ronchetti@cern.ch
+
// To use in a print later
- //Int_t iphi = drow;
- //Int_t ieta = dcol;
+ Float_t droworg = drow;
+ Float_t dcolorg = dcol;
if(gGeoManager){
//Recover some stuff
drow = 23. - drow;
}
- Int_t i = 0; // one always needs "i"
Int_t istrip = 0;
Float_t z0 = 0;
Float_t zb = 0;
//Float_t L = 26.04; // active tower length for hadron (lead+scint+paper)
// we use the geant numbers 13.87*2=27.74
Float_t teta1 = 0.;
-
- i = sm;
-
+
+ //Do some basic checks
if (dcol >= 47.5 || dcol<-0.5) {
- exit(0);
+ AliError(Form("Bad tower coordinate dcol=%f, where dcol >= 47.5 || dcol<-0.5; org: %f", dcol, dcolorg));
+ return;
}
-
if (drow >= 23.5 || drow<-0.5) {
- exit(0);
- }
- if (sm > 13 || sm <0) {
- exit(0);
+ AliError(Form("Bad tower coordinate drow=%f, where drow >= 23.5 || drow<-0.5; org: %f", drow, droworg));
+ return;
}
-
+ if (sm > 11 || sm <0) {
+ AliError(Form("Bad SM number sm=%d, where sm > 11 || sm<0", sm));
+ return;
+ }
+
istrip = int ((dcol+0.5)/2);
// tapering angle
// moving the origin from terry's RF
// to the GEANT one
- double xx = y - geoBox[i]->GetDX();
- double yy = -x + geoBox[i]->GetDY();
- double zz = z - geoBox[i]->GetDZ();
+ double xx = y - geoBox[sm]->GetDX();
+ double yy = -x + geoBox[sm]->GetDY();
+ double zz = z - geoBox[sm]->GetDZ();
const double localIn[3] = {xx, yy, zz};
double dglobal[3];
- //geoSMMatrix[i]->Print();
- //printf("TFF Local (row = %d, col = %d, x = %3.2f, y = %3.2f, z = %3.2f)\n", iphi, ieta, localIn[0], localIn[1], localIn[2]);
- geoSMMatrix[i]->LocalToMaster(localIn, dglobal);
+ //geoSMMatrix[sm]->Print();
+ //printf("TFF Local (row = %d, col = %d, x = %3.2f, y = %3.2f, z = %3.2f)\n", iroworg, icolorg, localIn[0], localIn[1], localIn[2]);
+ geoSMMatrix[sm]->LocalToMaster(localIn, dglobal);
//printf("TFF Global (row = %2.0f, col = %2.0f, x = %3.2f, y = %3.2f, z = %3.2f)\n", drow, dcol, dglobal[0], dglobal[1], dglobal[2]);
//apply global shifts