ROOT logo
#ifndef AliFMDhit_H
#define AliFMDhit_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
 * reserved. 
 *
 * See cxx source for full Copyright notice                               
 */
// Hits are the information that comes from a Monte Carlo at each
// step as a particle mass through sensitive detector elements as
// particles are transported through a detector. 
/** @file    AliFMDHit.h
    @author  Christian Holm Christensen <cholm@nbi.dk>
    @date    Mon Mar 27 12:41:58 2006
    @brief   Hit in the FMD
    @ingroup FMD_sim
*/
//___________________________________________________________________
//
#ifndef ALIHIT_H
# include <AliHit.h>
#endif

//___________________________________________________________________
/** @brief AliFMDhit is the hit class for the FMD. 
    Hits are the information that comes from a Monte Carlo at each
    step as a particle mass through sensitive detector elements as
    particles are transported through a detector. 
    @ingroup FMD_sim
*/
class AliFMDHit : public AliHit 
{
public:
  /** Default CTOR */
  AliFMDHit();
  /** Normal FMD hit ctor
      @param shunt     ???
      @param track     Track #
      @param detector  Detector # (1, 2, or 3)                      
      @param ring      Ring ID ('I' or 'O')
      @param sector    Sector # (For inner/outer rings: 0-19/0-39)
      @param strip     Strip # (For inner/outer rings: 0-511/0-255)
      @param x	       Track's X-coordinate at hit
      @param y	       Track's Y-coordinate at hit
      @param z	       Track's Z-coordinate at hit
      @param px	       X-component of track's momentum 
      @param py	       Y-component of track's momentum
      @param pz	       Z-component of track's momentum
      @param edep      Energy deposited by track
      @param pdg       Track's particle Id #
      @param t	       Time when the track hit 
      @param l         Track lenght through medium 
      @param stop      Whether track is stopped in medium */
  AliFMDHit(Int_t    shunt, 
	    Int_t    track, 
	    UShort_t detector, 
	    Char_t   ring, 
	    UShort_t sector, 
	    UShort_t strip, 
	    Float_t  x=0, 
	    Float_t  y=0, 
	    Float_t  z=0,
	    Float_t  px=0, 
	    Float_t  py=0, 
	    Float_t  pz=0,
	    Float_t  edep=0,
	    Int_t    pdg=0,
	    Float_t  t=0, 
	    Float_t  l=0, 
	    Bool_t   stop=kFALSE);
  /** DTOR  */
  virtual ~AliFMDHit() {}
  
  /** @return Detector # */
  UShort_t Detector()	const { return fDetector; }
  /** @return Ring ID */
  Char_t   Ring()	const { return fRing;     }
  /** @return Sector # */
  UShort_t Sector()	const { return fSector;   }
  /** @return Strip # */
  UShort_t Strip()	const { return fStrip;    }
  /** @return Energy deposited (MeV) */
  Float_t  Edep()       const { return fEdep;     }
  /** @return Track @f$ p_x@f$ - momentum in @f$ x@f$ (GeV) */
  Float_t  Px()         const { return fPx;       }
  /** @return Track @f$ p_y@f$ - momentum in @f$ y@f$ (GeV) */
  Float_t  Py()         const { return fPy;       }
  /** @return Track @f$ p_z@f$ - momentum in @f$ z@f$ (GeV) */
  Float_t  Pz()         const { return fPz;       } 
  /** @return Track @f$ |p|@f$ - momentum (GeV) */
  Float_t  P()          const;
  /** @return Track @f$ m@f$ - mass (GeV) */
  Float_t  M()          const;
  /** @return Track @f$ q@f$ - charge (1/3) */
  Float_t  Q()          const;
  /** @return Track PDG id number */
  Int_t    Pdg()        const { return fPdg;      }
  /** @return Time of hit in seconds */
  Float_t  Time()       const { return fTime;     }
  /** @return Path length through silicon */
  Float_t  Length()     const { return fLength;   }
  /** @return Whether track was stopped in silicon */
  Bool_t   IsStop()     const { return fStop;     }

  /** Print info 
      @param opt Not used */
  void        Print(Option_t* opt="") const;
  /** @return Get Name */
  const char* GetName()               const;
  /** @return Get title */
  const char* GetTitle()              const;

  /** Set enenrgy deposited
      @param edep Energy deposited */
  void     SetEdep(Float_t edep) { fEdep = edep; }
protected:
  UShort_t fDetector;  // (Sub) Detector # (1,2, or 3)
  Char_t   fRing;      // Ring ID ('I' or 'O')
  UShort_t fSector;    // Sector # (phi division)
  UShort_t fStrip;     // Strip # (radial division)
  Float_t  fPx;        // Particle's X momentum X
  Float_t  fPy;        // Particle's Y momentum Y
  Float_t  fPz;        // Particle's Z momentum Z
  Int_t    fPdg;       // Particles PDG code 
  Float_t  fEdep;      // Energy deposition
  Float_t  fTime;      // Particle's time of flight
  Float_t  fLength;    // Track length through material. 
  Bool_t   fStop;      // Whether track was stopped. 
  
