CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

PrunedRecombiner Class Reference

#include <PrunedRecombPlugin.h>

List of all members.

Public Member Functions

virtual std::string description () const
 PrunedRecombiner (const double &zcut=0.1, const double &Rcut=0.5, RecombinationScheme recomb_scheme=E_scheme)
virtual void recombine (const PseudoJet &pa, const PseudoJet &pb, PseudoJet &pab) const
 recombine pa and pb and put result into pab

Private Member Functions

int _pruning_test (const PseudoJet &pa, const PseudoJet &pb) const
 tests whether pa and pb should be recombined or vetoed

Private Attributes

double _Rcut
double _zcut

Detailed Description

Definition at line 139 of file PrunedRecombPlugin.h.


Constructor & Destructor Documentation

PrunedRecombiner::PrunedRecombiner ( const double &  zcut = 0.1,
const double &  Rcut = 0.5,
RecombinationScheme  recomb_scheme = E_scheme 
) [inline]

Definition at line 141 of file PrunedRecombPlugin.h.

                                                                       :
           JetDefinition::DefaultRecombiner(recomb_scheme), _zcut(zcut), _Rcut(Rcut) 
                {}

Member Function Documentation

int PrunedRecombiner::_pruning_test ( const PseudoJet &  pa,
const PseudoJet &  pb 
) const [private]

tests whether pa and pb should be recombined or vetoed

Definition at line 62 of file PrunedRecombiner.cc.

References _Rcut, _zcut, recombine(), and tmp.

Referenced by recombine().

{
        // create the new jet by recombining the first two, using the normal
        //   recombination scheme
        PseudoJet newjet;       
        JetDefinition::DefaultRecombiner::recombine(pa, pb, newjet);

        double minpT = pa.perp();
        int hard = 2;  // harder pj is pj2
        double tmp = pb.perp();
        if (tmp < minpT) {
                minpT = tmp;
                hard = 1;  // harder pj is pj1
        }
        
        if ( pa.squared_distance(pb) < _Rcut*_Rcut 
              || minpT > _zcut * newjet.perp() )
                return 0;
        else
                return hard;
}
FASTJET_BEGIN_NAMESPACE std::string PrunedRecombiner::description ( ) const [virtual]

Definition at line 20 of file PrunedRecombiner.cc.

References _Rcut, _zcut, and asciidump::s.

{
        std::ostringstream s;
        s << "Pruned " << JetDefinition::DefaultRecombiner::description()
          << ", with zcut = " << _zcut << " and Rcut = " << _Rcut;
        return s.str();
}       
void PrunedRecombiner::recombine ( const PseudoJet &  pa,
const PseudoJet &  pb,
PseudoJet &  pab 
) const [virtual]

recombine pa and pb and put result into pab

Recombine pa and pb and put result into pab. If pruning test is true (the recombination is vetoed) the harder parent is merged with a 0 PseudoJet. (Check that this is an identity in all recombination schemes!)

Definition at line 32 of file PrunedRecombiner.cc.

References _pruning_test().

Referenced by _pruning_test().

{
        //std::cout << "In PR::recombine()\n";
        PseudoJet p0(0.0, 0.0, 0.0, 0.0);
        // test if recombination should be pruned
        switch ( _pruning_test(pa, pb) ) {
                case 1:
                        // MAKE RECORD OF PB BEING PRUNED
                        JetDefinition::DefaultRecombiner::recombine(pa, p0, pab);
                        break;
                case 2:
                        // MAKE RECORD OF PA BEING PRUNED
                        JetDefinition::DefaultRecombiner::recombine(pb, p0, pab);
                        break;
                default: 
                        // if no pruning, do regular combination
                        JetDefinition::DefaultRecombiner::recombine(pa, pb, pab);
        }
}

Member Data Documentation

double PrunedRecombiner::_Rcut [private]

Definition at line 157 of file PrunedRecombPlugin.h.

Referenced by _pruning_test(), and description().

double PrunedRecombiner::_zcut [private]

Definition at line 156 of file PrunedRecombPlugin.h.

Referenced by _pruning_test(), and description().