Merge form ITS-working to HEAD. Added many new functions. Also added hits
authornilsen <nilsen@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 7 Mar 2000 18:49:19 +0000 (18:49 +0000)
committernilsen <nilsen@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 7 Mar 2000 18:49:19 +0000 (18:49 +0000)
for entering particles and the like. Should be fully backwards compatable.

ITS/AliITShit.cxx
ITS/AliITShit.h

index 9c90fca0d0292312259b3b40267cfe519e0e146e..3f4929a01fbdfa026dde02a3877db62781c52e94 100644 (file)
 
 /*
 $Log$
+Revision 1.3.4.2  2000/03/04 23:43:57  nilsen
+Fixed up the comments/documentation.
+
+Revision 1.3.4.1  2000/01/12 19:03:32  nilsen
+This is the version of the files after the merging done in December 1999.
+See the ReadMe110100.txt file for details
+
+Revision 1.3  1999/09/29 09:24:20  fca
+Introduction of the Copyright and cvs Log
+
 */
 
 
@@ -25,10 +35,10 @@ $Log$
 #include <TNode.h>
 #include <TTUBE.h>
 
+#include "AliRun.h"
 #include "AliITSgeom.h"
 #include "AliITS.h"
 #include "AliITShit.h"
-#include "AliRun.h"
 
 
 ClassImp(AliITShit)
@@ -56,19 +66,156 @@ ClassImp(AliITShit)
 <pre>
 */
 //End_Html
