Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

MCDigitInfo.cxx

Go to the documentation of this file.
00001 #include "Simulation/MCDigitInfo.h"
00002 
00003 using namespace sim;
00004 ClassImp(MCDigitInfo);
00005 
00006 MCDigitInfo::MCDigitInfo() :
00007   fMCInfo(0)
00008 { }
00009 
00010 //__________________________________________________________
00011 
00012 MCDigitInfo::~MCDigitInfo() { }
00013 
00014 //__________________________________________________________
00015 
00016 void MCDigitInfo::PushFraction(int i, unsigned short trackid, float fraction)
00017 {
00018   unsigned int ui = i;
00019   if (fMCInfo.size()<ui+1) fMCInfo.resize(ui+1);
00020 
00021   std::pair<unsigned short, float> tempcomp;
00022   tempcomp.first = trackid;
00023   tempcomp.second = fraction;
00024 
00025   fMCInfo[ui].Push(tempcomp);
00026 
00027   return;
00028 }
00029 
00030 //__________________________________________________________
00031 
00032 void MCDigitInfo::NormalizeFraction(int i)
00033 {
00034   char msg[256];
00035   sprintf(msg,"MCDigitInfo::MCInfo(%d) out of range!",i);
00036   unsigned int ui = i;
00037   assert_jobc(i>=0 && (ui<fMCInfo.size()),msg);
00038 
00039   fMCInfo[ui].NormalizeFraction();
00040 
00041   return;
00042 }
00043 
00044 //__________________________________________________________
00045 unsigned int MCDigitInfo::NTracks(unsigned int i) const
00046 {
00047 
00048   unsigned int ui = i;
00049   if(ui>=fMCInfo.size()) return 0;
00050 
00051   return fMCInfo[ui].NComponents();
00052 
00053 }
00054 
00055 //__________________________________________________________
00056 HitProfile MCDigitInfo::GetProfile(unsigned int i) const
00057 {
00058   char msg[256];
00059   sprintf(msg,"MCDigitInfo::MCInfo(%d) out of range!",i);
00060   unsigned int ui = i;
00061   assert_jobc(ui<fMCInfo.size(),msg);
00062 
00063   return fMCInfo[ui];
00064 }
00065 
00066 //__________________________________________________________
00067 void MCDigitInfo::GetFraction(unsigned int i, unsigned int j, unsigned short &trackid, float &fraction) const
00068 {
00069   trackid = 0;
00070   fraction = 0.;
00071 
00072   unsigned int ui = i;
00073   if(ui>=fMCInfo.size()) return;
00074 
00075   if(j<fMCInfo[ui].NComponents()) {
00076     trackid  = fMCInfo[ui].TrackId(j);
00077     fraction = fMCInfo[ui].Fraction(j);
00078   }
00079 
00080   return;
00081 }
00082 
00083 //__________________________________________________________
00084 
00085 
00086 bool MCDigitInfo::GetFraction(unsigned int i, unsigned int j, std::pair<unsigned short, float> &component) const
00087 {
00088   if(i>=fMCInfo.size()) return false;
00089 
00090   if(j>=fMCInfo[i].NComponents() ) return false;
00091   
00092   component = fMCInfo[i].Component(j);
00093 
00094   return true;
00095 }
00096 
00098 

Generated on Mon Dec 1 02:35:18 2008 for NOvA Offline by  doxygen 1.3.9.1