Public Member Functions | |
PreCluster (localCellIterator start, localCellIterator end, bool masslessJets) | |
double | eT () |
double | eta () |
double | phi () |
operator HepLorentzVector () | |
Private Attributes | |
double | m_eT_total |
double | m_eta_weighted |
bool | m_masslessJets |
HepLorentzVector | m_momentum_sum |
Definition at line 135 of file ClusterConeStrategy.h.
Atlfast::ClusterConeStrategy::PreCluster::PreCluster | ( | localCellIterator | start, | |
localCellIterator | end, | |||
bool | masslessJets | |||
) |
Definition at line 161 of file ClusterConeStrategy.cxx.
00164 : 00165 m_eT_total(0), 00166 m_eta_weighted(0), 00167 m_masslessJets(masslessJets), 00168 m_momentum_sum( 0, 0, 0, 0 ){ 00169 00170 for( localCellIterator cell = start; cell != end; ++cell ){ 00171 // Construct sum kinematic quantities weighted by eT 00172 // These are done EXACTLY as per the old ATLFAST++ 00173 m_eT_total += (*cell)->eT() ; 00174 m_eta_weighted += (*cell)->eta() * (*cell)->eT() ; 00175 00176 // This next code for phi DOES NOT do things in exactly the same 00177 // way as old ATLFAST++ 00178 // In particular the simple weighted phi which was implemented 00179 // would seem to have a problem at the cyclic boundary 00180 // (unless I misunderstood, if it averaged pi-epsilon and -pi+epsilon 00181 // it would get 0 instead of pi 00182 // What is implemented here is a more generic solution which 00183 // is currently only used for phi, but could be used for eT 00184 // and eta also later 00185 00186 m_momentum_sum += (*cell)->momentum() ; 00187 00188 } 00189 }
double Atlfast::ClusterConeStrategy::PreCluster::eT | ( | ) |
kinematic query
Definition at line 193 of file ClusterConeStrategy.cxx.
00193 { return m_eT_total ; }
double Atlfast::ClusterConeStrategy::PreCluster::eta | ( | ) |
kinematic query
Definition at line 195 of file ClusterConeStrategy.cxx.
00195 { 00196 // Implemented exactly as per the old ATLFAST++ 00197 if( m_eT_total > 0 ) return m_eta_weighted / m_eT_total ; 00198 else return 0. ; 00199 }
double Atlfast::ClusterConeStrategy::PreCluster::phi | ( | ) |
kinematic query
Definition at line 201 of file ClusterConeStrategy.cxx.
00201 { 00202 // Implemented differently to the old ATLFAST++ 00203 return m_momentum_sum.phi() ; 00204 }
Atlfast::ClusterConeStrategy::PreCluster::operator HepLorentzVector | ( | ) |
Conversion to HepLorentzVector
Definition at line 208 of file ClusterConeStrategy.cxx.
00208 { 00209 00210 // Note: there is a good reason this doesnt use the member 00211 // 4-vector. It is trying to mimic as far as possible the old 00212 // ATLFAST++. 00213 // This may be changed in the future. 00214 00215 double theta = atan( exp( - this->eta() ) ) * 2.0 ; 00216 00217 double x=0.,y=0.,z=0.,t=0. ; 00218 00219 if( (0. < theta) && ( theta < M_PI ) ) 00220 { 00221 if(m_masslessJets){ 00222 t = this->eT() / sin( theta ) ; 00223 x = this->eT() * cos( this->phi() ) ; 00224 y = this->eT() * sin( this->phi() ) ; 00225 z = t * cos( theta ) ; 00226 }else{ 00227 t = m_momentum_sum.e(); 00228 x = m_momentum_sum.px(); 00229 y = m_momentum_sum.py(); 00230 z = m_momentum_sum.pz(); 00231 } 00232 } 00233 00234 return HepLorentzVector( x, y, z, t ) ; 00235 }
double Atlfast::ClusterConeStrategy::PreCluster::m_eT_total [private] |
Definition at line 139 of file ClusterConeStrategy.h.
double Atlfast::ClusterConeStrategy::PreCluster::m_eta_weighted [private] |
Definition at line 140 of file ClusterConeStrategy.h.
bool Atlfast::ClusterConeStrategy::PreCluster::m_masslessJets [private] |
Definition at line 141 of file ClusterConeStrategy.h.
HepLorentzVector Atlfast::ClusterConeStrategy::PreCluster::m_momentum_sum [private] |
Definition at line 142 of file ClusterConeStrategy.h.