+////////////////////////////////////////////////////////////////////////
+// Inline Member functions:
+//
+// AliITShit()
+//     The default creator of the AliITShit class.
+//
+// ~AliITShit()
+//     The default destructor of the AliITShit class.
+//
+// int GetTrack()
+//     See AliHit for a full description. Returns the track number fTrack
+// for this hit.
+//
+// SetTrack(int track)
+//     See AliHit for a full description. Sets the track number fTrack
+// for this hit.
+//
+// Int_t GetTrackStatus()
+//     Returns the value of the track status flag fStatus. This flag
+// indicates the track status at the time of creating this hit. It is
+// made up of the following 8 status bits from highest order to lowest
+// order bits
+// 0           :  IsTrackAlive():    IsTrackStop():IsTrackDisappeared():
+// IsTrackOut():IsTrackExiting():IsTrackEntering():IsTrackInside()     .
+// See AliMC for a description of these functions. If the function is
+// true then the bit is set to one, otherwise it is zero.
+//
+// Bool_t StatusInside()
+//     Returns kTRUE if the particle producing this hit is still inside
+// the present volume. Returns kFalse if this particle will be in another
+// volume. {bit IsTrackInside is set or not}
+//
+// Bool_t StatusEntering()
+//     Returns kTRUE if the particle producing this hit is has just enterd
+// the present volume. Returns kFalse otherwise.  {bit IsTrackEntering is
+// set or not}
+//
+// Bool_t StatusExiting()
+//     Returns kTRUE if the particle producing this hit is will exit
+// the present volume. Returns kFalse otherwise. {bit IsTrackExiting is set
+// or not}
+//
+// Bool_t StatusOut()
+//     Returns kTRUE if the particle producing this hit is goint exit the
+// simulation. Returns kFalse otherwise. {bit IsTrackOut is set or not}
+//
+// Bool_t StatusDisappeared()
+//     Returns kTRUE if the particle producing this hit is going to "disappear"
+// for example it has interacted producing some other particles. Returns
+//  kFalse otherwise. {bit IsTrackOut is set or not}
+//
+// Bool_t StatusStop()
+//     Returns kTRUE if the particle producing this hit is has dropped below
+// its energy cut off producing some other particles. Returns kFalse otherwise.
+// {bit IsTrackOut is set or not}
+//
+// Bool_t StatuAlives()
+//     Returns kTRUE if the particle producing this hit is going to continue
+// to be transported. Returns kFalse otherwise. {bit IsTrackOut is set or not}
+//
+// Int_t GetLayer()
+//     Returns the layer number, fLayer, for this hit.
+//
+// Int_t GetLadder()
+//     Returns the ladder number, fLadder, for this hit.
+//
+// Int_t GetDetector()
+//     Returns the detector number, fDet, for this hit.
+//
+// GetDetectorID(Int_t &layer, Int_t &ladder, Int_t &detector)
+//     Returns the layer, ladder, and detector numbers, fLayer fLadder fDet,
+// in one call.
+//
+// Float_t GetIonization()
+//     Returns the energy lost, fDestep, by the particle creating this hit,
+// in the units defined by the Monte Carlo.
+//
+// GetPositionG(Float_t &x, Float_t &y, Float_t &z)
+//     Returns the global position, fX fY fZ, of this hit, in the units
+// define by the Monte Carlo.
+//
+// GetPositionG(Double_t &x, Double_t &y, Double_t &z)
+//     Returns the global position, fX fY fZ, of this hit, in the units
+// define by the Monte Carlo.
+//
+// GetPositionG(Float_t &x, Float_t &y, Float_t &z, Float_t &tof)
+//     Returns the global position and time of flight, fX fY fZ fTof, of
+// this hit, in the units define by the Monte Carlo.
+//
+// GetPositionG(Double_t &x,Double_t &y,Double_t &z,Double_t &tof)
+//     Returns the global position and time of flight, fX fY fZ fTof, of
+// this hit, in the units define by the Monte Carlo.
+//
+// GetPositionL(Double_t &x,Double_t &y,Double_t &z)
+//     Returns the local position, fX fY fZ, of this hit in the coordiante
+// of this module, in the units define by the Monte Carlo.
+//
+// GetPositionG(Double_t &x,Double_t &y,Double_t &z,Double_t &tof)
+//     Returns the local position and time of flight, fX fY fZ fTof, of
+// this hit in the coordinates of this module, in the units define by the
+//  Monte Carlo.
+//
+// Float_t GetXG()
+//     Returns the global x position in the units defined by the Monte Carlo.
+//
+// Float_t GetYG()
+//     Returns the global y position in the units defined by the Monte Carlo.
+//
+// Float_t GetYG()
+//     Returns the global z position in the units defined by the Monte Carlo.
+//
+// Float_t GetTOF()
+//     Returns the time of flight, fTof, of this hit, in the units defined
+// by the Monte Carlo.
+//
+// GetMomentumG(Float_t &px, Float_t &py, Float_t &pz)
+//     Returns the global momentum, fPx fPy fPz, of the particle that made
+// this hit, in the units define by the Monte Carlo.
+//
+// GetMomentumG(Double_t &px,Double_t &py,Double_t &pz)
+//     Returns the global momentum, fPx fPy fPz, of the particle that made
+// this hit, in the units define by the Monte Carlo.
+//
+// GetMomentumL(Double_t &px,Double_t &py,Double_t &pz)
+//     Returns the momentum, fPx fPy fPz in coordinate appropreate for this
+// specific module, in the units define by the Monte Carlo.
+//
+// Float_t GetPXG()
+//     Returns the global X momentum in the units defined by the Monte Carlo.
+//
+// Float_t GetPYG()
+//     Returns the global Y momentum in the units defined by the Monte Carlo.
+//
+// Float_t GetPZG()
+//     Returns the global Z momentum in the units defined by the Monte Carlo.
+//
+////////////////////////////////////////////////////////////////////////
 //_____________________________________________________________________________
 AliITShit::AliITShit(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits):
