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 160 of file ClusterConeStrategy.cxx.

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

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

Member Function Documentation

double Atlfast::ClusterConeStrategy::PreCluster::eT  
 

kinematic query

Definition at line 192 of file ClusterConeStrategy.cxx.

References m_eT_total.

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

00192 { return m_eT_total ; }

double Atlfast::ClusterConeStrategy::PreCluster::eta  
 

kinematic query

Definition at line 194 of file ClusterConeStrategy.cxx.

References m_eT_total, and m_eta_weighted.

00194                                             { 
00195     // Implemented exactly as per the old ATLFAST++
00196     if( m_eT_total > 0 ) return m_eta_weighted / m_eT_total ;
00197     else return 0. ;
00198   }

double Atlfast::ClusterConeStrategy::PreCluster::phi  
 

kinematic query

Definition at line 200 of file ClusterConeStrategy.cxx.

References m_momentum_sum.

00200                                             { 
00201     // Implemented differently to the old ATLFAST++
00202     return m_momentum_sum.phi() ; 
00203   }

Atlfast::ClusterConeStrategy::PreCluster::operator HepLorentzVector  
 

Conversion to HepLorentzVector.

Definition at line 207 of file ClusterConeStrategy.cxx.

References eT(), and m_momentum_sum.

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

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 Mar 18 11:18:53 2003 for AtlfastAlgs by doxygen1.3-rc1