X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=FMD%2FAliFMDHit.cxx;h=76ec41a85ef1358556e49127870acab2435c5303;hb=46c6c63143ebab83308f758b67883d2f8855885c;hp=09ab2b139c4982a2263aeed6f898d7c9b00ef3c2;hpb=1a1fdef7df14ded810885ec1c2da3dc3d7d1100c;p=u%2Fmrichter%2FAliRoot.git diff --git a/FMD/AliFMDHit.cxx b/FMD/AliFMDHit.cxx index 09ab2b139c4..76ec41a85ef 100644 --- a/FMD/AliFMDHit.cxx +++ b/FMD/AliFMDHit.cxx @@ -12,18 +12,34 @@ * about the suitability of this software for any purpose. It is * * provided "as is" without express or implied warranty. * **************************************************************************/ - /* $Id$ */ - +/** @file AliFMDHit.cxx + @author Christian Holm Christensen + @date Mon Mar 27 12:41:58 2006 + @brief Hit in the FMD + @ingroup FMD_sim +*/ //____________________________________________________________________ // // Hits in the FMD +// Contains information on: +// Position of hit +// Momentum of track +// PID of track +// Energy loss of track +// Track # +// Track path length +// Track stopping status. +// Latest changes by Christian Holm Christensen // -// Latest changes by Christian Holm Christensen -// -#include "AliFMDHit.h" // ALIFMDHIT_H -#include "AliLog.h" // ALILOG_H + #include "Riostream.h" // ROOT_Riostream +#include +#include +#include + +#include "AliFMDHit.h" // ALIFMDHIT_H +// #include "AliFMDDebug.h" // ALIFMDDEBUG_H ALILOG_H //____________________________________________________________________ ClassImp(AliFMDHit) @@ -43,8 +59,11 @@ AliFMDHit::AliFMDHit() fPz(0), fPdg(0), fEdep(0), - fTime(0) + fTime(0), + fLength(0), + fStop(0) { + // Default CTOR fX = fY = fZ = 0; } @@ -64,7 +83,9 @@ AliFMDHit::AliFMDHit(Int_t shunt, Float_t pz, Float_t edep, Int_t pdg, - Float_t t) + Float_t t, + Float_t l, + Bool_t stop) : AliHit(shunt, track), fDetector(detector), fRing(ring), @@ -75,7 +96,9 @@ AliFMDHit::AliFMDHit(Int_t shunt, fPz(pz), fPdg(pdg), fEdep(edep), - fTime(t) + fTime(t), + fLength(l), + fStop(stop) { // Normal FMD hit ctor // @@ -102,9 +125,62 @@ AliFMDHit::AliFMDHit(Int_t shunt, fZ = z; } +//____________________________________________________________________ +const char* +AliFMDHit::GetName() const +{ + // Get the name + static TString n; + n = Form("FMD%d%c[%2d,%3d]", fDetector,fRing,fSector,fStrip); + return n.Data(); +} + +//____________________________________________________________________ +const char* +AliFMDHit::GetTitle() const +{ + // Get the title + static TString t; + TDatabasePDG* pdgDB = TDatabasePDG::Instance(); + TParticlePDG* pdg = pdgDB->GetParticle(fPdg); + t = Form("%s (%d): %f MeV / %f cm", (pdg ? pdg->GetName() : "?"), + fTrack, fEdep, fLength); + return t.Data(); +} + +//____________________________________________________________________ +Float_t +AliFMDHit::P() const +{ + // Get the momentum of the particle of the particle that made this + // hit. + return TMath::Sqrt(fPx * fPx + fPy * fPy + fPz * fPz); +} + +//____________________________________________________________________ +Float_t +AliFMDHit::M() const +{ + // Get the mass of the particle that made this hit. + TDatabasePDG* pdgDB = TDatabasePDG::Instance(); + TParticlePDG* pdg = pdgDB->GetParticle(fPdg); + return (pdg ? pdg->Mass() : -1); +} + +//____________________________________________________________________ +Float_t +AliFMDHit::Q() const +{ + // Get the charge of the particle that made this hit. + TDatabasePDG* pdgDB = TDatabasePDG::Instance(); + TParticlePDG* pdg = pdgDB->GetParticle(fPdg); + return (pdg ? pdg->Charge() : 0); +} + + //____________________________________________________________________ void -AliFMDHit::Print(Option_t* /* option */) const +AliFMDHit::Print(Option_t* option) const { // Print Hit to standard out cout << "AliFMDHit: FMD" @@ -112,6 +188,16 @@ AliFMDHit::Print(Option_t* /* option */) const << setw(3) << fSector << "," << setw(3) << fStrip << "] = " << fEdep << endl; + TString opt(option); + if (opt.Contains("D", TString::kIgnoreCase)) { + TDatabasePDG* pdgDB = TDatabasePDG::Instance(); + TParticlePDG* pdg = pdgDB->GetParticle(fPdg); + cout << "\tPDG:\t" << fPdg << " " << (pdg ? pdg->GetName() : "?") << "\n" + << "\tP:\t(" << fPx << "," << fPy << "," << fPz << ") "<