#include <JetConeFinderTool.hh>
Public Types | |
| typedef Jet::jet_list_t | jetcollection_t |
Public Member Functions | |
| JetConeFinderTool () | |
| virtual | ~JetConeFinderTool () |
| virtual int | execute (jetcollection_t &theJets) |
| void | reconstruct () |
| Jet * | calc_cone (double, double) |
Public Attributes | |
| std::string | m_protoJetContainerLoc |
| std::string | m_jetContainerLoc |
| double | m_coneR |
| double | m_ptcut |
| double | m_eps |
| double | m_seedPt |
| double | m_etaMax |
| jetcollection_t * | m_pjetV |
| jetcollection_t * | m_jetOV |
| int | m_cone_in_tower |
| std::vector< double > * | m_veta |
| std::vector< double > * | m_vphi |
| int | m_ctr |
| int | m_dctr |
Definition at line 50 of file JetConeFinderTool.hh.
Definition at line 53 of file JetConeFinderTool.hh.
| fastjet::atlas::JetConeFinderTool::JetConeFinderTool | ( | ) |
| fastjet::atlas::JetConeFinderTool::~JetConeFinderTool | ( | ) | [virtual] |
| Jet * fastjet::atlas::JetConeFinderTool::calc_cone | ( | double | eta, | |
| double | phi | |||
| ) |
Definition at line 181 of file JetConeFinderTool.cc.
References fastjet::atlas::Jet::addJet(), fastjet::atlas::JetDistances::deltaR(), m_coneR, m_ctr, and m_pjetV.
Referenced by reconstruct().
00182 { 00183 // Create a new Jet 00184 Jet* j = new Jet(); 00185 m_ctr +=1; 00186 00187 // Add all ProtoJet within m_coneR to this Jet 00188 jetcollection_t::iterator itr = m_pjetV->begin(); 00189 jetcollection_t::iterator itrE = m_pjetV->end(); 00190 00191 for ( ; itr!=itrE; ++itr ) { 00192 double dR = JetDistances::deltaR(eta,phi,(*itr)->eta(),(*itr)->phi()); 00193 if ( dR < m_coneR ) { 00194 j->addJet( (*itr) ); 00195 } 00196 } 00197 00198 return j; 00199 }
| int fastjet::atlas::JetConeFinderTool::execute | ( | jetcollection_t & | theJets | ) | [virtual] |
Definition at line 48 of file JetConeFinderTool.cc.
References fastjet::atlas::clear_list(), m_ctr, m_dctr, m_jetOV, m_pjetV, and reconstruct().
Referenced by fastjet::ATLASConePlugin::run_clustering().
00049 { 00050 sort_jet_list<JetSorter_Et>(theJets); 00051 00052 m_pjetV = &theJets; 00053 00054 if(theJets.size()==0) return 0; 00055 00056 // Initiale ctr/dctr counter for object counting. 00057 m_ctr = 0; 00058 m_dctr = 0; 00059 00061 // Reconstruct Jets // 00063 this->reconstruct(); 00064 00066 // ReFill JetCollection // 00068 clear_list(theJets); 00069 jetcollection_t::iterator it = m_jetOV->begin(); 00070 jetcollection_t::iterator itE = m_jetOV->end(); 00071 for(; it!=itE; ++it){ 00072 theJets.push_back(*it); 00073 } 00074 00075 00076 delete m_jetOV; 00077 return 1; 00078 }
| void fastjet::atlas::JetConeFinderTool::reconstruct | ( | ) |
Definition at line 85 of file JetConeFinderTool.cc.
References calc_cone(), fastjet::atlas::JetDistances::deltaPhi(), fastjet::atlas::LorentzVector::eta(), m_dctr, m_eps, m_etaMax, m_jetOV, m_pjetV, m_seedPt, and fastjet::atlas::LorentzVector::phi().
Referenced by execute().
00086 { 00087 m_jetOV = new jetcollection_t(); 00088 00089 jetcollection_t::iterator tItr; 00090 jetcollection_t::iterator tItr_begin = m_pjetV->begin(); 00091 jetcollection_t::iterator tItr_end = m_pjetV->end(); 00092 00093 // order towers in pt 00094 00095 for ( tItr=tItr_begin; tItr!=tItr_end; ++tItr ) { 00096 00097 // Seed Cut 00098 double tEt = (*tItr)->et(); 00099 if ( tEt < m_seedPt ) break; 00100 00101 // Tower eta, phi 00102 double etaT = (*tItr)->eta(); 00103 double phiT = (*tItr)->phi(); 00104 00105 // Iteration logic 00106 bool stable = false; 00107 bool inGeom = true; 00108 00109 Jet* preJet; 00110 00111 int count = 1; 00112 do { // Iteration Loop 00113 00114 // Make cone 00115 preJet = calc_cone(etaT,phiT); 00116 double etaC = preJet->eta(); 00117 double phiC = preJet->phi(); 00118 00119 double deta = fabs(etaT - etaC); 00120 double dphi = fabs(JetDistances::deltaPhi(phiT,phiC)); 00121 00122 // Is Stable ? 00123 if ( deta < m_eps && dphi < m_eps ) 00124 stable = true; 00125 00126 // In Geometry ? 00127 if ( fabs(etaC) > m_etaMax ) 00128 inGeom = false; 00129 00130 etaT = etaC; 00131 phiT = phiC; 00132 00133 if ( !stable && inGeom ) { 00134 delete preJet; 00135 m_dctr +=1; 00136 } 00137 ++count; 00138 00139 }while ( !stable && inGeom && count < 10 ); 00140 00141 if ( count > 9 && (!stable && inGeom) ) continue; // FIXME 9 ? 00142 00143 // If iteration was succesfull -- check if this is a new jet and 00144 // add it to OV. 00145 00146 if ( stable && inGeom ) { 00147 jetcollection_t::iterator pItr = m_jetOV->begin(); 00148 jetcollection_t::iterator pItrE = m_jetOV->end(); 00149 00150 bool newJet = true; 00151 double etaT = preJet->eta(); 00152 double phiT = preJet->phi(); 00153 00154 for ( ; pItr != pItrE ; ++pItr ) { 00155 double etaC = (*pItr)->eta(); 00156 double phiC = (*pItr)->phi(); 00157 00158 double deta = fabs(etaT - etaC); 00159 double dphi = fabs(JetDistances::deltaPhi(phiT,phiC)); 00160 00161 if ( deta < 0.05 && dphi < 0.05 ) { 00162 newJet = false; 00163 break; 00164 } 00165 } 00166 if ( newJet ) { 00167 m_jetOV->push_back( preJet ); 00168 } 00169 else { 00170 delete preJet; 00171 m_dctr +=1; 00172 } 00173 } 00174 else { 00175 delete preJet; 00176 m_dctr +=1; 00177 } 00178 } 00179 }
Definition at line 82 of file JetConeFinderTool.hh.
Definition at line 71 of file JetConeFinderTool.hh.
Referenced by calc_cone(), and fastjet::ATLASConePlugin::run_clustering().
Definition at line 69 of file JetConeFinderTool.hh.
Definition at line 79 of file JetConeFinderTool.hh.
Referenced by calc_cone(), execute(), and reconstruct().
Definition at line 68 of file JetConeFinderTool.hh.
Definition at line 72 of file JetConeFinderTool.hh.
Definition at line 74 of file JetConeFinderTool.hh.
Referenced by reconstruct(), and fastjet::ATLASConePlugin::run_clustering().
| std::vector<double>* fastjet::atlas::JetConeFinderTool::m_veta |
Definition at line 84 of file JetConeFinderTool.hh.
| std::vector<double>* fastjet::atlas::JetConeFinderTool::m_vphi |
Definition at line 85 of file JetConeFinderTool.hh.
1.5.7.1