]> git.uio.no Git - u/mrichter/AliRoot.git/blob - FMD/AliFMDESDRevertexer.h
add protection agains null energy - A. Mas
[u/mrichter/AliRoot.git] / FMD / AliFMDESDRevertexer.h
1 #ifndef ALIFMDESDREVERTEXER_H
2 #define ALIFMDESDREVERTEXER_H
3 #include <TObject.h>
4 class AliESDFMD;
5
6 //
7 // Class to recaculate quantities in an AliESDFMD object based on new
8 // a value for the z-coordinate of the primary interaction point. 
9 //
10 // This allows us, in case we get a better determination of the
11 // z-coordinate of the primary interaction, to recalibrate the signals
12 // in the FMD ESD object, without having to redo the reconstruction. 
13 //
14 class AliFMDESDRevertexer : public TObject
15 {
16 public:
17   /** 
18    * Constructor
19    * 
20    */
21   AliFMDESDRevertexer();
22   /** 
23    * Destructor 
24    * 
25    */
26   virtual ~AliFMDESDRevertexer() {}
27   /** 
28    * Revertex the passed ESD.   The passed ESD object will be modified
29    * directly. 
30    * 
31    * @param fmdEsd ESD object to revertex. 
32    * @param vz     New Z coordinate of primary vertex. 
33    * 
34    * @return @c true on success, @c false failure.
35    */
36   Bool_t Revertex(AliESDFMD* fmdEsd, Double_t vz) const;
37   
38   /** 
39    * Calculate the physical coordinates (@a eta, @a phi) corresponding
40    * to the detector coordinates (@a det, @a rng, @a sec, @a str).
41    * 
42    * @param det   The detector identifier 
43    * @param rng   The ring identifier 
44    * @param sec   The sector identifier 
45    * @param str   The strip identifier 
46    * @param vz    The z coordinate of the current primary interation vertex
47    * @param eta   On return, the psuedo-rapidity
48    * @param phi   On return, the azimuthal angle
49    * @param r     On return, the radius
50    * @param theta On return, the polar angle
51    */
52   Bool_t PhysicalCoordinates(UShort_t  det, 
53                              Char_t    rng, 
54                              UShort_t  sec, 
55                              UShort_t  str,
56                              Double_t  vz,
57                              Double_t& eta, 
58                              Double_t& phi,
59                              Double_t& r,
60                              Double_t& theta) const;
61
62   /** 
63    * Calculate the polar angle @f$ \theta@f$ corresponding to the
64    * psuedo-rapidity @f$ \eta@f$ 
65    * 
66    * @param eta Psuedo rapidity @f$ \eta=-\log[\tan(\theta/2)]@f$ 
67    * 
68    * @return Polar angle @f$ \theta=2\tan^{-1}[\exp(-\eta)]@f$
69    */  
70   Double_t Eta2Theta(Double_t eta) const;
71 protected:
72   ClassDef(AliFMDESDRevertexer,0) // Revertex and FMD ESD Object.
73 };
74
75 #endif
76 //
77 // Local Variables:
78 //  mode: C++
79 // End:
80 //
81
82
83