* provided "as is" without express or implied warranty. *
**************************************************************************/
-/*
-$Log$
-Revision 1.1.2.1 2000/06/09 22:02:14 morsch
-Was before in DataStructures.cxx
+/* $Id$ */
+
+// MUON classe for MonteCarlo Hits, inherited from AliHit for the
+// In addition to the ALiHit data member fX, fY, fZ and fTrack, AliMUONHit contains some info about the particle crossing the chamber:
+// Impulsion: fPtot, fPx, fPy and fPz
+// Reference position at the center of the chamber (wire plane) fXref, fYref and fZref
+// Cumulated path along the active volume fTlength for spliting of hits for very inclined tracks
+// Energy loss of the particle inside the gas active volume.
+// Incident fTheta and fPhi angle with respect of the wire plane of the chamber.
+//
+
+#include <TMath.h>
-*/
#include "AliMUONHit.h"
ClassImp(AliMUONHit)
//___________________________________________
- AliMUONHit::AliMUONHit(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits):
+AliMUONHit::AliMUONHit()
+ : AliHit()
+{
+// Default constructor
+}
+
+//___________________________________________
+AliMUONHit::AliMUONHit(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits):
AliHit(shunt, track)
{
// Constructor
- fChamber=vol[0];
- fParticle=hits[0];
- fX=hits[1];
- fY=hits[2];
- fZ=hits[3];
- fTheta=hits[4];
- fPhi=hits[5];
- fTlength=hits[6];
- fEloss=hits[7];
- fPHfirst=(Int_t) hits[8];
- fPHlast=(Int_t) hits[9];
-
- // modifs perso
- fPTot=hits[10];
- fCxHit=hits[11];
- fCyHit=hits[12];
- fCzHit=hits[13];
- fAge=hits[14];
-
+ fChamber = vol[0];
+ fParticle = hits[0];
+ fX = hits[1];
+ fY = hits[2];
+ fZ = hits[3];
+ fTheta = hits[4];
+ fPhi = hits[5];
+ fTlength = hits[6];
+ fEloss = hits[7];
+ fPHfirst = (Int_t) hits[8];
+ fPHlast = (Int_t) hits[9];
+ fPTot = hits[10];
+ fPx = hits[11];
+ fPy = hits[12];
+ fPz = hits[13];
+ fAge = hits[14];
+ fXref = 0.;
+ fYref = 0.;
+ fZref = 0.;
}
-
-
-
-
-
-
+//___________________________________________
+AliMUONHit::AliMUONHit(Int_t shunt, Int_t track, Int_t iChamber, Int_t idpart,
+ Float_t X, Float_t Y, Float_t Z, Float_t tof, Float_t momentum,
+ Float_t theta, Float_t phi, Float_t length, Float_t destep):
+ AliHit(shunt, track)
+{
+// Constructor
+ fChamber = iChamber;
+ fParticle = idpart;
+ fX = X;
+ fY = Y;
+ fZ = Z;
+ fTheta = theta;
+ fPhi = phi;
+ fTlength = length;
+ fEloss = destep;
+ fPHfirst = 0;
+ fPHlast = 0;
+ fPTot = momentum;
+ fPx = momentum * TMath::Sin(theta) * TMath::Cos(phi);
+ fPy = momentum * TMath::Sin(theta) * TMath::Sin(phi);
+ fPx = momentum * TMath::Cos(theta) ;
+ fAge = tof;
+ fXref = 0.;
+ fYref = 0.;
+ fZref = 0.;
+}
+//-----------------------------------------------------------------------------------------------
+AliMUONHit::AliMUONHit(Int_t shunt, Int_t track, Int_t iChamber, Int_t idpart,
+ Float_t X, Float_t Y, Float_t Z, Float_t tof, Float_t momentum,
+ Float_t theta, Float_t phi, Float_t length, Float_t destep,
+ Float_t Xref,Float_t Yref,Float_t Zref):
+ AliHit(shunt, track)
+{
+// Constructor
+ fChamber = iChamber;
+ fParticle = idpart;
+ fX = X;
+ fY = Y;
+ fZ = Z;
+ fTheta = theta;
+ fPhi = phi;
+ fTlength = length;
+ fEloss = destep;
+ fPHfirst = 0;
+ fPHlast = 0;
+ fPTot = momentum;
+ fPx = momentum * TMath::Sin(theta) * TMath::Cos(phi);
+ fPy = momentum * TMath::Sin(theta) * TMath::Sin(phi);
+ fPx = momentum * TMath::Cos(theta) ;
+ fAge = tof;
+ fXref = Xref;
+ fYref = Yref;
+ fZref = Zref;
+}
+//-----------------------------------------------------------------------------------------------