#include "hrichutilfunc.h" |
HRichUtilFunc
class description - source file - inheritance tree (.pdf)
public:
HRichUtilFunc()
HRichUtilFunc(const HRichUtilFunc&)
~HRichUtilFunc()
static Float_t calcInvMassKine(HGeantKine*, HGeantKine*)
static Float_t calcOpeningAngleKine(HGeantKine*, HGeantKine*)
static Float_t calcOpeningAngleT(Float_t, Float_t, Float_t, Float_t)
static Float_t calcOpeningAngleVectors(HGeomVector&, HGeomVector&)
static void calcParticleAnglesKine(HGeantKine*, Float_t&, Float_t&)
static void calcParticleAnglesT(HGeantKine*, Float_t&, Float_t&)
static TClass* Class()
static void dumpCategory(Cat_t)
static void dumpKickTrack(HKickTrack*)
static void dumpKine(HGeantKine*)
static HGeantKine* findParent(HGeantKine*, HLinearCategory*)
static HCategory* getCategory(Cat_t, Bool_t bWarning = kFALSE)
static Float_t getDeflectionAngle(HHitMatch*)
static TObjArray* getGeantParticleInfo()
static TObjArray* getGeantParticleInfo(TObjArray*)
static HGeantKine* getKineObj(Int_t, HLinearCategory*)
static HParSet* getParamContainer(Char_t*)
static Int_t getParentParID(HGeantKine*, HLinearCategory*)
static Int_t getParentParID(Int_t, HLinearCategory*)
static Int_t getParID(Int_t, HLinearCategory*)
static HGeantKine* getPionDalitzGamma(HGeantKine*, HLinearCategory*)
static HGeantKine* getSecondPionDalitzLepton(HGeantKine*, HLinearCategory*)
static HGeantKine* getSecondPionDecayGamma(HGeantKine*, HLinearCategory*)
virtual TClass* IsA() const
static Bool_t isGamma(HGeantKine*)
static Bool_t isGammaFromPi0(HGeantKine*, HLinearCategory*)
static Bool_t isGoodRing(HRichHitSim*)
static Bool_t isGoodTrack(HHitMatchSim*)
static Int_t isLepOnMDC(HGeantKine*, HMatrixCategory*)
static Int_t isLepOnMirror(HGeantKine*, HMatrixCategory*)
static Int_t isPi0ConvLep(Int_t, HLinearCategory*)
static Int_t isPi0ConvLep(HGeantKine*, HLinearCategory*)
static Int_t isPi0DalitzLep(Int_t, HLinearCategory*, Char_t*)
static Int_t isPi0DalitzLep(HGeantKine*, HLinearCategory*, Char_t*)
static TCanvas* makeMicroCanvas(TObjArray*)
static Float_t openAngleDeg(Float_t, Float_t, Float_t, Float_t)
HRichUtilFunc& operator=(const HRichUtilFunc&)
static void rotateTrackToLab(Int_t, Float_t, Float_t, Float_t&, Float_t&)
static void saveCuts(TFile*, TObjArray*)
static void saveHistos(TFile*, TObjArray*)
virtual void ShowMembers(TMemberInspector& insp, char* parent)
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
HRichUtilFunc
this class is a helper that contains functionality
that can be shared by different reconstructors
HRichUtilFunc()
~HRichUtilFunc(void)
void calcParticleAnglesKine(HGeantKine *kine,Float_t &theta, Float_t &phi)
input kine object with momentum vector
output theta and phi of trajectory
Float_t calcInvMassKine(HGeantKine *kine1,HGeantKine *kine2)
Float_t calcOpeningAngleKine(HGeantKine *kine1,HGeantKine *kine2)
input 2 kine objects
output opening angle of trajectories
Float_t calcOpeningAngleVectors(HGeomVector &v1,HGeomVector &v2)
input two vectors, output opening angle
void calcParticleAnglesT(HGeantKine *kine,Float_t &fpt, Float_t &fpp)
works only correctly for 0 to 90 degrees polar angle
Float_t openAngleDeg(Float_t th1, Float_t ph1, Float_t th2, Float_t ph2)
Returns angle between two directions in DEGREES (input angles in degrees)
Float_t calcOpeningAngleT(Float_t t1,Float_t p1,
Float_t t2,Float_t p2)
input theta and phi of two trajectories
returns opening angle
Float_t eps=1.e-4;
void dumpKickTrack(HKickTrack *track)
void dumpKine(HGeantKine *kine)
HGeantKine* findParent(HGeantKine *kine,HLinearCategory* cat)
Int_t isLepOnMirror(HGeantKine* kine,HMatrixCategory* cat)
this function returns 1 in case that
the kine obj is a lepton that passed the mirror else 0
Int_t isLepOnMDC(HGeantKine* kine,HMatrixCategory* cat)
Int_t isPi0DalitzLep(Int_t trk,HLinearCategory* cat,Char_t *style)
returns 1 if track nb corresponds to a lepton from pi0 Dalitz decay
else returns zero
Int_t isPi0DalitzLep(HGeantKine* kine,HLinearCategory* cat,Char_t *style)
the cuts that need to be applied here depend on the used generator
of the pi0 Dalitz leptons.
in case Pluto++ was used to directly decay pi0 in 2 leps and a gamma
the parent info concerning the pi0 is lost. USE 0 as par part id instead !
in case that UrQMD has generated the pions, GEANT has decayed them
and the parent particle id of the leps can be used to check the origin
returns 1 if track nb corresponds to a lepton from pi0 Dalitz decay
else returns zero
Int_t isPi0ConvLep(Int_t trk ,HLinearCategory* cat)
returns 1 if track nb corresponds to a lepton from gamma conv
else returns zero
Int_t isPi0ConvLep(HGeantKine* kine ,HLinearCategory* cat)
returns 1 if kine obj corresponds to a lepton from gamma conv
gammas came from a pi0
else returns zero
Bool_t isGamma(HGeantKine *kine)
Bool_t isGammaFromPi0(HGeantKine *kine,HLinearCategory* cat)
HGeantKine* getSecondPionDecayGamma(HGeantKine *kine,HLinearCategory* cat)
input first gamma
HGeantKine* getSecondPionDalitzLepton(HGeantKine *kine,HLinearCategory* cat)
HGeantKine* getPionDalitzGamma(HGeantKine *kine,HLinearCategory* cat)
kine is a lepton from a pi0-Dalitz decay
now find gamma which was 3rd particle in decay
HGeantKine* getKineObj(Int_t nTrkNb,HLinearCategory* cat)
Int_t getParID(Int_t nTrkNb,HLinearCategory* cat)
Int_t getParentParID(Int_t nTrkNb,HLinearCategory* cat)
Int_t getParentParID(HGeantKine* kine,HLinearCategory* cat)
void saveHistos(TFile* pFileOut, TObjArray* pHistArray)
use this function to save histos every n events
assumes that you have opened a file and that your
histograms are stored in a TObjArray
void saveCuts(TFile* pFileOut, TObjArray* pArray)
TCanvas* makeMicroCanvas(TObjArray* pHistArray)
void dumpCategory(Cat_t iCategory)
void rotateTrackToLab(Int_t s,Float_t tin,Float_t pin,Float_t &tout,Float_t &pout)
this should be done using the HSpecGeomPar
this should be done when alignment for real data
is used !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Float_t getDeflectionAngle(HHitMatch* hi)
HCategory* getCategory(Cat_t cat, Bool_t bWarning)
Find HCategory if gHades->getCurrentEvent() is accessible
HParSet* getParamContainer(Char_t * contname)
TObjArray* getGeantParticleInfo()
TObjArray* getGeantParticleInfo(TObjArray* arr)
Inline Functions
Bool_t isGoodRing(HRichHitSim*)
Bool_t isGoodTrack(HHitMatchSim*)
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
HRichUtilFunc HRichUtilFunc(const HRichUtilFunc&)
HRichUtilFunc& operator=(const HRichUtilFunc&)
Last update: Fri Jan 26 12:30:26 2007
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.