Newer
Older
//==========================================================================
// AIDA Detector description implementation
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
// Author : M.Frank
//
//==========================================================================
// Framework include files
Markus Frank
committed
#include <DDG4/Geant4HitHandler.h>
#include <DD4hep/DD4hepUnits.h>
#include <CLHEP/Units/SystemOfUnits.h>
// Geant4 include files
#include <G4NavigationHistory.hh>
using namespace dd4hep::sim;
/// Coordinate transformation to global coordinate.
dd4hep::Position Geant4HitHandler::localToGlobal(const DDSegmentation::Vector3D& local) const {
return localToGlobal(G4ThreeVector(local.X / dd4hep::mm,local.Y / dd4hep::mm,local.Z / dd4hep::mm));
}
/// Coordinate transformation to global coordinates.
dd4hep::Position Geant4HitHandler::localToGlobal(const Position& local) const {
return localToGlobal(G4ThreeVector(local.X(),local.Y(),local.Z()));
}
/// Coordinate transformation to global coordinates
dd4hep::Position Geant4HitHandler::localToGlobal(double x, double y, double z) const {
return localToGlobal(G4ThreeVector(x,y,z));
}
/// Coordinate transformation to global coordinates
dd4hep::Position Geant4HitHandler::localToGlobal(const G4ThreeVector& loc) const {
Markus Frank
committed
G4ThreeVector p = touchable_ptr->GetHistory()->GetTopTransform().Inverse().TransformPoint(loc);
return Position(p.x(),p.y(),p.z());
}
/// Coordinate transformation to local coordinates
dd4hep::Position Geant4HitHandler::globalToLocal(double x, double y, double z) const {
G4ThreeVector p = globalToLocalG4(G4ThreeVector(x,y,z));
return Position(p.x(),p.y(),p.z());
}
/// Coordinate transformation to local coordinates
dd4hep::Position Geant4HitHandler::globalToLocal(const Position& global) const {
G4ThreeVector p = globalToLocalG4(G4ThreeVector(global.X(),global.Y(),global.Z()));
return Position(p.x(),p.y(),p.z());
}
/// Coordinate transformation to local coordinates
dd4hep::Position Geant4HitHandler::globalToLocal(const G4ThreeVector& global) const {
G4ThreeVector p = globalToLocalG4(global);
return Position(p.x(),p.y(),p.z());
}
/// Coordinate transformation to local coordinates
Markus Frank
committed
G4ThreeVector Geant4HitHandler::globalToLocalG4(double x, double y, double z) const {
return globalToLocalG4(G4ThreeVector(x,y,z));
}
/// Coordinate transformation to local coordinates
Markus Frank
committed
G4ThreeVector Geant4HitHandler::globalToLocalG4(const G4ThreeVector& global) const {
return touchable_ptr->GetHistory()->GetTopTransform().TransformPoint(global);