00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef ST_GAMMA_PYTHIA_EVENT_H
00010 #define ST_GAMMA_PYTHIA_EVENT_H
00011
00012 #include <vector>
00013 using std::vector;
00014
00015 #include "TLorentzVector.h"
00016 #include "StSpinPool/StMCAsymMaker/StPythiaEvent.h"
00017
00018 class StGammaPythiaEvent : public StPythiaEvent
00019 {
00020
00021 public:
00022
00023 StGammaPythiaEvent() {}
00024 StGammaPythiaEvent(const StPythiaEvent* pythia) : StPythiaEvent(*pythia) {}
00025 ~StGammaPythiaEvent() {}
00026
00027 virtual const char* GetCVS() const
00028 {static const char cvs[] = "Tag $Name: $ $Id: StGammaPythiaEvent.h,v 1.5 2009/06/18 05:49:41 betan Exp $ built "__DATE__" "__TIME__; return cvs; }
00029
00030 void Clear(Option_t* option = "");
00031
00032 int numberOfPrompt() const;
00033 int numberOfConversion() const;
00034 int numberOfHadron() const;
00035 int numberOfNeutralPion() const;
00036
00037 TLorentzVector& prompt(int i);
00038 TLorentzVector& conversion(int i);
00039 TLorentzVector& hadron(int i);
00040 TLorentzVector& neutralPion(int i);
00041
00042 vector<TLorentzVector>& prompt();
00043 vector<TLorentzVector>& conversion();
00044 vector<TLorentzVector>& hadron();
00045 vector<TLorentzVector>& neutralPion();
00046
00047 private:
00048 vector<TLorentzVector> mPrompt;
00049 vector<TLorentzVector> mConversion;
00050 vector<TLorentzVector> mHadron;
00051 vector<TLorentzVector> mNeutralPion;
00052
00053 ClassDef(StGammaPythiaEvent, 2);
00054
00055 };
00056
00057 inline void StGammaPythiaEvent::Clear(Option_t* option)
00058 {
00059 mPrompt.clear();
00060 mConversion.clear();
00061 mHadron.clear();
00062 mNeutralPion.clear();
00063 StPythiaEvent::Clear(option);
00064 }
00065
00066 inline int StGammaPythiaEvent::numberOfPrompt() const { return mPrompt.size(); }
00067 inline int StGammaPythiaEvent::numberOfConversion() const { return mConversion.size(); }
00068 inline int StGammaPythiaEvent::numberOfHadron() const { return mHadron.size(); }
00069 inline int StGammaPythiaEvent::numberOfNeutralPion() const { return mNeutralPion.size(); }
00070
00071 inline TLorentzVector& StGammaPythiaEvent::prompt(int i) { return mPrompt[i]; }
00072 inline TLorentzVector& StGammaPythiaEvent::conversion(int i) { return mConversion[i]; }
00073 inline TLorentzVector& StGammaPythiaEvent::hadron(int i) { return mHadron[i]; }
00074 inline TLorentzVector& StGammaPythiaEvent::neutralPion(int i) { return mNeutralPion[i]; }
00075
00076 inline vector<TLorentzVector>& StGammaPythiaEvent::prompt() { return mPrompt; }
00077 inline vector<TLorentzVector>& StGammaPythiaEvent::conversion() { return mConversion; }
00078 inline vector<TLorentzVector>& StGammaPythiaEvent::hadron() { return mHadron; }
00079 inline vector<TLorentzVector>& StGammaPythiaEvent::neutralPion() { return mNeutralPion; }
00080
00081 #endif