Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #29360 from bsunanda/Run3-TB54
Run3-TB54 First step of transition to dd4hep for HCal TB simulation
- Loading branch information
Showing
21 changed files
with
1,003 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
<use name="DetectorDescription/Core"/> | ||
<use name="DetectorDescription/DDCMS"/> | ||
<use name="dd4hep"/> | ||
<export> | ||
<lib name="1"/> | ||
</export> |
45 changes: 45 additions & 0 deletions
45
Geometry/HcalTestBeamData/data/dd4hep/cms-test-ddTB2004-algorithm.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
<?xml version="1.0"?> | ||
<DDDefinition> | ||
<debug> | ||
<!-- | ||
<debug_shapes/> | ||
<debug_includes/> | ||
<debug_rotations/> | ||
<debug_includes/> | ||
<debug_volumes/> | ||
<debug_constants/> | ||
<debug_materials/> | ||
<debug_namespaces/> | ||
<debug_placements/> | ||
<debug_algorithms/> | ||
<debug_materials/> | ||
<debug_visattr/> | ||
--> | ||
</debug> | ||
|
||
<open_geometry/> | ||
<close_geometry/> | ||
|
||
<IncludeSection> | ||
<Include ref="Geometry/CMSCommonData/data/materials/2021/v1/materials.xml"/> | ||
<Include ref="Geometry/CMSCommonData/data/rotations.xml"/> | ||
<Include ref="Geometry/HcalCommonData/data/hcalrotations.xml"/> | ||
<Include ref="Geometry/HcalTestBeamData/data/TBHcal.xml"/> | ||
<Include ref="Geometry/HcalTestBeamData/data/TBHcal04BeamLine.xml"/> | ||
<Include ref="Geometry/HcalTestBeamData/data/TBHcalXtal.xml"/> | ||
<Include ref="Geometry/HcalTestBeamData/data/TBHcalCable.xml"/> | ||
<Include ref="Geometry/HcalTestBeamData/data/TBHcalBarrel.xml"/> | ||
<Include ref="Geometry/HcalTestBeamData/data/TBHcalEndcap.xml"/> | ||
<Include ref="Geometry/HcalTestBeamData/data/TBHcal04HcalOuter.xml"/> | ||
<Include ref="Geometry/HcalTestBeamData/data/TBHcal04Sens.xml"/> | ||
<Include ref="Geometry/HcalTestBeamData/data/TBHcal04SimNumbering.xml"/> | ||
<Include ref="Geometry/HcalTestBeamData/data/TBHcal04Util.xml"/> | ||
<Include ref="Geometry/HcalTestBeamData/data/TBHcal04XtalProdCuts.xml"/> | ||
<Include ref="Geometry/HcalTestBeamData/data/TBHcal04ProdCuts.xml"/> | ||
<Include ref="Geometry/HcalTestBeamData/data/world.xml"/> | ||
</IncludeSection> | ||
|
||
</DDDefinition> | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
<?xml version="1.0"?> | ||
<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> | ||
|
||
<PosPartSection label=""> | ||
<PosPart copyNumber="1"> | ||
<rParent name=":world_volume"/> | ||
<rChild name="TBHcal:TBHCal"/> | ||
</PosPart> | ||
</PosPartSection> | ||
|
||
</DDDefinition> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
#ifndef HcalTestBeamData_HcalTB02Parameters_h | ||
#define HcalTestBeamData_HcalTB02Parameters_h | ||
|
||
#include "CondFormats/Serialization/interface/Serializable.h" | ||
|
||
#include <map> | ||
#include <string> | ||
|
||
class HcalTB02Parameters { | ||
public: | ||
HcalTB02Parameters(const std::string& nam) : name_(nam) {} | ||
|
||
std::string name_; | ||
std::map<std::string, double> lengthMap_; | ||
|
||
COND_SERIALIZABLE; | ||
}; | ||
|
||
#endif |
24 changes: 24 additions & 0 deletions
24
Geometry/HcalTestBeamData/interface/HcalTB02ParametersFromDD.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
#ifndef HcalTestBeamData_HcalTB02ParametersFromDD_h | ||
#define HcalTestBeamData_HcalTB02ParametersFromDD_h | ||
|
||
#include <string> | ||
#include <vector> | ||
#include "DetectorDescription/Core/interface/DDCompactView.h" | ||
#include "DetectorDescription/Core/interface/DDFilteredView.h" | ||
#include "DetectorDescription/DDCMS/interface/DDCompactView.h" | ||
#include "DetectorDescription/DDCMS/interface/DDFilteredView.h" | ||
#include "Geometry/HcalTestBeamData/interface/HcalTB02Parameters.h" | ||
|
||
class HcalTB02ParametersFromDD { | ||
public: | ||
HcalTB02ParametersFromDD() = default; | ||
|
||
bool build(const DDCompactView* cpv, HcalTB02Parameters& php, const std::string& name); | ||
bool build(const cms::DDCompactView* cpv, HcalTB02Parameters& php, const std::string& name); | ||
|
||
private: | ||
static constexpr double k_ScaleFromDDDToG4 = 1.0; | ||
static constexpr double k_ScaleFromDD4HepToG4 = 10.0; | ||
}; | ||
|
||
#endif |
19 changes: 19 additions & 0 deletions
19
Geometry/HcalTestBeamData/interface/HcalTB06BeamParameters.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
#ifndef HcalTestBeamData_HcalTB06BeamParameters_h | ||
#define HcalTestBeamData_HcalTB06BeamParameters_h | ||
|
||
#include "CondFormats/Serialization/interface/Serializable.h" | ||
|
||
#include <string> | ||
#include <vector> | ||
|
||
class HcalTB06BeamParameters { | ||
public: | ||
HcalTB06BeamParameters() = default; | ||
|
||
std::vector<std::string> wchambers_; | ||
std::string material_; | ||
|
||
COND_SERIALIZABLE; | ||
}; | ||
|
||
#endif |
32 changes: 32 additions & 0 deletions
32
Geometry/HcalTestBeamData/interface/HcalTB06BeamParametersFromDD.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
#ifndef HcalTestBeamData_HcalTB06BeamParametersFromDD_h | ||
#define HcalTestBeamData_HcalTB06BeamParametersFromDD_h | ||
|
||
#include <string> | ||
#include <vector> | ||
#include "DetectorDescription/Core/interface/DDCompactView.h" | ||
#include "DetectorDescription/Core/interface/DDFilteredView.h" | ||
#include "DetectorDescription/DDCMS/interface/DDCompactView.h" | ||
#include "DetectorDescription/DDCMS/interface/DDFilteredView.h" | ||
#include "Geometry/HcalTestBeamData/interface/HcalTB06BeamParameters.h" | ||
|
||
class HcalTB06BeamParametersFromDD { | ||
public: | ||
HcalTB06BeamParametersFromDD() = default; | ||
|
||
bool build(const DDCompactView* cpv, HcalTB06BeamParameters& php, const std::string& name1, const std::string& name2); | ||
bool build(const cms::DDCompactView* cpv, | ||
HcalTB06BeamParameters& php, | ||
const std::string& name1, | ||
const std::string& name2); | ||
|
||
private: | ||
bool build(HcalTB06BeamParameters& php, | ||
const std::vector<std::string>& matNames, | ||
const std::vector<int>& nocc, | ||
const std::string& name1, | ||
const std::string& name2); | ||
std::vector<std::string> getNames(DDFilteredView& fv); | ||
std::vector<std::string> getNames(cms::DDFilteredView& fv); | ||
}; | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,9 @@ | ||
<library file="*.cc" name="GeometryHcalTestBeamDataPlugin"> | ||
<use name="DetectorDescription/Parser"/> | ||
<use name="FWCore/PluginManager"/> | ||
<flags EDM_PLUGIN="1"/> | ||
<use name="DetectorDescription/Parser"/> | ||
<use name="DetectorDescription/Core"/> | ||
<use name="DetectorDescription/DDCMS"/> | ||
<use name="FWCore/PluginManager"/> | ||
<use name="Geometry/Records"/> | ||
<use name="Geometry/HcalTestBeamData"/> | ||
<flags EDM_PLUGIN="1"/> | ||
</library> |
73 changes: 73 additions & 0 deletions
73
Geometry/HcalTestBeamData/plugins/HcalTB02ParametersESModule.cc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" | ||
#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" | ||
#include "FWCore/Framework/interface/ModuleFactory.h" | ||
#include "FWCore/Framework/interface/ESProducer.h" | ||
#include "FWCore/Framework/interface/ESTransientHandle.h" | ||
#include "DetectorDescription/Core/interface/DDCompactView.h" | ||
#include "DetectorDescription/DDCMS/interface/DDCompactView.h" | ||
#include "Geometry/Records/interface/IdealGeometryRecord.h" | ||
#include "Geometry/HcalTestBeamData/interface/HcalTB02Parameters.h" | ||
#include "Geometry/HcalTestBeamData/interface/HcalTB02ParametersFromDD.h" | ||
|
||
#include <memory> | ||
|
||
#define EDM_ML_DEBUG | ||
|
||
class HcalTB02ParametersESModule : public edm::ESProducer { | ||
public: | ||
HcalTB02ParametersESModule(const edm::ParameterSet&); | ||
|
||
using ReturnType = std::unique_ptr<HcalTB02Parameters>; | ||
|
||
static void fillDescriptions(edm::ConfigurationDescriptions&); | ||
ReturnType produce(const IdealGeometryRecord&); | ||
|
||
private: | ||
edm::ESGetToken<DDCompactView, IdealGeometryRecord> cpvTokenDDD_; | ||
edm::ESGetToken<cms::DDCompactView, IdealGeometryRecord> cpvTokenDD4Hep_; | ||
std::string name_; | ||
bool fromDD4Hep_; | ||
}; | ||
|
||
HcalTB02ParametersESModule::HcalTB02ParametersESModule(const edm::ParameterSet& ps) { | ||
name_ = ps.getParameter<std::string>("name"); | ||
fromDD4Hep_ = ps.getParameter<bool>("fromDD4Hep"); | ||
auto cc = setWhatProduced(this, name_); | ||
cpvTokenDD4Hep_ = cc.consumesFrom<cms::DDCompactView, IdealGeometryRecord>(edm::ESInputTag()); | ||
cpvTokenDDD_ = cc.consumesFrom<DDCompactView, IdealGeometryRecord>(edm::ESInputTag()); | ||
|
||
#ifdef EDM_ML_DEBUG | ||
edm::LogVerbatim("HCalGeom") << "HcalTB02ParametersESModule::HcalTB02ParametersESModule called with dd4hep: " | ||
<< fromDD4Hep_ << " and name " << name_; | ||
#endif | ||
} | ||
|
||
void HcalTB02ParametersESModule::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { | ||
edm::ParameterSetDescription desc; | ||
desc.add<std::string>("name", "EcalHitsEB"); | ||
desc.add<bool>("fromDD4Hep", false); | ||
descriptions.add("hcalTB02XtalParameters", desc); | ||
} | ||
|
||
HcalTB02ParametersESModule::ReturnType HcalTB02ParametersESModule::produce(const IdealGeometryRecord& iRecord) { | ||
#ifdef EDM_ML_DEBUG | ||
edm::LogInfo("HCalGeom") << "HcalTB02ParametersESModule::produce(const IdealGeometryRecord& iRecord)"; | ||
#endif | ||
|
||
auto ptp = std::make_unique<HcalTB02Parameters>(name_); | ||
HcalTB02ParametersFromDD builder; | ||
|
||
if (fromDD4Hep_) { | ||
#ifdef EDM_ML_DEBUG | ||
edm::LogVerbatim("HCalGeom") << "HcalTB02ParametersESModule::Try to access cms::DDCompactView"; | ||
#endif | ||
edm::ESTransientHandle<cms::DDCompactView> cpv = iRecord.getTransientHandle(cpvTokenDD4Hep_); | ||
builder.build(&(*cpv), *ptp, name_); | ||
} else { | ||
edm::ESTransientHandle<DDCompactView> cpv = iRecord.getTransientHandle(cpvTokenDDD_); | ||
builder.build(&(*cpv), *ptp, name_); | ||
} | ||
return ptp; | ||
} | ||
|
||
DEFINE_FWK_EVENTSETUP_MODULE(HcalTB02ParametersESModule); |
75 changes: 75 additions & 0 deletions
75
Geometry/HcalTestBeamData/plugins/HcalTB06BeamParametersESModule.cc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" | ||
#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" | ||
#include "FWCore/Framework/interface/ModuleFactory.h" | ||
#include "FWCore/Framework/interface/ESProducer.h" | ||
#include "FWCore/Framework/interface/ESTransientHandle.h" | ||
#include "DetectorDescription/Core/interface/DDCompactView.h" | ||
#include "DetectorDescription/DDCMS/interface/DDCompactView.h" | ||
#include "Geometry/Records/interface/IdealGeometryRecord.h" | ||
#include "Geometry/HcalTestBeamData/interface/HcalTB06BeamParameters.h" | ||
#include "Geometry/HcalTestBeamData/interface/HcalTB06BeamParametersFromDD.h" | ||
|
||
#include <memory> | ||
|
||
#define EDM_ML_DEBUG | ||
|
||
class HcalTB06ParametersESModule : public edm::ESProducer { | ||
public: | ||
HcalTB06ParametersESModule(const edm::ParameterSet&); | ||
|
||
using ReturnType = std::unique_ptr<HcalTB06BeamParameters>; | ||
|
||
static void fillDescriptions(edm::ConfigurationDescriptions&); | ||
ReturnType produce(const IdealGeometryRecord&); | ||
|
||
private: | ||
edm::ESGetToken<DDCompactView, IdealGeometryRecord> cpvTokenDDD_; | ||
edm::ESGetToken<cms::DDCompactView, IdealGeometryRecord> cpvTokenDD4Hep_; | ||
std::string name1_, name2_; | ||
bool fromDD4Hep_; | ||
}; | ||
|
||
HcalTB06ParametersESModule::HcalTB06ParametersESModule(const edm::ParameterSet& ps) { | ||
name1_ = ps.getParameter<std::string>("name1"); | ||
name2_ = ps.getParameter<std::string>("name2"); | ||
fromDD4Hep_ = ps.getParameter<bool>("fromDD4Hep"); | ||
auto cc = setWhatProduced(this); | ||
cpvTokenDD4Hep_ = cc.consumesFrom<cms::DDCompactView, IdealGeometryRecord>(edm::ESInputTag()); | ||
cpvTokenDDD_ = cc.consumesFrom<DDCompactView, IdealGeometryRecord>(edm::ESInputTag()); | ||
|
||
#ifdef EDM_ML_DEBUG | ||
edm::LogVerbatim("HCalGeom") << "HcalTB06ParametersESModule::HcalTB06ParametersESModule called with dd4hep: " | ||
<< fromDD4Hep_ << " and names " << name1_ << ":" << name2_; | ||
#endif | ||
} | ||
|
||
void HcalTB06ParametersESModule::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { | ||
edm::ParameterSetDescription desc; | ||
desc.add<std::string>("name1", "WireChamber"); | ||
desc.add<std::string>("name2", "HcalTB06BeamHits"); | ||
desc.add<bool>("fromDD4Hep", false); | ||
descriptions.add("hcalTB06BeamParameters", desc); | ||
} | ||
|
||
HcalTB06ParametersESModule::ReturnType HcalTB06ParametersESModule::produce(const IdealGeometryRecord& iRecord) { | ||
#ifdef EDM_ML_DEBUG | ||
edm::LogInfo("HCalGeom") << "HcalTB06ParametersESModule::produce(const IdealGeometryRecord& iRecord)"; | ||
#endif | ||
|
||
auto ptp = std::make_unique<HcalTB06BeamParameters>(); | ||
HcalTB06BeamParametersFromDD builder; | ||
|
||
if (fromDD4Hep_) { | ||
#ifdef EDM_ML_DEBUG | ||
edm::LogVerbatim("HCalGeom") << "HcalTB06ParametersESModule::Try to access cms::DDCompactView"; | ||
#endif | ||
edm::ESTransientHandle<cms::DDCompactView> cpv = iRecord.getTransientHandle(cpvTokenDD4Hep_); | ||
builder.build(&(*cpv), *ptp, name1_, name2_); | ||
} else { | ||
edm::ESTransientHandle<DDCompactView> cpv = iRecord.getTransientHandle(cpvTokenDDD_); | ||
builder.build(&(*cpv), *ptp, name1_, name2_); | ||
} | ||
return ptp; | ||
} | ||
|
||
DEFINE_FWK_EVENTSETUP_MODULE(HcalTB06ParametersESModule); |
55 changes: 55 additions & 0 deletions
55
Geometry/HcalTestBeamData/plugins/HcalTBParameterTester.cc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
#include <iostream> | ||
#include <map> | ||
|
||
#include "FWCore/Framework/interface/Event.h" | ||
#include "FWCore/Framework/interface/EventSetup.h" | ||
#include "FWCore/Framework/interface/MakerMacros.h" | ||
#include "FWCore/Framework/interface/one/EDAnalyzer.h" | ||
|
||
#include "Geometry/HcalTestBeamData/interface/HcalTB02Parameters.h" | ||
#include "Geometry/HcalTestBeamData/interface/HcalTB06BeamParameters.h" | ||
#include "Geometry/Records/interface/IdealGeometryRecord.h" | ||
|
||
class HcalTBParameterTester : public edm::one::EDAnalyzer<> { | ||
public: | ||
explicit HcalTBParameterTester(const edm::ParameterSet&); | ||
~HcalTBParameterTester() override {} | ||
|
||
void beginJob() override {} | ||
void analyze(edm::Event const& iEvent, edm::EventSetup const&) override; | ||
void endJob() override {} | ||
|
||
private: | ||
const std::string name_; | ||
edm::ESGetToken<HcalTB02Parameters, IdealGeometryRecord> token1_; | ||
edm::ESGetToken<HcalTB06BeamParameters, IdealGeometryRecord> token2_; | ||
const int mode_; | ||
}; | ||
|
||
HcalTBParameterTester::HcalTBParameterTester(const edm::ParameterSet& ic) | ||
: name_(ic.getUntrackedParameter<std::string>("Name")), | ||
token1_(esConsumes<HcalTB02Parameters, IdealGeometryRecord>(edm::ESInputTag{"", name_})), | ||
token2_(esConsumes<HcalTB06BeamParameters, IdealGeometryRecord>(edm::ESInputTag{})), | ||
mode_(ic.getUntrackedParameter<int>("Mode")) {} | ||
|
||
void HcalTBParameterTester::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { | ||
if (mode_ == 0) { | ||
const auto& hcp = iSetup.getData(token1_); | ||
const auto* php = &hcp; | ||
std::cout << "TB02Parameters for " << name_ << "\n"; | ||
std::cout << "Length map with " << php->lengthMap_.size() << " elements\n"; | ||
std::map<std::string, double>::const_iterator itr = php->lengthMap_.begin(); | ||
int i(0); | ||
for (; itr != php->lengthMap_.end(); ++itr, ++i) | ||
std::cout << "[" << i << "] " << itr->first << " " << itr->second << " mm\n"; | ||
} else { | ||
const auto& hcp = iSetup.getData(token2_); | ||
const auto* php = &hcp; | ||
std::cout << "TB06BeamParameters:: Material " << php->material_ << "\n"; | ||
std::cout << "TB06BeamParameters:: " << php->wchambers_.size() << " wire chambers:\n"; | ||
for (unsigned int k = 0; k < php->wchambers_.size(); ++k) | ||
std::cout << "[" << k << "] " << php->wchambers_[k] << "\n"; | ||
} | ||
} | ||
|
||
DEFINE_FWK_MODULE(HcalTBParameterTester); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.