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

BremRBin.cxx

Go to the documentation of this file.
00001 #include "AtlfastAlgs/BremRBin.h"
00002 
00003 namespace Atlfast{
00004 
00005   BremRBin::BremRBin(int randSeed) {
00006     m_randomEngine = new HepJamesRandom(randSeed);
00007   }
00008 
00009   BremRBin::BremRBin(const BremRBin& other): m_randomEngine(NULL) {
00010     *this = other;
00011   }
00012   
00013   BremRBin& BremRBin::operator=(const BremRBin& other) {
00014     if (this != &other) {
00015       if (m_randomEngine) delete m_randomEngine;
00016       m_randomEngine = new HepJamesRandom(*other.m_randomEngine);
00017       m_ptBins = other.m_ptBins;
00018     }
00019     return *this;
00020   }
00021   BremRBin::~BremRBin() {
00022     delete m_randomEngine;
00023   }
00024 
00025 
00026 
00027   void BremRBin::addBin(TestValue value, BremPTScaleBin bin) {
00028     m_ptBins[value] = bin;
00029   }
00030   double BremRBin::calculatePScale() const {
00031     double random = m_randomEngine->flat();
00032     map<TestValue, BremPTScaleBin>::const_iterator iter = m_ptBins.begin();
00033     map<TestValue, BremPTScaleBin>::const_iterator end = m_ptBins.end();
00034  
00035      for (; iter != end; ++iter) {
00036         if ( random < (iter->first).value() ) {
00037           return iter->second.calculatePScale(random);
00038         }else{
00039         }
00040       }
00041       return 1.0;
00042   }
00043   const map<TestValue, BremPTScaleBin>* BremRBin::bins() const {return &m_ptBins;} 
00044   
00045   MsgStream& operator<<(MsgStream& s, BremRBin& bin) {
00046     map<TestValue, BremPTScaleBin>::const_iterator iter = bin.bins()->begin();
00047     map<TestValue, BremPTScaleBin>::const_iterator end = bin.bins()->end();
00048     int a=0;
00049     s << setprecision(4);
00050     s << "RBin with " << bin.bins()->size() << " pT Bins" << endreq;
00051     for (; iter!=end; ++iter) {
00052       if (a==12) { a=0; s << endreq; }
00053       s << setw(6) << iter->first.value();
00054       ++a;
00055     }
00056     s<< endreq;
00057     return s;
00058   }
00059   
00060 }//namepace
00061 
00062   
00063 
00064 
00065 
00066 
00067 

Generated on Tue Mar 18 11:18:22 2003 for AtlfastAlgs by doxygen1.3-rc1