Geant4 Cross Reference |
1 // 2 // ******************************************************************** 3 // * License and Disclaimer * 4 // * * 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. * 10 // * * 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitation of liability. * 17 // * * 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************************************** 25 // 26 /////////////////////////////////////////////////////////////////////////////// 27 // File: CCalHit.cc 28 // Description: Hit class for Calorimeters (Ecal, Hcal, ...) 29 /////////////////////////////////////////////////////////////////////////////// 30 31 #include "CCalHit.hh" 32 #include <iostream> 33 34 35 CCalHit::CCalHit() : 36 entry(0), theIncidentEnergy(0.0), theTrackID(-1), 37 theUnitID(0), theTimeSlice(0.0), theEnergyDeposit(0.0) 38 {} 39 40 41 CCalHit::~CCalHit() {} 42 43 44 CCalHit::CCalHit(const CCalHit &right) : 45 entry( right.entry ), 46 theIncidentEnergy( right.theIncidentEnergy ), 47 theTrackID( right.theTrackID ), 48 theUnitID( right.theUnitID ), 49 theTimeSlice( right.theTimeSlice ), 50 theEnergyDeposit( right.theEnergyDeposit ) 51 {} 52 53 54 const CCalHit& CCalHit::operator=(const CCalHit &right) { 55 entry = right.entry; 56 theIncidentEnergy = right.theIncidentEnergy; 57 theTrackID = right.theTrackID; 58 theUnitID = right.theUnitID; 59 theTimeSlice = right.theTimeSlice; 60 theEnergyDeposit = right.theEnergyDeposit; 61 return *this; 62 } 63 64 65 CLHEP::Hep3Vector CCalHit::getEntry() const {return entry;} 66 void CCalHit::setEntry(CLHEP::Hep3Vector xyz) { entry = xyz; } 67 68 G4double CCalHit::getIncidentEnergy() const {return theIncidentEnergy; } 69 void CCalHit::setIncidentEnergy (G4double e){theIncidentEnergy = e; } 70 71 G4int CCalHit::getTrackID() const {return theTrackID; } 72 void CCalHit::setTrackID (G4int i) { theTrackID = i; } 73 74 unsigned int CCalHit::getUnitID() const {return theUnitID; } 75 void CCalHit::setUnitID (unsigned int i) { theUnitID = i; } 76 77 G4double CCalHit::getTimeSlice() const {return theTimeSlice; } 78 void CCalHit::setTimeSlice (G4double d) { theTimeSlice = d; } 79 G4int CCalHit::getTimeSliceID() const { if ( theTimeSlice > 1.0E9 ) return 999999999; 80 return (G4int)theTimeSlice;} 81 82 void CCalHit::setEnergyDeposit(const G4double e) { 83 theEnergyDeposit = e; 84 } 85 86 G4double CCalHit::getEnergyDeposit() const { 87 return theEnergyDeposit; 88 } 89 90 void CCalHit::addEnergyDeposit(const CCalHit& aHit) { 91 addEnergyDeposit( aHit.getEnergyDeposit() ); 92 } 93 94 void CCalHit::addEnergyDeposit(const G4double e) { 95 theEnergyDeposit += e; 96 } 97 98 99 void CCalHit::print() { 100 G4cout << (*this); 101 } 102 103 104 std::ostream& operator<<(std::ostream& os, const CCalHit& hit) { 105 os << " Data of this CCalHit are:"<< G4endl 106 << " \t Time slice ID: " << hit.getTimeSliceID() << G4endl 107 << " \t Energy of primary particle (ID = " << hit.getTrackID() 108 << ") = " << hit.getIncidentEnergy() << " (MeV)"<< G4endl 109 << " \t Entry point in Calorimeter unit number " << hit.getUnitID() 110 << " is: " << hit.getEntry() << " (mm)" << G4endl 111 << " \t EnergyDeposit = " << hit.getEnergyDeposit() << " (MeV)" << G4endl; 112 return os; 113 } 114