#include "hrichutilfunc.h"

HRichUtilFunc


class description - source file - inheritance tree (.pdf)

class HRichUtilFunc : public TObject

Inheritance Chart:
TObject
<-
HRichUtilFunc

    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)

Data Members




Class Description

 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.