-  AliHit(shunt, track){
-  //
-  // Create ITS hit
-  //     The creator of the AliITShit class. The variables shunt and
-  // track are passed to the creator of the AliHit class. See the AliHit
-  // class for a full description. the integer array *vol contains, in order,
-  // fLayer = vol[0], fDet = vol[1], fLadder = vol[2], fStatus = vol[3].
-  // The array *hits contains, in order, fX = hits[0], fY = hits[1], 
-  // fZ = hits[2], fPx = hits[3], fPy = hits[4], fPz = hits[5],
-  // fDestep = hits[6], and fTof = hits[7].
-  //
+    AliHit(shunt, track){
+////////////////////////////////////////////////////////////////////////
+// Create ITS hit
+//     The creator of the AliITShit class. The variables shunt and
+// track are passed to the creator of the AliHit class. See the AliHit
+// class for a full description. the integer array *vol contains, in order,
+// fLayer = vol[0], fDet = vol[1], fLadder = vol[2], fStatus = vol[3].
+// The array *hits contains, in order, fX = hits[0], fY = hits[1],
+// fZ = hits[2], fPx = hits[3], fPy = hits[4], fPz = hits[5],
+// fDestep = hits[6], and fTof = hits[7]. In the units of the Monte Carlo
+////////////////////////////////////////////////////////////////////////
   fLayer      = vol[0];   // Layer number
   fLadder     = vol[2];   // Ladder number
   fDet        = vol[1];   // Detector number
@@ -82,8 +229,12 @@ AliITShit::AliITShit(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits):
   fDestep     = hits[6];  // Track dE/dx for this step
   fTof        = hits[7];  // Track Time of Flight for this step
 }
-
+//______________________________________________________________________
 void AliITShit::GetPositionL(Float_t &x,Float_t &y,Float_t &z){
+////////////////////////////////////////////////////////////////////////
+//     Returns the position of this hit in the local coordinates of this
+// module, and in the units of the Monte Carlo.
+////////////////////////////////////////////////////////////////////////
     AliITSgeom *gm = ((AliITS*)gAlice->GetDetector("ITS"))->GetITSgeom();
     Float_t g[3],l[3];
 
@@ -96,8 +247,12 @@ void AliITShit::GetPositionL(Float_t &x,Float_t &y,Float_t &z){
     z = l[2];
     return;
 }
-
+//______________________________________________________________________
 void AliITShit::GetPositionL(Float_t &x,Float_t &y,Float_t &z,Float_t &tof){
+////////////////////////////////////////////////////////////////////////
+//     Returns the position and time of flight of this hit in the local
+// coordinates of this module, and in the units of the Monte Carlo.
+////////////////////////////////////////////////////////////////////////
     AliITSgeom *gm = ((AliITS*)gAlice->GetDetector("ITS"))->GetITSgeom();
     Float_t g[3],l[3];
 
@@ -111,8 +266,12 @@ void AliITShit::GetPositionL(Float_t &x,Float_t &y,Float_t &z,Float_t &tof){
     tof = fTof;
     return;
 }
-
+//______________________________________________________________________
 Float_t AliITShit::GetXL(){
+////////////////////////////////////////////////////////////////////////
+//     Returns the x position of this hit in the local coordinates of this
+// module, and in the units of the Monte Carlo.
+////////////////////////////////////////////////////////////////////////
     AliITSgeom *gm = ((AliITS*)gAlice->GetDetector("ITS"))->GetITSgeom();
     Float_t g[3],l[3];
 
@@ -122,8 +281,12 @@ Float_t AliITShit::GetXL(){
     gm->GtoL(fLayer,fLadder,fDet,g,l);
     return l[0];
 }
-
+//______________________________________________________________________
 Float_t AliITShit::GetYL(){
+////////////////////////////////////////////////////////////////////////
+//     Returns the y position of this hit in the local coordinates of this
+// module, and in the units of the Monte Carlo.
+////////////////////////////////////////////////////////////////////////
     AliITSgeom *gm = ((AliITS*)gAlice->GetDetector("ITS"))->GetITSgeom();
     Float_t g[3],l[3];
 
@@ -133,8 +296,12 @@ Float_t AliITShit::GetYL(){
     gm->GtoL(fLayer,fLadder,fDet,g,l);
     return l[1];
 }
-
+//______________________________________________________________________
 Float_t AliITShit::GetZL(){
+////////////////////////////////////////////////////////////////////////
+//     Returns the z position of this hit in the local coordinates of this
+// module, and in the units of the Monte Carlo.
+////////////////////////////////////////////////////////////////////////
     AliITSgeom *gm = ((AliITS*)gAlice->GetDetector("ITS"))->GetITSgeom();
     Float_t g[3],l[3];
 
@@ -144,8 +311,12 @@ Float_t AliITShit::GetZL(){
     gm->GtoL(fLayer,fLadder,fDet,g,l);
     return l[2];
 }
-
+//______________________________________________________________________
 void AliITShit::GetMomentumL(Float_t &px,Float_t &py,Float_t &pz){
+////////////////////////////////////////////////////////////////////////
+//     Returns the momentum of this hit in the local coordinates of this
+// module, and in the units of the Monte Carlo.
+////////////////////////////////////////////////////////////////////////
     AliITSgeom *gm = ((AliITS*)gAlice->GetDetector("ITS"))->GetITSgeom();
     Float_t g[3],l[3];
 
@@ -158,3 +329,102 @@ void AliITShit::GetMomentumL(Float_t &px,Float_t &py,Float_t &pz){
     pz = l[2];
     return;
 }
+//______________________________________________________________________
+Float_t AliITShit::GetPXL(){
+////////////////////////////////////////////////////////////////////////
+//     Returns the X momentum of this hit in the local coordinates of this
+// module, and in the units of the Monte Carlo.
+////////////////////////////////////////////////////////////////////////
+    AliITSgeom *gm = ((AliITS*)gAlice->GetDetector("ITS"))->GetITSgeom();
+    Float_t g[3],l[3];
+
+    g[0] = fPx;
+    g[1] = fPy;
+    g[2] = fPz;
+    gm->GtoLMomentum(fLayer,fLadder,fDet,g,l);
+    return l[0];
+}
+//______________________________________________________________________
+Float_t AliITShit::GetPYL(){
+////////////////////////////////////////////////////////////////////////
+//     Returns the Y momentum of this hit in the local coordinates of this
+// module, and in the units of the Monte Carlo.
+////////////////////////////////////////////////////////////////////////
+    AliITSgeom *gm = ((AliITS*)gAlice->GetDetector("ITS"))->GetITSgeom();
+    Float_t g[3],l[3];
+
+    g[0] = fPx;
+    g[1] = fPy;
+    g[2] = fPz;
+    gm->GtoLMomentum(fLayer,fLadder,fDet,g,l);
+    return l[1];
+}
+//______________________________________________________________________
+Float_t AliITShit::GetPZL(){
+////////////////////////////////////////////////////////////////////////
+//     Returns the Z momentum of this hit in the local coordinates of this
+// module, and in the units of the Monte Carlo.
+////////////////////////////////////////////////////////////////////////
+    AliITSgeom *gm = ((AliITS*)gAlice->GetDetector("ITS"))->GetITSgeom();
+    Float_t g[3],l[3];
+
+    g[0] = fPx;
+    g[1] = fPy;
+    g[2] = fPz;
+    gm->GtoLMomentum(fLayer,fLadder,fDet,g,l);
+    return l[2];
+}
+//___________________________________________________________________________;
+Int_t AliITShit::GetModule(){
+////////////////////////////////////////////////////////////////////////
+//     Returns the module index number of the module where this hit was in.
+////////////////////////////////////////////////////////////////////////
+    AliITSgeom *gm = ((AliITS*)gAlice->GetDetector("ITS"))->GetITSgeom();
+
+    return gm->GetModuleIndex(fLayer,fLadder,fDet);
+}
+//______________________________________________________________________
+TParticle * AliITShit::GetParticle(){
+////////////////////////////////////////////////////////////////////////
+//     Returns the pointer to the TParticle for the particle that created
+// this hit. From the TParticle all kinds of information about this 
+// particle can be found. See the TParticle class.
+////////////////////////////////////////////////////////////////////////
+    TClonesArray *Parts = gAlice->Particles();
+    return ((TParticle*)Parts->UncheckedAt(this->GetTrack()));
+}
+//___________________________________________________________________________
+void AliITShit::Streamer(TBuffer &R__b){
+////////////////////////////////////////////////////////////////////////
+//     The streamer function for this AliITShit class. This has been set
+// up so that future changes to this class can be easly incorporated.
+////////////////////////////////////////////////////////////////////////
+   if (R__b.IsReading()) {
+      Version_t R__v = R__b.ReadVersion(); 
+      if (R__v==1) {
+         AliHit::Streamer(R__b);
+         R__b >> fStatus;
+         R__b >> fLayer;
+         R__b >> fLadder;
+         R__b >> fDet;
+         R__b >> fPx;
+         R__b >> fPy;
+         R__b >> fPz;
+         R__b >> fDestep;
+         R__b >> fTof;
+      }else{ // for futrue changes to this class.
+      } // end if R__v==1
+   } else {
+      R__b.WriteVersion(AliITShit::IsA());
+      AliHit::Streamer(R__b);
+      R__b << fStatus;
+      R__b << fLayer;
+      R__b << fLadder;
+      R__b << fDet;
+      R__b << fPx;
+      R__b << fPy;
+      R__b << fPz;
+      R__b << fDestep;
+      R__b << fTof;
+   } // end if R__b.IsReading()
+}
index 2534784a0979f9ca18732a14389d5aa46a974a5d..093972cc9e9b3a8cd68112d3ff4987c547f862db 100644 (file)
@@ -1,11 +1,12 @@
-#ifndef ITSHIT_H
-#define ITSHIT_H
+#ifndef ALIITSHIT_H
+#define ALIITSHIT_H
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
 /* $Id$ */
 
 #include "AliDetector.h"
+#include "TParticle.h"
 #include "AliHit.h" 
 #include "AliDigit.h"
 #include "AliITSgeom.h"
@@ -90,73 +91,6 @@ class AliITShit : public AliHit {
 // are those determined by the Monte Carlo.
 //
 //
-// Member functions:
-//
-// AliITShit()
-//     The default creator of the AliITShit class.
-//
-// AliITShit(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits)
-//     The creator of the AliITShit class. The variables shunt and
-// track are passed to the creator of the AliHit class. See the AliHit
-// class for a full description. the integer array *vol contains, in order,
-// fLayer = vol[0], fDet = vol[1], fLadder = vol[2], fStatus = vol[3].
-// The array *hits contains, in order, fX = hits[0], fY = hits[1], 
-// fZ = hits[2], fPx = hits[3], fPy = hits[4], fPz = hits[5],
-// fDestep = hits[6], and fTof = hits[7].
-//
-// ~AliITShit()
-//     The default destructor of the AliITShit class.
-//
-// int GetTrack()
-//     See AliHit for a full description. Returns the track number fTrack
-// for this hit.
-//
-// SetTrack(int track)
-//     See AliHit for a full description. Sets the track number fTrack
-// for this hit.
-//
-// Int_t GetTrackStatus()
-//     Returns the value of the track status flag fStatus. This flag
-// indicates the track status at the time of creating this hit. It is
-// made up of the following 8 status bits from highest order to lowest
-// order bits
-// 0           :  IsTrackAlive():    IsTrackStop():IsTrackDisappeared():
-// IsTrackOut():IsTrackExiting():IsTrackEntering():IsTrackInside()     .
-// See AliMC for a description of these functions. If the function is
-// true then the bit is set to one, otherwise it is zero.
-//
-// Int_t GetLayer()
-//     Returns the layer number, fLayer, for this hit.
-//
-// Int_t GetLadder()
-//     Returns the ladder number, fLadder, for this hit.
-//
-// Int_t GetDetector()
-//     Returns the detector number, fDet, for this hit.
-//
-// GetDetectorID(Int_t &layer, Int_t &ladder, Int_t &detector)
-//     Returns the layer, ladder, and detector numbers, fLayer fLadder fDet,
-// in one call.
-//
-// Float_t GetIonization()
-//     Returns the energy lost, fDestep, by the particle creating this hit,
-// in the units defined by the Monte Carlo.
-//
-// GetPoositionG(Float_t &x, Float_t &y, Float_t &z)
-//     Returns the global position, fX fY fZ, of this hit, in the units
-// define by the Monte Carlo.
-//
-// Float_t GetTOF()
-//     Returns the time of flight, fTof, of this hit, in the units defined
-// by the Monte Carlo.
-//
-// GetPositionG(Float_t &x, Float_t &y, Float_t &z, Float_t &tof)
-//     Returns the global position and time of flight, fX fY fZ fTof, of
-// this hit, in the units define by the Monte Carlo.
-//
-// GetPositioonP(Float_t &px, Float_t &py, Float_t &pz)
-//     Returns the global momentum, fPx fPy fPz, of the particle that made
-// this hit, in the units define by the Monte Carlo.
 ////////////////////////////////////////////////////////////////////////
     // public;       // defined in AliHit
     // Int_t fTrack  // defined in AliHit
@@ -165,7 +99,7 @@ class AliITShit : public AliHit {
     // Float_t fZ;   // defined in AliHit
 
  public:
-//private:
+//protected:
     Int_t     fStatus; // Track Status
     Int_t     fLayer;  // Layer number
     Int_t     fLadder; // Ladder number
@@ -190,27 +124,84 @@ class AliITShit : public AliHit {
     virtual void  GetDetectorID(Int_t &layer,Int_t &ladder,
                                       Int_t &detector)
                      const {layer=fLayer;ladder=fLadder;detector=fDet;return;};
+    virtual Int_t GetModule();
     virtual Float_t GetIonization() const {return fDestep;}
     //
     virtual void GetPositionG(Float_t &x,Float_t &y,Float_t &z)
                                     const {x=fX;y=fY;z=fZ;return;};
+    virtual void GetPositionG(Double_t &x,Double_t &y,Double_t &z)
+                                    const {x=fX;y=fY;z=fZ;return;};
     virtual Float_t GetTOF() const {return fTof;}
+    // Returns particle 3 position at this hit in global coordinates.
     virtual void GetPositionG(Float_t &x,Float_t &y,Float_t &z,
                                    Float_t &tof)
                                     const {x=fX;y=fY;z=fZ,tof=fTof;return;};
+    virtual void GetPositionG(Double_t &x,Double_t &y,Double_t &z,
+                                   Double_t &tof)
+                                    const {x=fX;y=fY;z=fZ,tof=fTof;return;};
+    // Returns particle 3 position and the time of flight at this hit
+    // in global coordinates.
     virtual Float_t GetXG()const {return fX;}
+    // Returns particle X position at this hit in global coordinates.
     virtual Float_t GetYG()const {return fY;}
+    // Returns particle Y position at this hit in global coordinates.
     virtual Float_t GetZG()const {return fZ;}
+    // Returns particle Z position at this hit in global coordinates.
     virtual void GetPositionL(Float_t &x,Float_t &y,Float_t &z);
+    // Returns particle 3 position at this hit in local coordinates.
     virtual void GetPositionL(Float_t &x,Float_t &y,Float_t &z,
                                     Float_t &tof);
+    virtual void GetPositionL(Double_t &x,Double_t &y,Double_t &z){
+       Float_t xf,yf,zf;GetPositionL(xf,yf,zf);x=xf,y=yf;z=zf;}
+    // Returns particle 3 position at this hit in local coordinates.
+    virtual void GetPositionL(Double_t &x,Double_t &y,Double_t &z,
+                                    Double_t &tof){
+       Float_t xf,yf,zf,tf;GetPositionL(xf,yf,zf,tf);x=xf,y=yf;z=zf;tof=tf;}
+    // Returns particle 3 position and the time of flight at this hit
+    // in local coordinates.
     virtual Float_t GetXL();
+    // Returns particle X position at this hit in local coordinates.
     virtual Float_t GetYL();
+    // Returns particle Y position at this hit in local coordinates.
     virtual Float_t GetZL();
+    // Returns particle Z position at this hit in local coordinates.
     // Get Monti Carlo information about hit.
     virtual void GetMomentumG(Float_t &px,Float_t &py,Float_t &pz)
                                     const {px=fPx;py=fPy;pz=fPz;return;};
+    virtual void GetMomentumG(Double_t &px,Double_t &py,Double_t &pz)
+                                    const {px=fPx;py=fPy;pz=fPz;return;};
+    // Returns particle 3 momentum at this hit in global coordinates.
+    virtual Float_t GetPXG()const {return fPx;}
+    // Returns particle X momentum at this hit in global coordinates.
+    virtual Float_t GetPYG()const {return fPy;}
+    // Returns particle Y momentum at this hit in global coordinates.
+    virtual Float_t GetPZG()const {return fPz;}
+    // Returns particle Z momentum at this hit in global coordinates.
     virtual void GetMomentumL(Float_t &px,Float_t &py,Float_t &pz);
+    virtual void GetMomentumL(Double_t &px,Double_t &py,Double_t &pz){
+       Float_t x,y,z;GetMomentumL(x,y,z);px=x,py=y,pz=z;}
+    // Returns particle 3 momentum at this hit in local coordinates.
+    virtual Float_t GetPXL();
+    // Returns particle X momentum at this hit in local coordinates.
+    virtual Float_t GetPYL();
+    // Returns particle Y momentum at this hit in local coordinates.
+    virtual Float_t GetPZL();
+    // Returns particle Z momentum at this hit in local coordinates.
+    virtual TParticle * GetParticle(); // Returns pointer to this particle.
+    Bool_t StatusInside() {if((fStatus&0x0001)==0) return kFALSE;
+                                              else return kTRUE;}
+    Bool_t StatusEntering() {if((fStatus&0x0002)==0) return kFALSE;
+                                                else return kTRUE;}
+    Bool_t StatusExiting() {if((fStatus&0x0004)==0) return kFALSE;
+                                               else return kTRUE;}
+    Bool_t StatusOut() {if((fStatus&0x0008)==0) return kFALSE;
+                                           else return kTRUE;}
+    Bool_t StatusDisappeared() {if((fStatus&0x00010)==0) return kFALSE;
+                                                    else return kTRUE;}
+    Bool_t StatusStop() {if((fStatus&0x00020)==0) return kFALSE;
+                                             else return kTRUE;}
+    Bool_t StatusAlive() {if((fStatus&0x00030)==0) return kFALSE;
+                                              else return kTRUE;}
 
     ClassDef(AliITShit,1)  //Hits object for set:ITS
 };