00001
00015 #ifndef MCTRUTH_HH
00016 #define MCTRUTH_HH
00017
00018 #include "mcnu.hh"
00019
00020 namespace larlight {
00025 class mctruth : public data_base {
00026
00027 public:
00028
00030 mctruth(DATA::DATA_TYPE type=DATA::MCTruth);
00031
00033 virtual ~mctruth(){}
00034
00036 mctruth(const mctruth& origin) : data_base(origin),
00037 fPartList(origin.fPartList),
00038 fMCNeutrino(origin.fMCNeutrino),
00039 fOrigin(origin.fOrigin),
00040 fNeutrinoSet(origin.fNeutrinoSet)
00041 {}
00042
00044 virtual void clear_data();
00045
00047 void Add(mcpart part) { fPartList.push_back(part); }
00048 void SetOrigin( MC::Origin_t orig) { fOrigin = orig; }
00049 void SetNeutrino(Int_t CCNC,
00050 Int_t mode,
00051 Int_t interactionType,
00052 Int_t target,
00053 Int_t nucleon,
00054 Int_t quark,
00055 Double_t w,
00056 Double_t x,
00057 Double_t y,
00058 Double_t qsqr);
00059
00061
00062 const std::vector<larlight::mcpart>& GetParticles() const { return fPartList; }
00063 const mcnu& GetNeutrino() const { return fMCNeutrino; }
00064 MC::Origin_t Origin() const { return fOrigin; }
00065 Bool_t NeutrinoSet() const { return fNeutrinoSet; }
00066
00067 private:
00068
00069 std::vector<larlight::mcpart> fPartList;
00070 mcnu fMCNeutrino;
00071 MC::Origin_t fOrigin;
00072 Bool_t fNeutrinoSet;
00073
00075 ClassDef(mctruth,6)
00077
00078 };
00079
00084 class event_mctruth : public std::vector<larlight::mctruth>,
00085 public event_base {
00086
00087 public:
00088
00090 event_mctruth(DATA::DATA_TYPE type=DATA::MCTruth);
00091
00093 event_mctruth(const event_mctruth& original) : std::vector<larlight::mctruth>(original),
00094 event_base (original)
00095 {}
00096
00098 virtual ~event_mctruth(){}
00099
00101 virtual void clear_data() {event_base::clear_data(); clear();}
00102
00103 private:
00104
00106 ClassDef(event_mctruth,2)
00108
00109 };
00110 }
00111 #endif
00112