  ClassDef(AliFMDHit,2)  //Hits for detector FMD
};
#endif
//____________________________________________________________________
//
// Local Variables:
//   mode: C++
// End:
//
// EOF
//
 AliFMDHit.h:1
 AliFMDHit.h:2
 AliFMDHit.h:3
 AliFMDHit.h:4
 AliFMDHit.h:5
 AliFMDHit.h:6
 AliFMDHit.h:7
 AliFMDHit.h:8
 AliFMDHit.h:9
 AliFMDHit.h:10
 AliFMDHit.h:11
 AliFMDHit.h:12
 AliFMDHit.h:13
 AliFMDHit.h:14
 AliFMDHit.h:15
 AliFMDHit.h:16
 AliFMDHit.h:17
 AliFMDHit.h:18
 AliFMDHit.h:19
 AliFMDHit.h:20
 AliFMDHit.h:21
 AliFMDHit.h:22
 AliFMDHit.h:23
 AliFMDHit.h:24
 AliFMDHit.h:25
 AliFMDHit.h:26
 AliFMDHit.h:27
 AliFMDHit.h:28
 AliFMDHit.h:29
 AliFMDHit.h:30
 AliFMDHit.h:31
 AliFMDHit.h:32
 AliFMDHit.h:33
 AliFMDHit.h:34
 AliFMDHit.h:35
 AliFMDHit.h:36
 AliFMDHit.h:37
 AliFMDHit.h:38
 AliFMDHit.h:39
 AliFMDHit.h:40
 AliFMDHit.h:41
 AliFMDHit.h:42
 AliFMDHit.h:43
 AliFMDHit.h:44
 AliFMDHit.h:45
 AliFMDHit.h:46
 AliFMDHit.h:47
 AliFMDHit.h:48
 AliFMDHit.h:49
 AliFMDHit.h:50
 AliFMDHit.h:51
 AliFMDHit.h:52
 AliFMDHit.h:53
 AliFMDHit.h:54
 AliFMDHit.h:55
 AliFMDHit.h:56
 AliFMDHit.h:57
 AliFMDHit.h:58
 AliFMDHit.h:59
 AliFMDHit.h:60
 AliFMDHit.h:61
 AliFMDHit.h:62
 AliFMDHit.h:63
 AliFMDHit.h:64
 AliFMDHit.h:65
 AliFMDHit.h:66
 AliFMDHit.h:67
 AliFMDHit.h:68
 AliFMDHit.h:69
 AliFMDHit.h:70
 AliFMDHit.h:71
 AliFMDHit.h:72
 AliFMDHit.h:73
 AliFMDHit.h:74
 AliFMDHit.h:75
 AliFMDHit.h:76
 AliFMDHit.h:77
 AliFMDHit.h:78
 AliFMDHit.h:79
 AliFMDHit.h:80
 AliFMDHit.h:81
 AliFMDHit.h:82
 AliFMDHit.h:83
 AliFMDHit.h:84
 AliFMDHit.h:85
 AliFMDHit.h:86
 AliFMDHit.h:87
 AliFMDHit.h:88
 AliFMDHit.h:89
 AliFMDHit.h:90
 AliFMDHit.h:91
 AliFMDHit.h:92
 AliFMDHit.h:93
 AliFMDHit.h:94
 AliFMDHit.h:95
 AliFMDHit.h:96
 AliFMDHit.h:97
 AliFMDHit.h:98
 AliFMDHit.h:99
 AliFMDHit.h:100
 AliFMDHit.h:101
 AliFMDHit.h:102
 AliFMDHit.h:103
 AliFMDHit.h:104
 AliFMDHit.h:105
 AliFMDHit.h:106
 AliFMDHit.h:107
 AliFMDHit.h:108
 AliFMDHit.h:109
 AliFMDHit.h:110
 AliFMDHit.h:111
 AliFMDHit.h:112
 AliFMDHit.h:113
 AliFMDHit.h:114
 AliFMDHit.h:115
 AliFMDHit.h:116
 AliFMDHit.h:117
 AliFMDHit.h:118
 AliFMDHit.h:119
 AliFMDHit.h:120
 AliFMDHit.h:121
 AliFMDHit.h:122
 AliFMDHit.h:123
 AliFMDHit.h:124
 AliFMDHit.h:125
 AliFMDHit.h:126
 AliFMDHit.h:127
 AliFMDHit.h:128
 AliFMDHit.h:129
 AliFMDHit.h:130
 AliFMDHit.h:131
 AliFMDHit.h:132
 AliFMDHit.h:133
 AliFMDHit.h:134
 AliFMDHit.h:135
 AliFMDHit.h:136
 AliFMDHit.h:137
 AliFMDHit.h:138
 AliFMDHit.h:139