// ----------------------------------------- // PndDrcLutInfo.h // // Created on: 13.07.2013 // Author: R.Dzhygadlo at gsi.de // ----------------------------------------- // Container for look-up table #ifndef PNDDRCLUTINFO_H #define PNDDRCLUTINFO_H #include "TObject.h" #include "TClonesArray.h" #include "TVector3.h" #include class PndDrcLutInfo : public TObject { public: // Default constructor PndDrcLutInfo (); // Standard constructors // Copy constructor // PndDrcLutInfo (PndDrcLutInfo& node) { *this = node; } // not needed // Modifiers void AddAngle(Double_t val); void AddPixelEnd(Double_t val); void AddTime(Double_t val); void AddTime(Double_t val, Bool_t ref); void AddLutTime(Double_t val, Bool_t ref); void AddPath(Double_t val); void AddChDiff(Double_t val); void AddNOfBounces(Double_t val); void AddNOfEVReflections(Int_t val); void AddLambda(Double_t val); void AddTruePath(Double_t val); void AddHitTime(Double_t val); void SetChPartDir(TVector3 val); void SetChPartDirInBar(TVector3 val); void SetChPartDirInBar2(TVector3 val); void SetChPartPdg(Int_t val); void SetCherenkovMC(Double_t val); void SetCherenkovReal(Double_t val); // Accessors Int_t AngleEntries() {return fAnglesSize; } Int_t PixelEntries() {return fPixelSize; } Int_t TimeEntries() {return fTimesSize; } Int_t PathEntries() {return fPathsSize; } Int_t ChDiffEntries() {return fChDiffsSize; } Int_t NOfBouncesEntries() {return fNOfBouncesSize; } Int_t NOfEVReflectionEntries() {return fNOfEVReflectionsSize; } Int_t NOfLambdas() {return fLambdasSize;} Int_t NOfTruePaths() {return fTruePathsSize;} Int_t NOfHitTimes() {return fHitTimesSize;} TVector3 GetChPartDir() {return fChPartDir;} TVector3 GetChPartDirInBar() {return fChPartDirInBar;} TVector3 GetChPartDirInBar2() {return fChPartDirInBar2;} Int_t GetChPartPdg() {return fChPartPdg;} Double_t GetCherenkovMC() {return fCherenkovMC;} Double_t GetCherenkovReal() {return fCherenkovReal;} Double_t GetAngle(Int_t entry); Int_t GetPixelEnd(Int_t entry); Double_t GetChDiff(Int_t entry); Int_t GetNOfBounces(Int_t entry); Int_t GetNOfEVReflections(Int_t entry); Double_t GetTime(Int_t entry); Double_t GetLutTime(Int_t entry){return fLutTimesArray[entry];} Double_t GetLambda(Int_t entry){return fLambdaArray[entry];} Double_t GetHitTime(Int_t entry){return fHitTimeArray[entry];} Double_t GetTruePath(Int_t entry){return fTruePathArray[entry];} Double_t GetPath(Int_t entry){return fPathsArray[entry];} Bool_t GetReflected(Int_t entry){return fReflected[entry];} Bool_t GetLutReflected(Int_t entry){return fLutReflected[entry];} protected: Int_t fAnglesSize; Int_t fPixelSize; Int_t fTimesSize; Int_t fLutTimesSize; Int_t fPathsSize; Int_t fChDiffsSize; Int_t fNOfBouncesSize; Int_t fNOfEVReflectionsSize; Int_t fLambdasSize; Int_t fHitTimesSize; Int_t fTruePathsSize; // arrays of values based on the LUT ambiguities: std::vector fAnglesArray; std::vector fPixelEndArray; std::vector fTimesArray; std::vector fLutTimesArray; std::vector fPathsArray; std::vector fChDiffsArray; std::vector fNOfBouncesArray; std::vector fPhotonStartPosition; std::vector fNOfEVReflectionsArray; std::vector fLambdaArray; std::vector fHitTimeArray; std::vector fTruePathArray; std::vector fReflected; std::vector fLutReflected; // MC information TVector3 fChPartDir; TVector3 fChPartDirInBar; TVector3 fChPartDirInBar2; Int_t fChPartPdg; Double_t fCherenkovMC; Double_t fCherenkovReal; ClassDef(PndDrcLutInfo,2) }; #endif