//******************************************//
// author: G. Daskalakis EP-CMA
//            20-11-2003
//
//  This script transforms SC eta 
//   by using the correct vertex
//
//  TODO list:
//
//
//
//  Modified by:
//
//******************************************//


Float_t ETASCtransformation(Float_t EtaParticle , Float_t Zvertex)
{
//---Definitions
	const Float_t PI    = 3.1415927;
	const Float_t TWOPI = 2.0*PI;

//---Definitions for ECAL
	const Float_t R_ECAL           = 136.5; // 136.5
	const Float_t Z_Endcap         = 328.0;
	const Float_t etaBarrelEndcap  = 1.479; 
   
//---ETA correction

	Float_t Theta = 0.0  ; 
        Float_t ZEcal = R_ECAL*sinh(EtaParticle)-Zvertex;

	if(ZEcal != 0.0) Theta = atan(R_ECAL/ZEcal);
	if(ZEcal == 0.0) Theta = PI/2.0;

	if(Theta<0.0) Theta = Theta+PI ;
	Float_t ETA = - log(tan(0.5*Theta));
         
	if( fabs(EtaParticle) > etaBarrelEndcap )
	  {
	   Float_t Zend = Z_Endcap ;
	   if(EtaParticle<0.0 )  Zend = -Zend ;
	   Float_t Zlen = Zend - Zvertex ;
	   Float_t RR = fabs(Zend/sinh(EtaParticle)); 
	   Theta = atan(RR/Zlen);
	   if(Theta<0.0) Theta = Theta+PI ;
 	   ETA = - log(tan(0.5*Theta));		      
	  } 
//---Return the result
        return ETA;
//---end
}
