-#ifndef ALIRICHHIT_H
-#define ALIRICHHIT_H
-
-
+#ifndef AliRICHHit_h
+#define AliRICHHit_h
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id$ */
-
-
-#include "AliHit.h"
-
-class AliRICHHit : public AliHit {
- public:
- Int_t fChamber; // Chamber number
- Float_t fParticle; // Geant3 particle type
- Float_t fTheta ; // Incident theta angle in degrees
- Float_t fPhi ; // Incident phi angle in degrees
- Float_t fTlength; // Track length inside the chamber
- Float_t fEloss; // ionisation energy loss in gas
- Float_t fPHfirst; // first padhit
- Float_t fPHlast; // last padhit
- Float_t fLoss; // did it hit the freon?
- Float_t fMomX; // x Momentum at photochatode entry point
- Float_t fMomY; // y Momentum at photochatode entry point
- Float_t fMomZ; // z Momentum at photochatode entry point
- Float_t fNPads; // Pads hit
- Float_t fCerenkovAngle; // Dummy cerenkov angle
- Float_t fMomFreoX; // x Momentum at freon entry point
- Float_t fMomFreoY; // y Momentum at freon entry point
- Float_t fMomFreoZ; // z Momentum at freon entry point
+#include <AliHit.h>
+#include <TVector3.h>
- public:
- AliRICHHit() {}
- AliRICHHit(Int_t fIshunt, Int_t track, Int_t *vol, Float_t *hits);
- virtual ~AliRICHHit() {}
-
- Int_t Chamber() {return fChamber;}
- Float_t Particle() {return fParticle;}
- Float_t Theta() {return fTheta;}
- Float_t Phi() {return fPhi;}
- Float_t Tlength() {return fTlength;}
- Float_t Eloss() {return fEloss;}
- Float_t PHfirst() {return fPHfirst;}
- Float_t PHlast() {return fPHlast;}
- Float_t MomX() {return fMomX;}
- Float_t MomY() {return fMomY;}
- Float_t MomZ() {return fMomZ;}
- Float_t CerenkovAngle() {return fMomX;}
- Float_t MomFreoX() {return fMomX;}
- Float_t MomFreoY() {return fMomY;}
- Float_t MomFreoZ() {return fMomZ;}
-
-
- ClassDef(AliRICHHit,1) //Hits object for set:RICH
-};
+//RICH hit container
+class AliRICHHit : public AliHit
+{
+public:
+ AliRICHHit() :AliHit( ),fCham(-1) ,fE(-1),fPid(-1 ){fInX3.SetXYZ(0,0,0);fOutX3.SetXYZ(0,0,0);}
+ AliRICHHit(Int_t c,Int_t tid,TVector3 in,TVector3 out,Double_t e,Int_t pid) :AliHit(0,tid),fCham(c ) ,fE(e) ,fPid(pid){fInX3=in; fOutX3=out; fX=out.X();fY=out.Y();fZ=out.Z();}
+ AliRICHHit(Int_t tid,Double_t e,Int_t pad,Double_t x,Double_t y,Double_t z,Int_t pid):AliHit(0,tid),fCham(pad),fE(e) ,fPid(pid){fX=x;fY=y;fZ=z;}
+
+ virtual ~AliRICHHit() {}
+//framework part
+ void Print(Option_t *option="")const; //from TObject to print current status
+//private part
+ Int_t C ()const{return fCham;} //chamber number
+ Int_t Chamber()const{return fCham;} //chamber number
+ Int_t Pad ()const{return fCham;} //absolute pad number, definition in AliRICHParam
+ Float_t Eloss ()const{return fE; } //Eloss for MIP hit or Etot for photon hit
+ TVector3 InX3 ()const{return fInX3;} //track position at the faceplane of the gap
+ TVector3 OutX3 ()const{return fOutX3;} //track position at the backplane of the gap
+ Double_t Length ()const{return (fOutX3-fInX3).Mag();} //track length inside the amplification gap
+protected:
+ Int_t fCham; //chamber number or in future absolute pad number
+ Double_t fE; //Eloss for MIP or Etot for photon [GeV]
+ Int_t fPid; //PID of particle created this hit
+ TVector3 fInX3; //position at the entrance of the GAP
+ TVector3 fOutX3; //position at the exit of the GAP
+ ClassDef(AliRICHHit,3) //RICH hit class
+};//class AliRICHhit
#endif