00001 #ifndef MCAPPLICATION_H 00002 #define MCAPPLICATION_H 00003 00004 #include <map> 00005 #include <TVirtualMCApplication.h> 00006 #include <TVirtualMCStack.h> 00007 #include <TLorentzVector.h> 00008 #include <TParticle.h> 00009 00010 #include "Geometry/Geometry.h" 00011 #include "Geometry/PlaneGeo.h" 00012 #include "Geometry/CellGeo.h" 00013 #include "NOVAMC/MCStack.h" 00014 #include "EventDataModel/EventHandle.h" 00015 #include "Simulation/FLSHit.h" 00016 #include "Simulation/FLSHitList.h" 00017 #include "Simulation/Particle.h" 00018 #include "Simulation/ParticleList.h" 00019 00020 class TVirtualMCStack; 00021 00022 namespace novamc { 00023 00024 class MCStack; 00025 class FLSHit; 00026 class Particlex; 00027 00028 class MCApplication : public TVirtualMCApplication { 00029 00030 public: 00031 00032 MCApplication(const char* name, const char* title, short detId); 00033 virtual ~MCApplication(); 00034 00035 MCStack* GetStack() const { return fStack; } 00036 sim::ParticleList GetParticleList() { return fParticleList; }; 00037 sim::FLSHitList GetFLSHitList() { return fHitList; } 00038 00039 virtual void ConstructGeometry(); 00040 virtual void InitGeometry(); 00041 virtual void GeneratePrimaries(); 00042 virtual void BeginEvent(); 00043 virtual void BeginPrimary(); 00044 virtual void PreTrack(); 00045 virtual void Stepping(); 00046 virtual void PostTrack(); 00047 virtual void FinishPrimary(); 00048 virtual void FinishEvent(); 00049 virtual void Field(const Double_t* x, Double_t* b) const; 00050 00051 void SetInt(int i) { fInt = i; } 00052 00053 private: 00054 00055 MCStack* fStack; 00056 sim::FLSHit fFLSHit; 00057 geo::Geometry* fGeo; 00058 00059 std::map<int, sim::Particle> fParticleMap; 00060 00061 unsigned int fInt; // Index of neutrino interaction (equivalent to "Event" in geant.) 00062 00063 // Output 00064 sim::ParticleList fParticleList; 00065 sim::FLSHitList fHitList; 00066 00067 Int_t nMedScintillator; 00068 Int_t nMedWLSFiber; 00069 00070 short fGeantVer; 00071 }; 00072 }; 00073 00074 #endif // MCAPPLICATION_H
1.3.9.1