Skip to content

Commit 96fee00

Browse files
committed
Merge branch 'develop' into geom-separate
# Conflicts: # icarusalg/Geometry/geometry_icarus.fcl
2 parents cb596e2 + 91b7d17 commit 96fee00

36 files changed

Lines changed: 135241 additions & 433 deletions

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
cmake_minimum_required(VERSION 3.20 FATAL_ERROR)
1717
# cmake_policy(VERSION 3.19)
1818

19-
find_package(cetmodules 3.20.00 REQUIRED)
20-
project(icarusalg VERSION 09.78.06 LANGUAGES CXX)
19+
find_package(cetmodules 3.24.01 REQUIRED)
20+
project(icarusalg VERSION 09.88.00.02 LANGUAGES CXX)
2121

2222
message(STATUS
2323
"\n-- ============================================================================="

fcl/services/detectorproperties_icarus.fcl

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ BEGIN_PROLOG
44

55
icarus_detproperties: {
66
@table::standard_detproperties
7-
7+
88
ElectronsToADC: 1.208041e-3 # in ADC/e; 6241.5 electrons = 1fC
99
Temperature: 87.5
1010
Electronlifetime: 3000 # As agreed 3/17/22 to match measured value in East croystat
@@ -13,13 +13,15 @@ icarus_detproperties: {
1313

1414
# Set this true to use the non-default "ICARUS+MicroBooNE" calcultaion for drift velocity
1515
UseIcarusMicrobooneDriftModel: true
16-
16+
1717
SternheimerA: 0.1956 # Ar Sternheimer parameter a.
1818
SternheimerK: 3.0000 # Ar Sternheimer parameter k.
1919
SternheimerX0: 0.2000 # Ar Sternheimer parameter x0.
2020
SternheimerX1: 3.0000 # Ar Sternheimer parameter x0.
2121
SternheimerCbar: 5.2146 # Ar Sternheimer parameter Cbar.
22-
22+
23+
DriftVelFudgeFactor: 0.99733
24+
2325
NumberTimeSamples: 4096
2426
TimeOffsetU: 0.
2527
TimeOffsetV: 0.
@@ -31,7 +33,7 @@ icarus_detproperties: {
3133
SimpleBoundaryProcess: false # relevant only when using full Optical simulation
3234

3335
IncludeInterPlanePitchInXTickOffsets: false # removed by deconvolution
34-
36+
3537
} // icarus_detproperties
3638

3739
END_PROLOG

fcl/services/opticalproperties_icarus.fcl

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,10 @@
1010

1111
BEGIN_PROLOG
1212

13+
# ------------------------------------------------------------------------------
14+
# Configuration used until January 2024 for standard processing
1315
#
14-
# Optical properties for LArProperties
15-
#
16-
# Use as:
17-
#
18-
# service.LArPropertiesService: {
19-
# ...
20-
# @table::icarus_opticalproperties
21-
# ...
22-
# }
23-
#
24-
#
25-
icarus_opticalproperties: {
16+
icarus_opticalproperties_2022: {
2617

2718
ScintYield: 24000 # 24000 ph/MeV assume 500 mV/cm
2819
ScintPreScale: 0.121 # see JINST 13 (2018) 12, P12020
@@ -72,7 +63,35 @@ icarus_opticalproperties: {
7263
]
7364

7465

75-
} # icarus_opticalproperties
66+
} # icarus_opticalproperties_2022
67+
68+
69+
# ------------------------------------------------------------------------------
70+
# The following is based on SBN DocDB 34640, showing an empirical choice
71+
# to reconciliate the mean value of MC hit amplitude with data
72+
#
73+
icarus_opticalproperties_202401patch: {
74+
@table::icarus_opticalproperties_2022
75+
76+
ScintPreScale: 0.073 # test value, empiric; see SBN DocDB 34640
77+
# MUST match between g4 and detsim
78+
79+
} # icarus_opticalproperties_202401patch
80+
81+
82+
# ##############################################################################
83+
# Standard optical properties for LArProperties
84+
#
85+
# Use as:
86+
#
87+
# service.LArPropertiesService: {
88+
# ...
89+
# @table::icarus_opticalproperties
90+
# ...
91+
# }
92+
#
93+
#
94+
icarus_opticalproperties: @local::icarus_opticalproperties_202401patch
7695

7796
END_PROLOG
78-
97+

fcl/utilities/test_geometry_icarus.fcl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ process_name: testGeo
1414

1515
services: {
1616

17-
@table::icarus_geometry_services
17+
@table::icarus_geometry_services
18+
Geometry: @local::icarus_unit_test_geometry # special configuration also suitable for unit tests
1819

1920
message: {
2021
destinations: {

fcl/utilities/test_geometry_iterators_icarus.fcl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@
1313
process_name: testGeoIter
1414

1515
services: {
16-
17-
@table::icarus_geometry_services
16+
17+
@table::icarus_geometry_services
18+
Geometry: @local::icarus_unit_test_geometry # special configuration also suitable for unit tests
1819

1920
message: {
2021
destinations: {

icarusalg/Geometry/AuxDetGeoObjectSorterICARUS.cxx

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,13 @@ namespace geo{
3838
// sort based off of GDML name, module number
3939
std::string ad1name = (ad1.TotalVolume())->GetName();
4040
std::string ad2name = (ad2.TotalVolume())->GetName();
41-
// assume volume name is "volAuxDet_<type>_module_###_<region>"
42-
std::string base1 = "volAuxDet_"+type1+"_module_";
43-
std::string base2 = "volAuxDet_"+type2+"_module_";
41+
// assume volume name is "volAuxDet<type>module###<region>"
42+
std::string base1 = "volAuxDet"+type1+"module";
43+
std::string base2 = "volAuxDet"+type2+"module";
44+
45+
//keep compatibility with legacy g4
46+
ad1name.erase(std::remove(ad1name.begin(), ad1name.end(), '_'), ad1name.end());
47+
ad2name.erase(std::remove(ad2name.begin(), ad2name.end(), '_'), ad2name.end());
4448

4549
int ad1Num = std::atoi( ad1name.substr( base1.size(), 3).c_str() );
4650
int ad2Num = std::atoi( ad2name.substr( base2.size(), 3).c_str() );
@@ -65,11 +69,15 @@ namespace geo{
6569
if ( ad2name.find("CERN") != std::string::npos ) type2 = "CERN";
6670
if ( ad2name.find("DC") != std::string::npos ) type2 = "DC";
6771

68-
// assume volume name is "volAuxDetSensitive_<type>_module_###_strip_##"
69-
std::string baseMod1 = "volAuxDetSensitive_"+type1+"module_";
70-
std::string baseStr1 = "volAuxDetSensitive_"+type1+"module_###_strip_";
71-
std::string baseMod2 = "volAuxDetSensitive_"+type2+"module_";
72-
std::string baseStr2 = "volAuxDetSensitive_"+type2+"module_###_strip_";
72+
// assume volume name is "volAuxDetSensitive<type>module###strip##"
73+
std::string baseMod1 = "volAuxDetSensitive"+type1+"module";
74+
std::string baseStr1 = "volAuxDetSensitive"+type1+"module###strip";
75+
std::string baseMod2 = "volAuxDetSensitive"+type2+"module";
76+
std::string baseStr2 = "volAuxDetSensitive"+type2+"module###strip";
77+
78+
//keep compatibility with legacy g4
79+
ad1name.erase(std::remove(ad1name.begin(), ad1name.end(), '_'), ad1name.end());
80+
ad2name.erase(std::remove(ad2name.begin(), ad2name.end(), '_'), ad2name.end());
7381

7482
int ad1Num = atoi( ad1name.substr( baseMod1.size(), 3).c_str() );
7583
int ad2Num = atoi( ad2name.substr( baseMod2.size(), 3).c_str() );
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE xs:schema >
3+
<xs:schema attributeFormDefault="unqualified"
4+
elementFormDefault="unqualified"
5+
version="1.0"
6+
xmlns:gdml_simple_extension="http://www.example.org/"
7+
xmlns:gdml="http://cern.ch/2001/Schemas/GDML"
8+
xmlns:xs="http://www.w3.org/2001/XMLSchema">
9+
10+
<xs:redefine schemaLocation="gdml.xsd">
11+
12+
<xs:annotation>
13+
<xs:documentation>
14+
Extend the volume element using the redefine tag.
15+
</xs:documentation>
16+
</xs:annotation>
17+
18+
<xs:complexType name="VolumeType">
19+
<xs:annotation>
20+
<xs:documentation>
21+
Extend the VolumeType defined by GDML.
22+
</xs:documentation>
23+
</xs:annotation>
24+
<xs:complexContent>
25+
<xs:extension base="VolumeType">
26+
<xs:sequence>
27+
<xs:element minOccurs="0" maxOccurs="1" name="colorref" type="ReferenceType"/>
28+
</xs:sequence>
29+
</xs:extension>
30+
</xs:complexContent>
31+
</xs:complexType>
32+
</xs:redefine>
33+
34+
<xs:complexType name="extensionType">
35+
<xs:annotation>
36+
<xs:documentation>
37+
Contains color elements.
38+
</xs:documentation>
39+
</xs:annotation>
40+
<xs:sequence>
41+
<xs:element name="color" minOccurs="0" maxOccurs="unbounded" type="ColorType" />
42+
</xs:sequence>
43+
</xs:complexType>
44+
45+
<xs:complexType name="ColorType">
46+
<xs:annotation>
47+
<xs:documentation>
48+
A complex type defining RGBA values for geometric data display.
49+
These values will be loaded into a G4VisAttributes object assigned
50+
to the G4LogicalVolume.
51+
</xs:documentation>
52+
</xs:annotation>
53+
<xs:attribute name="name" type="xs:ID" use="required" />
54+
<xs:attribute name="R" type="xs:double" default="1.0"/>
55+
<xs:attribute name="G" type="xs:double" default="1.0"/>
56+
<xs:attribute name="B" type="xs:double" default="1.0"/>
57+
<xs:attribute name="A" type="xs:double" default="1.0" />
58+
</xs:complexType>
59+
60+
<xs:element name="extension" type="extensionType"/>
61+
<xs:element name="gdml_simple_extension">
62+
<!--<xs:element ref="define"/>-->
63+
<xs:annotation>
64+
<xs:documentation>
65+
Top-level element including the gdml element
66+
plus a container extension element for e.g.
67+
fields, SDs, regions and components.
68+
</xs:documentation>
69+
</xs:annotation>
70+
<xs:complexType>
71+
<xs:sequence>
72+
<xs:element ref="extension" minOccurs="0" maxOccurs="1"/>
73+
<xs:element ref="define" minOccurs="1"/>
74+
<xs:element ref="materials" minOccurs="0"/>
75+
<xs:element ref="solids" minOccurs="1"/>
76+
<xs:element ref="structure" minOccurs="1"/>
77+
<xs:element maxOccurs="unbounded" name="setup">
78+
<xs:annotation>
79+
<xs:documentation>Geometry setup representing the particular geometry hierarchy by refferring to
80+
a given volume which becomes the top level volume</xs:documentation>
81+
</xs:annotation>
82+
<xs:complexType>
83+
<xs:sequence>
84+
<xs:element name="world" type="ReferenceType">
85+
<xs:annotation>
86+
<xs:documentation>A reference to the previously defined volume
87+
in the structure block chosen by this setup
88+
World volumme can't be an assembly volume</xs:documentation>
89+
</xs:annotation>
90+
</xs:element>
91+
</xs:sequence>
92+
<xs:attribute name="name" type="xs:ID" use="required"/>
93+
<xs:attribute name="version" type="xs:string" use="required"/>
94+
</xs:complexType>
95+
</xs:element>
96+
</xs:sequence>
97+
<xs:attribute fixed="2.10.0" name="version" type="xs:string">
98+
<xs:annotation>
99+
<xs:documentation>The GDML Schema version consists of 3 digits X.Y.Z
100+
where these mean:
101+
X - major number, increased when major new
102+
features or backward incompatible bug fixes
103+
are added and means the GDML Processor is
104+
allowed to refuse processing of such a
105+
document if this is using the more recent
106+
version of the GDML Schema then GDML Processor
107+
understands
108+
Y - minor number, increased when incremental and
109+
backward compatible changes or improvements
110+
are made into the GDML Schema. GDML Processor
111+
should be able to process such a document
112+
using higher minor version number then that of
113+
the GDML Processor
114+
Z - bugfix revision number, increased when fully
115+
backward compatible changes which resolve a
116+
problem in GDML Schema are applied</xs:documentation>
117+
</xs:annotation>
118+
</xs:attribute>
119+
</xs:complexType>
120+
</xs:element>
121+
</xs:schema>

icarusalg/Geometry/gdml/GDMLSchema/gdml.xsd

100755100644
Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" version="1.0" xmlns:gdml="http://cern.ch/2001/Schemas/GDML" xmlns:xs="http://www.w3.org/2001/XMLSchema">
2+
<xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" version="1.0" xmlns:gdml="http://service-spi.web.cern.ch/service-spi/app/releases/GDML/schema" xmlns:xs="http://www.w3.org/2001/XMLSchema">
33
<xs:include schemaLocation="gdml_core.xsd"/>
44
<xs:include schemaLocation="gdml_define.xsd"/>
55
<xs:include schemaLocation="gdml_materials.xsd"/>
@@ -36,6 +36,7 @@
3636
</xs:choice>
3737
</xs:sequence>
3838
<xs:attribute name="name" type="xs:ID"></xs:attribute>
39+
<xs:attribute name="copynumber" type="xs:integer"/>
3940
</xs:complexType>
4041
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
4142
<xs:complexType name="DivisionPlacementType">
@@ -169,6 +170,14 @@
169170
<xs:element ref="materials"/>
170171
<xs:element ref="solids"/>
171172
<xs:element ref="structure"/>
173+
<xs:element minOccurs="0" maxOccurs="1" name="userinfo">
174+
<xs:complexType>
175+
<xs:sequence>
176+
<xs:element maxOccurs="unbounded" minOccurs="0" name="auxiliary" type="AuxiliaryType"/>
177+
</xs:sequence>
178+
</xs:complexType>
179+
</xs:element>
180+
172181
<xs:element maxOccurs="unbounded" name="setup">
173182
<xs:annotation>
174183
<xs:documentation>Geometry setup representing the particular geometry hierarchy by refferring to
@@ -189,7 +198,7 @@
189198
</xs:complexType>
190199
</xs:element>
191200
</xs:sequence>
192-
<xs:attribute fixed="2.10.0" name="version" type="xs:string">
201+
<xs:attribute fixed="3.1.6" name="version" type="xs:string">
193202
<xs:annotation>
194203
<xs:documentation>The GDML Schema version consists of 3 digits X.Y.Z
195204
where these mean:

icarusalg/Geometry/gdml/GDMLSchema/gdml_core.xsd

100755100644
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<!DOCTYPE xs:schema []>
3-
<xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" version="1.0" xmlns:gdml="http://cern.ch/2001/Schemas/GDML" xmlns:xs="http://www.w3.org/2001/XMLSchema">
3+
<xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" version="1.0" xmlns:gdml="http://service-spi.web.cern.ch/service-spi/app/releases/GDML/schema" xmlns:xs="http://www.w3.org/2001/XMLSchema">
44
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
55
<xs:simpleType name="InlineExpressionType">
66
<xs:restriction base="xs:string"></xs:restriction>
@@ -192,8 +192,12 @@
192192
<xs:annotation>
193193
<xs:documentation>Auxiliary information like sensitive detector declaration, etc.</xs:documentation>
194194
</xs:annotation>
195+
<xs:sequence>
196+
<xs:element name="auxiliary" maxOccurs="unbounded" minOccurs="0" type="AuxiliaryType"/>
197+
</xs:sequence>
195198
<xs:attribute name="auxtype" type="xs:string" use="required"></xs:attribute>
196199
<xs:attribute name="auxvalue" type="xs:string" use="required"></xs:attribute>
200+
<xs:attribute name="auxunit" type="xs:string" use="optional"></xs:attribute>
197201
</xs:complexType>
198202
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
199203
</xs:schema>

icarusalg/Geometry/gdml/GDMLSchema/gdml_define.xsd

100755100644
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<!DOCTYPE xs:schema>
3-
<xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" version="1.0" xmlns:gdml="http://cern.ch/2001/Schemas/GDML" xmlns:xs="http://www.w3.org/2001/XMLSchema">
2+
<!DOCTYPE xs:schema []>
3+
<xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" version="1.0" xmlns:gdml="http://service-spi.web.cern.ch/service-spi/app/releases/GDML/schema" xmlns:xs="http://www.w3.org/2001/XMLSchema">
44
<xs:include schemaLocation="gdml_core.xsd"/>
55
<xs:include schemaLocation="gdml_extensions.xsd"/>
66
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

0 commit comments

Comments
 (0)