Atlfast::ClusterConeStrategy::PreCluster Class Reference

List of all members.

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

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 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   }       


Member Function Documentation

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   }


Member Data Documentation

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.


The documentation for this class was generated from the following files:
Generated on Mon Sep 24 14:19:37 2007 for AtlfastAlgs by  doxygen 1.5.1