diff --git a/SimG4Core/PrintGeomInfo/data/dd4hep/cmsExtendedGeometry2021.xml b/SimG4Core/PrintGeomInfo/data/dd4hep/cmsExtendedGeometry2021.xml
new file mode 100644
index 0000000000000..1f8964f5f589f
--- /dev/null
+++ b/SimG4Core/PrintGeomInfo/data/dd4hep/cmsExtendedGeometry2021.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SimG4Core/PrintGeomInfo/data/hcalRecNumbering.xml b/SimG4Core/PrintGeomInfo/data/hcalRecNumbering.xml
new file mode 100644
index 0000000000000..da8eb8002a5d4
--- /dev/null
+++ b/SimG4Core/PrintGeomInfo/data/hcalRecNumbering.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
+
+
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
+
+
+ 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4
+
+
+ 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
+
+
+ 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3
+
+
+ 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5
+
+
+ 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6
+
+
+ 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7
+
+
+
+
diff --git a/SimG4Core/PrintGeomInfo/data/hcalSimNumbering.xml b/SimG4Core/PrintGeomInfo/data/hcalSimNumbering.xml
new file mode 100644
index 0000000000000..4145c1e4fb8c1
--- /dev/null
+++ b/SimG4Core/PrintGeomInfo/data/hcalSimNumbering.xml
@@ -0,0 +1,91 @@
+
+
+
+
+
+ 0.0*deg, 0.0*deg, 0.0*deg, 10.0*deg, 10.0*deg
+
+
+ 0.000, 0.087, 0.174, 0.261, 0.348, 0.435, 0.522, 0.609, 0.696,
+ 0.783, 0.870, 0.957, 1.044, 1.131, 1.218, 1.305, 1.392, 1.479,
+ 1.566, 1.653, 1.740, 1.830, 1.930, 2.043, 2.172, 2.322, 2.500,
+ 2.650, 2.868, 3.000
+
+
+ 12.50*cm, 16.90*cm, 20.10*cm, 24.00*cm, 28.60*cm, 34.00*cm,
+ 40.60*cm, 48.30*cm, 57.60*cm, 68.60*cm, 81.80*cm, 97.50*cm,
+ 116.20*cm, 130.00*cm
+
+
+ 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg,
+ 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg,
+ 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, 10.0*deg,
+ 10.0*deg, 10.0*deg, 10.0*deg, 10.0*deg, 10.0*deg, 10.0*deg,
+ 10.0*deg, 10.0*deg
+
+
+ 10.0*deg, 10.0*deg, 10.0*deg, 10.0*deg, 10.0*deg, 10.0*deg,
+ 10.0*deg, 10.0*deg, 10.0*deg, 10.0*deg, 10.0*deg, 20.0*deg,
+ 20.0*deg
+
+
+ 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4
+
+
+ 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
+
+
+ 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3
+
+
+ 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5
+
+
+ 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6
+
+
+ 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7
+
+
+ 1, 16, 29, 1
+
+
+ 16, 29, 41, 15
+
+
+ 4, 7, 4, 4
+
+
+ 1.392, 3.000, 5.500, 1.305
+
+
+ 22.0*cm, 165.0*cm, 30.0*cm, 0.0*cm, 1115.0*cm, 0.375*cm,
+ 1137.0*cm
+
+
+ 15, 29, 4, 10, 5, 2, 4, 18, 19, 11, 12, 13, 14, 3, 4, 3, 1, 0
+
+
+ 0.5, 1.2
+
+
+ 117.0, 117.0, 117.0, 217.0
+
+
+ 0, 0, 0, 0
+
+
+ 178.0, 178.0, 178.0, 178.0, 178.0, 178.0, 178.0
+
+
+ 0, 0, 0, 0, 0, 0, 0
+
+
+ 2.840, 2.090, 2.840, 2.090
+
+
+ 0, 0, 0, 0
+
+
+
+
diff --git a/SimG4Core/PrintGeomInfo/python/cmsExtendedGeometry2021_cfi.py b/SimG4Core/PrintGeomInfo/python/cmsExtendedGeometry2021_cfi.py
new file mode 100644
index 0000000000000..60e686a9dea8f
--- /dev/null
+++ b/SimG4Core/PrintGeomInfo/python/cmsExtendedGeometry2021_cfi.py
@@ -0,0 +1,9 @@
+import FWCore.ParameterSet.Config as cms
+
+XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource",
+ geomXMLFiles = cms.vstring(
+ 'SimG4Core/PrintGeomInfo/data/dddDBBigFile.xml',
+ 'SimG4Core/PrintGeomInfo/data/hcalSimNumbering.xml',
+ 'SimG4Core/PrintGeomInfo/data/hcalRecNumbering.xml'),
+ rootNodeName = cms.string('cms:OCMS')
+)
diff --git a/SimG4Core/PrintGeomInfo/test/SimFileCompare.cpp b/SimG4Core/PrintGeomInfo/test/SimFileCompare.cpp
index 5949933d170e1..bea0d0746eec2 100644
--- a/SimG4Core/PrintGeomInfo/test/SimFileCompare.cpp
+++ b/SimG4Core/PrintGeomInfo/test/SimFileCompare.cpp
@@ -3,11 +3,14 @@
// Compares output files from PrintGeomInfo created using DDD and DD4Hep
// inputs. Usage:
//
-// SimFileCompare infile1 infile2 mode debug
-// infile1 (const char*) File created using DDD
-// infile2 (const char*) File created using DD4Hep
+// SimFileCompare infile1 infile2 type files mode debug
+// infile1 (const char*) First file name
+// infile2 (const char*) Second file name
// type (int) Type of file: material (0), solid (1),
// LogicalVolume (2), PhysicalVolume (3)
+// files (int) Double digits each inidicating the file source
+// (0 for DDD, 1 for DD4HEP). So if first file is
+// DDD and second is DD4HEP, it will be 10
// mode (int) Treat (0) or not treat (1) names from DDD
// deug (int) Single digit number (0 minimum printout)
//
@@ -123,172 +126,193 @@ void myPrint2(std::map const& obj1, std::map con
}
}
-void CompareFiles(const char* fileDDD, const char* fileDD4Hep, int type, int mode, int debug) {
- std::map matDDD, matDD4Hep;
- std::map solidDDD, solidDD4Hep;
- std::map lvDDD, lvDD4Hep;
- std::map pvDDD, pvDD4Hep;
+void CompareFiles(const char* fileFile1, const char* fileFile2, int type, int files, int mode, int debug) {
+ std::map matFile1, matFile2;
+ std::map solidFile1, solidFile2;
+ std::map lvFile1, lvFile2;
+ std::map pvFile1, pvFile2;
+ bool typeFile1 = ((files % 10) == 0);
+ bool typeFile2 = (((files / 10) % 10) == 0);
char buffer[100];
std::string name;
- std::ifstream fInput1(fileDDD);
- unsigned int sizeDDD(0), sizeDD4Hep(0);
+ std::ifstream fInput1(fileFile1);
+ unsigned int sizeFile1(0), sizeFile2(0);
if (!fInput1.good()) {
- std::cout << "Cannot open file " << fileDDD << std::endl;
+ std::cout << "Cannot open file " << fileFile1 << std::endl;
} else {
while (fInput1.getline(buffer, 100)) {
std::vector items = splitString(std::string(buffer));
- name = ((mode == 1) ? removeExtraName(items[0], debug) : items[0]);
+ if (typeFile1) {
+ name = ((mode == 1) ? removeExtraName(items[0], debug) : items[0]);
+ } else {
+ name = reducedName(items[0], debug);
+ }
double r1 = (items.size() > 1) ? atof(items[1].c_str()) : 0;
double r2 = (items.size() > 2) ? atof(items[2].c_str()) : 0;
double r3 = (items.size() > 3) ? atof(items[3].c_str()) : 0;
if (type == 0) {
- auto it = matDDD.find(name);
- if (it == matDDD.end())
- matDDD[name] = materials(1, r1, r2);
+ auto it = matFile1.find(name);
+ if (it == matFile1.end())
+ matFile1[name] = materials(1, r1, r2);
else
++((it->second).occ);
} else if (type == 1) {
- auto it = solidDDD.find(name);
- if (it == solidDDD.end())
- solidDDD[name] = solids(1, r1);
+ auto it = solidFile1.find(name);
+ if (it == solidFile1.end())
+ solidFile1[name] = solids(1, r1);
else
++((it->second).occ);
} else if (type == 2) {
- auto it = lvDDD.find(name);
- if (it == lvDDD.end())
- lvDDD[name] = lvs(1, r1);
+ auto it = lvFile1.find(name);
+ if (it == lvFile1.end())
+ lvFile1[name] = lvs(1, r1);
else
++((it->second).occ);
} else {
- auto it = pvDDD.find(name);
- if (it == pvDDD.end())
- pvDDD[name] = pvs(1, r1, r2, r3);
+ auto it = pvFile1.find(name);
+ if (it == pvFile1.end())
+ pvFile1[name] = pvs(1, r1, r2, r3);
else
++((it->second).occ);
}
}
fInput1.close();
- sizeDDD =
- ((type == 0) ? matDDD.size() : ((type == 1) ? solidDDD.size() : ((type == 2) ? lvDDD.size() : pvDDD.size())));
+ sizeFile1 = ((type == 0) ? matFile1.size()
+ : ((type == 1) ? solidFile1.size() : ((type == 2) ? lvFile1.size() : pvFile1.size())));
}
- std::ifstream fInput2(fileDD4Hep);
+ std::ifstream fInput2(fileFile2);
if (!fInput2.good()) {
- std::cout << "Cannot open file " << fileDD4Hep << std::endl;
+ std::cout << "Cannot open file " << fileFile2 << std::endl;
} else {
while (fInput2.getline(buffer, 100)) {
std::vector items = splitString(std::string(buffer));
- name = reducedName(items[0], debug);
+ if (typeFile2) {
+ name = ((mode == 1) ? removeExtraName(items[0], debug) : items[0]);
+ } else {
+ name = reducedName(items[0], debug);
+ }
double r1 = (items.size() > 1) ? atof(items[1].c_str()) : 0;
double r2 = (items.size() > 2) ? atof(items[2].c_str()) : 0;
double r3 = (items.size() > 3) ? atof(items[3].c_str()) : 0;
if (type == 0) {
- auto it = matDD4Hep.find(name);
- if (it == matDD4Hep.end())
- matDD4Hep[name] = materials(1, r1, r2);
+ auto it = matFile2.find(name);
+ if (it == matFile2.end())
+ matFile2[name] = materials(1, r1, r2);
else
++((it->second).occ);
} else if (type == 1) {
- auto it = solidDD4Hep.find(name);
- if (it == solidDD4Hep.end())
- solidDD4Hep[name] = solids(1, r1);
+ auto it = solidFile2.find(name);
+ if (it == solidFile2.end())
+ solidFile2[name] = solids(1, r1);
else
++((it->second).occ);
} else if (type == 2) {
- auto it = lvDD4Hep.find(name);
- if (it == lvDD4Hep.end())
- lvDD4Hep[name] = lvs(1, r1);
+ auto it = lvFile2.find(name);
+ if (it == lvFile2.end())
+ lvFile2[name] = lvs(1, r1);
else
++((it->second).occ);
} else {
- auto it = pvDD4Hep.find(name);
- if (it == pvDD4Hep.end())
- pvDD4Hep[name] = pvs(1, r1, r2, r3);
+ auto it = pvFile2.find(name);
+ if (it == pvFile2.end())
+ pvFile2[name] = pvs(1, r1, r2, r3);
else
++((it->second).occ);
}
}
fInput2.close();
- sizeDD4Hep = ((type == 0) ? matDD4Hep.size()
- : ((type == 1) ? solidDD4Hep.size() : ((type == 2) ? lvDD4Hep.size() : pvDD4Hep.size())));
+ sizeFile2 = ((type == 0) ? matFile2.size()
+ : ((type == 1) ? solidFile2.size() : ((type == 2) ? lvFile2.size() : pvFile2.size())));
}
- std::cout << "Reads " << sizeDDD << " names from " << fileDDD << " and " << sizeDD4Hep << " names from " << fileDD4Hep
- << std::endl;
+ std::cout << "Reads " << sizeFile1 << " names from " << fileFile1 << " and " << sizeFile2 << " names from "
+ << fileFile2 << std::endl;
- std::cout << "\nMore than one entry for a given name in " << fileDDD << std::endl;
+ std::cout << "\nMore than one entry for a given name in " << fileFile1 << std::endl;
if (type == 0) {
- myPrint1(matDDD);
+ myPrint1(matFile1);
} else if (type == 1) {
- myPrint1(solidDDD);
+ myPrint1(solidFile1);
} else if (type == 2) {
- myPrint1(lvDDD);
+ myPrint1(lvFile1);
} else {
- myPrint1(pvDDD);
+ myPrint1(pvFile1);
}
- std::cout << "\nMore than one entry for a given name in " << fileDD4Hep << std::endl;
+ std::cout << "\nMore than one entry for a given name in " << fileFile2 << std::endl;
if (type == 0) {
- myPrint1(matDD4Hep);
+ myPrint1(matFile2);
} else if (type == 1) {
- myPrint1(solidDD4Hep);
+ myPrint1(solidFile2);
} else if (type == 2) {
- myPrint1(lvDD4Hep);
+ myPrint1(lvFile2);
} else {
- myPrint1(pvDD4Hep);
+ myPrint1(pvFile2);
}
- std::cout << "\nEntry in " << fileDDD << " not in " << fileDD4Hep << std::endl;
+ std::cout << "\nEntry in " << fileFile1 << " not in " << fileFile2 << std::endl;
if (type == 0) {
- myPrint2(matDDD, matDD4Hep);
+ myPrint2(matFile1, matFile2);
} else if (type == 1) {
- myPrint2(solidDDD, solidDD4Hep);
+ myPrint2(solidFile1, solidFile2);
} else if (type == 2) {
- myPrint2(lvDDD, lvDD4Hep);
+ myPrint2(lvFile1, lvFile2);
} else {
- myPrint2(pvDDD, pvDD4Hep);
+ myPrint2(pvFile1, pvFile2);
}
- std::cout << "\nEntry in " << fileDD4Hep << " not in " << fileDDD << std::endl;
+ std::cout << "\nEntry in " << fileFile2 << " not in " << fileFile1 << std::endl;
if (type == 0) {
- myPrint2(matDD4Hep, matDDD);
+ myPrint2(matFile2, matFile1);
} else if (type == 1) {
- myPrint2(solidDD4Hep, solidDDD);
+ myPrint2(solidFile2, solidFile1);
} else if (type == 2) {
- myPrint2(lvDD4Hep, lvDDD);
+ myPrint2(lvFile2, lvFile1);
} else {
- myPrint2(pvDD4Hep, pvDDD);
+ myPrint2(pvFile2, pvFile1);
}
//Now type specific changes
- std::cout << "\nEntries in " << fileDDD << " and " << fileDD4Hep << " do not match in the content\n";
+ std::cout << "\nEntries in " << fileFile1 << " and " << fileFile2 << " do not match in the content\n";
const double denmin = 0.0001;
int kount1(0), kount2(0);
+ double difmax1(0), difmax2(0);
+ std::string nameMax("");
if (type == 0) {
const double tol1 = 0.00001;
- for (auto it1 : matDDD) {
- auto it2 = matDD4Hep.find(it1.first);
- if (it2 != matDD4Hep.end()) {
+ for (auto it1 : matFile1) {
+ auto it2 = matFile2.find(it1.first);
+ if (it2 != matFile2.end()) {
++kount1;
double rdif =
0.5 * (it1.second.radl - it2->second.radl) / std::max(denmin, (it1.second.radl + it2->second.radl));
double idif =
0.5 * (it1.second.intl - it2->second.intl) / std::max(denmin, (it1.second.intl + it2->second.intl));
+ if (std::abs(rdif) > difmax1) {
+ difmax1 = std::abs(rdif);
+ difmax2 = std::abs(idif);
+ nameMax = it1.first;
+ }
if ((std::abs(rdif) > tol1) || (std::abs(idif) > tol1)) {
++kount2;
- std::cout << it1.first << " Radiation Length " << it1.second.radl << ":" << it2->second.radl << ":" << rdif
- << " Interaction Length " << it1.second.intl << ":" << it2->second.intl << ":" << idif << std::endl;
+ std::cout << it1.first << " X0 " << it1.second.radl << ":" << it2->second.radl << ":" << rdif << " #L "
+ << it1.second.intl << ":" << it2->second.intl << ":" << idif << std::endl;
}
}
}
std::cout << "\n " << kount2 << " out of " << kount1 << " entries having discrpancies at the level of " << tol1
- << " or more\n";
+ << " or more; the maximum happens for " << nameMax << " with " << difmax1 << ":" << difmax2 << "\n";
} else if (type == 1) {
const double tol2 = 0.0001;
- for (auto it1 : solidDDD) {
- auto it2 = solidDD4Hep.find(it1.first);
- if (it2 != solidDD4Hep.end()) {
+ for (auto it1 : solidFile1) {
+ auto it2 = solidFile2.find(it1.first);
+ if (it2 != solidFile2.end()) {
++kount1;
double vdif =
0.5 * (it1.second.volume - it2->second.volume) / std::max(denmin, (it1.second.volume + it2->second.volume));
+ if (std::abs(vdif) > difmax1) {
+ difmax1 = std::abs(vdif);
+ nameMax = it1.first;
+ }
if (std::abs(vdif) > tol2) {
++kount2;
std::cout << it1.first << " Volume " << it1.second.volume << ":" << it2->second.volume << ":" << vdif
@@ -297,15 +321,19 @@ void CompareFiles(const char* fileDDD, const char* fileDD4Hep, int type, int mod
}
}
std::cout << "\n " << kount2 << " out of " << kount1 << " entries having discrpancies at the level of " << tol2
- << " or more\n";
+ << " or more; the maximum happens for " << nameMax << " with " << difmax1 << "\n";
} else if (type == 2) {
const double tol3 = 0.0001;
- for (auto it1 : lvDDD) {
- auto it2 = lvDD4Hep.find(it1.first);
- if (it2 != lvDD4Hep.end()) {
+ for (auto it1 : lvFile1) {
+ auto it2 = lvFile2.find(it1.first);
+ if (it2 != lvFile2.end()) {
++kount1;
double vdif =
0.5 * (it1.second.mass - it2->second.mass) / std::max(denmin, (it1.second.mass + it2->second.mass));
+ if (std::abs(vdif) > difmax1) {
+ difmax1 = std::abs(vdif);
+ nameMax = it1.first;
+ }
if (std::abs(vdif) > tol3) {
++kount2;
std::cout << it1.first << " Mass " << it1.second.mass << ":" << it2->second.mass << ":" << vdif << std::endl;
@@ -313,16 +341,22 @@ void CompareFiles(const char* fileDDD, const char* fileDD4Hep, int type, int mod
}
}
std::cout << "\n " << kount2 << " out of " << kount1 << " entries having discrpancies at the level of " << tol3
- << " or more\n";
+ << " or more; the maximum happens for " << nameMax << " with " << difmax1 << "\n";
} else {
const double tol4 = 0.0001;
- for (auto it1 : pvDDD) {
- auto it2 = pvDD4Hep.find(it1.first);
- if (it2 != pvDD4Hep.end()) {
+ for (auto it1 : pvFile1) {
+ auto it2 = pvFile2.find(it1.first);
+ if (it2 != pvFile2.end()) {
++kount1;
double xdif = (it1.second.xx - it2->second.xx);
double ydif = (it1.second.yy - it2->second.yy);
double zdif = (it1.second.zz - it2->second.zz);
+ double vdif = std::max(std::abs(xdif), std::abs(ydif));
+ vdif = std::max(vdif, std::abs(zdif));
+ if (vdif > difmax1) {
+ difmax1 = vdif;
+ nameMax = it1.first;
+ }
if ((std::abs(xdif) > tol4) || (std::abs(ydif) > tol4) || (std::abs(zdif) > tol4)) {
++kount2;
std::cout << it1.first << " x " << it1.second.xx << ":" << it2->second.xx << ":" << xdif << " y "
@@ -332,16 +366,17 @@ void CompareFiles(const char* fileDDD, const char* fileDD4Hep, int type, int mod
}
}
std::cout << "\n " << kount2 << " out of " << kount1 << " entries having discrpancies at the level of " << tol4
- << " or more\n";
+ << " or more; the maximum happens for " << nameMax << " with " << difmax1 << "\n";
}
}
int main(int argc, char* argv[]) {
- if (argc <= 4) {
+ if (argc <= 5) {
std::cout << "Please give a minimum of 2 arguments \n"
- << "input file name from the DDD run\n"
- << "input file name from the DD4Hep run\n"
+ << "name of the first input file\n"
+ << "name of the second input file\n"
<< "type (Material:0, Solid:1, LV:2, PV:3\n"
+ << "files (10 if first file from DDD and second from DD4HEP)\n"
<< "mode (treat the name for DDD or not == needed for PV)\n"
<< "debug flag (0 for minimum printout)\n"
<< std::endl;
@@ -353,8 +388,9 @@ int main(int argc, char* argv[]) {
int type = ((argc > 3) ? atoi(argv[3]) : 0);
if (type < 0 || type > 3)
type = 0;
- int mode = ((argc > 4) ? atoi(argv[4]) : 0);
- int debug = ((argc > 5) ? atoi(argv[5]) : 0);
- CompareFiles(infile1, infile2, type, mode, debug);
+ int files = ((argc > 4) ? atoi(argv[4]) : 10);
+ int mode = ((argc > 5) ? atoi(argv[5]) : 0);
+ int debug = ((argc > 6) ? atoi(argv[6]) : 0);
+ CompareFiles(infile1, infile2, type, files, mode, debug);
return 0;
}
diff --git a/SimG4Core/PrintGeomInfo/test/python/g4DumpGeometry_cfg.py b/SimG4Core/PrintGeomInfo/test/python/g4DumpGeometry_cfg.py
index 31af188f60ad0..691fdf90626ec 100644
--- a/SimG4Core/PrintGeomInfo/test/python/g4DumpGeometry_cfg.py
+++ b/SimG4Core/PrintGeomInfo/test/python/g4DumpGeometry_cfg.py
@@ -2,11 +2,11 @@
process = cms.Process("G4PrintGeometry")
-#process.load('Configuration.Geometry.GeometryExtended2015_cff')
-process.load('Configuration.Geometry.GeometryExtended2017_cff')
-#process.load('Configuration.Geometry.GeometryExtended2018_cff')
-#process.load('Configuration.Geometry.GeometryExtended2023D17_cff')
-#process.load('Configuration.Geometry.GeometryExtended2026D45_cff')
+#process.load('Configuration.Geometry.GeometryExtended2015Reco_cff')
+process.load('Configuration.Geometry.GeometryExtended2017Reco_cff')
+#process.load('Configuration.Geometry.GeometryExtended2021Reco_cff')
+#process.load('Configuration.Geometry.GeometryExtended2026D77Reco_cff')
+#process.load('Configuration.Geometry.GeometryExtended2026D83Reco_cff')
from SimG4Core.PrintGeomInfo.g4TestGeometry_cfi import *
process = checkOverlap(process)
@@ -19,7 +19,7 @@
# Geant4 geometry check
process.g4SimHits.G4CheckOverlap.OutputBaseName = cms.string("2017")
-#process.g4SimHits.G4CheckOverlap.OutputBaseName = cms.string("2026D45")
+#process.g4SimHits.G4CheckOverlap.OutputBaseName = cms.string("2026D77")
process.g4SimHits.G4CheckOverlap.OverlapFlag = cms.bool(False)
process.g4SimHits.G4CheckOverlap.Tolerance = cms.double(0.0)
process.g4SimHits.G4CheckOverlap.Resolution = cms.int32(10000)
diff --git a/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheck2026_cfg.py b/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheck2026_cfg.py
index 916e82c51b1a1..e543c1dce58e0 100644
--- a/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheck2026_cfg.py
+++ b/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheck2026_cfg.py
@@ -3,8 +3,8 @@
from Configuration.Eras.Era_Phase2C11_cff import Phase2C11
process = cms.Process('SIM',Phase2C11)
-#process.load('Configuration.Geometry.GeometryExtended2026D76_cff')
-process.load('Configuration.Geometry.GeometryExtended2026D83_cff')
+#process.load('Configuration.Geometry.GeometryExtended2026D77Reco_cff')
+process.load('Configuration.Geometry.GeometryExtended2026D83Reco_cff')
process.load('FWCore.MessageService.MessageLogger_cfi')
diff --git a/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckBigXML_cfg.py b/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckBigXML_cfg.py
new file mode 100644
index 0000000000000..53233b548fd16
--- /dev/null
+++ b/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckBigXML_cfg.py
@@ -0,0 +1,45 @@
+import FWCore.ParameterSet.Config as cms
+
+from Configuration.Eras.Era_Run3_cff import Run3
+process = cms.Process('SIM',Run3)
+process.load('SimG4Core.PrintGeomInfo.cmsExtendedGeometry2021_cfi')
+process.load("Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff")
+process.load("Geometry.EcalCommonData.ecalSimulationParameters_cff")
+process.load("Geometry.HcalCommonData.hcalDDDSimConstants_cff")
+process.load("Geometry.HcalCommonData.hcalDDDRecConstants_cfi")
+process.load("Geometry.MuonNumbering.muonGeometryConstants_cff")
+process.load("Geometry.MuonNumbering.muonOffsetESProducer_cff")
+
+process.load('FWCore.MessageService.MessageLogger_cfi')
+
+#if hasattr(process,'MessageLogger'):
+# process.MessageLogger.HCalGeom=dict()
+
+from SimG4Core.PrintGeomInfo.g4TestGeometry_cfi import *
+process = checkOverlap(process)
+
+# enable Geant4 overlap check
+process.g4SimHits.CheckGeometry = True
+
+# Geant4 geometry check
+process.g4SimHits.G4CheckOverlap.OutputBaseName = cms.string("cms2021")
+process.g4SimHits.G4CheckOverlap.OverlapFlag = cms.bool(True)
+process.g4SimHits.G4CheckOverlap.Tolerance = cms.double(0.1)
+process.g4SimHits.G4CheckOverlap.Resolution = cms.int32(10000)
+process.g4SimHits.G4CheckOverlap.Depth = cms.int32(-1)
+# tells if NodeName is G4Region or G4PhysicalVolume
+process.g4SimHits.G4CheckOverlap.RegionFlag = cms.bool(False)
+# list of names
+process.g4SimHits.G4CheckOverlap.NodeNames = cms.vstring('OCMS')
+# enable dump gdml file
+process.g4SimHits.G4CheckOverlap.gdmlFlag = cms.bool(False)
+# if defined a G4PhysicsVolume info is printed
+process.g4SimHits.G4CheckOverlap.PVname = ''
+# if defined a list of daughter volumes is printed
+process.g4SimHits.G4CheckOverlap.LVname = ''
+
+# extra output files, created if a name is not empty
+process.g4SimHits.FileNameField = ''
+process.g4SimHits.FileNameGDML = ''
+process.g4SimHits.FileNameRegions = ''
+#
diff --git a/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckBigXMLdd4hep_cfg.py b/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckBigXMLdd4hep_cfg.py
new file mode 100644
index 0000000000000..2161b487dae3c
--- /dev/null
+++ b/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckBigXMLdd4hep_cfg.py
@@ -0,0 +1,47 @@
+import FWCore.ParameterSet.Config as cms
+
+from Configuration.Eras.Era_Run3_dd4hep_cff import Run3_dd4hep
+process = cms.Process('G4PrintGeometry',Run3_dd4hep)
+process.load("Configuration.Geometry.GeometryDD4hep_cff")
+process.load("Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff")
+process.load("Geometry.EcalCommonData.ecalSimulationParameters_cff")
+process.load("Geometry.HcalCommonData.hcalDDDSimConstants_cff")
+process.load("Geometry.HcalCommonData.hcalDDDRecConstants_cfi")
+process.load("Geometry.MuonNumbering.muonGeometryConstants_cff")
+process.load("Geometry.MuonNumbering.muonOffsetESProducer_cff")
+
+process.load('FWCore.MessageService.MessageLogger_cfi')
+
+#if hasattr(process,'MessageLogger'):
+# process.MessageLogger.HCalGeom=dict()
+
+from SimG4Core.PrintGeomInfo.g4TestGeometry_cfi import *
+process = checkOverlap(process)
+
+# enable Geant4 overlap check
+process.g4SimHits.CheckGeometry = True
+
+process.DDDetectorESProducer.confGeomXMLFiles = cms.FileInPath("SimG4Core/PrintGeomInfo/data/dd4hep/cmsExtendedGeometry2021.xml")
+
+# Geant4 geometry check
+process.g4SimHits.G4CheckOverlap.OutputBaseName = cms.string("cms2021")
+process.g4SimHits.G4CheckOverlap.OverlapFlag = cms.bool(True)
+process.g4SimHits.G4CheckOverlap.Tolerance = cms.double(0.1)
+process.g4SimHits.G4CheckOverlap.Resolution = cms.int32(10000)
+process.g4SimHits.G4CheckOverlap.Depth = cms.int32(-1)
+# tells if NodeName is G4Region or G4PhysicalVolume
+process.g4SimHits.G4CheckOverlap.RegionFlag = cms.bool(False)
+# list of names
+process.g4SimHits.G4CheckOverlap.NodeNames = cms.vstring('cms:OCMS_1')
+# enable dump gdml file
+process.g4SimHits.G4CheckOverlap.gdmlFlag = cms.bool(False)
+# if defined a G4PhysicsVolume info is printed
+process.g4SimHits.G4CheckOverlap.PVname = ''
+# if defined a list of daughter volumes is printed
+process.g4SimHits.G4CheckOverlap.LVname = ''
+
+# extra output files, created if a name is not empty
+process.g4SimHits.FileNameField = ''
+process.g4SimHits.FileNameGDML = ''
+process.g4SimHits.FileNameRegions = ''
+#
diff --git a/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckCalo_cfg.py b/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckCalo_cfg.py
index 3496839bf6cc0..8c90905c28fa8 100644
--- a/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckCalo_cfg.py
+++ b/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckCalo_cfg.py
@@ -2,11 +2,11 @@
process = cms.Process("G4PrintGeometry")
-#process.load('Configuration.Geometry.GeometryExtended2015_cff')
-#process.load('Configuration.Geometry.GeometryExtended2017_cff')
-process.load('Configuration.Geometry.GeometryExtended2021_cff')
-#process.load('Configuration.Geometry.GeometryExtended2026D17_cff')
-#process.load('Configuration.Geometry.GeometryExtended2026D45_cff')
+#process.load('Configuration.Geometry.GeometryExtended2015Reco_cff')
+#process.load('Configuration.Geometry.GeometryExtended2017Reco_cff')
+process.load('Configuration.Geometry.GeometryExtended2021Reco_cff')
+#process.load('Configuration.Geometry.GeometryExtended2026D77Reco_cff')
+#process.load('Configuration.Geometry.GeometryExtended2026D83Reco_cff')
from SimG4Core.PrintGeomInfo.g4TestGeometry_cfi import *
process = checkOverlap(process)
diff --git a/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckDD4Hep_cfg.py b/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckDD4Hep_cfg.py
index 49b42c988186a..be7f0d746eca6 100644
--- a/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckDD4Hep_cfg.py
+++ b/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckDD4Hep_cfg.py
@@ -4,7 +4,7 @@
process = cms.Process("G4PrintGeometry",Run3_dd4hep)
-process.load('Configuration.Geometry.GeometryDD4hepExtended2021_cff')
+process.load('Configuration.Geometry.GeometryDD4hepExtended2021Reco_cff')
from SimG4Core.PrintGeomInfo.g4TestGeometry_cfi import *
process = checkOverlap(process)
diff --git a/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckEcal_cfg.py b/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckEcal_cfg.py
index e7007b465fd3c..620e958f26170 100644
--- a/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckEcal_cfg.py
+++ b/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckEcal_cfg.py
@@ -2,11 +2,11 @@
process = cms.Process("G4PrintGeometry")
-#process.load('Configuration.Geometry.GeometryExtended2015_cff')
-#process.load('Configuration.Geometry.GeometryExtended2017_cff')
-process.load('Configuration.Geometry.GeometryExtended2021_cff')
-#process.load('Configuration.Geometry.GeometryExtended2026D17_cff')
-#process.load('Configuration.Geometry.GeometryExtended2026D45_cff')
+#process.load('Configuration.Geometry.GeometryExtended2015Reco_cff')
+#process.load('Configuration.Geometry.GeometryExtended2017Reco_cff')
+process.load('Configuration.Geometry.GeometryExtended2021Reco_cff')
+#process.load('Configuration.Geometry.GeometryExtended2026D77Reco_cff')
+#process.load('Configuration.Geometry.GeometryExtended2026D83Reco_cff')
from SimG4Core.PrintGeomInfo.g4TestGeometry_cfi import *
process = checkOverlap(process)
@@ -15,7 +15,7 @@
process.g4SimHits.CheckGeometry = True
# Geant4 geometry check
-process.g4SimHits.G4CheckOverlap.OutputBaseName = cms.string("Ecal2018")
+process.g4SimHits.G4CheckOverlap.OutputBaseName = cms.string("Ecal2021")
process.g4SimHits.G4CheckOverlap.OverlapFlag = cms.bool(True)
process.g4SimHits.G4CheckOverlap.Tolerance = cms.double(0.0)
process.g4SimHits.G4CheckOverlap.Resolution = cms.int32(10000)
diff --git a/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckHGCal_cfg.py b/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckHGCal_cfg.py
index 55cf610dcfd6d..d9faff4a9b67f 100644
--- a/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckHGCal_cfg.py
+++ b/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckHGCal_cfg.py
@@ -2,8 +2,8 @@
process = cms.Process("G4PrintGeometry")
-#process.load('Configuration.Geometry.GeometryExtended2026D17_cff')
-process.load('Configuration.Geometry.GeometryExtended2026D45_cff')
+#process.load('Configuration.Geometry.GeometryExtended2026D77Reco_cff')
+process.load('Configuration.Geometry.GeometryExtended2026D83Reco_cff')
from SimG4Core.PrintGeomInfo.g4TestGeometry_cfi import *
process = checkOverlap(process)
@@ -12,7 +12,7 @@
process.g4SimHits.CheckGeometry = True
# Geant4 geometry check
-process.g4SimHits.G4CheckOverlap.OutputBaseName = cms.string("HGcal2026D45")
+process.g4SimHits.G4CheckOverlap.OutputBaseName = cms.string("HGcal2026D83")
process.g4SimHits.G4CheckOverlap.OverlapFlag = cms.bool(True)
process.g4SimHits.G4CheckOverlap.Tolerance = cms.double(0.0)
process.g4SimHits.G4CheckOverlap.Resolution = cms.int32(10000)
diff --git a/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckMuon_cfg.py b/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckMuon_cfg.py
index b0e77b630896e..596256fb76c98 100644
--- a/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckMuon_cfg.py
+++ b/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckMuon_cfg.py
@@ -2,12 +2,13 @@
process = cms.Process("G4PrintGeometry")
-#process.load('Configuration.Geometry.GeometryExtended2015_cff')
-#process.load('Configuration.Geometry.GeometryExtended2017_cff')
-#process.load('Configuration.Geometry.GeometryExtended2021_cff')
-#process.load('Configuration.Geometry.GeometryExtended2026D17_cff')
-#process.load('Configuration.Geometry.GeometryExtended2026D45_cff')
+#process.load('Configuration.Geometry.GeometryExtended2015Reco_cff')
+#process.load('Configuration.Geometry.GeometryExtended2017Reco_cff')
+#process.load('Configuration.Geometry.GeometryExtended2021Reco_cff')
+#process.load('Configuration.Geometry.GeometryExtended2026D77Reco_cff')
+#process.load('Configuration.Geometry.GeometryExtended2026D83Reco_cff')
process.load('SimG4Core.PrintGeomInfo.cmsMuon2017XML_cfi')
+process.load('Geometry.MuonNumbering.muonGeometryConstants_cff')
from SimG4Core.PrintGeomInfo.g4TestGeometry_cfi import *
process = checkOverlap(process)
diff --git a/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckTracker_cfg.py b/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckTracker_cfg.py
index aa558a9054a82..9ec07530db51e 100644
--- a/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckTracker_cfg.py
+++ b/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckTracker_cfg.py
@@ -2,12 +2,11 @@
process = cms.Process("G4PrintGeometry")
-
-#process.load('Configuration.Geometry.GeometryExtended2015_cff')
-#process.load('Configuration.Geometry.GeometryExtended2017_cff')
-process.load('Configuration.Geometry.GeometryExtended2021_cff')
-#process.load('Configuration.Geometry.GeometryExtended2026D17_cff')
-#process.load('Configuration.Geometry.GeometryExtended2026D45_cff')
+#process.load('Configuration.Geometry.GeometryExtended2015Reco_cff')
+#process.load('Configuration.Geometry.GeometryExtended2017Reco_cff')
+process.load('Configuration.Geometry.GeometryExtended2021Reco_cff')
+#process.load('Configuration.Geometry.GeometryExtended2026D17Reco_cff')
+#process.load('Configuration.Geometry.GeometryExtended2026D45Reco_cff')
from SimG4Core.PrintGeomInfo.g4TestGeometry_cfi import *
process = checkOverlap(process)
diff --git a/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheck_cfg.py b/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheck_cfg.py
index 1ec314574070b..4aa2003e601bc 100644
--- a/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheck_cfg.py
+++ b/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheck_cfg.py
@@ -2,12 +2,12 @@
#from Configuration.Eras.Era_Run2_cff import Run2
#process = cms.Process('SIM',Run2)
-#process.load('Configuration.Geometry.GeometryExtended2015_cff')
-#process.load('Configuration.Geometry.GeometryExtended2017_cff')
+#process.load('Configuration.Geometry.GeometryExtended2015Reco_cff')
+#process.load('Configuration.Geometry.GeometryExtended2017Reco_cff')
from Configuration.Eras.Era_Run3_cff import Run3
process = cms.Process('SIM',Run3)
-process.load('Configuration.Geometry.GeometryExtended2021_cff')
+process.load('Configuration.Geometry.GeometryExtended2021Reco_cff')
process.load('FWCore.MessageService.MessageLogger_cfi')
diff --git a/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheck_dd4hep_cfg.py b/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheck_dd4hep_cfg.py
index 01718f1c4b691..bb67118d334bd 100644
--- a/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheck_dd4hep_cfg.py
+++ b/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheck_dd4hep_cfg.py
@@ -2,7 +2,7 @@
from Configuration.Eras.Era_Run3_dd4hep_cff import Run3_dd4hep
process = cms.Process('G4PrintGeometry',Run3_dd4hep)
-process.load('Configuration.Geometry.GeometryDD4hepExtended2021_cff')
+process.load('Configuration.Geometry.GeometryDD4hepExtended2021Reco_cff')
process.load('FWCore.MessageService.MessageLogger_cfi')
diff --git a/SimG4Core/PrintGeomInfo/test/python/runDD4HepBigXML_cfg.py b/SimG4Core/PrintGeomInfo/test/python/runDD4HepBigXML_cfg.py
new file mode 100644
index 0000000000000..564193e4fd96b
--- /dev/null
+++ b/SimG4Core/PrintGeomInfo/test/python/runDD4HepBigXML_cfg.py
@@ -0,0 +1,47 @@
+import FWCore.ParameterSet.Config as cms
+
+from Configuration.Eras.Era_Run3_dd4hep_cff import Run3_dd4hep
+process = cms.Process('G4PrintGeometry',Run3_dd4hep)
+process.load("Configuration.Geometry.GeometryDD4hep_cff")
+process.load("Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff")
+process.load("Geometry.EcalCommonData.ecalSimulationParameters_cff")
+process.load("Geometry.HcalCommonData.hcalDDDSimConstants_cff")
+process.load("Geometry.HcalCommonData.hcalDDDRecConstants_cfi")
+process.load("Geometry.MuonNumbering.muonGeometryConstants_cff")
+process.load("Geometry.MuonNumbering.muonOffsetESProducer_cff")
+process.load('FWCore.MessageService.MessageLogger_cfi')
+
+from SimG4Core.PrintGeomInfo.g4PrintGeomInfo_cfi import *
+
+process = printGeomInfo(process)
+
+if hasattr(process,'MessageLogger'):
+ process.MessageLogger.G4cerr=dict()
+ process.MessageLogger.G4cout=dict()
+
+process.DDDetectorESProducer.confGeomXMLFiles = cms.FileInPath("SimG4Core/PrintGeomInfo/data/dd4hep/cmsExtendedGeometry2021.xml")
+
+process.g4SimHits.Watchers = cms.VPSet(cms.PSet(
+ DumpSummary = cms.untracked.bool(True),
+ DumpLVTree = cms.untracked.bool(False),
+ DumpMaterial = cms.untracked.bool(False),
+ DumpLVList = cms.untracked.bool(False),
+ DumpLV = cms.untracked.bool(False),
+ DumpSolid = cms.untracked.bool(False),
+ DumpAttributes = cms.untracked.bool(False),
+ DumpPV = cms.untracked.bool(False),
+ DumpRotation = cms.untracked.bool(False),
+ DumpReplica = cms.untracked.bool(False),
+ DumpTouch = cms.untracked.bool(False),
+ DumpSense = cms.untracked.bool(False),
+ DD4Hep = cms.untracked.bool(True),
+ Name = cms.untracked.string(''),
+ Names = cms.untracked.vstring(''),
+ MaterialFileName = cms.untracked.string('matfileBigDD4Hep.txt'),
+ SolidFileName = cms.untracked.string('solidfileBigDD4Hep.txt'),
+ LVFileName = cms.untracked.string('lvfileBigDD4Hep.txt'),
+ PVFileName = cms.untracked.string('pvfileBigDD4Hep.txt'),
+ TouchFileName = cms.untracked.string('touchfileBigDD4Hep.txt'),
+ FileDetail = cms.untracked.bool(True),
+ type = cms.string('PrintGeomInfoAction')
+))
diff --git a/SimG4Core/PrintGeomInfo/test/python/runDD4HepDB_cfg.py b/SimG4Core/PrintGeomInfo/test/python/runDD4HepDB_cfg.py
new file mode 100644
index 0000000000000..9afd8c037350f
--- /dev/null
+++ b/SimG4Core/PrintGeomInfo/test/python/runDD4HepDB_cfg.py
@@ -0,0 +1,42 @@
+import FWCore.ParameterSet.Config as cms
+
+from Configuration.Eras.Era_Run3_dd4hep_cff import Run3_dd4hep
+process = cms.Process('G4PrintGeometry',Run3_dd4hep)
+process.load('Configuration.StandardSequences.GeometryRecoDB_cff')
+process.load('Configuration.StandardSequences.GeometrySimDB_cff')
+process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
+from Configuration.AlCa.GlobalTag import GlobalTag
+process.GlobalTag = GlobalTag(process.GlobalTag, '120X_mcRun3_2021_realistic_dd4hep_v1', '')
+
+from SimG4Core.PrintGeomInfo.g4PrintGeomInfo_cfi import *
+
+process = printGeomInfo(process)
+
+if hasattr(process,'MessageLogger'):
+ process.MessageLogger.G4cerr=dict()
+ process.MessageLogger.G4cout=dict()
+
+process.g4SimHits.Watchers = cms.VPSet(cms.PSet(
+ DumpSummary = cms.untracked.bool(True),
+ DumpLVTree = cms.untracked.bool(False),
+ DumpMaterial = cms.untracked.bool(False),
+ DumpLVList = cms.untracked.bool(False),
+ DumpLV = cms.untracked.bool(False),
+ DumpSolid = cms.untracked.bool(False),
+ DumpAttributes = cms.untracked.bool(False),
+ DumpPV = cms.untracked.bool(False),
+ DumpRotation = cms.untracked.bool(False),
+ DumpReplica = cms.untracked.bool(False),
+ DumpTouch = cms.untracked.bool(False),
+ DumpSense = cms.untracked.bool(False),
+ DD4Hep = cms.untracked.bool(True),
+ Name = cms.untracked.string(''),
+ Names = cms.untracked.vstring(''),
+ MaterialFileName = cms.untracked.string('matfileDD4HepDB.txt'),
+ SolidFileName = cms.untracked.string('solidfileDD4HepDB.txt'),
+ LVFileName = cms.untracked.string('lvfileDD4HepDB.txt'),
+ PVFileName = cms.untracked.string('pvfileDD4HepDB.txt'),
+ TouchFileName = cms.untracked.string('touchfileDD4HepDB.txt'),
+ FileDetail = cms.untracked.bool(True),
+ type = cms.string('PrintGeomInfoAction')
+))
diff --git a/SimG4Core/PrintGeomInfo/test/python/runDD4HepXML_cfg.py b/SimG4Core/PrintGeomInfo/test/python/runDD4HepXML_cfg.py
new file mode 100644
index 0000000000000..369a04054df99
--- /dev/null
+++ b/SimG4Core/PrintGeomInfo/test/python/runDD4HepXML_cfg.py
@@ -0,0 +1,44 @@
+import FWCore.ParameterSet.Config as cms
+
+from Configuration.Eras.Era_Run3_dd4hep_cff import Run3_dd4hep
+process = cms.Process('G4PrintGeometry',Run3_dd4hep)
+process.load('Configuration.Geometry.GeometryDD4hepExtended2021Reco_cff')
+
+#from Configuration.Eras.Era_Phase2C11_dd4hep_cff import Phase2C11_dd4hep
+#process = cms.Process('G4PrintGeometry',Phase2C11_dd4hep)
+#process.load('Configuration.Geometry.GeometryDD4hepExtended2026D77Reco_cff')
+#process.load('Configuration.Geometry.GeometryDD4hepExtended2026D83Reco_cff')
+process.load('FWCore.MessageService.MessageLogger_cfi')
+
+from SimG4Core.PrintGeomInfo.g4PrintGeomInfo_cfi import *
+
+process = printGeomInfo(process)
+
+if hasattr(process,'MessageLogger'):
+ process.MessageLogger.G4cerr=dict()
+ process.MessageLogger.G4cout=dict()
+
+process.g4SimHits.Watchers = cms.VPSet(cms.PSet(
+ DumpSummary = cms.untracked.bool(True),
+ DumpLVTree = cms.untracked.bool(False),
+ DumpMaterial = cms.untracked.bool(False),
+ DumpLVList = cms.untracked.bool(False),
+ DumpLV = cms.untracked.bool(False),
+ DumpSolid = cms.untracked.bool(False),
+ DumpAttributes = cms.untracked.bool(False),
+ DumpPV = cms.untracked.bool(False),
+ DumpRotation = cms.untracked.bool(False),
+ DumpReplica = cms.untracked.bool(False),
+ DumpTouch = cms.untracked.bool(False),
+ DumpSense = cms.untracked.bool(False),
+ DD4Hep = cms.untracked.bool(True),
+ Name = cms.untracked.string(''),
+ Names = cms.untracked.vstring(''),
+ MaterialFileName = cms.untracked.string('matfileDD4Hep.txt'),
+ SolidFileName = cms.untracked.string('solidfileDD4Hep.txt'),
+ LVFileName = cms.untracked.string('lvfileDD4Hep.txt'),
+ PVFileName = cms.untracked.string('pvfileDD4Hep.txt'),
+ TouchFileName = cms.untracked.string('touchfileDD4Hep.txt'),
+ FileDetail = cms.untracked.bool(True),
+ type = cms.string('PrintGeomInfoAction')
+))
diff --git a/SimG4Core/PrintGeomInfo/test/python/runDDDBigXML_cfg.py b/SimG4Core/PrintGeomInfo/test/python/runDDDBigXML_cfg.py
new file mode 100644
index 0000000000000..5a9280f668273
--- /dev/null
+++ b/SimG4Core/PrintGeomInfo/test/python/runDDDBigXML_cfg.py
@@ -0,0 +1,45 @@
+import FWCore.ParameterSet.Config as cms
+
+from Configuration.Eras.Era_Run3_cff import Run3
+process = cms.Process('G4PrintGeometry',Run3)
+process.load('SimG4Core.PrintGeomInfo.cmsExtendedGeometry2021_cfi')
+process.load("Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff")
+process.load("Geometry.EcalCommonData.ecalSimulationParameters_cff")
+process.load("Geometry.HcalCommonData.hcalDDDSimConstants_cff")
+process.load("Geometry.HcalCommonData.hcalDDDRecConstants_cfi")
+process.load("Geometry.MuonNumbering.muonGeometryConstants_cff")
+process.load("Geometry.MuonNumbering.muonOffsetESProducer_cff")
+process.load('FWCore.MessageService.MessageLogger_cfi')
+
+from SimG4Core.PrintGeomInfo.g4PrintGeomInfo_cfi import *
+
+process = printGeomInfo(process)
+
+if hasattr(process,'MessageLogger'):
+ process.MessageLogger.G4cerr=dict()
+ process.MessageLogger.G4cout=dict()
+
+process.g4SimHits.Watchers = cms.VPSet(cms.PSet(
+ DumpSummary = cms.untracked.bool(True),
+ DumpLVTree = cms.untracked.bool(False),
+ DumpMaterial = cms.untracked.bool(False),
+ DumpLVList = cms.untracked.bool(False),
+ DumpLV = cms.untracked.bool(False),
+ DumpSolid = cms.untracked.bool(False),
+ DumpAttributes = cms.untracked.bool(False),
+ DumpPV = cms.untracked.bool(False),
+ DumpRotation = cms.untracked.bool(False),
+ DumpReplica = cms.untracked.bool(False),
+ DumpTouch = cms.untracked.bool(False),
+ DumpSense = cms.untracked.bool(False),
+ DD4Hep = cms.untracked.bool(False),
+ Name = cms.untracked.string(''),
+ Names = cms.untracked.vstring(''),
+ MaterialFileName = cms.untracked.string('matfileBigDDD.txt'),
+ SolidFileName = cms.untracked.string('solidfileBigDDD.txt'),
+ LVFileName = cms.untracked.string('lvfileBigDDD.txt'),
+ PVFileName = cms.untracked.string('pvfileBigDDD.txt'),
+ TouchFileName = cms.untracked.string('touchfileBigDDD.txt'),
+ FileDetail = cms.untracked.bool(True),
+ type = cms.string('PrintGeomInfoAction')
+))
diff --git a/SimG4Core/PrintGeomInfo/test/python/runDDDDB_cfg.py b/SimG4Core/PrintGeomInfo/test/python/runDDDDB_cfg.py
new file mode 100644
index 0000000000000..f964ca32f164b
--- /dev/null
+++ b/SimG4Core/PrintGeomInfo/test/python/runDDDDB_cfg.py
@@ -0,0 +1,44 @@
+import FWCore.ParameterSet.Config as cms
+
+from Configuration.Eras.Era_Run3_cff import Run3
+process = cms.Process('G4PrintGeometry',Run3)
+process.load('Configuration.StandardSequences.GeometryRecoDB_cff')
+process.load('Configuration.StandardSequences.GeometrySimDB_cff')
+process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
+from Configuration.AlCa.GlobalTag import GlobalTag
+process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '')
+
+process.load('FWCore.MessageService.MessageLogger_cfi')
+
+from SimG4Core.PrintGeomInfo.g4PrintGeomInfo_cfi import *
+
+process = printGeomInfo(process)
+
+if hasattr(process,'MessageLogger'):
+ process.MessageLogger.G4cerr=dict()
+ process.MessageLogger.G4cout=dict()
+
+process.g4SimHits.Watchers = cms.VPSet(cms.PSet(
+ DumpSummary = cms.untracked.bool(True),
+ DumpLVTree = cms.untracked.bool(False),
+ DumpMaterial = cms.untracked.bool(False),
+ DumpLVList = cms.untracked.bool(False),
+ DumpLV = cms.untracked.bool(False),
+ DumpSolid = cms.untracked.bool(False),
+ DumpAttributes = cms.untracked.bool(False),
+ DumpPV = cms.untracked.bool(False),
+ DumpRotation = cms.untracked.bool(False),
+ DumpReplica = cms.untracked.bool(False),
+ DumpTouch = cms.untracked.bool(False),
+ DumpSense = cms.untracked.bool(False),
+ DD4Hep = cms.untracked.bool(False),
+ Name = cms.untracked.string(''),
+ Names = cms.untracked.vstring(''),
+ MaterialFileName = cms.untracked.string('matfileDDDDB.txt'),
+ SolidFileName = cms.untracked.string('solidfileDDDDB.txt'),
+ LVFileName = cms.untracked.string('lvfileDDDDB.txt'),
+ PVFileName = cms.untracked.string('pvfileDDDDB.txt'),
+ TouchFileName = cms.untracked.string('touchfileDDDDB.txt'),
+ FileDetail = cms.untracked.bool(True),
+ type = cms.string('PrintGeomInfoAction')
+))
diff --git a/SimG4Core/PrintGeomInfo/test/python/runDDDXML_cfg.py b/SimG4Core/PrintGeomInfo/test/python/runDDDXML_cfg.py
new file mode 100644
index 0000000000000..0538de1a251af
--- /dev/null
+++ b/SimG4Core/PrintGeomInfo/test/python/runDDDXML_cfg.py
@@ -0,0 +1,50 @@
+import FWCore.ParameterSet.Config as cms
+
+#from Configuration.Eras.Era_Run2_cff import Run2
+#process = cms.Process('G4PrintGeometry',Run2)
+#process.load('Configuration.Geometry.GeometryExtended2015Reco_cff')
+#process.load('Configuration.Geometry.GeometryExtended2017Reco_cff')
+
+from Configuration.Eras.Era_Run3_cff import Run3
+process = cms.Process('G4PrintGeometry',Run3)
+process.load('Configuration.Geometry.GeometryExtended2021Reco_cff')
+
+#from Configuration.Eras.Era_Phase2C11_cff import Phase2C11
+#process = cms.Process('G4PrintGeometry',Phase2C11)
+#process.load('Configuration.Geometry.GeometryExtended2026D77Reco_cff')
+#process.load('Configuration.Geometry.GeometryExtended2026D83Reco_cff')
+
+process.load('FWCore.MessageService.MessageLogger_cfi')
+
+from SimG4Core.PrintGeomInfo.g4PrintGeomInfo_cfi import *
+
+process = printGeomInfo(process)
+
+if hasattr(process,'MessageLogger'):
+ process.MessageLogger.G4cerr=dict()
+ process.MessageLogger.G4cout=dict()
+
+process.g4SimHits.Watchers = cms.VPSet(cms.PSet(
+ DumpSummary = cms.untracked.bool(True),
+ DumpLVTree = cms.untracked.bool(False),
+ DumpMaterial = cms.untracked.bool(False),
+ DumpLVList = cms.untracked.bool(False),
+ DumpLV = cms.untracked.bool(False),
+ DumpSolid = cms.untracked.bool(False),
+ DumpAttributes = cms.untracked.bool(False),
+ DumpPV = cms.untracked.bool(False),
+ DumpRotation = cms.untracked.bool(False),
+ DumpReplica = cms.untracked.bool(False),
+ DumpTouch = cms.untracked.bool(False),
+ DumpSense = cms.untracked.bool(False),
+ DD4Hep = cms.untracked.bool(False),
+ Name = cms.untracked.string(''),
+ Names = cms.untracked.vstring(''),
+ MaterialFileName = cms.untracked.string('matfileDDD.txt'),
+ SolidFileName = cms.untracked.string('solidfileDDD.txt'),
+ LVFileName = cms.untracked.string('lvfileDDD.txt'),
+ PVFileName = cms.untracked.string('pvfileDDD.txt'),
+ TouchFileName = cms.untracked.string('touchfileDDD.txt'),
+ FileDetail = cms.untracked.bool(True),
+ type = cms.string('PrintGeomInfoAction')
+))
diff --git a/SimG4Core/PrintGeomInfo/test/python/runMaterialBudgeInfo_cfg.py b/SimG4Core/PrintGeomInfo/test/python/runMaterialBudgeInfo_cfg.py
new file mode 100644
index 0000000000000..bb51c83453fc0
--- /dev/null
+++ b/SimG4Core/PrintGeomInfo/test/python/runMaterialBudgeInfo_cfg.py
@@ -0,0 +1,72 @@
+import FWCore.ParameterSet.Config as cms
+
+from Configuration.Eras.Era_Run3_cff import Run3
+process = cms.Process("PrintMaterialBudget",Run3)
+process.load('Configuration.Geometry.GeometryExtended2021Reco_cff')
+
+#from Configuration.Eras.Era_Run3_dd4hep_cff import Run3_dd4hep
+#process = cms.Process('PrintMaterialBudget',Run3_dd4hep)
+#process.load('Configuration.Geometry.GeometryDD4hepExtended2021Reco_cff')
+
+#from Configuration.Eras.Era_Phase2C11_cff import Phase2C11
+#process = cms.Process('PrintMaterialBudget',Phase2C11)
+#process.load('Configuration.Geometry.GeometryExtended2026D83Reco_cff')
+
+process.load('FWCore.MessageService.MessageLogger_cfi')
+
+process.MessageLogger.cerr.enable = False
+process.MessageLogger.files.MatBudget = dict(extension = "txt")
+process.MessageLogger.G4cout=dict()
+
+process.maxEvents = cms.untracked.PSet(
+ input = cms.untracked.int32(1)
+)
+
+process.load('SimGeneral.HepPDTESSource.pdt_cfi')
+process.load('IOMC.EventVertexGenerators.VtxSmearedFlat_cfi')
+process.load('GeneratorInterface.Core.generatorSmeared_cfi')
+
+process.source = cms.Source("EmptySource")
+
+process.generator = cms.EDProducer("FlatRandomPtGunProducer",
+ PGunParameters = cms.PSet(
+ PartID = cms.vint32(13),
+ MinEta = cms.double(-2.5),
+ MaxEta = cms.double(2.5),
+ MinPhi = cms.double(-3.14159265359),
+ MaxPhi = cms.double(3.14159265359),
+ MinPt = cms.double(9.99),
+ MaxPt = cms.double(10.01)
+ ),
+ AddAntiParticle = cms.bool(False),
+ Verbosity = cms.untracked.int32(0),
+ firstRun = cms.untracked.uint32(1)
+)
+
+process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService",
+ generator = cms.PSet(
+ initialSeed = cms.untracked.uint32(123456789),
+ engineName = cms.untracked.string('HepJamesRandom')
+ ),
+ VtxSmeared = cms.PSet(
+ engineName = cms.untracked.string('HepJamesRandom'),
+ initialSeed = cms.untracked.uint32(98765432)
+ ),
+ g4SimHits = cms.PSet(
+ initialSeed = cms.untracked.uint32(11),
+ engineName = cms.untracked.string('HepJamesRandom')
+ )
+)
+
+process.load('SimG4Core.Application.g4SimHits_cfi')
+
+process.p1 = cms.Path(process.generator*process.VtxSmeared*process.generatorSmeared*process.g4SimHits)
+
+process.g4SimHits.Physics.type = 'SimG4Core/Physics/DummyPhysics'
+process.g4SimHits.UseMagneticField = False
+process.g4SimHits.Physics.DummyEMPhysics = True
+process.g4SimHits.Physics.DefaultCutValue = 10.
+process.g4SimHits.Watchers = cms.VPSet(cms.PSet(
+ Name = cms.untracked.string('TIDF'),
+ type = cms.string('PrintMaterialBudgetInfo')
+))
diff --git a/SimG4Core/PrintGeomInfo/test/python/runPrintSolid_cfg.py b/SimG4Core/PrintGeomInfo/test/python/runPrintSolid_cfg.py
new file mode 100644
index 0000000000000..bb9e7a06455f3
--- /dev/null
+++ b/SimG4Core/PrintGeomInfo/test/python/runPrintSolid_cfg.py
@@ -0,0 +1,51 @@
+import FWCore.ParameterSet.Config as cms
+
+from Configuration.Eras.Era_Run3_cff import Run3
+process = cms.Process('G4PrintGeometry',Run3)
+process.load('Configuration.Geometry.GeometryExtended2021Reco_cff')
+
+#from Configuration.Eras.Era_Run3_dd4hep_cff import Run3_dd4hep
+#process = cms.Process('G4PrintGeometry',Run3_dd4hep)
+#process.load('Configuration.Geometry.GeometryDD4hepExtended2021Reco_cff')
+
+process.load('SimGeneral.HepPDTESSource.pdt_cfi')
+
+process.load('IOMC.RandomEngine.IOMC_cff')
+process.load('IOMC.EventVertexGenerators.VtxSmearedFlat_cfi')
+process.load('GeneratorInterface.Core.generatorSmeared_cfi')
+process.load('FWCore.MessageService.MessageLogger_cfi')
+process.load('SimG4Core.Application.g4SimHits_cfi')
+process.load('SimG4Core.PrintGeomInfo.printGeomSolids_cff')
+
+if hasattr(process,'MessageLogger'):
+ process.MessageLogger.G4cout=dict()
+ process.MessageLogger.G4cerr=dict()
+ process.MessageLogger.PrintGeom=dict()
+
+process.source = cms.Source("EmptySource")
+
+process.generator = cms.EDProducer("FlatRandomEGunProducer",
+ PGunParameters = cms.PSet(
+ PartID = cms.vint32(14),
+ MinEta = cms.double(-3.5),
+ MaxEta = cms.double(3.5),
+ MinPhi = cms.double(-3.14159265359),
+ MaxPhi = cms.double(3.14159265359),
+ MinE = cms.double(9.99),
+ MaxE = cms.double(10.01)
+ ),
+ AddAntiParticle = cms.bool(False),
+ Verbosity = cms.untracked.int32(0),
+ firstRun = cms.untracked.uint32(1)
+)
+
+process.maxEvents = cms.untracked.PSet(
+ input = cms.untracked.int32(1)
+)
+
+process.g4SimHits.UseMagneticField = False
+process.g4SimHits.Physics.type = 'SimG4Core/Physics/DummyPhysics'
+process.g4SimHits.Physics.DummyEMPhysics = True
+process.g4SimHits.Physics.DefaultCutValue = 10.
+
+process.p1 = cms.Path(process.generator*process.VtxSmeared*process.generatorSmeared*process.g4SimHits*process.printGeomSolids)
diff --git a/SimG4Core/PrintGeomInfo/test/python/runSens_cfg.py b/SimG4Core/PrintGeomInfo/test/python/runSens_cfg.py
index 078dfe5bb0c05..9b29754b4e39b 100644
--- a/SimG4Core/PrintGeomInfo/test/python/runSens_cfg.py
+++ b/SimG4Core/PrintGeomInfo/test/python/runSens_cfg.py
@@ -1,17 +1,22 @@
import FWCore.ParameterSet.Config as cms
-process = cms.Process("PrintGeom")
+from Configuration.Eras.Era_Run3_cff import Run3
+process = cms.Process('PrintGeometry',Run3)
+process.load('Configuration.Geometry.GeometryExtended2021Reco_cff')
+
+#from Configuration.Eras.Era_Run3_dd4hep_cff import Run3_dd4hep
+#process = cms.Process('PrintGeometry',Run3_dd4hep)
+#process.load('Configuration.Geometry.GeometryDD4hepExtended2021Reco_cff')
+
+#from Configuration.Eras.Era_Phase2C11_cff import Phase2C11
+#process = cms.Process('PrintGeometry',Phase2C11)
+#process.load('Configuration.Geometry.GeometryExtended2026D83Reco_cff')
process.load('FWCore.MessageService.MessageLogger_cfi')
-process.load('Configuration.Geometry.GeometryExtended2021_cff')
-#process.load('Configuration.Geometry.GeometryExtended2026D41_cff')
-#process.load('Geometry.CMSCommonData.cmsIdealGeometryXML_cfi')
-#process.load('Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi')
-#process.load("Geometry.EcalCommonData.ecalSimulationParameters_cff")
-#process.load('Geometry.HcalCommonData.hcalDDDSimConstants_cff')
process.MessageLogger.cerr.enable = False
process.MessageLogger.files.SensDet = dict(extension="txt")
+process.MessageLogger.G4cout=dict()
process.maxEvents = cms.untracked.PSet(
input = cms.untracked.int32(1)
diff --git a/SimG4Core/PrintGeomInfo/test/python/runSummary_cfg.py b/SimG4Core/PrintGeomInfo/test/python/runSummary_cfg.py
index e6d0d90319b33..d29709419a4ad 100644
--- a/SimG4Core/PrintGeomInfo/test/python/runSummary_cfg.py
+++ b/SimG4Core/PrintGeomInfo/test/python/runSummary_cfg.py
@@ -1,14 +1,13 @@
import FWCore.ParameterSet.Config as cms
-process = cms.Process("G4PrintGeometry")
+from Configuration.Eras.Era_Run3_cff import Run3
+process = cms.Process('PrintGeometry',Run3)
+process.load('Configuration.Geometry.GeometryExtended2021Reco_cff')
-#process.load('Configuration.Geometry.GeometryIdeal_cff')
-#process.load('Configuration.Geometry.GeometryExtended_cff')
-#process.load('Configuration.Geometry.GeometryExtended2015_cff')
-#process.load('Configuration.Geometry.GeometryExtended2017_cff')
-process.load('Configuration.Geometry.GeometryExtended2021_cff')
-#process.load('Configuration.Geometry.GeometryExtended2026D77_cff')
-#process.load('Configuration.Geometry.GeometryExtended2026D83_cff')
+#from Configuration.Eras.Era_Phase2C11_cff import Phase2C11
+#process = cms.Process('PrintGeometry',Phase2C11)
+#process.load('Configuration.Geometry.GeometryExtended2026D77Reco_cff')
+#process.load('Configuration.Geometry.GeometryExtended2026D83Reco_cff')
process.load('FWCore.MessageService.MessageLogger_cfi')
diff --git a/Validation/Geometry/test/runMaterialBudgetVolumeBigDD4HepXML_cfg.py b/Validation/Geometry/test/runMaterialBudgetVolumeBigDD4HepXML_cfg.py
new file mode 100644
index 0000000000000..741178c68e48f
--- /dev/null
+++ b/Validation/Geometry/test/runMaterialBudgetVolumeBigDD4HepXML_cfg.py
@@ -0,0 +1,49 @@
+import FWCore.ParameterSet.Config as cms
+
+from Configuration.Eras.Era_Run3_dd4hep_cff import Run3_dd4hep
+process = cms.Process('PROD',Run3_dd4hep)
+process.load("Configuration.Geometry.GeometryDD4hepExtended2021Reco_cff")
+process.load("Configuration.Geometry.GeometryDD4hep_cff")
+process.load("Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff")
+process.load("Geometry.EcalCommonData.ecalSimulationParameters_cff")
+process.load("Geometry.HcalCommonData.hcalDDDSimConstants_cff")
+process.load("Geometry.HcalCommonData.hcalDDDRecConstants_cfi")
+process.load("Geometry.MuonNumbering.muonGeometryConstants_cff")
+process.load("Geometry.MuonNumbering.muonOffsetESProducer_cff")
+
+process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi")
+process.load("Configuration.StandardSequences.MagneticField_cff")
+process.load("SimG4Core.Application.g4SimHits_cfi")
+process.load("Validation.Geometry.materialBudgetVolume_cfi")
+
+process.load("IOMC.RandomEngine.IOMC_cff")
+process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876
+
+process.load('FWCore.MessageService.MessageLogger_cfi')
+process.MessageLogger.cerr.FwkReport.reportEvery = cms.untracked.int32(1000)
+if hasattr(process,'MessageLogger'):
+ process.MessageLogger.MaterialBudget=dict()
+
+process.source = cms.Source("PoolSource",
+ noEventSort = cms.untracked.bool(True),
+ duplicateCheckMode = cms.untracked.string("noDuplicateCheck"),
+ fileNames = cms.untracked.vstring('file:single_neutrino_random.root')
+)
+
+process.maxEvents = cms.untracked.PSet(
+ input = cms.untracked.int32(-1)
+)
+
+process.TFileService = cms.Service("TFileService",
+ fileName = cms.string('matbdgRun3dd4hepBigXML.root')
+)
+
+process.DDDetectorESProducer.confGeomXMLFiles = cms.FileInPath("SimG4Core/PrintGeomInfo/data/dd4hep/cmsExtendedGeometry2021.xml")
+process.g4SimHits.UseMagneticField = False
+process.g4SimHits.Physics.type = 'SimG4Core/Physics/DummyPhysics'
+process.g4SimHits.StackingAction.TrackNeutrino = True
+process.g4SimHits.Physics.DummyEMPhysics = True
+process.g4SimHits.Physics.CutsPerRegion = False
+
+process.load("Validation.Geometry.materialBudgetVolumeAnalysis_cfi")
+process.p1 = cms.Path(process.g4SimHits+process.materialBudgetVolumeAnalysis)
diff --git a/Validation/Geometry/test/runMaterialBudgetVolumeBigDDDXML_cfg.py b/Validation/Geometry/test/runMaterialBudgetVolumeBigDDDXML_cfg.py
new file mode 100644
index 0000000000000..5a5c14cdbaad7
--- /dev/null
+++ b/Validation/Geometry/test/runMaterialBudgetVolumeBigDDDXML_cfg.py
@@ -0,0 +1,47 @@
+import FWCore.ParameterSet.Config as cms
+
+from Configuration.Eras.Era_Run3_cff import Run3
+process = cms.Process('PROD',Run3)
+process.load('SimG4Core.PrintGeomInfo.cmsExtendedGeometry2021_cfi')
+process.load("Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff")
+process.load("Geometry.EcalCommonData.ecalSimulationParameters_cff")
+process.load("Geometry.HcalCommonData.hcalDDDSimConstants_cff")
+process.load("Geometry.HcalCommonData.hcalDDDRecConstants_cfi")
+process.load("Geometry.MuonNumbering.muonGeometryConstants_cff")
+process.load("Geometry.MuonNumbering.muonOffsetESProducer_cff")
+
+process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi")
+process.load("Configuration.StandardSequences.MagneticField_cff")
+process.load("SimG4Core.Application.g4SimHits_cfi")
+process.load("Validation.Geometry.materialBudgetVolume_cfi")
+
+process.load("IOMC.RandomEngine.IOMC_cff")
+process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876
+
+process.load('FWCore.MessageService.MessageLogger_cfi')
+process.MessageLogger.cerr.FwkReport.reportEvery = cms.untracked.int32(1000)
+if hasattr(process,'MessageLogger'):
+ process.MessageLogger.MaterialBudget=dict()
+
+process.source = cms.Source("PoolSource",
+ noEventSort = cms.untracked.bool(True),
+ duplicateCheckMode = cms.untracked.string("noDuplicateCheck"),
+ fileNames = cms.untracked.vstring('file:single_neutrino_random.root')
+)
+
+process.maxEvents = cms.untracked.PSet(
+ input = cms.untracked.int32(-1)
+)
+
+process.TFileService = cms.Service("TFileService",
+ fileName = cms.string('matbdgRun3dddBigXML.root')
+)
+
+process.g4SimHits.UseMagneticField = False
+process.g4SimHits.Physics.type = 'SimG4Core/Physics/DummyPhysics'
+process.g4SimHits.StackingAction.TrackNeutrino = True
+process.g4SimHits.Physics.DummyEMPhysics = True
+process.g4SimHits.Physics.CutsPerRegion = False
+
+process.load("Validation.Geometry.materialBudgetVolumeAnalysis_cfi")
+process.p1 = cms.Path(process.g4SimHits+process.materialBudgetVolumeAnalysis)
diff --git a/Validation/Geometry/test/runMaterialBudgetVolumeDB_cfg.py b/Validation/Geometry/test/runMaterialBudgetVolumeDB_cfg.py
new file mode 100644
index 0000000000000..d694f84d40756
--- /dev/null
+++ b/Validation/Geometry/test/runMaterialBudgetVolumeDB_cfg.py
@@ -0,0 +1,49 @@
+import FWCore.ParameterSet.Config as cms
+
+from Configuration.Eras.Era_Run3_cff import Run3
+process = cms.Process('PROD',Run3)
+#from Configuration.Eras.Era_Run3_dd4hep_cff import Run3_dd4hep
+#process = cms.Process('PROD',Run3_dd4hep)
+process.load('Configuration.StandardSequences.GeometryRecoDB_cff')
+process.load('Configuration.StandardSequences.GeometrySimDB_cff')
+process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
+from Configuration.AlCa.GlobalTag import GlobalTag
+process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '')
+#process.GlobalTag = GlobalTag(process.GlobalTag, '120X_mcRun3_2021_realistic_dd4hep_v1', '')
+
+process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi")
+process.load("Configuration.StandardSequences.MagneticField_cff")
+process.load("SimG4Core.Application.g4SimHits_cfi")
+process.load("Validation.Geometry.materialBudgetVolume_cfi")
+
+process.load("IOMC.RandomEngine.IOMC_cff")
+process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876
+
+process.load('FWCore.MessageService.MessageLogger_cfi')
+process.MessageLogger.cerr.FwkReport.reportEvery = cms.untracked.int32(1000)
+if hasattr(process,'MessageLogger'):
+ process.MessageLogger.MaterialBudget=dict()
+
+process.source = cms.Source("PoolSource",
+ noEventSort = cms.untracked.bool(True),
+ duplicateCheckMode = cms.untracked.string("noDuplicateCheck"),
+ fileNames = cms.untracked.vstring('file:single_neutrino_random.root')
+)
+
+process.maxEvents = cms.untracked.PSet(
+ input = cms.untracked.int32(-1)
+)
+
+process.TFileService = cms.Service("TFileService",
+ fileName = cms.string('matbdgRun3dddDB.root')
+# fileName = cms.string('matbdgRun3dd4hepDB.root')
+)
+
+process.g4SimHits.UseMagneticField = False
+process.g4SimHits.Physics.type = 'SimG4Core/Physics/DummyPhysics'
+process.g4SimHits.StackingAction.TrackNeutrino = True
+process.g4SimHits.Physics.DummyEMPhysics = True
+process.g4SimHits.Physics.CutsPerRegion = False
+
+process.load("Validation.Geometry.materialBudgetVolumeAnalysis_cfi")
+process.p1 = cms.Path(process.g4SimHits+process.materialBudgetVolumeAnalysis)
diff --git a/Validation/Geometry/test/runMaterialBudgetVolumeXML_cfg.py b/Validation/Geometry/test/runMaterialBudgetVolumeXML_cfg.py
new file mode 100644
index 0000000000000..074e76ca52656
--- /dev/null
+++ b/Validation/Geometry/test/runMaterialBudgetVolumeXML_cfg.py
@@ -0,0 +1,49 @@
+import FWCore.ParameterSet.Config as cms
+
+from Configuration.Eras.Era_Run3_cff import Run3
+process = cms.Process('PROD',Run3)
+process.load("Configuration.Geometry.GeometryExtended2021Reco_cff")
+#from Configuration.Eras.Era_Run3_dd4hep_cff import Run3_dd4hep
+#process = cms.Process('PROD',Run3_dd4hep)
+#process.load("Configuration.Geometry.GeometryDD4hepExtended2021Reco_cff")
+#from Configuration.Eras.Era_Phase2C11_cff import Phase2C11
+#process = cms.Process('PROD',Phase2C11)
+#process.load("Configuration.Geometry.GeometryExtended2026D77Reco_cff")
+
+process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi")
+process.load("Configuration.StandardSequences.MagneticField_cff")
+process.load("SimG4Core.Application.g4SimHits_cfi")
+process.load("Validation.Geometry.materialBudgetVolume_cfi")
+
+process.load("IOMC.RandomEngine.IOMC_cff")
+process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876
+
+process.load('FWCore.MessageService.MessageLogger_cfi')
+process.MessageLogger.cerr.FwkReport.reportEvery = cms.untracked.int32(1000)
+if hasattr(process,'MessageLogger'):
+ process.MessageLogger.MaterialBudget=dict()
+
+process.source = cms.Source("PoolSource",
+ noEventSort = cms.untracked.bool(True),
+ duplicateCheckMode = cms.untracked.string("noDuplicateCheck"),
+ fileNames = cms.untracked.vstring('file:single_neutrino_random.root')
+)
+
+process.maxEvents = cms.untracked.PSet(
+ input = cms.untracked.int32(-1)
+)
+
+process.TFileService = cms.Service("TFileService",
+ fileName = cms.string('matbdgRun3dddXML.root')
+# fileName = cms.string('matbdgRun3dd4hepXML.root')
+# fileName = cms.string('matbdgPhase2XML.root')
+)
+
+process.g4SimHits.UseMagneticField = False
+process.g4SimHits.Physics.type = 'SimG4Core/Physics/DummyPhysics'
+process.g4SimHits.StackingAction.TrackNeutrino = True
+process.g4SimHits.Physics.DummyEMPhysics = True
+process.g4SimHits.Physics.CutsPerRegion = False
+
+process.load("Validation.Geometry.materialBudgetVolumeAnalysis_cfi")
+process.p1 = cms.Path(process.g4SimHits+process.materialBudgetVolumeAnalysis)