00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef MCDIGITINFO_H
00010 #define MCDIGITINFO_H
00011
00012 #include <vector>
00013 #include <utility>
00014 #include <iosfwd>
00015 #include "TObject.h"
00016 #include "JobControl/Exception.h"
00017 #include "Simulation/HitProfile.h"
00018
00019 namespace sim {
00020
00021 class MCDigitInfo : public TObject {
00022
00023 public:
00024 MCDigitInfo();
00025 ~MCDigitInfo();
00026
00027
00028 void PushFraction(int i, unsigned short trackid, float fraction);
00029 void NormalizeFraction(int i);
00030
00031
00032 unsigned int NTracks(unsigned int i) const;
00033 unsigned int NDigits() const {return fMCInfo.size();};
00034 HitProfile GetProfile(unsigned int i) const;
00035 void GetFraction(unsigned int i, unsigned int j, unsigned short &trackid, float &fraction) const;
00036 bool GetFraction(unsigned int i, unsigned int j, std::pair<unsigned short, float> &component) const;
00037
00038 public:
00039 std::vector<HitProfile> fMCInfo;
00040
00041 ClassDef(MCDigitInfo, 1)
00042 };
00043 }
00044
00045 #endif // MCDIGITINFO_H
00046