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