00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef HITPROFILE_H
00010 #define HITPROFILE_H
00011
00012 #include <vector>
00013 #include <utility>
00014 #include <iosfwd>
00015 #include "TObject.h"
00016 #include "TClass.h"
00017 #include "JobControl/Exception.h"
00018
00019 namespace sim {
00020
00021 class HitProfile : public TObject {
00022
00023 public:
00024 HitProfile();
00025 ~HitProfile();
00026
00027
00028 unsigned int NComponents() const;
00029 std::pair<unsigned short, float> Component(unsigned int i) const;
00030 std::pair<unsigned short, float> Component(unsigned int i, float fact) const;
00031 unsigned short TrackId(unsigned int i) const;
00032 float Fraction(unsigned int i) const;
00033 unsigned short NoiseId() const;
00034
00035
00036 void Push(std::pair<unsigned short, float> component);
00037 void Push(unsigned short, float);
00038 void SetFraction(unsigned int i, float fraction);
00039
00040 void NormalizeFraction();
00041 void Combine();
00042 void Clear();
00043
00044 public:
00045 std::vector<unsigned short> fTrackId;
00046 std::vector<float> fFraction;
00047 unsigned short kNoiseId;
00048
00049 ClassDef(HitProfile, 1)
00050 };
00051 }
00052
00053 #endif // HITPROFILE_H
00054