Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Class Members | File Members

MJOutputSolidBlock.hh

Go to the documentation of this file.
00001 //---------------------------------------------------------------------------//
00002 //bb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nu//
00003 //                                                                           //
00004 //                         MAJORANA Simulation                               //
00005 //                                                                           //
00006 //      This code implementation is the intellectual property of the         //
00007 //      MAJORANA Collaboration. It is based on Geant4, an intellectual       //
00008 //      property of the RD44 GEANT4 collaboration.                           //
00009 //                                                                           //
00010 //                        *********************                              //
00011 //                                                                           //
00012 //    Neither the authors of this software system, nor their employing       //
00013 //    institutes, nor the agencies providing financial support for this      //
00014 //    work  make  any representation or  warranty, express or implied,       //
00015 //    regarding this software system or assume any liability for its use.    //
00016 //    By copying, distributing or modifying the Program (or any work based   //
00017 //    on on the Program) you indicate your acceptance of this statement,     //
00018 //    and all its terms.                                                     //
00019 //                                                                           //
00020 //bb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nu//
00021 //---------------------------------------------------------------------------//
00032 // Begin description of class here
00040 // End class description
00041 //
00046 // 
00047 // --------------------------------------------------------------------------//
00057 // --------------------------------------------------------------------------//
00058 
00059 #ifndef _MJOUTPUTSOLIDBLOCK_HH
00060 #define _MJOUTPUTSOLIDBLOCK_HH
00061 
00062 //---------------------------------------------------------------------------//
00063 
00064 #include "TObject.h"
00065 
00066 #include "G4ThreeVector.hh"
00067 
00068 #include "io/MJOutputRoot.hh"
00069 
00070 //---------------------------------------------------------------------------//
00071 
00072 using namespace std;
00073 
00074 class TH1D;
00075 class G4DynamicParticle;
00076 
00077 class MJOutputSolidBlock : public MJOutputRoot
00078 {
00079 public:
00080 
00081   //default constructor
00082   MJOutputSolidBlock(G4bool isMother);
00083 
00084   //copy constructor
00085   MJOutputSolidBlock(const MJOutputSolidBlock &);
00086 
00087   //destructor
00088   ~MJOutputSolidBlock();
00089 
00090   //public interface
00091   void BeginOfEventAction(const G4Event *event);
00092   void BeginOfRunAction();
00093   void DefineSchema();
00094   void EndOfEventAction(const G4Event *event);
00095   void EndOfRunAction();
00096   void RootSteppingAction(const G4Step *step);
00097   G4bool ConvertCoordinateToGridPoint(G4ThreeVector pos, G4int *gpt);
00098 
00099   //protected members
00100 protected:
00101 
00102 
00103   //private  members
00104 private:
00105 
00106   G4int    fMaxNumParticles;
00107   const G4DynamicParticle    *fPrimarye; // Primary particle (e-)
00108   G4double fTrackLength;           // Accumulated track length of primary. 
00109   G4int    feNSteps;               // Number of Step Primary particle makes.
00110   G4int    fEdepArraySize;         // Length of flattened Edep array
00111   G4bool   fPrimaryDemiseRecorded; // Has the demise of the primary particle
00112                                    // being recorded?
00113   G4double fOldKineticEnergy;      // Kinetic energy in previous step.
00114   G4ThreeVector   fOrigin;         // Origin of primary electron
00115 
00116   // Root histograms.
00117   TH1D     *feTrackDistanceHisto; // Distance of each step os primary particle 
00118   TH1D     *feEdepHisto;          // Energy deposits for other particles
00119   TH1D     *feVertexDistance;     // Distance of primary e- from vertex at end
00120   TH1D     *feNStepsHisto;        // Number of steps primary e- takes.
00121   TH1D     *feEdepStep;           // Energy deposit per step for primary e-
00122   TH1D     *feEAtEnd;             // Energy of primary e- at end of track.     
00123   TH1D     *feAccTrackLen;        // Accumulated Track Length
00124   TH1D     *feG4Distance;         // Track length from G4.
00125   TH1D     *feKEnergyHisto;       // Kinetic energy at each step.
00126   TH1D     *fEDistance;           // Energydeposit/r^2 as fn of r.
00127 
00128   // MC Data ---> Begin
00129   // Note : MC data does not follow TAligent naming convention
00130   //        to distinguish it from "normal" class fields.
00131 
00132   UInt_t   EventNumber;
00133   Int_t    NumberOfParticles;
00134   Int_t    *Particle;
00135   Float_t  *MomentumX;
00136   Float_t  *MomentumY;
00137   Float_t  *MomentumZ;
00138   Float_t  *PositionX;
00139   Float_t  *PositionY;
00140   Float_t  *PositionZ;
00141 
00142   Int_t   nX;  // Number of points in the x direction
00143   Int_t   nY;  // Number of points in the y direction
00144   Int_t   nZ;  // Number of points in the z direction
00145 
00146   Float_t  dX;  // Size (cm) of x step
00147   Float_t  dY;  // Size (cm) of y step
00148   Float_t  dZ;  // Size (cm) of z step
00149 
00150   Float_t  OriginX; // Origin of block in mother coordinates. (cm)
00151   Float_t  OriginY;
00152   Float_t  OriginZ;
00153 
00154   Float_t  *Edep; // 3-D array of energy deposits saved as flat array
00155 
00156   Float_t  EdepOutside; // Energy deposit outside block.
00157   // MC Data --> End
00158 
00159 };
00160 #endif

Generated on Mon Nov 29 16:58:52 2004 for Majorana Simulation by  doxygen 1.3.9.1