#include <MuonSpectrometer.h>
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< Sector > | m_sectors |
std::map< int, std::string > | m_sectortypes |
Definition at line 71 of file MuonSpectrometer.h.
Atlfast::MuonSpectrometer::MuonSpectrometer | ( | double | ptmin, | |
double | ptmax, | |||
std::vector< Sector > | sectors | |||
) |
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] |
double Atlfast::MuonSpectrometer::getPtMax | ( | ) | [inline] |
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.