Added method to calculate absID from position in PHOS local coordinate system
[u/mrichter/AliRoot.git] / PHOS / AliPHOSGeometry.cxx
index afb41dcf095c784089c6785fd15a1fb8ff8ad685..c1bf473819ffc2ae8e926dcbe6748d21f1357d0e 100644 (file)
@@ -458,6 +458,19 @@ void AliPHOSGeometry::RelPosInAlice(Int_t id, TVector3 & pos ) const
     pos.Transform(rot) ; // rotate the baby 
 } 
 
+//____________________________________________________________________________
+void AliPHOSGeometry::RelPosToAbsId(const Int_t module, const Double_t x, const Double_t z, Int_t & AbsId) const
+{
+  // converts local PHOS-module (x, z) coordinates to absId 
+  Int_t relid[4] ;
+  relid[0] = module ;
+  relid[1] = 0 ;
+  relid[2] = static_cast<Int_t>(TMath::Ceil( x/ GetCellStep() + GetNPhi() / 2.) );
+  relid[3] = static_cast<Int_t>(TMath::Ceil(-z/ GetCellStep() + GetNZ()   / 2.) ) ;
+  
+  RelToAbsNumbering(relid,AbsId) ;
+}
+
 //____________________________________________________________________________
 void AliPHOSGeometry::RelPosInModule(const Int_t * relid, Float_t & x, Float_t & z) const 
 {