diff --git a/DDCore/include/DD4hep/Objects.h b/DDCore/include/DD4hep/Objects.h index 117d0c5ee191ffba17bfc9c0823aeb0916933ea6..b9af4179125fc593d357645c6a9c41cf5aac918f 100644 --- a/DDCore/include/DD4hep/Objects.h +++ b/DDCore/include/DD4hep/Objects.h @@ -202,7 +202,7 @@ namespace DD4hep { /// Constructor to be used when creating a new DOM tree Constant(const std::string& name, const std::string& val, const std::string& typ="number"); /// Access the constant - std::string type() const; + std::string dataType() const; /// String representation of this object std::string toString() const; }; diff --git a/DDCore/include/DD4hep/objects/ObjectsInterna.h b/DDCore/include/DD4hep/objects/ObjectsInterna.h index 2b57bea937abcf53aa2adcc2b4c7a34a37c82c57..770952e2b6769bc3a3708684da703cbef187c405 100644 --- a/DDCore/include/DD4hep/objects/ObjectsInterna.h +++ b/DDCore/include/DD4hep/objects/ObjectsInterna.h @@ -62,7 +62,7 @@ namespace DD4hep { class ConstantObject: public NamedObject { public: /// Constant type - std::string m_type; + std::string dataType; /// Standard constructor ConstantObject(const std::string& nam, const std::string& val, const std::string& typ); /// Default destructor diff --git a/DDCore/src/Objects.cpp b/DDCore/src/Objects.cpp index 32266010719f3165dd9718830a5d5a3772d825cd..b16e8490ca1dfb44d5fa94d41bb5ddc293a550ef 100644 --- a/DDCore/src/Objects.cpp +++ b/DDCore/src/Objects.cpp @@ -142,9 +142,9 @@ Constant::Constant(const string& name) { } /// Access the constant -string Constant::type() const { +string Constant::dataType() const { if ( isValid() ) { - return m_element->type; + return m_element->dataType; } throw runtime_error("DD4hep: Attempt to access internals from invalid Constant handle!"); } @@ -153,7 +153,7 @@ string Constant::type() const { string Constant::toString() const { stringstream os; os << m_element->GetName() << " \"" << m_element->GetTitle() << "\" "; - if ( m_element->m_type == "string" ) os << "Value:" << m_element->GetTitle(); + if ( m_element->dataType == "string" ) os << "Value:" << m_element->GetTitle(); else os << "Value:" << _toDouble(m_element->GetTitle()); return os.str(); } diff --git a/DDCore/src/ObjectsInterna.cpp b/DDCore/src/ObjectsInterna.cpp index 68b0d2057bfb15f54f1e8852050568e9adffb1e0..f7d0a4a2f1a02015c6278b26e7cad86da4fc9ca9 100644 --- a/DDCore/src/ObjectsInterna.cpp +++ b/DDCore/src/ObjectsInterna.cpp @@ -46,7 +46,7 @@ DD4HEP_INSTANTIATE_HANDLE_NAMED(ConstantObject); /// Standard constructor ConstantObject::ConstantObject(const string& nam, const string& val, const string& typ) : NamedObject(nam.c_str(), val.c_str()) { - m_type = typ; + dataType = typ; InstanceCount::increment(this); } diff --git a/DDDetectors/compact/SiD_Markus.xml b/DDDetectors/compact/SiD_Markus.xml new file mode 100644 index 0000000000000000000000000000000000000000..291df9cd849c7ecc321a8f2e64f05116d4dd8e79 --- /dev/null +++ b/DDDetectors/compact/SiD_Markus.xml @@ -0,0 +1,325 @@ +<lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd"> + + <info name="clic_sid_cdr" + title="CLIC Silicon Detector CDR" + author="Christian Grefe" + url="https://twiki.cern.ch/twiki/bin/view/CLIC/ClicSidCdr" + status="development" + version="$Id: compact.xml 1374 2014-11-05 10:49:55Z markus.frank@cern.ch $"> + <comment>The compact format for the CLIC Silicon Detector used for the conceptual design report</comment> + </info> + + <includes> + <gdmlFile ref="${materials_dir}/elements.xml"/> + <gdmlFile ref="${materials_dir}/materials.xml"/> + </includes> + + <define> + <constant name="materials_dir" value="." type="string"/>; + <constant name="SiD_dir" value="./SiD" type="string"/>; + <constant name="world_side" value="30000*mm"/> + <constant name="world_x" value="world_side"/> + <constant name="world_y" value="world_side"/> + <constant name="world_z" value="world_side"/> + + <constant name="CrossingAngle" value="0.020*rad"/> + + <constant name="CaloSides" value="12"/> + <constant name="MuonSides" value="8"/> + + <constant name="EcalBarrel_ID" value="6"/> + <constant name="EcalBarrel_rmin" value="126.50*cm + world_side - world_side"/> + <constant name="EcalBarrel_rmin" value="126.50*cm"/> + <constant name="EcalBarrel_zmax" value="176.50*cm"/> + + <constant name="EcalEndcap_ID" value="7"/> + <constant name="EcalEndcap_rmin" value="21.0*cm"/> + <!-- Correction from going from inner circle to outer circle --> + <constant name="EcalEndcap_rmax" value="(EcalBarrel_rmin - 1.5*cm) / (cos(pi/CaloSides))"/> + <constant name="EcalEndcap_zmin" value="165.70*cm"/> + + <constant name="HcalBarrel_ID" value="8"/> + <constant name="HcalBarrel_rmin" value="141.90*cm"/> + <constant name="HcalBarrel_layers" value="(int) 75"/> + <constant name="HcalBarrel_layer_thickness" value="1.0*cm + 0.65*cm"/> + + <constant name="HcalEndcap_ID" value="9"/> + <constant name="HcalEndcap_zmin" value="EcalBarrel_zmax + 4.0*cm"/> <!-- Gap for cables --> + <constant name="HcalEndcap_rmin" value="50.0*cm"/> + <!-- Correction from going from inner circle to outer circle --> + <constant name="HcalEndcap_rmax" value="(HcalBarrel_rmin + HcalBarrel_layers * HcalBarrel_layer_thickness) / (cos(pi/CaloSides))"/> + <constant name="HcalEndcap_layers" value="60"/> + <constant name="HcalEndcap_layer_thickness" value="2.0*cm + 0.65*cm"/> + <constant name="HcalEndcap_zmax" value="HcalEndcap_zmin + HcalEndcap_layers * HcalEndcap_layer_thickness"/> + + <constant name="HcalPlug_ID" value="10"/> + + + <constant name="tracking_region_radius" value="EcalBarrel_rmin - 1.0*mm"/> + <constant name="tracking_region_zmax" value="EcalEndcap_zmin - 1.0*mm"/> + <constant name="VXD_CF_sensor" value="0.026*cm"/> + <constant name="VXD_CF_support" value="0.05*cm"/> + + <constant name="SolenoidBarrelInnerRadius" value="HcalEndcap_rmax + 2.0*cm"/> + <constant name="SolenoidCoilOuterZ" value="HcalEndcap_zmax"/> <!-- Aligned with HCAL endcap --> + <constant name="SolenoidBarrelInnerCryostatThickness" value="3.0*cm"/> + <constant name="SolenoidBarrelInnerAirgapThickness" value="11.0*cm"/> + <constant name="SolenoidBarrelAlConductorThickness" value="38.4*cm"/> + <constant name="SolenoidBarrelQuenchbackThickness" value="5.0*cm"/> + <constant name="SolenoidBarrelOuterAirgapThickness" value="18.7*cm"/> + <constant name="SolenoidBarrelOuterCryostatThickness" value="4.0*cm"/> + <constant name="SolenoidEndcapCryostatThickness" value="6.0*cm"/> + <constant name="SolenoidEndcapAirgapThickness" value="12.0*cm"/> + <constant name="SolenoidBarrelOuterZ" value="SolenoidCoilOuterZ+SolenoidEndcapAirgapThickness"/> + <constant name="SolenoidBarrelConductorInnerRadius" value="SolenoidBarrelInnerRadius + SolenoidBarrelInnerCryostatThickness + SolenoidBarrelInnerAirgapThickness"/> + <constant name="SolenoidBarrelOuterCryostatInnerRadius" value="SolenoidBarrelConductorInnerRadius + SolenoidBarrelAlConductorThickness + SolenoidBarrelQuenchbackThickness"/> + <constant name="SolenoidBarrelOuterRadius" value="SolenoidBarrelOuterCryostatInnerRadius + SolenoidBarrelOuterAirgapThickness + SolenoidBarrelOuterCryostatThickness"/> + <constant name="SolenoidalFieldRadius" value="(SolenoidBarrelConductorInnerRadius + SolenoidBarrelAlConductorThickness / 2.0)"/> + + + <constant name="MuonBarrel_ID" value="11"/> + <constant name="MuonBarrel_rmin" value="SolenoidBarrelOuterRadius + 1.0*cm"/> + <constant name="MuonBarrel_zmax" value="SolenoidBarrelOuterZ + SolenoidEndcapCryostatThickness"/> + <constant name="MuonBarrel_layers" value="15"/> + <constant name="MuonBarrel_layer_thickness" value="10.0*cm + 4.0*cm"/> + + <constant name="MuonEndcap_ID" value="12"/> + <constant name="MuonEndcap_zmin" value="MuonBarrel_zmax + 10.0*cm"/> <!-- Space for cables etc. --> + <constant name="MuonEndcap_rmin" value="69.0*cm"/> <!-- Space for QD0 and anti-solenoid--> + <!-- Correction from going from inner circle to outer circle --> + <constant name="MuonEndcap_rmax" value="(MuonBarrel_rmin + 57.0*cm + MuonBarrel_layers*MuonBarrel_layer_thickness) / (cos(pi/MuonSides))"/> + <constant name="MuonEndcap_layers" value="18"/> + <constant name="MuonEndcap_layer_thickness" value="10.0*cm + 4.0*cm"/> + <constant name="MuonEndcap_zmax" value="MuonEndcap_zmin + MuonEndcap_layers * MuonEndcap_layer_thickness"/> + + <constant name="LumiCal_rmin" value="6.4*cm"/> + <constant name="LumiCal_rmax" value="EcalEndcap_rmin + 3.0*cm"/> + <constant name="LumiCal_zmin" value="HcalEndcap_zmin"/> + <constant name="LumiCal_thickness" value="20*0.371*cm + 15*0.643*cm"/> + <constant name="LumiCal_zmax" value="LumiCal_zmin + LumiCal_thickness"/> + <constant name="LumiCalElectronics_rmax" value="LumiCal_rmax+5.0*cm"/> + + <constant name="SupportTube_thickness" value="1.0*cm"/> + <constant name="ForwardVacuumValve_thickness" value="36.0*cm"/> + <constant name="ForwardShielding_thickness" value="5.0*cm"/> + <constant name="ForwardMask_thickness" value="10.0*cm"/> + <constant name="ForwardMask_zmin" value="LumiCal_zmax + ForwardShielding_thickness + ForwardVacuumValve_thickness"/> + + <constant name="VertexSupport_r1" value="16.87*cm"/> + <constant name="VertexSupport_r2" value="18.42*cm"/> + <constant name="VertexSupport_zmax" value="89.48*cm"/> + + + <constant name="VertexBarrel_ID" value="1"/> + <constant name="VertexBarrel_zmax" value="10.0*cm"/> + <constant name="VertexBarrel_r1" value="2.7*cm"/> + <constant name="VertexBarrel_r2" value="3.8*cm"/> + <constant name="VertexBarrel_r3" value="5.1*cm"/> + <constant name="VertexBarrel_r4" value="6.4*cm"/> + <constant name="VertexBarrel_r5" value="7.7*cm"/> + + + <constant name="CentralBeamPipe_zmax" value="23.0*cm"/> + <constant name="CentralBeamPipe_rmax" value="VertexBarrel_r1 - 0.2*cm"/> + <constant name="CentralBeamPipe_thickness" value="CentralBeamPipe_rmax * 0.02"/> <!-- 1% of the diameter --> + <constant name="CentralBeamPipe_rmin" value="CentralBeamPipe_rmax - CentralBeamPipe_thickness"/> + <constant name="BeamPipe_thickness" value="0.4*cm"/> + <constant name="BeamPipe_endThickness" value="0.1*cm"/> + <constant name="BeamPipe_zmax" value="LumiCal_zmin - 0.5*cm"/> + <constant name="BeamPipe_rmax" value="19.0*cm"/> + <constant name="BeamPipe_rmin" value="BeamPipe_rmax - BeamPipe_thickness"/> + <constant name="bp_cone_slope" value="(BeamPipe_rmax-CentralBeamPipe_rmax)/(tracking_region_zmax-CentralBeamPipe_zmax)"/> + <constant name="BeamPipe_zmin" value="CentralBeamPipe_zmax + (BeamPipe_thickness - CentralBeamPipe_thickness)/bp_cone_slope"/> + <constant name="BeamPipeLiner_thickness" value="0.0*cm"/> + + <constant name="VertexEndcap_ID" value="2"/> + <constant name="VertexEndcap_rmax" value="11.5*cm"/> + <constant name="VertexEndcap_z1" value="12.0*cm"/> + <constant name="VertexEndcap_z2" value="16.0*cm"/> + <constant name="VertexEndcap_z3" value="20.0*cm"/> + <constant name="VertexEndcap_z4" value="24.0*cm"/> + <constant name="VertexEndcap_offset" value="0.2*cm"/> + <constant name="VertexEndcapModules" value="16"/> + <constant name="VertexEndcap_rmin1" value="CentralBeamPipe_rmax + VertexEndcap_offset"/> + <constant name="VertexEndcap_rmin2" value="CentralBeamPipe_rmax + VertexEndcap_offset"/> + <constant name="VertexEndcap_rmin3" value="CentralBeamPipe_rmax + VertexEndcap_offset"/> + <constant name="VertexEndcap_rmin4" value="(VertexEndcap_z4 - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + VertexEndcap_offset"/> + + <constant name="SiTrackerBarrel_ID" value="3"/> + <constant name="SiTrackerEndcap_ID" value="4"/> + + <constant name="ForwardTracker_ID" value="5"/> + <constant name="ForwardTrackerModules" value="16"/> + <constant name="ForwardTracker_rmax" value="16.87*cm"/> + <constant name="ForwardTracker_z1" value="28.0*cm"/> + <constant name="ForwardTracker_z2" value="50.0*cm"/> + <constant name="ForwardTracker_z3" value="83.0*cm"/> + <constant name="ForwardTracker_offset" value="0.2*cm"/> + <constant name="ForwardTracker_rmin1" value="(ForwardTracker_z1 - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + ForwardTracker_offset"/> + <constant name="ForwardTracker_rmin2" value="(ForwardTracker_z2 - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + ForwardTracker_offset"/> + <constant name="ForwardTracker_rmin3" value="(ForwardTracker_z3 - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + ForwardTracker_offset"/> + + <constant name="VertexService_zmin" value="ForwardTracker_z1 + 1.0*cm"/> + <constant name="VertexService_zmax" value="VertexService_zmin + 2.0*cm"/> + <constant name="VertexServiceThickness" value="0.3*cm"/> + <constant name="VertexCableThickness" value="0.005*cm"/> + + <constant name="BeamCal_rmax" value="13.0*cm"/> + <constant name="BeamCal_zmin" value="ForwardMask_zmin + ForwardMask_thickness"/> + + <constant name="IncomingBP_radius" value="0.25*cm"/> + <constant name="IncomingBP_thickness" value="0.05*cm"/> + <constant name="OutgoingBP_radius" value="tan(CrossingAngle/2/rad)*BeamCal_zmin"/> + <constant name="OutgoingBP_thickness" value="0.1*cm"/> + + <constant name="BeamCal_crossingAngle" value="CrossingAngle"/> + <constant name="BeamCal_outgoing_r" value="OutgoingBP_radius + 0.05*cm"/> + <constant name="BeamCal_incoming_r" value="IncomingBP_radius + 0.05*cm"/> + + </define> + + + <limits> + <limitset name="cal_limits"> + <limit name="step_length_max" particles="*" value="5.0" unit="mm" /> + </limitset> + <limitset name="SiTrackerBarrelRegionLimitSet"> + <limit name="step_length_max" particles="*" value="5.0" unit="mm" /> + <limit name="track_length_max" particles="*" value="5.0" unit="mm" /> + <limit name="time_max" particles="*" value="5.0" unit="ns" /> + <limit name="ekin_min" particles="*" value="0.01" unit="MeV" /> + <limit name="range_min" particles="*" value="5.0" unit="mm" /> + </limitset> + </limits> + <regions> + <region name="SiTrackerBarrelRegion" eunit="MeV" lunit="mm" cut="0.001" threshold="0.001"> + <limitsetref name="SiTrackerBarrelRegionLimitSet"/> + </region> + </regions> + + + <comment>Common Generic visualization attributes</comment> + <display> + <vis name="InvisibleNoDaughters" showDaughters="false" visible="false"/> + <vis name="InvisibleWithDaughters" showDaughters="true" visible="false"/> + <vis name="GreenVis" alpha="1" r="0.0" g="1.0" b="0.0" showDaughters="true" visible="true"/> + <vis name="RedVis" alpha="1" r="1.0" g="0.0" b="0.0" showDaughters="true" visible="true"/> + <vis name="BlueVis" alpha="1" r="0.0" g="0.0" b="1.0" showDaughters="true" visible="true"/> + </display> + + <comment>Additional design specific material definitions</comment> + <include ref="${SiD_dir}/SiD_Materials.xml"/> +<!-- + <display> + <vis name="SiTrackerLayerVis" alpha="1.0" r="1.0" g="1.0" b="0.6" showDaughters="true" visible="true"/> + <vis name="SiTrackerModuleVis" alpha="0.1" r="0.0" g="1.0" b="0.6" showDaughters="false" visible="true"/> + <vis name="SiTrackerForwardVis" alpha="1.0" r="0.8" g="0.1" b="0.1" showDaughters="false" visible="true"/> + </display> + + <readouts> + <readout name="SiTrackerBarrelHits"> + <id>system:8,barrel:3,layer:4,module:14,sensor:2,side:32:-2,strip:20</id> + </readout> + </readouts> +--> + <!-- Includes for sensitives and support --> + <!-- include ref="SiD/SiD_TrackerBarrel.xml" --> + + <comment>Tracking detectors</comment> + <include ref="${SiD_dir}/SiD_Tracker.xml"/> + <plugins> + <plugin name="DD4hep_SiTrackerBarrelSurfacePlugin"> + <argument value="SiTrackerBarrel"/> + </plugin> + </plugins> + +<!-- + + <include ref="SiD/SiD_Ecal.xml"/> + <plugins> + <plugin name="TestSurfaces"><argument value="EcalEndcap"/></plugin> + <plugin name="DD4hep_PolyhedraEndcapCalorimeterSurfacePlugin"><argument value="EcalEndcap"/></plugin> + <plugin name="DD4hep_SiTrackerBarrelSurfacePlugin"><argument value="EcalBarrel"/></plugin> + </plugins> + + <plugin name="DD4hep_SiTrackerBarrelSurfacePlugin"> + <argument value="SiTrackerBarrel"/> + </plugin> + <plugin name="TestSurfaces"><argument value="SiTrackerBarrel"/></plugin> + + <plugin name="TestSurfaces"> <argument value="EcalEndcap"/></plugin> + <plugin name="DD4hep_SiTrackerEndcapSurfacePlugin"><argument value="EcalEndcap"/></plugin> + + <plugin name="SubdetectorExtensionPlugin"> <argument value="EcalEndcap"/></plugin> + <plugin name="LayeringExtensionPlugin"> <argument value="EcalEndcap"/></plugin> + + <include ref="SiD/SiD_Ecal.xml"/> + <plugin name="TestSurfaces"> <argument value="EcalBarrel"/></plugin> + <plugin name="SubdetectorExtensionPlugin"> <argument value="EcalBarrel"/></plugin> + <plugin name="LayeringExtensionPlugin"> <argument value="EcalBarrel"/></plugin> + <plugin name="DD4hep_SiTrackerBarrelSurfacePlugin"><argument value="EcalBarrel"/></plugin> + + <include ref="SiD/SiD_HcalBarrel.xml"/> + <plugin name="TestSurfaces"> <argument value="HcalBarrel"/></plugin> + <plugin name="SubdetectorExtensionPlugin"> <argument value="HcalBarrel"/></plugin> + <plugin name="LayeringExtensionPlugin"> <argument value="HcalBarrel"/></plugin> + <plugin name="DD4hep_SiTrackerBarrelSurfacePlugin"><argument value="HcalBarrel"/></plugin> + + <include ref="SiD/SiD_Muon.xml"/> + <plugins> + <plugin name="SubdetectorExtensionPlugin"> <argument value="MuonBarrel"/></plugin> + <plugin name="LayeringExtensionPlugin"> <argument value="MuonBarrel"/></plugin> + <plugin name="DD4hep_SiTrackerBarrelSurfacePlugin"><argument value="MuonBarrel"/></plugin> + </plugins> +--> +<!-- + <plugins> + <plugin name="TestSurfaces"> + <argument value="SiTrackerEndcap"/> + </plugin> + </plugins> + + <include ref="SiD/SiD_Tracker.xml"/> + <plugins> + <plugin name="DD4hep_SiTrackerEndcapSurfacePlugin"> + <argument value="SiTrackerEndcap"/> + </plugin> + </plugins> + <plugins> + <plugin name="DD4hep_SiTrackerBarrelSurfacePlugin"> + <argument value="SiTrackerBarrel"/> + </plugin> + </plugins> + <include ref="SiD/SiD_TrackerEndcap.xml"/> + <include ref="SiD/SiD_TrackerBarrel.xml"/> +--> +<!-- + <include ref="SiD/SiD_Vertex.xml"/> + + <comment>Calorimeters</comment> + <include ref="SiD/SiD_Ecal.xml"/> + <include ref="SiD/SiD_Hcal.xml"/> + <include ref="SiD/SiD_HcalPlug.xml"/> + <include ref="SiD/SiD_Muon.xml"/> + <include ref="SiD/SiD_Lumical.xml"/> + <include ref="SiD/SiD_Beamcal.xml"/> + + <comment>Dead material and supports</comment> + <include ref="SiD/SiD_Solenoid.xml"/> + <include ref="SiD/SiD_Shields.xml"/> + + <comment>Beampipe</comment> + <include ref="SiD/SiD_Beampipe.xml"/> + + <fields> + <field name="GlobalSolenoid" type="solenoid" + inner_field="5.0*tesla" + outer_field="-1.5*tesla" + zmax="SolenoidCoilOuterZ" + outer_radius="SolenoidalFieldRadius"> + </field> + </fields> +--> +</lccdd> diff --git a/DDG4/examples/CLICSidSimuLCIO.py b/DDG4/examples/CLICSidSimuLCIO.py index f3ad1b4e89441fcbe61719b407ca1c0b514a23ef..49f8861de38df01eefc17890bc751bae044a94c1 100644 --- a/DDG4/examples/CLICSidSimuLCIO.py +++ b/DDG4/examples/CLICSidSimuLCIO.py @@ -78,18 +78,21 @@ def run(): kernel.generatorAction().add(rdr) """ - # Setup global filters fur use in sensntive detectors + # Setup global filters fur use in sensintive detectors f1 = DDG4.Filter(kernel,'GeantinoRejectFilter/GeantinoRejector') + kernel.registerGlobalFilter(f1) + f2 = DDG4.Filter(kernel,'ParticleRejectFilter/OpticalPhotonRejector') f2.particle = 'opticalphoton' + kernel.registerGlobalFilter(f2) + f3 = DDG4.Filter(kernel,'ParticleSelectFilter/OpticalPhotonSelector') f3.particle = 'opticalphoton' + kernel.registerGlobalFilter(f3) + f4 = DDG4.Filter(kernel,'EnergyDepositMinimumCut') f4.Cut = 10*MeV f4.enableUI() - kernel.registerGlobalFilter(f1) - kernel.registerGlobalFilter(f2) - kernel.registerGlobalFilter(f3) kernel.registerGlobalFilter(f4) # First the tracking detectors diff --git a/DDG4/lcio/LCIOEventReader.cpp b/DDG4/lcio/LCIOEventReader.cpp index 0272241b6c8514649113cce1926feeb504344551..a6a94eaa6f61be7b104849f79da349cf45e95245 100644 --- a/DDG4/lcio/LCIOEventReader.cpp +++ b/DDG4/lcio/LCIOEventReader.cpp @@ -30,6 +30,7 @@ typedef DD4hep::ReferenceBitMask<int> PropertyMask; namespace DD4hep{namespace Simulation{typedef Geant4InputAction LCIOInputAction;}} DECLARE_GEANT4ACTION(LCIOInputAction) + namespace { inline int GET_ENTRY(const map<EVENT::MCParticle*,int>& mcparts, EVENT::MCParticle* part) { map<EVENT::MCParticle*,int>::const_iterator ip=mcparts.find(part); @@ -76,13 +77,12 @@ LCIOEventReader::readParticles(int event_number, vector<Particle*>& particles) mcpcoll.resize(NHEP,0); for(int i=0; i<NHEP; ++i ) { - EVENT::MCParticle* p=dynamic_cast<EVENT::MCParticle*>(primaries->getElementAt(i)); + EVENT::MCParticle* p = dynamic_cast<EVENT::MCParticle*>(primaries->getElementAt(i)); mcparts[p] = i; mcpcoll[i] = p; } // build collection of MCParticles - G4ParticleTable* tab = G4ParticleTable::GetParticleTable(); for(int i=0; i<NHEP; ++i ) { EVENT::MCParticle* mcp = mcpcoll[i]; Geant4ParticleHandle p(new Particle(i)); @@ -91,11 +91,9 @@ LCIOEventReader::readParticles(int event_number, vector<Particle*>& particles) const double *vex = mcp->getEndpoint(); const float *spin = mcp->getSpin(); const int *color = mcp->getColorFlow(); - int pdg = mcp->getPDG(); - //if ( 0 == pdg ) pdg = 211; - const G4ParticleDefinition* def = tab->FindParticle(pdg); + const int pdg = mcp->getPDG(); PropertyMask status(p->status); - p->pdgID = pdg;//mcp->getPDG(); + p->pdgID = pdg; p->charge = int(mcp->getCharge()*3.0); p->psx = mom[0]*GeV; p->psy = mom[1]*GeV; @@ -108,7 +106,6 @@ LCIOEventReader::readParticles(int event_number, vector<Particle*>& particles) p->vex = vex[0]*mm; p->vey = vex[1]*mm; p->vez = vex[2]*mm; - //p->definition = def; p->process = 0; p->spin[0] = spin[0]; p->spin[1] = spin[1]; diff --git a/DDG4/python/DDG4.py b/DDG4/python/DDG4.py index 5f606ad060d198478a9e8e1e6050cd82e2bd3cd8..99d178d9459d30d04e8407e2803d9101ab293669 100644 --- a/DDG4/python/DDG4.py +++ b/DDG4/python/DDG4.py @@ -55,8 +55,12 @@ def importConstants(lcdd,namespace=None,debug=False): cnt = 0 num = 0 todo = {} - for c in lcdd.constants(): - todo[c.first] = c.second.GetTitle().replace('(int)','') + strings = {} + for c in lcdd.constants(): + if c.second.dataType != 'string': + strings[c.first] = c.second.GetTitle() + else: + todo[c.first] = c.second.GetTitle().replace('(int)','') while len(todo) and cnt<100: cnt = cnt + 1 if cnt == 100: @@ -264,6 +268,8 @@ class Simple: def setupDetector(self,name,sensitive_type): seq = SensitiveSequence(self.kernel,'Geant4SensDetActionSequence/'+name) act = SensitiveAction(self.kernel,sensitive_type+'/'+name+'Handler',name) + seq.enableUI() + act.enableUI() seq.add(act) return (seq,act) diff --git a/doc/doxygen/DD4hepMainpage.dox b/doc/doxygen/DD4hepMainpage.dox index be887d8cd110110fdcc63799c6ae2ce751b8cc23..129a4ae67bf2a2edde43789bedeff3f5cd11ed18 100644 --- a/doc/doxygen/DD4hepMainpage.dox +++ b/doc/doxygen/DD4hepMainpage.dox @@ -221,6 +221,7 @@ Here you can find the manuals: - The <A href="../DDEveManual.pdf">DDEve manual</A> to visualize DD4hep geometries. (Under construction though). - <A href="../DD4hep_Diagrams.pdf">UML diagrams</A> from the design phase +- <A href="../refman.pdf">Doxygen Manual</A> in pdf format - <A href="../DD4hep_Tutorial.pdf">Tutorial</A>. Relatively old... - <A href="http://cds.cern.ch/record/1473120/files/AIDA-D2_3.pdf">Design document</A> - <A href="https://sft.its.cern.ch/jira/browse/DDFORHEP">DD4hep bug tracker</A>