66 typedef std::vector<double>
Vec;
747 tracksters_in_candidate_token_(
752 tracks_time_token_(consumes<
edm::ValueMap<
float>>(ps.getParameter<
edm::
InputTag>(
"tracksTime"))),
753 tracks_time_quality_token_(consumes<
edm::ValueMap<
float>>(ps.getParameter<
edm::
InputTag>(
"tracksTimeQual"))),
754 tracks_time_err_token_(consumes<
edm::ValueMap<
float>>(ps.getParameter<
edm::
InputTag>(
"tracksTimeErr"))),
755 tracks_beta_token_(consumes<
edm::ValueMap<
float>>(ps.getParameter<
edm::
InputTag>(
"tracksBeta"))),
756 tracks_time_mtd_token_(consumes<
edm::ValueMap<
float>>(ps.getParameter<
edm::
InputTag>(
"tracksTimeMtd"))),
757 tracks_time_mtd_err_token_(consumes<
edm::ValueMap<
float>>(ps.getParameter<
edm::
InputTag>(
"tracksTimeMtdErr"))),
759 tracksters_merged_token_(
765 simTracksters_SC_token_(
767 simTracksters_CP_token_(
769 simTracksters_PU_token_(
771 simTICLCandidate_token_(
773 tsRecoToSimSC_token_(
775 tsSimToRecoSC_token_(
777 tsRecoToSimCP_token_(
779 tsSimToRecoCP_token_(
782 ps.getParameter<
edm::
InputTag>(
"MergerecoToSimAssociatorSC"))),
784 ps.getParameter<
edm::
InputTag>(
"MergesimToRecoAssociatorSC"))),
786 ps.getParameter<
edm::
InputTag>(
"MergerecoToSimAssociatorCP"))),
788 ps.getParameter<
edm::
InputTag>(
"MergesimToRecoAssociatorCP"))),
790 ps.getParameter<
edm::
InputTag>(
"MergerecoToSimAssociatorPU"))),
792 ps.getParameter<
edm::
InputTag>(
"MergesimToRecoAssociatorPU"))),
793 simclusters_token_(consumes(ps.getParameter<
edm::
InputTag>(
"simclusters"))),
794 caloparticles_token_(consumes(ps.getParameter<
edm::
InputTag>(
"caloparticles"))),
796 detector_(ps.getParameter<
std::
string>(
"detector")),
797 propName_(ps.getParameter<
std::
string>(
"propagator")),
801 saveLCs_(ps.getParameter<
bool>(
"saveLCs")),
802 saveCLUE3DTracksters_(ps.getParameter<
bool>(
"saveCLUE3DTracksters")),
803 saveTrackstersMerged_(ps.getParameter<
bool>(
"saveTrackstersMerged")),
804 saveSimTrackstersSC_(ps.getParameter<
bool>(
"saveSimTrackstersSC")),
805 saveSimTrackstersCP_(ps.getParameter<
bool>(
"saveSimTrackstersCP")),
806 saveTICLCandidate_(ps.getParameter<
bool>(
"saveSimTICLCandidate")),
807 saveSimTICLCandidate_(ps.getParameter<
bool>(
"saveSimTICLCandidate")),
808 saveTracks_(ps.getParameter<
bool>(
"saveTracks")),
809 saveAssociations_(ps.getParameter<
bool>(
"saveAssociations")) {
810 std::string detectorName_ = (
detector_ ==
"HFNose") ?
"HGCalHFNoseSensitive" :
"HGCalEESensitive";
812 esConsumes<HGCalDDDConstants, IdealGeometryRecord, edm::Transition::BeginRun>(
edm::ESInputTag(
"", detectorName_));
1148 std::pair<float, float> rMinMax =
hgcons_->
rangeR(zVal,
true);
1151 std::pair<float, float> rMinMax_interface =
hgcons_->
rangeR(zVal_interface,
true);
1153 for (
int iSide = 0; iSide < 2; ++iSide) {
1154 float zSide = (iSide == 0) ? (-1. * zVal) : zVal;
1161 zSide = (iSide == 0) ? (-1. * zVal_interface) : zVal_interface;
1165 SimpleDiskBounds(rMinMax_interface.first, rMinMax_interface.second, zSide - 0.5, zSide + 0.5))
1189 const auto& tracksters = *tracksters_handle;
1197 const auto&
clusters = *layer_clusters_h;
1201 const auto& layerClustersTimes = *clustersTime_h;
1206 const auto& ticlcandidates = *candidates_h;
1211 const auto&
tracks = *tracks_h;
1215 const auto& trackTime = *trackTime_h;
1219 const auto& trackTimeErr = *trackTimeErr_h;
1223 const auto& trackBeta = *trackBeta_h;
1227 const auto& trackTimeQual = *trackTimeQual_h;
1231 const auto& trackTimeMtd = *trackTimeMtd_h;
1235 const auto& trackTimeMtdErr = *trackTimeMtdErr_h;
1239 const auto& trackPosMtd = *trackPosMtd_h;
1244 const auto& trackstersmerged = *tracksters_merged_h;
1249 auto&
muons = *muons_h;
1254 const auto& simTrackstersSC = *simTrackstersSC_h;
1259 const auto& simTrackstersCP = *simTrackstersCP_h;
1264 const auto& simTrackstersPU = *simTrackstersPU_h;
1268 const auto& simTICLCandidates = *simTICLCandidates_h;
1273 auto const& tsRecoSimSCMap = *tsRecoToSimSC_h;
1278 auto const& tsSimToRecoSCMap = *tsSimToRecoSC_h;
1283 auto const& tsRecoSimCPMap = *tsRecoToSimCP_h;
1288 auto const& tsSimToRecoCPMap = *tsSimToRecoCP_h;
1292 auto const& MergetsRecoSimSCMap = *mergetsRecoToSimSC_h;
1297 auto const& MergetsSimToRecoSCMap = *mergetsSimToRecoSC_h;
1302 auto const& MergetsRecoSimCPMap = *mergetsRecoToSimCP_h;
1307 auto const& MergetsSimToRecoCPMap = *mergetsSimToRecoCP_h;
1312 auto const& MergetsRecoSimPUMap = *mergetsRecoToSimPU_h;
1317 auto const& MergetsSimToRecoPUMap = *mergetsSimToRecoPU_h;
1328 for (
auto trackster_iterator = tracksters.begin(); trackster_iterator != tracksters.end(); ++trackster_iterator) {
1342 trackster_EV1.push_back(trackster_iterator->eigenvalues()[0]);
1343 trackster_EV2.push_back(trackster_iterator->eigenvalues()[1]);
1344 trackster_EV3.push_back(trackster_iterator->eigenvalues()[2]);
1351 std::vector<float> id_probs;
1352 for (
size_t i = 0;
i < 8;
i++)
1353 id_probs.push_back(trackster_iterator->id_probabilities(
i));
1357 std::vector<uint32_t> vertices_indexes;
1358 std::vector<float> vertices_x;
1359 std::vector<float> vertices_y;
1360 std::vector<float> vertices_z;
1361 std::vector<float> vertices_time;
1362 std::vector<float> vertices_timeErr;
1363 std::vector<float> vertices_energy;
1364 std::vector<float> vertices_correctedEnergy;
1365 std::vector<float> vertices_correctedEnergyUncertainty;
1366 for (
auto idx : trackster_iterator->vertices()) {
1367 vertices_indexes.push_back(
idx);
1368 auto associated_cluster = (*layer_clusters_h)[
idx];
1369 vertices_x.push_back(associated_cluster.x());
1370 vertices_y.push_back(associated_cluster.y());
1371 vertices_z.push_back(associated_cluster.z());
1372 vertices_energy.push_back(associated_cluster.energy());
1373 vertices_correctedEnergy.push_back(associated_cluster.correctedEnergy());
1374 vertices_correctedEnergyUncertainty.push_back(associated_cluster.correctedEnergyUncertainty());
1375 vertices_time.push_back(layerClustersTimes.get(
idx).first);
1376 vertices_timeErr.push_back(layerClustersTimes.get(
idx).second);
1389 std::vector<float> vertices_multiplicity;
1390 for (
auto multiplicity : trackster_iterator->vertex_multiplicity()) {
1391 vertices_multiplicity.push_back(multiplicity);
1397 using CaloObjectVariant = std::variant<CaloParticle, SimCluster>;
1398 for (
auto trackster_iterator = simTrackstersSC.begin(); trackster_iterator != simTrackstersSC.end();
1399 ++trackster_iterator) {
1425 CaloObjectVariant caloObj;
1426 if (trackster_iterator->seedID() == caloparticles_h.
id()) {
1429 caloObj =
simclusters[trackster_iterator->seedIndex()];
1432 auto const&
simTrack = std::visit([](
auto&&
obj) {
return obj.g4Tracks()[0]; }, caloObj);
1433 auto const& caloPt = std::visit([](
auto&&
obj) {
return obj.pt(); }, caloObj);
1454 auto const trackIdx = trackster_iterator->trackIdx();
1456 if (trackIdx != -1) {
1464 if (tsos.isValid()) {
1466 const auto& globalMom = tsos.globalMomentum();
1497 std::vector<float> id_probs;
1498 for (
size_t i = 0;
i < 8;
i++)
1499 id_probs.push_back(trackster_iterator->id_probabilities(
i));
1503 std::vector<uint32_t> vertices_indexes;
1504 std::vector<float> vertices_x;
1505 std::vector<float> vertices_y;
1506 std::vector<float> vertices_z;
1507 std::vector<float> vertices_time;
1508 std::vector<float> vertices_timeErr;
1509 std::vector<float> vertices_energy;
1510 std::vector<float> vertices_correctedEnergy;
1511 std::vector<float> vertices_correctedEnergyUncertainty;
1512 for (
auto idx : trackster_iterator->vertices()) {
1513 vertices_indexes.push_back(
idx);
1514 auto associated_cluster = (*layer_clusters_h)[
idx];
1515 vertices_x.push_back(associated_cluster.x());
1516 vertices_y.push_back(associated_cluster.y());
1517 vertices_z.push_back(associated_cluster.z());
1518 vertices_energy.push_back(associated_cluster.energy());
1519 vertices_correctedEnergy.push_back(associated_cluster.correctedEnergy());
1520 vertices_correctedEnergyUncertainty.push_back(associated_cluster.correctedEnergyUncertainty());
1521 vertices_time.push_back(layerClustersTimes.get(
idx).first);
1522 vertices_timeErr.push_back(layerClustersTimes.get(
idx).second);
1535 std::vector<float> vertices_multiplicity;
1536 for (
auto multiplicity : trackster_iterator->vertex_multiplicity()) {
1537 vertices_multiplicity.push_back(multiplicity);
1544 for (
auto trackster_iterator = simTrackstersCP.begin(); trackster_iterator != simTrackstersCP.end();
1545 ++trackster_iterator) {
1570 CaloObjectVariant caloObj;
1571 if (trackster_iterator->seedID() == caloparticles_h.
id()) {
1574 caloObj =
simclusters[trackster_iterator->seedIndex()];
1577 auto const&
simTrack = std::visit([](
auto&&
obj) {
return obj.g4Tracks()[0]; }, caloObj);
1578 auto const& caloPt = std::visit([](
auto&&
obj) {
return obj.pt(); }, caloObj);
1600 auto const trackIdx = trackster_iterator->trackIdx();
1602 if (trackIdx != -1) {
1610 if (tsos.isValid()) {
1612 const auto& globalMom = tsos.globalMomentum();
1642 std::vector<float> id_probs;
1643 for (
size_t i = 0;
i < 8;
i++)
1644 id_probs.push_back(trackster_iterator->id_probabilities(
i));
1648 std::vector<uint32_t> vertices_indexes;
1649 std::vector<float> vertices_x;
1650 std::vector<float> vertices_y;
1651 std::vector<float> vertices_z;
1652 std::vector<float> vertices_time;
1653 std::vector<float> vertices_timeErr;
1654 std::vector<float> vertices_energy;
1655 std::vector<float> vertices_correctedEnergy;
1656 std::vector<float> vertices_correctedEnergyUncertainty;
1657 for (
auto idx : trackster_iterator->vertices()) {
1658 vertices_indexes.push_back(
idx);
1659 auto associated_cluster = (*layer_clusters_h)[
idx];
1660 vertices_x.push_back(associated_cluster.x());
1661 vertices_y.push_back(associated_cluster.y());
1662 vertices_z.push_back(associated_cluster.z());
1663 vertices_energy.push_back(associated_cluster.energy());
1664 vertices_correctedEnergy.push_back(associated_cluster.correctedEnergy());
1665 vertices_correctedEnergyUncertainty.push_back(associated_cluster.correctedEnergyUncertainty());
1666 vertices_time.push_back(layerClustersTimes.get(
idx).first);
1667 vertices_timeErr.push_back(layerClustersTimes.get(
idx).second);
1680 std::vector<float> vertices_multiplicity;
1681 for (
auto multiplicity : trackster_iterator->vertex_multiplicity()) {
1682 vertices_multiplicity.push_back(multiplicity);
1688 for (
size_t i = 0;
i < simTICLCandidates.size(); ++
i) {
1689 auto const&
cand = simTICLCandidates[
i];
1696 std::vector<int> tmpIdxVec;
1697 for (
auto const& simTS :
cand.tracksters()) {
1699 tmpIdxVec.push_back(trackster_idx);
1703 auto const& trackPtr =
cand.trackPtr();
1704 if (!trackPtr.isNull()) {
1705 auto const&
track = *trackPtr;
1713 if (tsos.isValid()) {
1715 const auto& globalMom = tsos.globalMomentum();
1742 for (
auto cluster_iterator =
clusters.begin(); cluster_iterator !=
clusters.end(); ++cluster_iterator) {
1743 auto lc_seed = cluster_iterator->seed();
1753 auto haf = cluster_iterator->hitsAndFractions();
1756 uint32_t number_of_hits = cluster_iterator->hitsAndFractions().size();
1760 cluster_time.push_back(layerClustersTimes.get(c_id).first);
1767 for (
int i = 0; i < static_cast<int>(ticlcandidates.size()); ++
i) {
1768 const auto& candidate = ticlcandidates[
i];
1778 std::vector<float> id_probs;
1779 for (
int j = 0;
j < 8;
j++) {
1781 id_probs.push_back(candidate.id_probability(
type));
1785 auto trackster_ptrs = candidate.tracksters();
1786 auto track_ptr = candidate.trackPtr();
1787 for (
const auto& ts_ptr : trackster_ptrs) {
1791 if (track_ptr.isNull())
1798 for (
auto trackster_iterator = trackstersmerged.begin(); trackster_iterator != trackstersmerged.end();
1799 ++trackster_iterator) {
1822 std::vector<float> id_probs;
1823 for (
size_t i = 0;
i < 8;
i++)
1824 id_probs.push_back(trackster_iterator->id_probabilities(
i));
1827 std::vector<uint32_t> vertices_indexes;
1828 std::vector<float> vertices_x;
1829 std::vector<float> vertices_y;
1830 std::vector<float> vertices_z;
1831 std::vector<float> vertices_time;
1832 std::vector<float> vertices_timeErr;
1833 std::vector<float> vertices_energy;
1834 std::vector<float> vertices_correctedEnergy;
1835 std::vector<float> vertices_correctedEnergyUncertainty;
1836 for (
auto idx : trackster_iterator->vertices()) {
1837 vertices_indexes.push_back(
idx);
1838 auto associated_cluster = (*layer_clusters_h)[
idx];
1839 vertices_x.push_back(associated_cluster.x());
1840 vertices_y.push_back(associated_cluster.y());
1841 vertices_z.push_back(associated_cluster.z());
1842 vertices_energy.push_back(associated_cluster.energy());
1843 vertices_correctedEnergy.push_back(associated_cluster.correctedEnergy());
1844 vertices_correctedEnergyUncertainty.push_back(associated_cluster.correctedEnergyUncertainty());
1845 vertices_time.push_back(layerClustersTimes.get(
idx).first);
1846 vertices_timeErr.push_back(layerClustersTimes.get(
idx).second);
1863 for (
size_t i = 0;
i < tracksters.size(); ++
i) {
1867 const auto stsSC_iter = tsRecoSimSCMap.find(tsRef);
1868 if (stsSC_iter != tsRecoSimSCMap.end()) {
1869 const auto& stsSCassociated = stsSC_iter->val;
1870 for (
auto& sts : stsSCassociated) {
1888 const auto ts_iter = tsSimToRecoSCMap.find(stsSCRef);
1889 if (ts_iter != tsSimToRecoSCMap.end()) {
1890 const auto& tsAssociated = ts_iter->val;
1891 for (
auto& ts : tsAssociated) {
1904 for (
size_t i = 0;
i < tracksters.size(); ++
i) {
1908 const auto stsCP_iter = tsRecoSimCPMap.find(tsRef);
1909 if (stsCP_iter != tsRecoSimCPMap.end()) {
1910 const auto& stsCPassociated = stsCP_iter->val;
1911 for (
auto& sts : stsCPassociated) {
1929 const auto ts_iter = tsSimToRecoCPMap.find(stsCPRef);
1930 if (ts_iter != tsSimToRecoCPMap.end()) {
1931 const auto& tsAssociated = ts_iter->val;
1932 for (
auto& ts : tsAssociated) {
1945 for (
size_t i = 0;
i < trackstersmerged.size(); ++
i) {
1949 const auto stsSC_iter = MergetsRecoSimSCMap.find(tsRef);
1950 if (stsSC_iter != MergetsRecoSimSCMap.end()) {
1951 const auto& stsSCassociated = stsSC_iter->val;
1952 for (
auto& sts : stsSCassociated) {
1970 const auto ts_iter = MergetsSimToRecoSCMap.find(stsSCRef);
1971 if (ts_iter != MergetsSimToRecoSCMap.end()) {
1972 const auto& tsAssociated = ts_iter->val;
1973 for (
auto& ts : tsAssociated) {
1986 for (
size_t i = 0;
i < trackstersmerged.size(); ++
i) {
1990 const auto stsCP_iter = MergetsRecoSimCPMap.find(tsRef);
1991 if (stsCP_iter != MergetsRecoSimCPMap.end()) {
1992 const auto& stsCPassociated = stsCP_iter->val;
1993 for (
auto& sts : stsCPassociated) {
2006 for (
size_t i = 0;
i < trackstersmerged.size(); ++
i) {
2010 const auto stsPU_iter = MergetsRecoSimPUMap.find(tsRef);
2011 if (stsPU_iter != MergetsRecoSimPUMap.end()) {
2012 const auto& stsPUassociated = stsPU_iter->val;
2013 for (
auto& sts : stsPUassociated) {
2031 const auto ts_iter = MergetsSimToRecoCPMap.find(stsCPRef);
2032 if (ts_iter != MergetsSimToRecoCPMap.end()) {
2033 const auto& tsAssociated = ts_iter->val;
2034 for (
auto& ts : tsAssociated) {
2044 auto nsimTrackstersPU = simTrackstersPU.size();
2048 for (
size_t i = 0;
i < nsimTrackstersPU; ++
i) {
2052 const auto ts_iter = MergetsSimToRecoPUMap.find(stsPURef);
2053 if (ts_iter != MergetsSimToRecoPUMap.end()) {
2054 const auto& tsAssociated = ts_iter->val;
2055 for (
auto& ts : tsAssociated) {
2065 for (
size_t i = 0;
i <
tracks.size();
i++) {
2072 if (tsos.isValid()) {
2074 const auto& globalMom = tsos.globalMomentum();
2154 edm::InputTag(
"tracksterSimTracksterAssociationPRbyCLUE3D",
"recoToSim"));
2156 edm::InputTag(
"tracksterSimTracksterAssociationPRbyCLUE3D",
"simToReco"));
2158 edm::InputTag(
"tracksterSimTracksterAssociationLinkingbyCLUE3D",
"recoToSim"));
2160 edm::InputTag(
"tracksterSimTracksterAssociationLinkingbyCLUE3D",
"simToReco"));
2162 edm::InputTag(
"tracksterSimTracksterAssociationPR",
"recoToSim"));
2164 edm::InputTag(
"tracksterSimTracksterAssociationPR",
"simToReco"));
2166 edm::InputTag(
"tracksterSimTracksterAssociationLinking",
"recoToSim"));
2168 edm::InputTag(
"tracksterSimTracksterAssociationLinking",
"simToReco"));
2170 edm::InputTag(
"tracksterSimTracksterAssociationLinkingPU",
"recoToSim"));
2172 edm::InputTag(
"tracksterSimTracksterAssociationLinkingPU",
"simToReco"));
2178 desc.add<
bool>(
"saveLCs",
true);
2179 desc.add<
bool>(
"saveCLUE3DTracksters",
true);
2180 desc.add<
bool>(
"saveTrackstersMerged",
true);
2181 desc.add<
bool>(
"saveSimTrackstersSC",
true);
2182 desc.add<
bool>(
"saveSimTrackstersCP",
true);
2183 desc.add<
bool>(
"saveTICLCandidate",
true);
2184 desc.add<
bool>(
"saveSimTICLCandidate",
true);
2185 desc.add<
bool>(
"saveTracks",
true);
2186 desc.add<
bool>(
"saveAssociations",
true);
2187 descriptions.
add(
"ticlDumper",
desc);
std::vector< float > stsSC_trackster_time
TTree * simtrackstersSC_tree_
std::vector< std::vector< float > > MergeTracksters_recoToSim_PU_score
std::vector< float > stsCP_trackster_EV3
double waferZ(int layer, bool reco) const
std::vector< float > stsSC_trackster_sigmaPCA1
const edm::EDGetTokenT< std::vector< ticl::Trackster > > simTracksters_PU_token_
std::vector< float > stsSC_trackster_barycenter_x
std::vector< float > stsCP_trackster_eVector0_x
std::vector< float > cluster_timeErr
static DiskPointer build(Args &&... args)
const edm::EDGetTokenT< std::vector< double > > hgcaltracks_eta_token_
std::vector< std::vector< float > > MergeTracksters_simToReco_PU_score
const edm::ESGetToken< CaloGeometry, CaloGeometryRecord > geometry_token_
static int muAssocToTrack(const reco::TrackRef &trackref, const reco::MuonCollection &muons)
std::vector< float > cluster_position_x
edm::AssociationMap< edm::OneToManyWithQualityGeneric< ticl::TracksterCollection, ticl::TracksterCollection, std::pair< float, float > > > RecoToSimCollectionSimTracksters
std::vector< float > stsCP_track_boundaryPx
std::vector< int > simTICLCandidate_charge
std::vector< std::vector< float > > stsSC_trackster_vertices_correctedEnergy
std::vector< std::vector< float > > tracksters_merged_vertices_energy
std::vector< float > stsCP_trackster_eVector0_z
std::vector< float > stsCP_trackster_barycenter_eta
std::vector< float > stsSC_track_boundaryPz
std::vector< float > trackster_EV1
std::vector< double > candidate_py
std::vector< float > stsSC_boundaryPx
std::vector< float > tracksters_merged_eVector0_x
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
std::vector< float > stsCP_trackster_timeBoundary
const edm::EDGetTokenT< std::vector< double > > hgcaltracks_py_token_
std::vector< float > trackster_sigmaPCA1
bool saveTrackstersMerged_
std::vector< float > trackster_barycenter_y
unsigned int stsCP_ntracksters_
std::vector< float > simTICLCandidate_raw_energy
void endRun(edm::Run const &iEvent, edm::EventSetup const &) override
std::vector< float > stsSC_trackster_barycenter_y
TTree * simtrackstersCP_tree_
const edm::EDGetTokenT< edm::ValueMap< float > > tracks_beta_token_
std::vector< std::vector< float > > trackster_vertices_correctedEnergyUncertainty
std::vector< std::vector< float > > trackster_vertices_multiplicity
const edm::EDGetTokenT< edm::ValueMap< GlobalPoint > > tracks_pos_mtd_token_
static bool isMuon(const reco::PFBlockElement &elt)
std::vector< float > stsSC_boundaryX
std::vector< float > stsSC_track_boundaryPhi
std::vector< float > stsSC_trackster_timeError
std::vector< std::vector< float > > trackster_vertices_y
bool saveSimTrackstersSC_
std::vector< float > stsCP_boundaryY
std::vector< std::vector< uint32_t > > tracksters_in_candidate
std::vector< float > cluster_position_y
std::vector< int > stsSC_pdgID
std::vector< float > stsCP_boundaryX
std::vector< std::vector< float > > stsCP_trackster_vertices_time
std::vector< float > cluster_correctedEnergy
std::vector< float > stsSC_trackster_regressed_pt
std::vector< float > track_beta
std::vector< float > trackster_raw_pt
std::vector< float > trackster_eVector0_z
std::vector< uint32_t > cluster_seedID
std::vector< std::vector< uint32_t > > MergeTracksters_recoToSim_SC
std::vector< double > Vec
std::vector< std::vector< float > > MergeTracksters_simToReco_SC_sharedE
std::vector< float > cluster_position_z
std::vector< std::vector< float > > stsSC_trackster_vertices_z
std::vector< int > track_quality
std::vector< float > stsSC_trackster_eVector0_z
std::vector< float > track_hgcal_y
std::vector< std::vector< float > > MergeTracksters_recoToSim_SC_score
std::vector< std::vector< uint32_t > > stsSC_trackster_vertices_indexes
std::vector< unsigned int > track_id
const edm::EDGetTokenT< std::vector< TICLCandidate > > ticl_candidates_token_
std::vector< float > stsCP_trackster_barycenter_phi
std::vector< float > tracksters_merged_sigmaPCA3
std::vector< float > simTICLCandidate_boundaryY
std::vector< std::vector< float > > trackster_vertices_energy
std::vector< float > trackster_raw_em_energy
const edm::EDGetTokenT< std::vector< ticl::Trackster > > simTracksters_SC_token_
std::vector< std::vector< uint32_t > > trackstersCLUE3D_simToReco_CP
const edm::EDGetTokenT< edm::ValueMap< float > > tracks_time_quality_token_
std::vector< std::vector< float > > trackster_vertices_time
std::vector< float > stsSC_boundaryPz
std::vector< std::vector< float > > trackster_vertices_z
std::vector< float > stsCP_trackster_EV1
const HGCalDDDConstants * hgcons_
std::vector< float > cluster_energy
const edm::ESGetToken< Propagator, TrackingComponentsRecord > propagator_token_
std::vector< std::vector< float > > MergeTracksters_recoToSim_CP_sharedE
std::vector< int > candidate_charge
std::vector< float > track_hgcal_pz
const edm::EDGetTokenT< ticl::RecoToSimCollectionSimTracksters > tsRecoToSimSC_token_
std::vector< float > stsSC_trackster_timeBoundary
std::vector< float > trackster_barycenter_x
std::unique_ptr< GeomDet > interfaceDisk_[2]
muons
the two sets of parameters below are mutually exclusive, depending if RECO or ALCARECO is used the us...
std::vector< std::vector< float > > stsSC_trackster_vertices_time
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
unsigned int stsSC_ntracksters_
std::vector< std::vector< float > > trackster_id_probabilities
std::vector< float > stsCP_trackTime
std::vector< float > stsCP_boundaryEta
std::vector< std::vector< float > > tracksters_merged_vertices_z
std::vector< std::vector< float > > stsCP_trackster_vertices_timeErr
const edm::EDGetTokenT< ticl::SimToRecoCollectionSimTracksters > tsSimToRecoCP_token_
std::vector< std::vector< uint32_t > > MergeTracksters_recoToSim_PU
std::vector< float > candidate_time
std::vector< float > stsSC_trackster_raw_pt
const edm::EDGetTokenT< ticl::RecoToSimCollectionSimTracksters > tsRecoToSimCP_token_
bool saveSimTrackstersCP_
std::vector< std::vector< uint32_t > > trackstersCLUE3D_recoToSim_SC
std::vector< float > tracksters_merged_time
std::vector< float > stsCP_boundaryPz
std::vector< float > tracksters_merged_sigmaPCA2
std::vector< float > track_hgcal_px
std::vector< std::vector< float > > MergeTracksters_recoToSim_SC_sharedE
std::vector< unsigned int > cluster_layer_id
std::vector< float > candidate_energy
std::vector< float > tracksters_merged_barycenter_phi
std::vector< int > track_charge
std::vector< float > stsSC_boundaryPhi
std::vector< float > tracksters_merged_eVector0_z
std::vector< float > stsCP_track_boundaryPy
std::vector< float > tracksters_merged_raw_pt
std::vector< float > tracksters_merged_raw_em_energy
std::vector< int > simTICLCandidate_track_in_candidate
std::vector< float > track_hgcal_eta
std::vector< float > tracksters_merged_raw_em_pt
std::vector< float > stsSC_track_boundaryPx
std::vector< int > cluster_type
std::vector< std::vector< float > > tracksters_merged_vertices_multiplicity
std::vector< std::vector< uint32_t > > stsCP_trackster_vertices_indexes
const edm::EDGetTokenT< std::vector< CaloParticle > > caloparticles_token_
std::vector< float > trackster_barycenter_z
std::vector< float > stsCP_trackster_sigmaPCA1
const edm::EDGetTokenT< edm::ValueMap< float > > tracks_time_token_
T const * product() const
std::vector< std::vector< float > > stsCP_trackster_vertices_y
std::vector< float > simTICLCandidate_boundaryZ
std::vector< float > stsCP_trackster_barycenter_z
const edm::EDGetTokenT< std::vector< ticl::Trackster > > tracksters_in_candidate_token_
const edm::EDGetTokenT< std::vector< ticl::Trackster > > tracksters_token_
GlobalPoint globalPosition() const
std::vector< std::vector< uint32_t > > MergeTracksters_simToReco_PU
std::vector< float > track_hgcal_z
std::vector< std::vector< float > > trackstersCLUE3D_simToReco_SC_sharedE
std::vector< std::vector< float > > stsCP_trackster_vertices_correctedEnergyUncertainty
void analyze(const edm::Event &, const edm::EventSetup &) override
std::vector< float > stsCP_boundaryZ
std::vector< float > stsCP_track_boundaryPhi
std::vector< std::vector< float > > stsCP_trackster_vertices_z
std::vector< int > track_missing_outer_hits
std::vector< float > stsSC_trackster_raw_em_energy
std::vector< float > tracksters_merged_barycenter_eta
std::vector< float > stsSC_track_boundaryX
std::vector< std::vector< float > > MergeTracksters_recoToSim_CP_score
std::vector< float > tracksters_merged_barycenter_y
std::vector< float > track_hgcal_phi
std::vector< std::vector< float > > tracksters_merged_vertices_timeErr
std::vector< float > cluster_time
std::vector< float > simTICLCandidate_boundaryPy
std::vector< double > track_time
TTree * tracksters_merged_tree_
const edm::EDGetTokenT< ticl::SimToRecoCollectionSimTracksters > MergeSimToRecoCP_token_
const edm::EDGetTokenT< ticl::RecoToSimCollectionSimTracksters > MergeRecoToSimPU_token_
std::vector< double > candidate_pz
std::vector< std::vector< float > > stsSC_trackster_vertices_y
std::vector< std::vector< float > > MergeTracksters_simToReco_CP_sharedE
TTree * associations_tree_
std::vector< float > trackster_barycenter_phi
std::vector< float > stsCP_trackster_timeError
std::vector< std::vector< float > > tracksters_merged_vertices_correctedEnergyUncertainty
std::vector< std::vector< float > > trackstersCLUE3D_recoToSim_SC_sharedE
std::vector< float > stsSC_trackTime
std::vector< std::vector< float > > stsCP_trackster_id_probabilities
std::vector< float > stsSC_track_boundaryZ
std::vector< float > trackster_sigmaPCA2
edm::Ref< MuonCollection > MuonRef
presistent reference to a Muon
std::vector< float > tracksters_merged_sigmaPCA1
std::vector< std::vector< float > > MergeTracksters_recoToSim_PU_sharedE
#define DEFINE_FWK_MODULE(type)
edm::ESHandle< Propagator > propagator_
std::vector< float > simTICLCandidate_boundaryPx
std::vector< float > stsSC_trackster_raw_energy
std::vector< float > simTICLCandidate_boundaryX
std::vector< double > candidate_px
std::vector< float > stsCP_trackster_EV2
const edm::EDGetTokenT< std::vector< double > > hgcaltracks_x_token_
std::vector< float > tracksters_merged_EV1
std::vector< float > tracksters_merged_timeError
std::vector< float > stsSC_trackster_EV3
std::vector< float > stsCP_track_boundaryZ
std::vector< std::vector< uint32_t > > trackster_vertices_indexes
const edm::EDGetTokenT< std::vector< double > > hgcaltracks_z_token_
std::vector< float > track_hgcal_pt
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
std::vector< int > simTICLCandidate_pdgId
TICLDumper(const edm::ParameterSet &)
const edm::EDGetTokenT< std::vector< double > > hgcaltracks_px_token_
std::vector< std::vector< float > > stsSC_trackster_vertices_x
std::vector< float > stsCP_boundaryPhi
std::vector< float > trackster_raw_em_pt
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
std::vector< float > stsSC_track_boundaryPy
std::vector< std::vector< uint32_t > > MergeTracksters_simToReco_SC
std::vector< float > stsSC_boundaryPy
std::vector< float > stsCP_trackster_time
std::vector< std::vector< float > > trackstersCLUE3D_recoToSim_CP_sharedE
std::vector< float > track_time_quality
const std::string propName_
std::pair< double, double > rangeR(double z, bool reco) const
std::vector< float > tracksters_merged_regressed_energy
edm::AssociationMap< edm::OneToManyWithQualityGeneric< ticl::TracksterCollection, ticl::TracksterCollection, std::pair< float, float > > > SimToRecoCollectionSimTracksters
std::vector< std::vector< float > > tracksters_merged_vertices_y
std::vector< float > trackster_eVector0_x
std::vector< float > trackster_eVector0_y
std::vector< float > trackster_EV3
std::vector< float > stsSC_trackster_barycenter_eta
std::vector< float > trackster_time
const edm::EDGetTokenT< ticl::RecoToSimCollectionSimTracksters > MergeRecoToSimCP_token_
std::vector< std::vector< float > > stsCP_trackster_vertices_correctedEnergy
std::vector< float > simTICLCandidate_regressed_energy
std::vector< std::vector< float > > trackstersCLUE3D_simToReco_CP_score
std::vector< std::vector< float > > tracksters_merged_vertices_time
const edm::EDGetTokenT< std::vector< bool > > tracks_mask_token_
std::vector< std::vector< float > > stsSC_trackster_vertices_correctedEnergyUncertainty
std::vector< float > simTICLCandidate_caloParticleMass
std::vector< float > stsSC_trackster_barycenter_z
std::vector< std::vector< float > > stsSC_trackster_vertices_energy
std::vector< float > stsSC_track_boundaryY
std::vector< std::vector< float > > trackstersCLUE3D_simToReco_SC_score
const edm::EDGetTokenT< std::vector< int > > tracksterSeeds_token_
std::vector< std::vector< float > > tracksters_merged_id_probabilities
void beginRun(const edm::Run &, const edm::EventSetup &) override
edm::ESGetToken< HGCalDDDConstants, IdealGeometryRecord > hdc_token_
std::vector< float > stsCP_trackster_sigmaPCA3
const edm::EDGetTokenT< std::vector< double > > hgcaltracks_y_token_
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
std::vector< float > tracksters_merged_EV2
const edm::EDGetTokenT< edm::ValueMap< float > > tracks_time_mtd_token_
std::vector< std::vector< uint32_t > > MergeTracksters_recoToSim_CP
std::vector< float > stsSC_trackster_sigmaPCA3
const edm::EDGetTokenT< std::vector< ticl::Trackster > > simTracksters_CP_token_
void add(std::string const &label, ParameterSetDescription const &psetDescription)
std::vector< std::vector< float > > stsSC_trackster_vertices_multiplicity
std::vector< float > stsSC_boundaryZ
std::vector< std::vector< float > > stsSC_trackster_id_probabilities
std::vector< float > stsSC_trackster_EV1
std::vector< float > cluster_position_eta
const edm::EDGetTokenT< std::vector< ticl::Trackster > > tracksters_merged_token_
hgcal::RecHitTools rhtools_
std::vector< float > track_pt
std::vector< std::vector< float > > candidate_id_probabilities
std::vector< int > track_isTrackerMuon
std::vector< float > trackster_barycenter_eta
std::vector< float > stsCP_trackster_regressed_energy
std::vector< float > stsCP_trackster_sigmaPCA2
std::vector< float > stsCP_track_boundaryPz
std::vector< std::vector< float > > MergeTracksters_simToReco_PU_sharedE
std::vector< float > stsSC_trackster_regressed_energy
std::vector< std::vector< uint32_t > > MergeTracksters_simToReco_CP
std::vector< std::vector< int > > simTICLCandidate_simTracksterCPIndex
std::vector< float > tracksters_merged_EV3
std::vector< float > track_hgcal_py
bool saveSimTICLCandidate_
std::vector< int > track_in_candidate
std::vector< float > track_time_err
std::vector< std::vector< float > > trackster_vertices_correctedEnergy
std::vector< int > track_isMuon
std::vector< std::vector< uint32_t > > trackstersCLUE3D_simToReco_SC
std::vector< float > stsSC_trackster_raw_em_pt
std::vector< std::vector< float > > trackstersCLUE3D_recoToSim_SC_score
std::vector< float > trackster_sigmaPCA3
std::vector< int > stsCP_trackIdx
std::vector< float > candidate_raw_energy
const edm::EDGetTokenT< edm::ValueMap< float > > tracks_time_mtd_err_token_
std::vector< float > cluster_correctedEnergyUncertainty
std::vector< float > stsCP_trackster_barycenter_x
std::vector< int > candidate_pdgId
std::unique_ptr< GeomDet > firstDisk_[2]
std::vector< float > stsCP_trackster_regressed_pt
std::vector< std::vector< float > > MergeTracksters_simToReco_CP_score
std::vector< float > stsCP_trackster_raw_em_energy
std::vector< int > stsCP_pdgID
const edm::EDGetTokenT< ticl::SimToRecoCollectionSimTracksters > MergeSimToRecoPU_token_
std::vector< float > track_time_mtd_err
std::vector< float > stsCP_track_boundaryX
std::vector< std::vector< float > > stsCP_trackster_vertices_x
std::vector< std::vector< float > > MergeTracksters_simToReco_SC_score
const edm::EDGetTokenT< edm::ValueMap< std::pair< float, float > > > clustersTime_token_
const edm::EDGetTokenT< edm::ValueMap< float > > tracks_time_err_token_
std::vector< float > trackster_regressed_energy
std::vector< std::vector< uint32_t > > tracksters_merged_vertices_indexes
std::vector< std::vector< uint32_t > > trackstersCLUE3D_recoToSim_CP
std::vector< std::vector< float > > trackstersCLUE3D_simToReco_CP_sharedE
const edm::EDGetTokenT< std::vector< double > > hgcaltracks_phi_token_
std::vector< int > track_nhits
const edm::EDGetTokenT< std::vector< TICLCandidate > > simTICLCandidate_token_
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > bfield_token_
std::vector< int > track_missing_inner_hits
std::vector< std::vector< float > > trackster_vertices_x
std::vector< float > track_hgcal_x
std::vector< GlobalPoint > track_pos_mtd
const edm::EDGetTokenT< ticl::SimToRecoCollectionSimTracksters > tsSimToRecoSC_token_
std::vector< float > stsSC_boundaryY
std::vector< float > track_time_mtd
std::vector< float > stsCP_trackster_barycenter_y
std::vector< float > stsCP_boundaryPx
std::vector< float > stsSC_trackster_eVector0_x
std::vector< float > stsCP_trackster_raw_energy
std::vector< float > tracksters_merged_raw_energy
std::vector< float > stsSC_track_boundaryEta
std::vector< uint32_t > cluster_number_of_hits
std::vector< std::vector< float > > trackstersCLUE3D_recoToSim_CP_score
TTree * simTICLCandidate_tree
const edm::EDGetTokenT< ticl::SimToRecoCollectionSimTracksters > MergeSimToRecoSC_token_
std::vector< std::vector< float > > trackster_vertices_timeErr
std::vector< float > stsCP_trackster_raw_em_pt
void initialize(const HGCalDDDConstants *hgcons, const hgcal::RecHitTools rhtools, const edm::ESHandle< MagneticField > bfieldH, const edm::ESHandle< Propagator > propH)
std::vector< float > stsCP_trackster_eVector0_y
const edm::EDGetTokenT< std::vector< reco::CaloCluster > > layer_clusters_token_
std::vector< float > stsSC_trackster_EV2
std::vector< float > candidate_time_err
std::vector< float > trackster_raw_energy
std::vector< float > stsSC_trackster_eVector0_y
std::vector< float > trackster_EV2
std::vector< float > tracksters_merged_eVector0_y
std::vector< std::vector< float > > stsCP_trackster_vertices_multiplicity
const edm::EDGetTokenT< std::vector< double > > hgcaltracks_pz_token_
std::vector< std::vector< float > > stsSC_trackster_vertices_timeErr
std::vector< float > stsSC_trackster_barycenter_phi
std::vector< std::vector< float > > stsCP_trackster_vertices_energy
std::vector< float > tracksters_merged_barycenter_z
unsigned int ntracksters_
const edm::EDGetTokenT< std::vector< reco::Track > > tracks_token_
std::vector< float > trackster_timeError
std::vector< std::vector< float > > tracksters_merged_vertices_x
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeometry_token_
edm::ESHandle< MagneticField > bfield_
const edm::EDGetTokenT< std::vector< reco::Muon > > muons_token_
std::vector< float > stsCP_track_boundaryY
std::vector< float > stsCP_boundaryPy
std::vector< float > simTICLCandidate_time
std::vector< float > tracksters_merged_barycenter_x
std::vector< float > stsSC_boundaryEta
bool saveCLUE3DTracksters_
std::vector< int > stsSC_trackIdx
std::vector< float > cluster_position_phi
std::vector< float > stsCP_track_boundaryEta
std::vector< float > stsSC_trackster_sigmaPCA2
const edm::EDGetTokenT< std::vector< SimCluster > > simclusters_token_
const std::string detector_
const edm::EDGetTokenT< ticl::RecoToSimCollectionSimTracksters > MergeRecoToSimSC_token_
std::vector< float > stsCP_trackster_raw_pt
std::vector< std::vector< float > > tracksters_merged_vertices_correctedEnergy
std::vector< float > simTICLCandidate_boundaryPz