virtual Bool_t GetHoles() const {return fHoles;};
virtual Bool_t IsInsideThePadPar(Int_t */*det*/, Float_t */*pos*/) const {return kFALSE;};
virtual Float_t DistanceToPadPar(Int_t */*det*/, Float_t */*pos*/, Float_t *dist3d=0) const {return dist3d[0];};
- virtual Bool_t IsInsideThePad(Int_t */*det*/,TGeoHMatrix /*mat*/, Float_t */*pos*/) const {return kFALSE;};
- virtual Float_t DistanceToPad(Int_t */*det*/,TGeoHMatrix /*mat*/, Float_t */*pos*/, Float_t *dist3d=0) const {return dist3d[0];};
+ virtual Bool_t IsInsideThePad(TGeoHMatrix /*mat*/, Float_t */*pos*/, Float_t *dist3d=0) const {dist3d[0]=0;return kFALSE;};
virtual void GetVolumePath(Int_t */*ind*/, Char_t */*path*/ ){};
virtual void GetVolumePath(Int_t /*sector*/, Char_t */*path*/ ){};
virtual void GetVolumePath(Int_t /*sector*/, Int_t /*plate*/, Int_t /*strip*/, Char_t */*path*/ ){};
/*
$Log$
+Revision 1.8 2007/02/19 18:55:26 decaro
+Added getter methods for volume path (for Event Display)
+
Revision 1.17.1 2006/12/15
Added methods:
DetToSectorRF(...) to get pad corners
//const Float_t klstripx = fgkStripLength;
*/
- const Float_t khsensmy = 0.5;//0.05;//0.11;//0.16;// // heigth of Sensitive Layer
+ const Float_t padDepth = 0.5;//0.05;//0.11;//0.16;// // heigth of Sensitive Layer
//Transform pos into Sector Frame
Float_t yr = yt;
Float_t zr = -xt*TMath::Sin(alpha/kRaddeg)+zt*TMath::Cos(alpha/kRaddeg);
- if(TMath::Abs(xr)<=khsensmy*0.5 && TMath::Abs(yr)<= (fgkXPad*0.5) && TMath::Abs(zr)<= (fgkZPad*0.5))
+ if(TMath::Abs(xr)<=padDepth*0.5 && TMath::Abs(yr)<= (fgkXPad*0.5) && TMath::Abs(zr)<= (fgkZPad*0.5))
isInside=true;
return isInside;
//_____________________________________________________________________________
-Float_t AliTOFGeometryV5::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
-// pad with Detector Indices idet (iSect,iPlate,iStrip,iPadX,iPadZ)
-//
- if (!gGeoManager) {
- printf("ERROR: no TGeo\n");
- return 0.;
- }
- Double_t vecg[3];
- vecg[0]=pos[0];
- vecg[1]=pos[1];
- vecg[2]=pos[2];
- Double_t veclr[3]={-1.,-1.,-1.};
- Double_t vecl[3]={-1.,-1.,-1.};
- mat.MasterToLocal(vecg,veclr);
- vecl[0]=veclr[1];
- vecl[1]=veclr[0];
- //take into account reflections
- if(det[1]>-1)vecl[2]=-veclr[2];
-
- Float_t dist = TMath::Sqrt(vecl[0]*vecl[0]+vecl[1]*vecl[1]+vecl[2]*vecl[2]);
-
-
- if (dist3d){
- dist3d[0] = vecl[0];
- dist3d[1] = vecl[1];
- dist3d[2] = vecl[2];
- }
-
- return dist;
-
-}
-
-
-//_____________________________________________________________________________
-Bool_t AliTOFGeometryV5::IsInsideThePad( Int_t *det, TGeoHMatrix mat, Float_t *pos) const
+Bool_t AliTOFGeometryV5::IsInsideThePad(TGeoHMatrix mat, Float_t *pos, Float_t *dist3d) const
{
//
// Returns true if space point with coor pos (x,y,z) (cm) falls
// inside pad with Detector Indices idet (iSect,iPlate,iStrip,iPadX,iPadZ)
//
- const Float_t khsensmy = 0.5; // heigth of Sensitive Layer
+ const Float_t padDepth = 0.5; // heigth of Sensitive Layer
Double_t vecg[3];
vecg[0]=pos[0];
vecg[1]=pos[1];
vecg[2]=pos[2];
Double_t veclr[3]={-1.,-1.,-1.};
Double_t vecl[3]={-1.,-1.,-1.};
- mat.MasterToLocal(vecg,vecl);
+ mat.MasterToLocal(vecg,veclr);
vecl[0]=veclr[1];
vecl[1]=veclr[0];
//take into account reflections
- if(det[1]>-1)vecl[2]=-veclr[2];
+ vecl[2]=-veclr[2];
Float_t xr = vecl[0];
Float_t yr = vecl[1];
Float_t zr = vecl[2];
+ if (dist3d){
+ dist3d[0] = vecl[0];
+ dist3d[1] = vecl[1];
+ dist3d[2] = vecl[2];
+ }
+
Bool_t isInside=false;
- if(TMath::Abs(xr)<= khsensmy*0.5 && TMath::Abs(yr)<= (fgkXPad*0.5) && TMath::Abs(zr)<= (fgkZPad*0.5))
+ if(TMath::Abs(xr)<= padDepth*0.5 && TMath::Abs(yr)<= (fgkXPad*0.5) && TMath::Abs(zr)<= (fgkZPad*0.5))
isInside=true;
return isInside;
void ImportGeometry();
void Init();
- Bool_t IsInsideThePad(Int_t *det, TGeoHMatrix mat, Float_t *pos) const;
- Float_t DistanceToPad(Int_t *det, TGeoHMatrix mat, Float_t *pos, Float_t *dist3d=0) const;
+ Bool_t IsInsideThePad(TGeoHMatrix mat, Float_t *pos, Float_t *dist3d=0) const;
Bool_t IsInsideThePadPar(Int_t *det, Float_t *pos) const;
Float_t DistanceToPadPar(Int_t *det, Float_t *pos, Float_t *dist3d=0) const;
void GetVolumePath(Int_t *ind, Char_t *path );