X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TOF%2FAliTOFGeometryV4.cxx;h=2c15d098e3920c8095d1ef974019442fa704c191;hb=409de10f539a62bbdf8dabcac8eb0607f24ec8bd;hp=adab95563f39176a06009bd32642f14c5f6a8e8a;hpb=a6a9820c8f584e802b97418cb4c0573396a0013a;p=u%2Fmrichter%2FAliRoot.git diff --git a/TOF/AliTOFGeometryV4.cxx b/TOF/AliTOFGeometryV4.cxx index adab95563f3..2c15d098e39 100644 --- a/TOF/AliTOFGeometryV4.cxx +++ b/TOF/AliTOFGeometryV4.cxx @@ -15,6 +15,15 @@ /* $Log$ +Revision 1.5 2006/04/20 22:30:50 hristov +Coding conventions (Annalisa) + +Revision 1.4 2006/04/16 22:29:05 hristov +Coding conventions (Annalisa) + +Revision 1.3 2006/03/12 14:38:13 arcelli + Changes for TOF Reconstruction using TGeo + Revision 1.2 2006/02/28 10:38:00 decaro AliTOFGeometry::fAngles, AliTOFGeometry::fHeights, AliTOFGeometry::fDistances arrays: dimension definition in the right location @@ -32,23 +41,23 @@ Revision 0.1 2005/07/19 A. De Caro according to the PPR TOF geometry */ -#include -#include /////////////////////////////////////////////////////////////////////////////// // // // TOF Geometry class (PPR version) // // // /////////////////////////////////////////////////////////////////////////////// -#include "AliLog.h" +#include "TGeoManager.h" + #include "AliConst.h" +#include "AliLog.h" -#include "AliTOFGeometry.h" #include "AliTOFGeometryV4.h" +extern TGeoManager *gGeoManager; + ClassImp(AliTOFGeometryV4) -const Int_t AliTOFGeometryV4::kNStripC = 20; // number of strips in C type module const Float_t AliTOFGeometryV4::fgkZlenA = 106.0; // length (cm) of the A module const Float_t AliTOFGeometryV4::fgkZlenB = 141.0; // length (cm) of the B module @@ -75,16 +84,16 @@ AliTOFGeometryV4::AliTOFGeometryV4() // AliTOFGeometryV4 default constructor // - AliTOFGeometry::kNStripC = kNStripC; // number of strips in C type module + AliTOFGeometry::fNStripC = kNStripC; // number of strips in C type module - AliTOFGeometry::kZlenA = fgkZlenA; // length (cm) of the A module - AliTOFGeometry::kZlenB = fgkZlenB; // length (cm) of the B module - AliTOFGeometry::kZlenC = fgkZlenC; // length (cm) of the C module - AliTOFGeometry::kMaxhZtof = fgkMaxhZtof; // Max half z-size of TOF (cm) + AliTOFGeometry::fZlenA = fgkZlenA; // length (cm) of the A module + AliTOFGeometry::fZlenB = fgkZlenB; // length (cm) of the B module + AliTOFGeometry::fZlenC = fgkZlenC; // length (cm) of the C module + AliTOFGeometry::fMaxhZtof = fgkMaxhZtof; // Max half z-size of TOF (cm) - AliTOFGeometry::fgkxTOF = fgkxTOF; // Inner radius of the TOF for Reconstruction (cm) - AliTOFGeometry::fgkRmin = fgkRmin; // Inner radius of the TOF (cm) - AliTOFGeometry::fgkRmax = fgkRmax; // Outer radius of the TOF (cm) + AliTOFGeometry::fxTOF = fgkxTOF; // Inner radius of the TOF for Reconstruction (cm) + AliTOFGeometry::fRmin = fgkRmin; // Inner radius of the TOF (cm) + AliTOFGeometry::fRmax = fgkRmax; // Outer radius of the TOF (cm) Init(); @@ -110,6 +119,8 @@ void AliTOFGeometryV4::Init() // // Strips Tilt Angles + fPhiSec = 360./kNSectors; + Float_t const kangles[kNPlates][kMaxNstrip] ={ {44.494, 43.725, 42.946, 42.156, 41.357, 40.548, 39.729, 38.899, @@ -164,7 +175,7 @@ void AliTOFGeometryV4::Init() } //_____________________________________________________________________________ -Float_t AliTOFGeometryV4::DistanceToPadPar(Int_t *det, Float_t *pos, Float_t *dist3d) +Float_t AliTOFGeometryV4::DistanceToPadPar(Int_t *det, Float_t *pos, Float_t *dist3d) const { // // Returns distance of space point with coor pos (x,y,z) (cm) wrt @@ -224,7 +235,7 @@ Float_t AliTOFGeometryV4::DistanceToPadPar(Int_t *det, Float_t *pos, Float_t *di } //_____________________________________________________________________________ -Bool_t AliTOFGeometryV4::IsInsideThePadPar(Int_t *det, Float_t *pos) +Bool_t AliTOFGeometryV4::IsInsideThePadPar(Int_t *det, Float_t *pos) const { // // Returns true if space point with coor pos (x,y,z) (cm) falls @@ -283,7 +294,7 @@ Bool_t AliTOFGeometryV4::IsInsideThePadPar(Int_t *det, Float_t *pos) //_____________________________________________________________________________ -Float_t AliTOFGeometryV4::DistanceToPad(Int_t *det, TGeoHMatrix mat, Float_t *pos, Float_t *dist3d) +Float_t AliTOFGeometryV4::DistanceToPad(Int_t *det, TGeoHMatrix mat, Float_t *pos, Float_t *dist3d) const { // // Returns distance of space point with coor pos (x,y,z) (cm) wrt @@ -324,7 +335,7 @@ Float_t AliTOFGeometryV4::DistanceToPad(Int_t *det, TGeoHMatrix mat, Float_t *po //_____________________________________________________________________________ -Bool_t AliTOFGeometryV4::IsInsideThePad( Int_t *det, TGeoHMatrix mat, Float_t *pos) +Bool_t AliTOFGeometryV4::IsInsideThePad( Int_t *det, TGeoHMatrix mat, Float_t *pos) const { // // Returns true if space point with coor pos (x,y,z) (cm) falls @@ -360,7 +371,7 @@ Bool_t AliTOFGeometryV4::IsInsideThePad( Int_t *det, TGeoHMatrix mat, Float_t *p } //_____________________________________________________________________________ -Float_t AliTOFGeometryV4::GetX(Int_t *det) +Float_t AliTOFGeometryV4::GetX(Int_t *det) const { // // Returns X coordinate (cm) @@ -391,7 +402,7 @@ Float_t AliTOFGeometryV4::GetX(Int_t *det) } //_____________________________________________________________________________ -Float_t AliTOFGeometryV4::GetY(Int_t *det) +Float_t AliTOFGeometryV4::GetY(Int_t *det) const { // // Returns Y coordinate (cm) @@ -423,7 +434,7 @@ Float_t AliTOFGeometryV4::GetY(Int_t *det) } //_____________________________________________________________________________ -Float_t AliTOFGeometryV4::GetZ(Int_t *det) +Float_t AliTOFGeometryV4::GetZ(Int_t *det) const { // // Returns Z coordinate (cm) @@ -443,7 +454,7 @@ Float_t AliTOFGeometryV4::GetZ(Int_t *det) } //_____________________________________________________________________________ -Int_t AliTOFGeometryV4::GetSector(Float_t *pos) +Int_t AliTOFGeometryV4::GetSector(Float_t *pos) const { // // Returns the Sector index @@ -463,7 +474,7 @@ Int_t AliTOFGeometryV4::GetSector(Float_t *pos) } //_____________________________________________________________________________ -Int_t AliTOFGeometryV4::GetPadX(Float_t *pos) +Int_t AliTOFGeometryV4::GetPadX(Float_t *pos) const { // // Returns the Pad index along X @@ -512,7 +523,7 @@ Int_t AliTOFGeometryV4::GetPadX(Float_t *pos) } //_____________________________________________________________________________ -Int_t AliTOFGeometryV4::GetPlate(Float_t *pos) +Int_t AliTOFGeometryV4::GetPlate(Float_t *pos) const { // // Returns the Plate index @@ -547,7 +558,7 @@ Int_t AliTOFGeometryV4::GetPlate(Float_t *pos) } //_____________________________________________________________________________ -Int_t AliTOFGeometryV4::GetStrip(Float_t *pos) +Int_t AliTOFGeometryV4::GetStrip(Float_t *pos) const { // // Returns the Strip index @@ -597,7 +608,7 @@ Int_t AliTOFGeometryV4::GetStrip(Float_t *pos) } //_____________________________________________________________________________ -Int_t AliTOFGeometryV4::GetPadZ(Float_t *pos) +Int_t AliTOFGeometryV4::GetPadZ(Float_t *pos) const { // // Returns the Pad index along Z @@ -636,7 +647,7 @@ Int_t AliTOFGeometryV4::GetPadZ(Float_t *pos) } //_____________________________________________________________________________ -Float_t AliTOFGeometryV4::GetMinPlateTheta(Int_t iPlate) +Float_t AliTOFGeometryV4::GetMinPlateTheta(Int_t iPlate) const { // // Returns the minimum theta angle of a given plate iPlate (rad) @@ -661,7 +672,7 @@ Float_t AliTOFGeometryV4::GetMinPlateTheta(Int_t iPlate) } //_____________________________________________________________________________ -Float_t AliTOFGeometryV4::GetMaxPlateTheta(Int_t iPlate) +Float_t AliTOFGeometryV4::GetMaxPlateTheta(Int_t iPlate) const { // // Returns the maximum theta angle of a given plate iPlate (rad) @@ -688,7 +699,7 @@ Float_t AliTOFGeometryV4::GetMaxPlateTheta(Int_t iPlate) } //_____________________________________________________________________________ -Float_t AliTOFGeometryV4::GetMaxStripTheta(Int_t iPlate, Int_t iStrip) +Float_t AliTOFGeometryV4::GetMaxStripTheta(Int_t iPlate, Int_t iStrip) const { // // Returns the maximum theta angle of a given strip iStrip (rad) @@ -710,7 +721,7 @@ Float_t AliTOFGeometryV4::GetMaxStripTheta(Int_t iPlate, Int_t iStrip) } //_____________________________________________________________________________ -Float_t AliTOFGeometryV4::GetMinStripTheta(Int_t iPlate, Int_t iStrip) +Float_t AliTOFGeometryV4::GetMinStripTheta(Int_t iPlate, Int_t iStrip) const { // // Returns the minimum theta angle of a given Strip iStrip (rad) @@ -734,7 +745,7 @@ Float_t AliTOFGeometryV4::GetMinStripTheta(Int_t iPlate, Int_t iStrip) } //_____________________________________________________________________________ -Float_t AliTOFGeometryV4::GetStripTheta(Int_t iPlate, Int_t iStrip) +Float_t AliTOFGeometryV4::GetStripTheta(Int_t iPlate, Int_t iStrip) const { // // returns the median theta angle of a given strip iStrip (rad) @@ -832,6 +843,99 @@ void AliTOFGeometryV4::GetVolumePath(Int_t *ind, Char_t *path ) { } +//_____________________________________________________________________________ +void AliTOFGeometryV4::GetVolumePath(Int_t sector, Char_t *path ) { + //-------------------------------------------------------------------- + // This function returns the colume path of a given sector + //-------------------------------------------------------------------- + Char_t string[100]; + + Int_t icopy=-1; + + if(sector<3){ + icopy=sector+1; + sprintf(string,"/ALIC_1/B077_1/B075_%i/BTO3_1",icopy); + } + else if(sector<11){ + // icopy=sector-2; + icopy=sector+3; + sprintf(string,"/ALIC_1/B077_1/B071_%i/BTO1_1",icopy); + } + else if(sector==11 || sector==12){ + icopy=sector-10; + sprintf(string,"/ALIC_1/B077_1/B074_%i/BTO2_1",icopy); + } + else { + // icopy=sector-4; + icopy=sector-12; + sprintf(string,"/ALIC_1/B077_1/B071_%i/BTO1_1",icopy); + } + + sprintf(path,"%s",string); + +} +//_____________________________________________________________________________ +void AliTOFGeometryV4::GetVolumePath(Int_t sector, Int_t plate, Int_t strip, Char_t *path ) { + //-------------------------------------------------------------------- + // This function returns the colume path of a given strip + //-------------------------------------------------------------------- + Char_t string1[100]; + Char_t string2[100]; + Char_t string3[100]; + Int_t nstrB = NStripB(); + Int_t nstrC = NStripC(); + + Int_t icopy=-1; + + if(sector<3){ + icopy=sector+1; + sprintf(string1,"/ALIC_1/B077_1/B075_%i/BTO3_1",icopy); + } + else if(sector<11){ + // icopy=sector-2; + icopy=sector+3; + sprintf(string1,"/ALIC_1/B077_1/B071_%i/BTO1_1",icopy); + } + else if(sector==11 || sector==12){ + icopy=sector-10; + sprintf(string1,"/ALIC_1/B077_1/B074_%i/BTO2_1",icopy); + } + else { + // icopy=sector-4; + icopy=sector-12; + sprintf(string1,"/ALIC_1/B077_1/B071_%i/BTO1_1",icopy); + } + + if( plate ==0){ + sprintf(string2,"FTOC_1/FLTC_0"); + icopy = nstrC - strip; + sprintf(string3,"FSTR_%i",icopy); + } + else if( plate ==1){ + sprintf(string2,"FTOB_1/FLTB_0"); + icopy = nstrB - strip; + sprintf(string3,"FSTR_%i",icopy); + } + else if( plate ==2){ + sprintf(string2,"FTOA_0/FLTA_0"); + icopy = strip+1; + sprintf(string3,"FSTR_%i",icopy); + } + else if( plate ==3){ + sprintf(string2,"FTOB_2/FLTB_0"); + icopy = strip+1; + sprintf(string3,"FSTR_%i",icopy); + } + else if( plate ==4){ + sprintf(string2,"FTOC_2/FLTC_0"); + icopy = strip+1; + sprintf(string3,"FSTR_%i",icopy); + } + + sprintf(path,"%s/%s/%s/FSEN_0",string1,string2,string3); + +} + //_____________________________________________________________________________ void AliTOFGeometryV4::GetPos(Int_t *det, Float_t *pos) {