Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

Atlfast::ClusterConeStrategy::PreCluster Class Reference

for accumulating weighted kinematic quantities More...

List of all members.


Public Methods

 PreCluster (localCellIterator start, localCellIterator end, bool masslessJets)
double eT ()
 kinematic query

double eta ()
 kinematic query

double phi ()
 kinematic query

 operator HepLorentzVector ()
 Conversion to HepLorentzVector.


Private Attributes

double m_eT_total
double m_eta_weighted
bool m_masslessJets
HepLorentzVector m_momentum_sum

Detailed Description

for accumulating weighted kinematic quantities

Definition at line 135 of file ClusterConeStrategy.h.


Constructor & Destructor Documentation

Atlfast::ClusterConeStrategy::PreCluster::PreCluster localCellIterator    start,
localCellIterator    end,
bool    masslessJets
 

Definition at line 156 of file ClusterConeStrategy.cxx.

References Atlfast::localCellIterator, m_eT_total, m_eta_weighted, and m_momentum_sum.

00159                                                                  : 
00160     m_eT_total(0),
00161     m_eta_weighted(0),
00162     m_masslessJets(masslessJets),
00163     m_momentum_sum( 0, 0, 0, 0 ){ 
00164     
00165     for( localCellIterator cell = start; cell != end; ++cell ){
00166       // Construct sum kinematic quantities weighted by eT
00167       // These are done EXACTLY as per the old ATLFAST++
00168       m_eT_total     += (*cell)->eT() ;
00169       m_eta_weighted += (*cell)->eta() * (*cell)->eT() ;
00170       
00171       // This next code for phi DOES NOT do things in exactly the same
00172       // way as old ATLFAST++
00173       // In particular the simple weighted phi which was implemented
00174       // would seem to have a problem at the cyclic boundary 
00175       // (unless I misunderstood, if it averaged pi-epsilon and -pi+epsilon
00176       // it would get 0 instead of pi
00177       // What is implemented here is a more generic solution which
00178       // is currently only used for phi, but could be used for eT
00179       // and eta also later
00180       
00181       m_momentum_sum += (*cell)->momentum() ;
00182       
00183     } 
00184   }       

Member Function Documentation

double Atlfast::ClusterConeStrategy::PreCluster::eT  
 

kinematic query

Definition at line 188 of file ClusterConeStrategy.cxx.

References m_eT_total.

Referenced by Atlfast::ClusterConeStrategy::makeClusters(), and operator HepLorentzVector().

00188 { return m_eT_total ; }

double Atlfast::ClusterConeStrategy::PreCluster::eta  
 

kinematic query

Definition at line 190 of file ClusterConeStrategy.cxx.

References m_eT_total, and m_eta_weighted.

00190                                             { 
00191     // Implemented exactly as per the old ATLFAST++
00192     if( m_eT_total > 0 ) return m_eta_weighted / m_eT_total ;
00193     else return 0. ;
00194   }

double Atlfast::ClusterConeStrategy::PreCluster::phi  
 

kinematic query

Definition at line 196 of file ClusterConeStrategy.cxx.

References m_momentum_sum.

00196                                             { 
00197     // Implemented differently to the old ATLFAST++
00198     return m_momentum_sum.phi() ; 
00199   }

Atlfast::ClusterConeStrategy::PreCluster::operator HepLorentzVector  
 

Conversion to HepLorentzVector.

Definition at line 203 of file ClusterConeStrategy.cxx.

References eT(), and m_momentum_sum.

00203                                                             {
00204     
00205     // Note:  there is a good reason this doesnt use the member
00206     // 4-vector. It is trying to mimic as far as possible the old
00207     // ATLFAST++. 
00208     // This may be changed in the future.
00209     
00210     double theta = atan( exp( - this->eta() ) ) * 2.0 ;
00211     
00212     double x=0.,y=0.,z=0.,t=0. ;
00213     
00214     if( (0. < theta) && ( theta < M_PI ) )
00215       {           
00216         if(m_masslessJets){
00217           t = this->eT() / sin( theta ) ;
00218           x = this->eT() * cos( this->phi() ) ;
00219           y = this->eT() * sin( this->phi() ) ;
00220           z = t * cos( theta ) ;
00221         }else{
00222           t = m_momentum_sum.e();
00223           x = m_momentum_sum.px();
00224           y = m_momentum_sum.py();
00225           z = m_momentum_sum.pz();
00226         }
00227       }
00228     
00229     return HepLorentzVector( x, y, z, t ) ; 
00230   }

Member Data Documentation

double Atlfast::ClusterConeStrategy::PreCluster::m_eT_total [private]
 

Definition at line 139 of file ClusterConeStrategy.h.

Referenced by eT(), eta(), and PreCluster().

double Atlfast::ClusterConeStrategy::PreCluster::m_eta_weighted [private]
 

Definition at line 140 of file ClusterConeStrategy.h.

Referenced by eta(), and PreCluster().

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.

Referenced by operator HepLorentzVector(), phi(), and PreCluster().


The documentation for this class was generated from the following files:
Generated on Tue Jan 28 09:57:34 2003 for AtlfastAlgs by doxygen1.3-rc1