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)