Atlfast::MuonSpectrometer Class Reference

#include <MuonSpectrometer.h>

List of all members.

Public Member Functions

 MuonSpectrometer (double ptmin, double ptmax, std::vector< Sector > sectors)
double calculateResolution (const HepLorentzVector &avec)
void dump (std::string indent)
void setSectorMap (std::map< int, std::string > sectortypes)
double getPtMin ()
double getPtMax ()

Private Attributes

double m_ptmin
double m_ptmax
double m_sectorsize
std::vector< Sectorm_sectors
std::map< int, std::string > m_sectortypes


Detailed Description

Definition at line 71 of file MuonSpectrometer.h.


Constructor & Destructor Documentation

Atlfast::MuonSpectrometer::MuonSpectrometer ( double  ptmin,
double  ptmax,
std::vector< Sector sectors 
)

Definition at line 357 of file MuonSpectrometer.cxx.

00357                                                                                          :
00358     m_ptmin(ptmin), m_ptmax(ptmax), m_sectors(sectors){
00359   }


Member Function Documentation

double Atlfast::MuonSpectrometer::calculateResolution ( const HepLorentzVector &  avec  ) 

Definition at line 366 of file MuonSpectrometer.cxx.

00366                                                                           {
00367 
00368     // Choose sector number based on phi
00369     // -pi < HepLorentzVector.phi() < +pi
00370     double phi = avec.phi();
00371     while (phi < 0.) phi += 2.*M_PI;
00372     // Is this compiler-dependent rounding-up? Must check
00373     int sectorindex = int(phi/m_sectorsize) + 1;
00374 
00375     // Translate this to a sector type
00376     std::string sectortype = m_sectortypes[sectorindex];
00377     
00378     // Now find the corresponding sector
00379     IsCorrectSector ics(sectortype);
00380     std::vector<Sector>::iterator secitr = find_if(m_sectors.begin(),
00381                                                     m_sectors.end(),
00382                                                     ics);
00383     if ( secitr == m_sectors.end() ){
00384       // Could not find correct Sector, returning resolution of 1.0
00385       return 1.;
00386     }
00387     
00388     return (*secitr).calculateResolution(avec);    
00389 
00390   }

void Atlfast::MuonSpectrometer::dump ( std::string  indent  ) 

Definition at line 392 of file MuonSpectrometer.cxx.

00392                                              {
00393     indent += "  ";
00394     std::cout<<indent<<"Dump for MuonSpectrometer:\n";
00395     std::cout<<indent<<"m_ptmin "<<m_ptmin<<std::endl;
00396     std::cout<<indent<<"m_ptmax "<<m_ptmax<<std::endl;
00397     std::cout<<indent<<"Dump of my sectors:"<<std::endl;
00398     std::for_each(m_sectors.begin(), m_sectors.end(), AddToDump(indent));
00399   }

void Atlfast::MuonSpectrometer::setSectorMap ( std::map< int, std::string >  sectortypes  ) 

Definition at line 361 of file MuonSpectrometer.cxx.

00361                                                                       {
00362     m_sectortypes = sectortypes;
00363     m_sectorsize = 2.*M_PI/m_sectortypes.size();
00364   }

double Atlfast::MuonSpectrometer::getPtMin (  )  [inline]

Definition at line 77 of file MuonSpectrometer.h.

00077 {return m_ptmin;}

double Atlfast::MuonSpectrometer::getPtMax (  )  [inline]

Definition at line 78 of file MuonSpectrometer.h.

00078 {return m_ptmax;}


Member Data Documentation

double Atlfast::MuonSpectrometer::m_ptmin [private]

Definition at line 80 of file MuonSpectrometer.h.

double Atlfast::MuonSpectrometer::m_ptmax [private]

Definition at line 81 of file MuonSpectrometer.h.

double Atlfast::MuonSpectrometer::m_sectorsize [private]

Definition at line 82 of file MuonSpectrometer.h.

std::vector<Sector> Atlfast::MuonSpectrometer::m_sectors [private]

Definition at line 83 of file MuonSpectrometer.h.

std::map<int,std::string> Atlfast::MuonSpectrometer::m_sectortypes [private]

Definition at line 84 of file MuonSpectrometer.h.


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