X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=MUON%2FAliMUONHit.cxx;h=eede6b4d5b42602b9190958a5f882b2c7959d8f3;hp=8ba3819b169ea990e2b1ea9df2c656954baee70d;hb=909e332a6bb76ed38615640a89638c27fb07f022;hpb=6464217e9cb563b9fc37cdae477bac161ccf135f diff --git a/MUON/AliMUONHit.cxx b/MUON/AliMUONHit.cxx index 8ba3819b169..eede6b4d5b4 100644 --- a/MUON/AliMUONHit.cxx +++ b/MUON/AliMUONHit.cxx @@ -15,245 +15,170 @@ /* $Id$ */ -// MUON classe for MonteCarlo Hits, inherited from AliHit for the +//----------------------------------------------------------------------------- +// MUON class 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 "Riostream.h" +//----------------------------------------------------------------------------- -#include -#include +#include "AliMUONHit.h" +#include "AliMpDEManager.h" #include "AliLog.h" -#include "AliMUONHit.h" -#include "AliMUONGeometryStore.h" +#include +#include +#include +using std::endl; +using std::cout; +using std::setw; +using std::setprecision; +/// \cond CLASSIMP ClassImp(AliMUONHit) +/// \endcond //___________________________________________ AliMUONHit::AliMUONHit() - : AliHit() + : AliHit(), + fDetElemId(0), + fParticle(0), + fTheta(0), + fPhi(0), + fTlength(0), + fEloss(0), + fAge(0), + fPHfirst(0), + fPHlast(0), + fPTot(0), + fPx(0), + fPy(0), + fPz(0), + fXref(0), + fYref(0), + fZref(0) { -// Default constructor +/// Default constructor } //___________________________________________ -AliMUONHit::AliMUONHit(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits): - AliHit(shunt, track) +AliMUONHit::AliMUONHit(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits) + : AliHit(shunt, track), + fDetElemId(vol[0]), + fParticle(hits[0]), + fTheta(hits[4]), + fPhi(hits[5]), + fTlength(hits[6]), + fEloss(hits[7]), + fAge(hits[14]), + fPHfirst((Int_t)hits[8]), + fPHlast((Int_t)hits[9]), + fPTot(hits[10]), + fPx(hits[11]), + fPy(hits[12]), + fPz(hits[13]), + fXref(0), + fYref(0), + fZref(0) { -// Constructor -// TBR +/// Constructor - fIsDetElemId = kFALSE; - fDetElemId = 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 *vol, Float_t *hits, - Bool_t /*isDetElemId*/) : - AliHit(shunt, track) -{ -// Constructor - - fIsDetElemId = kTRUE; - fDetElemId = 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 -// TBR - - fIsDetElemId = kFALSE; - fDetElemId = 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); - fPz = momentum * TMath::Cos(theta) ; - fAge = tof; - fXref = 0.; - fYref = 0.; - fZref = 0.; } //___________________________________________ AliMUONHit::AliMUONHit(Int_t shunt, Int_t track, Int_t detElemId, 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, - Bool_t /*isDetElemId*/): - AliHit(shunt, track) + 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), + fDetElemId(detElemId), + fParticle(idpart), + fTheta(theta), + fPhi(phi), + fTlength(length), + fEloss(destep), + fAge(tof), + fPHfirst(0), + fPHlast(0), + fPTot(momentum), + fPx(momentum * TMath::Sin(theta) * TMath::Cos(phi)), + fPy(momentum * TMath::Sin(theta) * TMath::Sin(phi)), + fPz(momentum * TMath::Cos(theta)), + fXref(0), + fYref(0), + fZref(0) { -// Constructor - fIsDetElemId = kTRUE; - fDetElemId = detElemId; - 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); - fPz = momentum * TMath::Cos(theta) ; - fAge = tof; - fXref = 0.; - fYref = 0.; - fZref = 0.; +/// Constructor + fX = x; + fY = y; + fZ = z; } -//----------------------------------------------------------------------------------------------- -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 -// TBR - - fIsDetElemId = kFALSE; - fDetElemId = 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); - fPz = momentum * TMath::Cos(theta) ; - fAge = tof; - fXref = Xref; - fYref = Yref; - fZref = Zref; -} //----------------------------------------------------------------------------------------------- AliMUONHit::AliMUONHit(Int_t shunt, Int_t track, Int_t detElemId, Int_t idpart, - Float_t X, Float_t Y, Float_t Z, Float_t tof, Float_t momentum, + 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, - Bool_t /*isDetElemId*/): - AliHit(shunt, track) + Float_t xref,Float_t yref,Float_t zref) + : AliHit(shunt, track), + fDetElemId(detElemId), + fParticle(idpart), + fTheta(theta), + fPhi(phi), + fTlength(length), + fEloss(destep), + fAge(tof), + fPHfirst(0), + fPHlast(0), + fPTot(momentum), + fPx(momentum * TMath::Sin(theta) * TMath::Cos(phi)), + fPy(momentum * TMath::Sin(theta) * TMath::Sin(phi)), + fPz(momentum * TMath::Cos(theta)), + fXref(xref), + fYref(yref), + fZref(zref) { -// Constructor - fIsDetElemId = kTRUE; - fDetElemId = detElemId; - 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); - fPz = momentum * TMath::Cos(theta) ; - fAge = tof; - fXref = Xref; - fYref = Yref; - fZref = Zref; +/// Constructor + + fX = x; + fY = y; + fZ = z; } //----------------------------------------------------------------------------------------------- -Int_t AliMUONHit::DetElemId()const +AliMUONHit::~AliMUONHit() { -// Return detection element ID - - if (!fIsDetElemId) { - AliWarning("Detection element Id is not defined."); - return 0; - } - // end of TBR - - return fDetElemId; +/// Dectructor } //----------------------------------------------------------------------------------------------- Int_t AliMUONHit::Chamber() const { -// Return chamber ID +/// Return chamber ID + + return AliMpDEManager::GetChamberId(fDetElemId) + 1; +} - if (!fIsDetElemId) - return fDetElemId; - else - return AliMUONGeometryStore::GetModuleId(fDetElemId)+1; +//----------------------------------------------------------------------------- +const char* +AliMUONHit::GetName() const +{ +/// Generate hit name + + return Form("%s-DE%04d",ClassName(),DetElemId()); } +//----------------------------------------------------------------------------------------------- void AliMUONHit::Print(Option_t* opt) const { - // - // Printing hit information - // "full" option for printing all the information about the hit - // +/// Printing hit information +/// "full" option for printing all the information about the hit + TString sopt(opt); sopt.ToUpper();