diff --git a/source/container/LKMCTag.cpp b/source/container/LKMCTag.cpp new file mode 100644 index 0000000..68c522c --- /dev/null +++ b/source/container/LKMCTag.cpp @@ -0,0 +1,102 @@ +#include "LKMCTag.h" + +ClassImp(LKMCTag) + +LKMCTag::LKMCTag() +{ + Clear(); +} + +LKMCTag::~LKMCTag() +{ +} + +void LKMCTag::Clear(Option_t *option) +{ + LKContainer::Clear(option); + fIndex.clear(); + fMCID.clear(); + fWeight.clear(); +} + +void LKMCTag::Copy(TObject &obj) const +{ + ((LKMCTag&)obj).Clear(); + LKContainer::Copy(obj); + for (auto i=0; i= GetMCNum(index)) return -999; + + int tmpIdx = 0; + for (auto i=0; i= GetMCNum(index)) return -999.; + + double mcIdxWeight = 0.; + double weightSum = 0.; + int tmpIdx = 0; + for (auto i=0; i + +#include "LKContainer.h" + +class LKMCTag : public LKContainer +{ + protected: + std::vector fIndex; // Arbitrary index + std::vector fMCID; // Truth track ID + std::vector fWeight; // Truth track weight within same index + + public: + LKMCTag(); + virtual ~LKMCTag(); + + virtual void Clear(Option_t *option = ""); + virtual void Copy (TObject &object) const; + + void AddMCTag(Int_t mcId, Int_t index=-1); + void AddMCWeightTag(Int_t mcId, Double_t weight, Int_t index=-1); + + Int_t GetMCNum(int index=-1); + Int_t GetMCID(int mcIdx=0, int index=-1); + Double_t GetMCPurity(int mcIdx=0, int index=-1); + + ClassDef(LKMCTag, 1) +}; + +#endif \ No newline at end of file