Skip to content
Snippets Groups Projects
Commit 5868563e authored by Dmitriy Maximov's avatar Dmitriy Maximov Committed by Graeme Stewart
Browse files

Fix: LArWheelSolid DistanceToIn/DistanceToOut calculations for points on...

Fix: LArWheelSolid DistanceToIn/DistanceToOut calculations for points on surface. ATLASSIM-1815 (Geo2G4-00-06-10)

	* Fix: LArWheelSolid DistanceToIn/DistanceToOut calculations for points on surface. ATLASSIM-1815.
	* Tagging: Geo2G4-00-06-10

2015-05-22  John Chapman  <John.Chapman@cern.ch>

	* cmt/requirements: Remove use of the install_runtime pattern.
	* Tagging: Geo2G4-00-06-09

2015-04-27 Andrey Sukharev <Andrey.Sukharev@cern.ch>
	* LArWheelSolid performance improvements, code cleanup and bug fixes.
	* Tagging: Geo2G4-00-06-08

2015-03-13 Dmitriy Maximov <Dmitriy.Maximov@cern.ch>
	* Extend debug possibilities: Modifications in Geo2G4SolidFactory to publish LArWheelSolidDDProxy in DetectorStore. LArWheelSolidDDProxy is an intermidiate class to call LArWheelSolid methods outside of Geant.
	* Tagging: Geo2G4-00-06-07

2015-03-12  Zach Marshall <ZLMarshall@lbl.gov>

	* Moving to a dual_use_library for the infrastructure migration.  This
	shouldn't affect normal running, it's just a sign that this package needs
