#ifndef HMDCCLUSFITSIM_H
#define HMDCCLUSFITSIM_H
#include "hmdcclusfit.h"
#include <math.h>
class HMdcClusFitSim : public HMdcClusFit {
protected:
Short_t nTracks;
Short_t nTracksClus;
Int_t geantTrack;
Short_t nTrWires;
Short_t nTrWiresClus;
Bool_t primary;
Float_t x1geant;
Float_t y1geant;
Float_t z1geant;
Float_t x2geant;
Float_t y2geant;
Float_t z2geant;
Bool_t direction;
Int_t particleID;
Float_t momentum;
public:
HMdcClusFitSim();
~HMdcClusFitSim(){}
void setNumTracks(Short_t n) {nTracks=n;}
void setNumTracksClus(Short_t n) {nTracksClus=n;}
void setGeantTrackNum(Int_t i) {geantTrack=i;}
void setNumWiresTrack(Short_t n) {nTrWires=n;}
void setNumWiresTrClus(Short_t n) {nTrWiresClus=n;}
void setX1Geant(Float_t v) {x1geant=v;}
void setY1Geant(Float_t v) {y1geant=v;}
void setZ1Geant(Float_t v) {z1geant=v;}
void setX2Geant(Float_t v) {x2geant=v;}
void setY2Geant(Float_t v) {y2geant=v;}
void setZ2Geant(Float_t v) {z2geant=v;}
void setPrimaryFlag(Bool_t fl) {primary=fl;}
void setFakeTrack(Bool_t dir=kTRUE);
void setXYZ1Geant(Float_t x,Float_t y,Float_t z) {
x1geant=x; y1geant=y; z1geant=z;}
void setXYZ2Geant(Float_t x,Float_t y,Float_t z) {
x2geant=x; y2geant=y; z2geant=z;}
void setParticleID(Int_t id) {particleID=id;}
void setMomentum(Float_t mom) {momentum=mom;}
Short_t getNumTracks(void) const {return nTracks;}
Short_t getNumTracksClus(void) const {return nTracksClus;}
Int_t getGeantTrackNum(void) const {return geantTrack;}
Short_t getNumWiresTrack(void) const {return nTrWires;}
Short_t getNumWiresTrClus(void) const {return nTrWiresClus;}
Float_t getX1Geant(void) const {return x1geant;}
Float_t getY1Geant(void) const {return y1geant;}
Float_t getZ1Geant(void) const {return z1geant;}
Float_t getX2Geant(void) const {return x2geant;}
Float_t getY2Geant(void) const {return y2geant;}
Float_t getZ2Geant(void) const {return z2geant;}
Bool_t isPrimary(void) const {return primary;}
Bool_t isTrackDirGood(void) const {return direction;}
Float_t getGeantPhi(void) const {return
atan2(y2geant-y1geant,x2geant-x1geant);}
Float_t getGeantTheta(void) const {return atan2(sqrt((x2geant-x1geant)*
(x2geant-x1geant)+(y2geant-y1geant)*(y2geant-y1geant)),z2geant-z1geant);}
void getGeantRZmin(Float_t &zm, Float_t &r0, Float_t xBm=0., Float_t yBm=0.)
const {calcRZtoLineXY(zm,r0,x1geant,y1geant,z1geant,
x2geant,y2geant,z2geant,xBm,yBm);}
Int_t getParticleID(void) const {return particleID;}
Float_t getMomentum(void) const {return momentum;}
Float_t dX1(void) const {return x1-x1geant;}
Float_t dY1(void) const {return y1-y1geant;}
Float_t dZ1(void) const {return z1-z1geant;}
Float_t dX2(void) const {return x2-x2geant;}
Float_t dY2(void) const {return y2-y2geant;}
Float_t dZ2(void) const {return z2-z2geant;}
Bool_t isFake(void) const {return nTrWiresClus < 4;}
Float_t getPurity(void) const {return numOfWires ?
Float_t(nTrWires)/Float_t(numOfWires) : 0.;}
Float_t getEfficiency(void) const {return nTrWiresClus ?
Float_t(nTrWires)/Float_t(nTrWiresClus) : 0.;}
virtual void print(void) const;
void printSimVsRec(void) const;
virtual Bool_t isGeant() const {return kTRUE;}
ClassDef(HMdcClusFitSim,3)
};
#endif
Last change: Sat May 22 13:01:03 2010
Last generated: 2010-05-22 13:01
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.