#include "hgeantmdc.h"
//*-- Author : Romain Holzmann, GSI
//*-- Modified : 1/12/2000 by Romain Holzmann
//*-- Copyright : GSI, Darmstadt
//
//****************************************************************************
// HGeantMdc
//
// GEANT MDC hit data
//
// This class stores the GEANT hits in the MDC detector, per sector, module
// and layer, with the central cathode plane added as 7th layer.
//
//****************************************************************************
//
// Inline functions:
//
// inline void setTrack(Int_t track) set GEANT track number
// inline Int_t getTrack() return GEANT track number
// inline Char_t getSector(void) return sector number
// inline Char_t getModule(void) return module number
// inline Char_t getLayer(void) return layer number
//
ClassImp(HGeantMdc)
HGeantMdc::HGeantMdc(void) {
// Default constructor.
trackNumber = 0;
xHit = 0.0;
yHit = 0.0;
thetaHit = 0.0;
phiHit = 0.0;
tofHit = 0.0;
sector = -1;
module = -1;
layer = -1;
}
HGeantMdc::HGeantMdc(HGeantMdc &aMdc) {
// Copy constructor.
trackNumber = aMdc.trackNumber;
xHit = aMdc.xHit;
yHit = aMdc.yHit;
thetaHit = aMdc.thetaHit;
phiHit = aMdc.phiHit;
tofHit = aMdc.tofHit;
sector = aMdc.sector;
module = aMdc.module;
layer = aMdc.layer;
}
HGeantMdc::~HGeantMdc(void) {
// Destructor.
}
void HGeantMdc::setHit(Float_t ax, Float_t ay, Float_t atof, Float_t ptof) {
// Fill in basic hit data:
// - x,y coordinates in module frame (in mm)
// - time of flight from primary vertex to module (in ns)
// - momentum of particle when hitting the module (in MeV/c)
xHit = ax;
yHit = ay;
tofHit = atof;
momHit = ptof;
}
void HGeantMdc::setIncidence(Float_t ath, Float_t aph) {
// Fill in angles of incidence on module (polar and azimuthal)
// in module coordinate system (in degrees).
thetaHit = ath;
phiHit = aph;
}
void HGeantMdc::setAddress(Char_t s, Char_t m, Char_t l) {
// Fill in hit location (sector, module, layer), all counting from 0.
sector = s;
module = m;
layer = l;
}
void HGeantMdc::getHit(Float_t &ax, Float_t &ay, Float_t &atof, Float_t &ptof) {
// Retrieve basic hit data (x,y,tof,momentum).
ax = xHit;
ay = yHit;
atof = tofHit;
ptof = momHit;
}
void HGeantMdc::getIncidence(Float_t &ath, Float_t &aph) {
// Retrieve angles of incidence (theta, phi).
ath = thetaHit;
aph = phiHit;
}
Int_t HGeantMdc::getLocationIndex(Int_t i) {
// Retrieve hit location (sector, module, layer).
switch (i) {
case 0 : return sector;
case 1 : return module;
case 2 : return layer;
}
return -1;
}
void HGeantMdc::Streamer(TBuffer &R__b) {
// Stream an object of class HGeantMdc.
if (R__b.IsReading()) {
Version_t R__v = R__b.ReadVersion();
HLinkedDataObject::Streamer(R__b);
R__b >> trackNumber;
R__b >> xHit;
R__b >> yHit;
R__b >> thetaHit;
R__b >> phiHit;
R__b >> tofHit;
if (R__v <3) momHit=0.;
else R__b >> momHit;
R__b >> sector;
R__b >> module;
R__b >> layer;
} else {
R__b.WriteVersion(HGeantMdc::IsA());
HLinkedDataObject::Streamer(R__b);
R__b << trackNumber;
R__b << xHit;
R__b << yHit;
R__b << thetaHit;
R__b << phiHit;
R__b << tofHit;
R__b << momHit;
R__b << sector;
R__b << module;
R__b << layer;
}
}
ROOT page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.