Distance and Recombination Schemes Last updated: Sun, 11 May 2003 18:28:21 GMT. ------------------------------------------------------------------------ Home User Guide Design Download Examples CLHEP Fortran KtClus KtJet Physics paper Optimisation Dist and Recom schemes KtJet defines three Distance schemes and five Recombination schemes. However the user can define their own scheme and use this instead. The Distance scheme has to be a KtJet::KtDistance object (i.e. inherit from KtJet::KtDistance ) and the recombination scheme has to be a KtJet::KtRecom The new schemes can be passed to KtEvent as pointers to the base class, so for example: //** Construct a user defined distance scheme *// KtJet::KtDistance* distScheme = *new* MyNewDistanceScheme(); //** Construct a user defined recombination scheme *// KtJet::KtRecom* recomScheme = *new* MyNewRecombinationScheme(); //** A vector of KtLorentzVectors *// std::vector avec; //** Construct a KtEvent in inclusive mode for PP events using deltaR distance scheme and user defined recombination scheme *// KtJet::KtEvent ev(avec,4,2,recomScheme,1.0); //** Construct a KtEvent in inclusive mode for eP events using user defined distance scheme and E recombination scheme *// KtJet::KtEvent ev(avec,2,distScheme,1,1.0); //** Construct a KtEvent in exclusive mode for ee events using user defined distance and recombination scheme *// KtJet::KtEvent ev(avec,1,distScheme,recomScheme); KtDistance Scheme KtJet::KtDistance has a simple interface that has to be honoured when users define their own schemes. KtFloat *operator*()(*const* KtLorentzVector &) *const*; This calculates the distance between the input KtLorentzVector and the beam. KtFloat *operator*()(*const* KtLorentzVector &, *const* KtLorentzVector &) *const*; This calculates the distance between the two input KtLorentzVectors. string name() *const*; This returns the name of the distance scheme. KtJet defines three KtDistance schemes of it's own. KtDistanceAngle , KtDistanceDeltaR and KtDistanceQCD , KtRecom Scheme KtJet::KtRecom also has a simple three method interface that has to be honoured when users define their own schemes. HepLorentzVector *operator*()(*const* HepLorentzVector &, *const* HepLorentzVector &) *const*; This calculates the merged four-momentum of the two input HepLorentzVectors. KtLorentzVector *operator*()(*const* KtLorentzVector &) *const*; This modifies the input HepLorentzVector so that it meets the criteria of the recombination scheme. For example, in the E scheme it just returns an identical copy of the input HepLorentzVector and in the Pt scheme this function returns a copy of the input HepLorentzVector with its energy set equal to its magnitude (i.e. massless). std::string name() *const*; This returns the name of the distance scheme. KtJet defines five KtRecom schemes of it's own. KtRecomE , KtRecomPt , KtRecomPt2 , KtRecomEt and KtRecomEt2 ,