1 /**************************************************************************
2 * Copyright(c) 2004, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
16 /** @file AliFMDHit.cxx
17 @author Christian Holm Christensen <cholm@nbi.dk>
18 @date Mon Mar 27 12:41:58 2006
22 //____________________________________________________________________
25 // Contains information on:
29 // Energy loss of track
32 // Track stopping status.
33 // Latest changes by Christian Holm Christensen
36 #include "Riostream.h" // ROOT_Riostream
37 #include <TDatabasePDG.h>
41 #include "AliFMDHit.h" // ALIFMDHIT_H
42 // #include "AliFMDDebug.h" // ALIFMDDEBUG_H ALILOG_H
44 //____________________________________________________________________
47 ; // This is here to keep Emacs for indenting the next line
51 //____________________________________________________________________
52 AliFMDHit::AliFMDHit()
71 //____________________________________________________________________
72 AliFMDHit::AliFMDHit(Int_t shunt,
89 : AliHit(shunt, track),
103 // Normal FMD hit ctor
109 // detector Detector # (1, 2, or 3)
110 // ring Ring ID ('I' or 'O')
111 // sector Sector # (For inner/outer rings: 0-19/0-39)
112 // strip Strip # (For inner/outer rings: 0-511/0-255)
113 // x Track's X-coordinate at hit
114 // y Track's Y-coordinate at hit
115 // z Track's Z-coordinate at hit
116 // px X-component of track's momentum
117 // py Y-component of track's momentum
118 // pz Z-component of track's momentum
119 // edep Energy deposited by track
120 // pdg Track's particle Id #
121 // t Time when the track hit
128 //____________________________________________________________________
130 AliFMDHit::GetName() const
134 n = Form("FMD%d%c[%2d,%3d]", fDetector,fRing,fSector,fStrip);
138 //____________________________________________________________________
140 AliFMDHit::GetTitle() const
144 TDatabasePDG* pdgDB = TDatabasePDG::Instance();
145 TParticlePDG* pdg = pdgDB->GetParticle(fPdg);
146 t = Form("%s (%d): %f MeV / %f cm", (pdg ? pdg->GetName() : "?"),
147 fTrack, fEdep, fLength);
151 //____________________________________________________________________
155 // Get the momentum of the particle of the particle that made this
157 return TMath::Sqrt(fPx * fPx + fPy * fPy + fPz * fPz);
160 //____________________________________________________________________
164 // Get the mass of the particle that made this hit.
165 TDatabasePDG* pdgDB = TDatabasePDG::Instance();
166 TParticlePDG* pdg = pdgDB->GetParticle(fPdg);
167 return (pdg ? pdg->Mass() : -1);
170 //____________________________________________________________________
174 // Get the charge of the particle that made this hit.
175 TDatabasePDG* pdgDB = TDatabasePDG::Instance();
176 TParticlePDG* pdg = pdgDB->GetParticle(fPdg);
177 return (pdg ? pdg->Charge() : 0);
181 //____________________________________________________________________
183 AliFMDHit::Print(Option_t* option) const
185 // Print Hit to standard out
186 cout << "AliFMDHit: FMD"
187 << fDetector << fRing << "["
188 << setw(3) << fSector << ","
189 << setw(3) << fStrip << "] = "
192 if (opt.Contains("D", TString::kIgnoreCase)) {
193 TDatabasePDG* pdgDB = TDatabasePDG::Instance();
194 TParticlePDG* pdg = pdgDB->GetParticle(fPdg);
195 cout << "\tPDG:\t" << fPdg << " " << (pdg ? pdg->GetName() : "?") << "\n"
196 << "\tP:\t(" << fPx << "," << fPy << "," << fPz << ") "<<P() << "\n"
197 << "\tX:\t" << fX << "," << fY << "," << fZ << "\n"
198 << "\tTrack #:\t" << fTrack << "\tLength:\t"
199 << fLength << "cm\t" << (IsStop() ? "stopped" : "") << std::endl;
203 //____________________________________________________________________