#include <CDFMidPointPlugin.hh>
Inheritance diagram for fastjet::CDFMidPointPlugin:


Public Types | |
| enum | SplitMergeScale { SM_pt, SM_Et, SM_mt } |
| the choice of scale to be used in the split-merge step More... | |
Public Member Functions | |
| CDFMidPointPlugin (double seed_threshold, double cone_radius, double cone_area_fraction, int max_pair_size, int max_iterations, double overlap_threshold, SplitMergeScale sm_scale=SM_pt) | |
| A CDFMidPointPlugin constructor that looks like the one provided by CDF. | |
| CDFMidPointPlugin (double cone_radius, double overlap_threshold=0.5, double seed_threshold=1.0, double cone_area_fraction=1.0) | |
| a compact constructor | |
| double | seed_threshold () const |
| double | cone_radius () const |
| double | cone_area_fraction () const |
| int | max_pair_size () const |
| int | max_iterations () const |
| double | overlap_threshold () const |
| virtual std::string | description () const |
| return a textual description of the jet-definition implemented in this plugin | |
| virtual void | run_clustering (ClusterSequence &) const |
given a ClusterSequence that has been filled up with initial particles, the following function should fill up the rest of the ClusterSequence, using the following member functions of ClusterSequence:
| |
Private Attributes | |
| double | _seed_threshold |
| double | _cone_radius |
| double | _cone_area_fraction |
| int | _max_pair_size |
| int | _max_iterations |
| double | _overlap_threshold |
| SplitMergeScale | _sm_scale |
The CDF code has been taken from Joey Huston's webpage http://www.pa.msu.edu/~huston/Les_Houches_2005/Les_Houches_SM.html
Note that the CDF midpoint code contains options that go beyond those described in the Tevatron run-II document (hep-ex/0005012), notably search-cones, as described in hep-ph/0111434, and midpoints bewteen multiplets of stable cones.
Additionally, the version of the CDF midpoint code distributed here has been modified by the FastJet authors, so as to allow one to choose the scale used in the split-merge step.
Definition at line 60 of file CDFMidPointPlugin.hh.
|
|
the choice of scale to be used in the split-merge step
Definition at line 64 of file CDFMidPointPlugin.hh.
|
|
||||||||||||||||||||||||||||||||
|
A CDFMidPointPlugin constructor that looks like the one provided by CDF. Its arguments should have the following meaning:
. SM_pt: pt (default -- source of small IR safety issue in purely hadronic events) . SM_Et: Et (not boost invariant, reduces to mt at zero rapidity and to pt and infinite rapidity) . SM_mt: transverse mass = sqrt(m^2+pt^2) Definition at line 105 of file CDFMidPointPlugin.hh. 00112 : 00113 _seed_threshold (seed_threshold ), 00114 _cone_radius (cone_radius ), 00115 _cone_area_fraction (cone_area_fraction ), 00116 _max_pair_size (max_pair_size ), 00117 _max_iterations (max_iterations ), 00118 _overlap_threshold (overlap_threshold ), 00119 _sm_scale (sm_scale) {}
|
|
||||||||||||||||||||
|
a compact constructor
Definition at line 122 of file CDFMidPointPlugin.hh. 00125 : 00126 _seed_threshold (seed_threshold ), 00127 _cone_radius (cone_radius ), 00128 _cone_area_fraction (cone_area_fraction ), 00129 _max_pair_size (2 ), 00130 _max_iterations (100 ), 00131 _overlap_threshold (overlap_threshold ), 00132 _sm_scale (SM_pt) {}
|
|
|
Definition at line 138 of file CDFMidPointPlugin.hh. Referenced by description(). 00138 {return _cone_area_fraction ;}
|
|
|
Definition at line 137 of file CDFMidPointPlugin.hh. Referenced by description(). 00137 {return _cone_radius ;}
|
|
|
return a textual description of the jet-definition implemented in this plugin
Implements fastjet::JetDefinition::Plugin. Definition at line 45 of file CDFMidPointPlugin.cc. References _sm_scale, cone_area_fraction(), cone_radius(), max_iterations(), max_pair_size(), overlap_threshold(), seed_threshold(), SM_Et, SM_mt, and SM_pt. 00045 {
00046 ostringstream desc;
00047
00048 string sm_scale_string = "split-merge uses ";
00049 switch(_sm_scale) {
00050 case SM_pt:
00051 sm_scale_string += "pt";
00052 break;
00053 case SM_Et:
00054 sm_scale_string += "Et";
00055 break;
00056 case SM_mt:
00057 sm_scale_string += "mt";
00058 break;
00059 default:
00060 ostringstream err;
00061 err << "Unrecognized split-merge scale choice = " << _sm_scale;
00062 throw Error(err.str());
00063 }
00064
00065 desc << "CDF MidPoint jet finder with "
00066 << "seed_threshold = " << seed_threshold () << ", "
00067 << "cone_radius = " << cone_radius () << ", "
00068 << "cone_area_fraction = " << cone_area_fraction () << ", "
00069 << "max_pair_size = " << max_pair_size () << ", "
00070 << "max_iterations = " << max_iterations () << ", "
00071 << "overlap_threshold = " << overlap_threshold () << ", "
00072 << sm_scale_string ;
00073
00074 return desc.str();
00075 }
|
|
|
Definition at line 140 of file CDFMidPointPlugin.hh. Referenced by description(). 00140 {return _max_iterations ;}
|
|
|
Definition at line 139 of file CDFMidPointPlugin.hh. Referenced by description(). 00139 {return _max_pair_size ;}
|
|
|
Definition at line 141 of file CDFMidPointPlugin.hh. Referenced by description(). 00141 {return _overlap_threshold ;}
|
|
|
given a ClusterSequence that has been filled up with initial particles, the following function should fill up the rest of the ClusterSequence, using the following member functions of ClusterSequence:
..)
Implements fastjet::JetDefinition::Plugin. Definition at line 78 of file CDFMidPointPlugin.cc. References _cone_area_fraction, _cone_radius, _max_iterations, _max_pair_size, _overlap_threshold, _seed_threshold, _sm_scale, fastjet::ClusterSequence::jets(), fastjet::ClusterSequence::plugin_record_iB_recombination(), and fastjet::ClusterSequence::plugin_record_ij_recombination(). 00078 {
00079
00080 // create the physics towers needed by the CDF code
00081 vector<PhysicsTower> towers;
00082 towers.reserve(clust_seq.jets().size());
00083 for (unsigned i = 0; i < clust_seq.jets().size(); i++) {
00084 LorentzVector fourvect(clust_seq.jets()[i].px(),
00085 clust_seq.jets()[i].py(),
00086 clust_seq.jets()[i].pz(),
00087 clust_seq.jets()[i].E());
00088 PhysicsTower tower(fourvect);
00089 // misuse one of the indices for tracking, since the MidPoint
00090 // implementation doesn't seem to make use of these indices
00091 tower.calTower.iEta = i;
00092 towers.push_back(tower);
00093 }
00094
00095 // prepare the CDF algorithm
00096 MidPointAlgorithm m(_seed_threshold,_cone_radius,_cone_area_fraction,
00097 _max_pair_size,_max_iterations,_overlap_threshold,
00098 MidPointAlgorithm::SplitMergeScale(_sm_scale));
00099
00100 // run the CDF algorithm
00101 std::vector<Cluster> jets;
00102 m.run(towers,jets);
00103
00104
00105 // now transfer the jets back into our own structure -- we will
00106 // mimic the cone code with a sequential recombination sequence in
00107 // which the jets are built up by adding one particle at a time
00108 for(vector<Cluster>::const_iterator jetIter = jets.begin();
00109 jetIter != jets.end(); jetIter++) {
00110 const vector<PhysicsTower> & tower_list = jetIter->towerList;
00111 int jet_k = tower_list[0].calTower.iEta;
00112
00113 int ntow = int(jetIter->towerList.size());
00114 for (int itow = 1; itow < ntow; itow++) {
00115 int jet_i = jet_k;
00116 // retrieve our misappropriated index for the jet
00117 int jet_j = tower_list[itow].calTower.iEta;
00118 // do a fake recombination step with dij=0
00119 double dij = 0.0;
00120 clust_seq.plugin_record_ij_recombination(jet_i, jet_j, dij, jet_k);
00121 }
00122
00123 // NB: put a sensible looking d_iB just to be nice...
00124 double d_iB = clust_seq.jets()[jet_k].perp2();
00125 clust_seq.plugin_record_iB_recombination(jet_k, d_iB);
00126 }
00127
00128
00129 // following code is for testing only
00130 //cout << endl;
00131 //for(vector<Cluster>::const_iterator jetIter = jets.begin();
00132 // jetIter != jets.end(); jetIter++) {
00133 // cout << jetIter->fourVector.pt() << " " << jetIter->fourVector.y() << endl;
00134 //}
00135 //cout << "-----------------------------------------------------\n";
00136 //vector<PseudoJet> ourjets(clust_seq.inclusive_jets());
00137 //for (vector<PseudoJet>::const_reverse_iterator ourjet = ourjets.rbegin();
00138 // ourjet != ourjets.rend(); ourjet++) {
00139 // cout << ourjet->perp() << " " << ourjet->rap() << endl;
00140 //}
00141 //cout << endl;
00142 }
|
|
|
Definition at line 136 of file CDFMidPointPlugin.hh. Referenced by description(). 00136 {return _seed_threshold ;}
|
|
|
Definition at line 152 of file CDFMidPointPlugin.hh. Referenced by run_clustering(). |
|
|
Definition at line 151 of file CDFMidPointPlugin.hh. Referenced by run_clustering(). |
|
|
Definition at line 154 of file CDFMidPointPlugin.hh. Referenced by run_clustering(). |
|
|
Definition at line 153 of file CDFMidPointPlugin.hh. Referenced by run_clustering(). |
|
|
Definition at line 155 of file CDFMidPointPlugin.hh. Referenced by run_clustering(). |
|
|
Definition at line 150 of file CDFMidPointPlugin.hh. Referenced by run_clustering(). |
|
|
Definition at line 156 of file CDFMidPointPlugin.hh. Referenced by description(), and run_clustering(). |
1.4.2