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

PionBinData.cxx

Go to the documentation of this file.
00001 #include "AtlfastAlgs/PionBinData.h"
00002 
00003 namespace Atlfast {
00004 
00005   //-----------------------------------------------
00006   // PUBLIC - Constructor
00007   //-----------------------------------------------
00008   
00009   PionBinData::PionBinData(
00010                            BinID& id,
00011                            vector< ParameterResolutions* > core,
00012                            vector< ParameterResolutions* > tails,
00013                            vector< ParameterResolutions* > fractions,
00014                            vector< ParameterResolutions* > correlations,
00015                            int randSeed
00016                            ):
00017     m_id(id),
00018     m_cores(core),    
00019     m_tails(tails),
00020     m_fractions(fractions),
00021     m_correlations(correlations)
00022 
00023 {
00024     m_randomEngine = new HepJamesRandom(randSeed);
00025 }    
00026 
00027   
00028   //-----------------------------------------------
00029   // PUBLIC - HepMatrix getMatrix(random)
00030   // returns appropriate sigma matrix using random
00031   // number 
00032   //-----------------------------------------------
00033   
00034   HepMatrix PionBinData::getMatrix(const TrackTrajectory& traj) const{
00035 
00036     HepMatrix sigma(5,5,0);
00037 
00038     double resolution, random[5];
00039 
00040     random[0] = m_randomEngine->flat() ;
00041     random[1] = m_randomEngine->flat() ;
00042 
00043     random[2] = random[0];
00044     random[3] = random[1];
00045     random[4] = random[0];
00046 
00047     // Diagonals
00048     for (int param = 0; param<5; param++)
00049       {
00050         resolution = m_fractions[param]->resolution( traj );
00051 
00052         //frac << random[param] << endl;
00053         //frac << resolution << endl;
00054 
00055         if (random[param] < resolution )
00056           {
00057             sigma[param][param] = 
00058               pow( m_cores[param]->resolution( traj ), 2 );
00059           }
00060         else
00061           {
00062             sigma[param][param] = 
00063               pow( m_tails[param]->resolution( traj ), 2 );
00064           }
00065       }
00066     // off diagonals
00067     // (1,3)
00068 
00069     sigma(3,1) = sigma(1,3) =
00070       m_correlations[0]->resolution( traj ) *
00071       pow( (sigma(1,1)*sigma(3,3)) , 0.5 );
00072     // (1,5)
00073     sigma(5,1) = sigma(1,5) =
00074       m_correlations[1]->resolution( traj ) *
00075       pow( (sigma(1,1)*sigma(5,5)) , 0.5 );
00076     // (2,4)
00077     sigma(2,4) = sigma(4,2) =
00078       m_correlations[2]->resolution( traj ) *
00079       pow( (sigma(2,2)*sigma(4,4)) , 0.5 );
00080     // (3,5)
00081     sigma(3,5) = sigma(5,3) =
00082       m_correlations[3]->resolution( traj ) * 
00083       pow( (sigma(3,3)*sigma(5,5)) , 0.5 );
00084 
00085     // DONE!
00086     return sigma;
00087     
00088   }
00089   
00090 }//namespace bracket

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