ROOT logo
#ifndef ALIFMDESDREVERTEXER_H
#define ALIFMDESDREVERTEXER_H
#include <TObject.h>
class AliESDFMD;

//
// Class to recaculate quantities in an AliESDFMD object based on new
// a value for the z-coordinate of the primary interaction point. 
//
// This allows us, in case we get a better determination of the
// z-coordinate of the primary interaction, to recalibrate the signals
// in the FMD ESD object, without having to redo the reconstruction. 
//
class AliFMDESDRevertexer : public TObject
{
public:
  /** 
   * Constructor
   * 
   */
  AliFMDESDRevertexer();
  /** 
   * Destructor 
   * 
   */
  virtual ~AliFMDESDRevertexer() {}
  /** 
   * Revertex the passed ESD.   The passed ESD object will be modified
   * directly. 
   * 
   * @param fmdEsd ESD object to revertex. 
   * @param vz     New Z coordinate of primary vertex. 
   * 
   * @return @c true on success, @c false failure.
   */
  Bool_t Revertex(AliESDFMD* fmdEsd, Double_t vz) const;
  
  /** 
   * Calculate the physical coordinates (@a eta, @a phi) corresponding
   * to the detector coordinates (@a det, @a rng, @a sec, @a str).
   * 
   * @param det   The detector identifier 
   * @param rng   The ring identifier 
   * @param sec   The sector identifier 
   * @param str   The strip identifier 
   * @param vz    The z coordinate of the current primary interation vertex
   * @param eta   On return, the psuedo-rapidity
   * @param phi   On return, the azimuthal angle
   * @param r     On return, the radius
   * @param theta On return, the polar angle
   */
  Bool_t PhysicalCoordinates(UShort_t  det, 
			     Char_t    rng, 
			     UShort_t  sec, 
			     UShort_t  str,
			     Double_t  vz,
			     Double_t& eta, 
			     Double_t& phi,
			     Double_t& r,
			     Double_t& theta) const;

  /** 
   * Calculate the polar angle @f$ \theta@f$ corresponding to the
   * psuedo-rapidity @f$ \eta@f$ 
   * 
   * @param eta Psuedo rapidity @f$ \eta=-\log[\tan(\theta/2)]@f$ 
   * 
   * @return Polar angle @f$ \theta=2\tan^{-1}[\exp(-\eta)]@f$
   */  
  Double_t Eta2Theta(Double_t eta) const;
protected:
  ClassDef(AliFMDESDRevertexer,0) // Revertex and FMD ESD Object.
};

#endif
//
// Local Variables:
//  mode: C++
// End:
//



 AliFMDESDRevertexer.h:1
 AliFMDESDRevertexer.h:2
 AliFMDESDRevertexer.h:3
 AliFMDESDRevertexer.h:4
 AliFMDESDRevertexer.h:5
 AliFMDESDRevertexer.h:6
 AliFMDESDRevertexer.h:7
 AliFMDESDRevertexer.h:8
 AliFMDESDRevertexer.h:9
 AliFMDESDRevertexer.h:10
 AliFMDESDRevertexer.h:11
 AliFMDESDRevertexer.h:12
 AliFMDESDRevertexer.h:13
 AliFMDESDRevertexer.h:14
 AliFMDESDRevertexer.h:15
 AliFMDESDRevertexer.h:16
 AliFMDESDRevertexer.h:17
 AliFMDESDRevertexer.h:18
 AliFMDESDRevertexer.h:19
 AliFMDESDRevertexer.h:20
 AliFMDESDRevertexer.h:21
 AliFMDESDRevertexer.h:22
 AliFMDESDRevertexer.h:23
 AliFMDESDRevertexer.h:24
 AliFMDESDRevertexer.h:25
 AliFMDESDRevertexer.h:26
 AliFMDESDRevertexer.h:27
 AliFMDESDRevertexer.h:28
 AliFMDESDRevertexer.h:29
 AliFMDESDRevertexer.h:30
 AliFMDESDRevertexer.h:31
 AliFMDESDRevertexer.h:32
 AliFMDESDRevertexer.h:33
 AliFMDESDRevertexer.h:34
 AliFMDESDRevertexer.h:35
 AliFMDESDRevertexer.h:36
 AliFMDESDRevertexer.h:37
 AliFMDESDRevertexer.h:38
 AliFMDESDRevertexer.h:39
 AliFMDESDRevertexer.h:40
 AliFMDESDRevertexer.h:41
 AliFMDESDRevertexer.h:42
 AliFMDESDRevertexer.h:43
 AliFMDESDRevertexer.h:44
 AliFMDESDRevertexer.h:45
 AliFMDESDRevertexer.h:46
 AliFMDESDRevertexer.h:47
 AliFMDESDRevertexer.h:48
 AliFMDESDRevertexer.h:49
 AliFMDESDRevertexer.h:50
 AliFMDESDRevertexer.h:51
 AliFMDESDRevertexer.h:52
 AliFMDESDRevertexer.h:53
 AliFMDESDRevertexer.h:54
 AliFMDESDRevertexer.h:55
 AliFMDESDRevertexer.h:56
 AliFMDESDRevertexer.h:57
 AliFMDESDRevertexer.h:58
 AliFMDESDRevertexer.h:59
 AliFMDESDRevertexer.h:60
 AliFMDESDRevertexer.h:61
 AliFMDESDRevertexer.h:62
 AliFMDESDRevertexer.h:63
 AliFMDESDRevertexer.h:64
 AliFMDESDRevertexer.h:65
 AliFMDESDRevertexer.h:66
 AliFMDESDRevertexer.h:67
 AliFMDESDRevertexer.h:68
 AliFMDESDRevertexer.h:69
 AliFMDESDRevertexer.h:70
 AliFMDESDRevertexer.h:71
 AliFMDESDRevertexer.h:72
 AliFMDESDRevertexer.h:73
 AliFMDESDRevertexer.h:74
 AliFMDESDRevertexer.h:75
 AliFMDESDRevertexer.h:76
 AliFMDESDRevertexer.h:77
 AliFMDESDRevertexer.h:78
 AliFMDESDRevertexer.h:79
 AliFMDESDRevertexer.h:80
 AliFMDESDRevertexer.h:81
 AliFMDESDRevertexer.h:82
 AliFMDESDRevertexer.h:83