TACTICScorer.hh 1.89 KB
Newer Older
Warren's avatar
Warren committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
#ifndef TACTICScorer_h
#define TACTICScorer_h 1

#include "G4VPrimitiveScorer.hh"
#include "NPSHitsMap.hh"
#include <map>

using namespace std;
using namespace CLHEP;

namespace TACTICScorer {

  class Gas_Scorer : public G4VPrimitiveScorer{
    
  public:
    Gas_Scorer(G4String name,
	       G4int Level,
	       G4double ScorerLength,
	       G4int NumberOfSegments,
20 21 22 23 24 25 26
	       G4int depth=0,
	       G4double p0 = 0,
	       G4double p1 = 0,
	       G4double p2 = 0,
	       G4double p3 = 0
	       );
    
Warren's avatar
Warren committed
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
    ~Gas_Scorer();
    
  protected: // with description                                                                                                                            
    G4bool ProcessHits(G4Step*, G4TouchableHistory*);
    
  public:
    void Initialize(G4HCofThisEvent*);
    void EndOfEvent(G4HCofThisEvent*);
    void clear();
    void DrawAll();
    void PrintAll();
    
  private: // Geometry of the detector                                                                                                                      
    G4double m_ScorerLength;
    G4int    m_NumberOfSegments;
    G4double m_SegmentLength;
    // Level at which to find the copy number linked to the detector number                                                                                 
    G4int    m_Level;
45 46 47 48
    G4double m_p0;
    G4double m_p1;
    G4double m_p2;
    G4double m_p3;
Warren's avatar
Warren committed
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
    
  private: // inherited from G4VPrimitiveScorer                                                                                                             
    G4int HCID;
    NPS::HitsMap<G4double*>* EvtMap;
    
    
  private: // Needed for intermediate calculation (avoid multiple instantiation in Processing Hit)                                                          
    G4ThreeVector m_Position  ;
    G4int m_DetectorNumber    ;
    G4int m_SegmentNumber ;
    G4long m_Index             ;
    
  };
  
}

#endif