Main Page | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages

GLG4PMTSD.hh

00001 // This file is part of the GenericLAND software library.
00002 // $Id: GLG4PMTSD.hh,v 1.1.1.1 2004/12/21 22:29:48 GLG4sim Exp $
00003 //
00004 //  GLG4PMTSD.hh
00005 //
00006 //   Records total number of hits and "waveform" on each PMT,
00007 //   with no PMT TTS or digitizer bandwidth effects included.
00008 //   (Convolve the hit waveform with the TTS+digitizer single-hit function
00009 //   to get the resulting digitized waveform.)
00010 //
00011 //   Bypasses Geant4 hit collection mechanism.
00012 //
00013 //   Author:  Glenn Horton-Smith, 2000/01/28 
00014 //
00015 
00016 #ifndef GLG4PMTSD_h
00017 #define GLG4PMTSD_h 1
00018 
00019 #include "G4VSensitiveDetector.hh"
00020 
00021 class G4Step;
00022 class G4HCofThisEvent;
00023 class G4TouchableHistory;
00024 
00025 class GLG4PMTSD : public G4VSensitiveDetector
00026 {
00027   protected:
00028       int max_pmts;
00029       int pmt_no_offset;
00030       int my_id_pmt_size;
00031       // enum { max_waveform_ns= 200 };
00032   
00033   public:
00034       G4int *hit_sum;  /* indexed by pmt number */
00035       //typedef G4int waveform_t[max_waveform_ns];
00036       //waveform_t *hit_waveform; /* indexed by pmt number */
00037   
00038       G4int n_pmt_hits;   /* # of hits,       calculated at EndOfEvent */
00039       G4int n_hit_pmts;   /* # of PMTs hit,   calculated at EndOfEvent */
00040 
00041   public:
00042   // member functions
00043       GLG4PMTSD(G4String name,
00044               int max_pmts=1920,
00045               int pmt_no_offset=0,
00046               int my_id_pmt_size= -1);
00047       virtual ~GLG4PMTSD();
00048 
00049       virtual void Initialize(G4HCofThisEvent*HCE);
00050       virtual void EndOfEvent(G4HCofThisEvent*HCE);
00051       virtual void clear();
00052       virtual void DrawAll();
00053       virtual void PrintAll();
00054 
00055       void SimpleHit( G4int ipmt,
00056                       G4double time,
00057                       G4double kineticEnergy,
00058                       const G4ThreeVector & position,
00059                       const G4ThreeVector & momentum,
00060                       const G4ThreeVector & polarization,
00061                       G4int iHitPhotonCount );
00062   
00063   protected:
00064       virtual G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist);
00065 };
00066 
00067 #endif

Generated on Fri Jul 6 13:31:46 2007 for GLG4sim by  doxygen 1.3.9.1