...
(Long ChangeLog diff - truncated)
parent 992be0cf
No related branches found
No related tags found
No related merge requests found
Showing
with 12 additions and 101 deletions
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
...@@ -2,8 +2,7 @@ package Geo2G4 ...@@ -2,8 +2,7 @@ package Geo2G4
author ADA author ADA
branches src cmt public
use AtlasPolicy AtlasPolicy-* use AtlasPolicy AtlasPolicy-*
use AthenaKernel AthenaKernel-* Control use AthenaKernel AthenaKernel-* Control
use GaudiInterface GaudiInterface-* External use GaudiInterface GaudiInterface-* External
...@@ -19,6 +18,7 @@ use GeoSpecialShapes GeoSpecialShapes-* DetectorDescription/GeoModel ...@@ -19,6 +18,7 @@ use GeoSpecialShapes GeoSpecialShapes-* DetectorDescription/GeoModel
use GeoModelInterfaces GeoModelInterfaces-* DetectorDescription/GeoModel use GeoModelInterfaces GeoModelInterfaces-* DetectorDescription/GeoModel
use StoreGate StoreGate-* Control use StoreGate StoreGate-* Control
use SimHelpers SimHelpers-* Simulation/G4Sim use SimHelpers SimHelpers-* Simulation/G4Sim
use SGTools SGTools-* Control
end_private end_private
include_dirs "$(Geo2G4_root)" "$(Geo2G4_root)/Geo2G4" include_dirs "$(Geo2G4_root)" "$(Geo2G4_root)/Geo2G4"
...@@ -26,14 +26,15 @@ include_dirs "$(Geo2G4_root)" "$(Geo2G4_root)/Geo2G4" ...@@ -26,14 +26,15 @@ include_dirs "$(Geo2G4_root)" "$(Geo2G4_root)/Geo2G4"
# Specify the required ROOT components for cmake (transparent to CMT) # Specify the required ROOT components for cmake (transparent to CMT)
apply_pattern cmake_add_command command="find_package(ROOT COMPONENTS MathCore RIO)" apply_pattern cmake_add_command command="find_package(ROOT COMPONENTS MathCore RIO)"
# Specify to cmake that this package has a non-standard include path (transparent to CMT) # ZLM to CMake folks: I believe that now that this is dual use and cleaner, these are not needed?
apply_pattern cmake_add_command command="include_directories(Geo2G4)" ## Specify to cmake that this package has a non-standard include path (transparent to CMT)
#apply_pattern cmake_add_command command="include_directories(Geo2G4)"
# Override the library type for cmake so that it is linkable by clients (transparent to CMT) #
apply_pattern cmake_override_library_type library=Geo2G4 type=installed_library ## Override the library type for cmake so that it is linkable by clients (transparent to CMT)
#apply_pattern cmake_override_library_type library=Geo2G4 type=installed_library
library Geo2G4 ../src/*.cxx -s=components *.cxx
apply_pattern component_library apply_pattern dual_use_library files="*.cxx"
apply_pattern install_runtime # Make dict for LArWheelSolidChecker
use AtlasReflex AtlasReflex-* External -no_auto_imports
apply_pattern lcgdict dict=LArWheelSolidChecker selectionfile=../src/lcg_dict/selection.xml headerfiles="../src/LArWheelSolidDDProxy.h"
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
#include "GenericVolumeBuilder.h"
#include "Geo2G4LogicalVolumeFactory.h"
#include "SimHelpers/ServiceAccessor.h"
#include "GeoModelKernel/GeoLogVol.h"
#include "AthenaBaseComps/AthMsgStreamMacros.h"
#include "G4PVPlacement.hh"
#include "G4ReflectionFactory.hh"
#include "globals.hh"
#include <iostream>
LogicalVolume* GenericVolumeBuilder::Build(const PVConstLink theGeoPhysVolume, OpticalVolumesMap* /*optical_volumes*/) const
{
static Geo2G4LogicalVolumeFactory LVFactory;
const GeoLogVol * geoLog = theGeoPhysVolume->getLogVol();
ATH_MSG_DEBUG ( " Start converting volume "<<geoLog->getName() );
G4LogicalVolume * theG4LogVolume = LVFactory.Build(geoLog);
if (theGeoPhysVolume->getNChildVols()==0) return theG4LogVolume;
if (theG4LogVolume->GetNoDaughters() ) return theG4LogVolume;
//
// Loop over the children of the GeoVolume and place them
//
for(size_t ii = 0; ii<theGeoPhysVolume->getNChildVols(); ii++)
{
std::string nameChild = theGeoPhysVolume->getNameOfChildVol(ii);
//
// Get the id from GeoModel
Query<int> Qint = theGeoPhysVolume->getIdOfChildVol(ii);
int id = 90999;
if(Qint.isValid() ) id = Qint;
//
// Get the child Phys volume ii
//
PVConstLink theGeoPhysChild = theGeoPhysVolume->getChildVol(ii);
//
// Build the child
//
G4LogicalVolume* theG4LogChild = Build(theGeoPhysChild);
// Get its transform
const G4Transform3D theG4Position(theGeoPhysVolume->getXToChildVol(ii));
if (nameChild == "ANON") nameChild=theG4LogChild->GetName();
// log<<MSG::VERBOSE<<"\t Positioning "<<theG4LogChild->GetName()<<
// " into "<<theG4LogVolume->GetName()<< " with name "<<nameChild
// << "and Id:" << id <<endreq;
G4ReflectionFactory::Instance()->Place(theG4Position,
nameChild,
theG4LogChild,
theG4LogVolume,
false,
id);
}
return theG4LogVolume;
}
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
#ifndef GenericVolumeBuilder_H
#define GenericVolumeBuilder_H
#include "Geo2G4/VolumeBuilder.h"
#include "AthenaKernel/MsgStreamMember.h"
class GenericVolumeBuilder: public VolumeBuilder
{
public:
GenericVolumeBuilder(std::string n):VolumeBuilder(n),m_msg(n)
{}
LogicalVolume* Build(PVConstLink pv, OpticalVolumesMap* optical_volumes = 0) const;
/// Log a message using the Athena controlled logging system
MsgStream& msg( MSG::Level lvl ) const { return m_msg << lvl; }
/// Check whether the logging system is active at the provided verbosity level
bool msgLvl( MSG::Level lvl ) const { return m_msg.get().level() <= lvl; }
private:
/// Private message stream member
mutable Athena::MsgStreamMember m_msg;
};
#endif
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment