76 std::pair<float, float> rMinMax =
hgcons.
rangeR(zVal,
true);
79 std::pair<float, float> rMinMax_interface =
hgcons.
rangeR(zVal_interface,
true);
81 for (
int iSide = 0; iSide < 2; ++iSide) {
82 float zSide = (iSide == 0) ? (-1. * zVal) : zVal;
89 zSide = (iSide == 0) ? (-1. * zVal_interface) : zVal_interface;
93 SimpleDiskBounds(rMinMax_interface.first, rMinMax_interface.second, zSide - 0.5, zSide + 0.5))
116 if (
str ==
"Trackster")
118 if (
str ==
"SimTracksterCP")
120 if (
str ==
"SimTracksterSC")
122 throw std::runtime_error(
"TICLDumper : TracksterDumperHelper : Invalid trackster type " +
str);
133 trackster_tree_->Branch(
"event", eventId_);
134 trackster_tree_->Branch(
"NTracksters", &
nTracksters);
135 trackster_tree_->Branch(
"NClusters", &
nClusters);
254 std::vector<reco::CaloCluster>
const&
clusters,
255 edm::ValueMap<std::pair<float, float>>
const& layerClustersTimes,
257 edm::Handle<std::vector<SimCluster>> simClusters_h,
258 edm::Handle<std::vector<CaloParticle>> caloparticles_h,
259 std::vector<reco::Track>
const&
tracks) {
262 for (
auto trackster_iterator = tracksters.begin(); trackster_iterator != tracksters.end(); ++trackster_iterator) {
276 trackster_EV1.push_back(trackster_iterator->eigenvalues()[0]);
277 trackster_EV2.push_back(trackster_iterator->eigenvalues()[1]);
278 trackster_EV3.push_back(trackster_iterator->eigenvalues()[2]);
297 using CaloObjectVariant = std::variant<CaloParticle, SimCluster>;
298 CaloObjectVariant caloObj;
299 if (trackster_iterator->seedID() == caloparticles_h.id()) {
302 caloObj =
simclusters[trackster_iterator->seedIndex()];
305 auto const&
simTrack = std::visit([](
auto&&
obj) {
return obj.g4Tracks()[0]; }, caloObj);
306 auto const& caloPt = std::visit([](
auto&&
obj) {
return obj.pt(); }, caloObj);
328 auto const trackIdx = trackster_iterator->trackIdx();
330 if (trackIdx != -1) {
338 if (tsos.isValid()) {
340 const auto& globalMom = tsos.globalMomentum();
372 std::vector<float> id_probs;
373 for (
size_t i = 0;
i < 8;
i++)
374 id_probs.push_back(trackster_iterator->id_probabilities(
i));
378 std::vector<uint32_t> vertices_indexes;
379 std::vector<float> vertices_x;
380 std::vector<float> vertices_y;
381 std::vector<float> vertices_z;
382 std::vector<float> vertices_time;
383 std::vector<float> vertices_timeErr;
384 std::vector<float> vertices_energy;
385 std::vector<float> vertices_correctedEnergy;
386 std::vector<float> vertices_correctedEnergyUncertainty;
387 for (
auto idx : trackster_iterator->vertices()) {
388 vertices_indexes.push_back(
idx);
390 vertices_x.push_back(associated_cluster.x());
391 vertices_y.push_back(associated_cluster.y());
392 vertices_z.push_back(associated_cluster.z());
393 vertices_energy.push_back(associated_cluster.energy());
394 vertices_correctedEnergy.push_back(associated_cluster.correctedEnergy());
395 vertices_correctedEnergyUncertainty.push_back(associated_cluster.correctedEnergyUncertainty());
396 vertices_time.push_back(layerClustersTimes.get(
idx).first);
397 vertices_timeErr.push_back(layerClustersTimes.get(
idx).second);
410 std::vector<float> vertices_multiplicity;
411 for (
auto multiplicity : trackster_iterator->vertex_multiplicity()) {
412 vertices_multiplicity.push_back(multiplicity);
490 tree->Branch((branchPrefix +
"_recoToSim_" + branchSuffix).c_str(), &
recoToSim);
491 tree->Branch((branchPrefix +
"_recoToSim_" + branchSuffix +
"_score").c_str(), &
recoToSim_score);
492 tree->Branch((branchPrefix +
"_recoToSim_" + branchSuffix +
"_sharedE").c_str(), &
recoToSim_sharedE);
493 tree->Branch((branchPrefix +
"_simToReco_" + branchSuffix).c_str(), &
simToReco);
494 tree->Branch((branchPrefix +
"_simToReco_" + branchSuffix +
"_score").c_str(), &
simToReco_score);
495 tree->Branch((branchPrefix +
"_simToReco_" + branchSuffix +
"_sharedE").c_str(), &
simToReco_sharedE);
508 edm::Handle<std::vector<ticl::Trackster>> simTracksters_h,
511 auto const& tracksters = *tracksters_handle;
512 auto const& simTracksters = *simTracksters_h;
518 for (
size_t i = 0;
i < tracksters.size(); ++
i) {
521 const auto stsSC_iter = tsRecoSimSCMap.
find(tsRef);
522 if (stsSC_iter != tsRecoSimSCMap.
end()) {
523 const auto& stsSCassociated = stsSC_iter->
val;
524 for (
auto& sts : stsSCassociated) {
537 for (
size_t i = 0;
i < simTracksters.size(); ++
i) {
541 const auto ts_iter = tsSimToRecoSCMap.
find(stsSCRef);
542 if (ts_iter != tsSimToRecoSCMap.
end()) {
543 const auto& tsAssociated = ts_iter->
val;
544 for (
auto& ts : tsAssociated) {
569 typedef std::vector<double>
Vec;
580 const std::vector<edm::ParameterSet>
582 std::vector<edm::EDGetTokenT<std::vector<ticl::Trackster>>>
584 std::vector<TracksterDumperHelper>
622 const std::vector<edm::ParameterSet>
624 std::vector<edm::EDGetTokenT<ticl::SimToRecoCollectionSimTracksters>>
627 std::vector<TracksterToSimTracksterAssociationHelper>
629 std::vector<edm::EDGetTokenT<std::vector<ticl::Trackster>>>
631 std::vector<edm::EDGetTokenT<std::vector<ticl::Trackster>>>
662 std::vector<std::vector<unsigned int>>
673 std::vector<uint32_t>
675 std::vector<std::vector<uint32_t>>
763 tsDumper.clearVariables();
857 tracksters_in_candidate_token_(
861 ticl_candidates_tracksters_token_(
864 tracks_time_token_(consumes<
edm::ValueMap<
float>>(ps.getParameter<
edm::
InputTag>(
"tracksTime"))),
865 tracks_time_quality_token_(consumes<
edm::ValueMap<
float>>(ps.getParameter<
edm::
InputTag>(
"tracksTimeQual"))),
866 tracks_time_err_token_(consumes<
edm::ValueMap<
float>>(ps.getParameter<
edm::
InputTag>(
"tracksTimeErr"))),
867 tracks_beta_token_(consumes<
edm::ValueMap<
float>>(ps.getParameter<
edm::
InputTag>(
"tracksBeta"))),
868 tracks_time_mtd_token_(consumes<
edm::ValueMap<
float>>(ps.getParameter<
edm::
InputTag>(
"tracksTimeMtd"))),
869 tracks_time_mtd_err_token_(consumes<
edm::ValueMap<
float>>(ps.getParameter<
edm::
InputTag>(
"tracksTimeMtdErr"))),
874 superclustering_linkedResultTracksters_token(
876 recoSuperClusters_token(
878 recoSuperClusters_caloClusters_token(
880 recoSuperClusters_sourceTracksters_token(consumes<
std::
vector<
ticl::Trackster>>(
881 ps.getParameter<
edm::
InputTag>(
"recoSuperClusters_sourceTracksterCollection"))),
883 simTracksters_SC_token_(
885 simTICLCandidate_token_(
889 associations_dumperHelpers_(associations_parameterSets_.
size()),
890 simclusters_token_(consumes(ps.getParameter<
edm::
InputTag>(
"simclusters"))),
891 caloparticles_token_(consumes(ps.getParameter<
edm::
InputTag>(
"caloparticles"))),
893 detector_(ps.getParameter<
std::
string>(
"detector")),
894 propName_(ps.getParameter<
std::
string>(
"propagator")),
898 saveLCs_(ps.getParameter<
bool>(
"saveLCs")),
899 saveSuperclustering_(ps.getParameter<
bool>(
"saveSuperclustering")),
901 saveRecoSuperclusters_(ps.getParameter<
bool>(
"saveRecoSuperclusters")),
902 saveTICLCandidate_(ps.getParameter<
bool>(
"saveSimTICLCandidate")),
903 saveSimTICLCandidate_(ps.getParameter<
bool>(
"saveSimTICLCandidate")),
904 saveTracks_(ps.getParameter<
bool>(
"saveTracks")) {
905 std::string detectorName_ = (
detector_ ==
"HFNose") ?
"HGCalHFNoseSensitive" :
"HGCalEESensitive";
907 esConsumes<HGCalDDDConstants, IdealGeometryRecord, edm::Transition::BeginRun>(
edm::ESInputTag(
"", detectorName_));
923 consumes<std::vector<ticl::Trackster>>(associationPset.getParameter<
edm::InputTag>(
"tracksterCollection")));
925 consumes<std::vector<ticl::Trackster>>(associationPset.getParameter<
edm::InputTag>(
"simTracksterCollection")));
1075 const auto&
clusters = *layer_clusters_h;
1079 const auto& layerClustersTimes = *clustersTime_h;
1091 const auto&
tracks = *tracks_h;
1095 const auto& trackTime = *trackTime_h;
1099 const auto& trackTimeErr = *trackTimeErr_h;
1103 const auto& trackBeta = *trackBeta_h;
1107 const auto& trackTimeQual = *trackTimeQual_h;
1111 const auto& trackTimeMtd = *trackTimeMtd_h;
1115 const auto& trackTimeMtdErr = *trackTimeMtdErr_h;
1119 const auto& trackPosMtd = *trackPosMtd_h;
1128 auto&
muons = *muons_h;
1134 std::vector<ticl::Trackster>
const& recoSuperClusters_sourceTracksters =
1138 std::unordered_map<DetId, unsigned> hitToTracksterMap;
1140 for (
unsigned ts_id = 0; ts_id < recoSuperClusters_sourceTracksters.size(); ts_id++) {
1141 for (
unsigned int lc_index : recoSuperClusters_sourceTracksters[ts_id].
vertices()) {
1143 bool insertionSucceeded = hitToTracksterMap.emplace(
detId, ts_id).second;
1144 assert(insertionSucceeded &&
"TICLDumper found tracksters sharing rechits");
1149 for (
auto const& recoSc : recoSuperClusters) {
1173 const auto& simTICLCandidates = *simTICLCandidates_h;
1185 std::vector<ticl::Trackster>
const& tracksters =
event.get<std::vector<ticl::Trackster>>(
tracksters_token_[
i]);
1193 for (
size_t i = 0;
i < simTICLCandidates.size(); ++
i) {
1194 auto const&
cand = simTICLCandidates[
i];
1201 std::vector<int> tmpIdxVec;
1202 for (
auto const& simTS :
cand.tracksters()) {
1204 tmpIdxVec.push_back(trackster_idx);
1208 auto const& trackPtr =
cand.trackPtr();
1209 if (!trackPtr.isNull()) {
1210 auto const&
track = *trackPtr;
1218 if (tsos.isValid()) {
1219 const auto& globalPos = tsos.globalPosition();
1220 const auto& globalMom = tsos.globalMomentum();
1247 for (
auto cluster_iterator =
clusters.begin(); cluster_iterator !=
clusters.end(); ++cluster_iterator) {
1248 auto lc_seed = cluster_iterator->seed();
1258 auto haf = cluster_iterator->hitsAndFractions();
1261 uint32_t number_of_hits = cluster_iterator->hitsAndFractions().size();
1265 cluster_time.push_back(layerClustersTimes.get(c_id).first);
1283 std::vector<float> id_probs;
1284 for (
int j = 0;
j < 8;
j++) {
1286 id_probs.push_back(candidate.id_probability(
type));
1290 auto trackster_ptrs = candidate.tracksters();
1291 auto track_ptr = candidate.trackPtr();
1292 for (
const auto& ts_ptr : trackster_ptrs) {
1296 if (track_ptr.isNull())
1313 for (
size_t i = 0;
i <
tracks.size();
i++) {
1320 if (tsos.isValid()) {
1321 const auto& globalPos = tsos.globalPosition();
1322 const auto& globalMom = tsos.globalMomentum();
1378 ->setComment(
"Name of the output tree for the trackster collection");
1379 tracksterDescValidator.
add<
edm::InputTag>(
"inputTag")->setComment(
"Input tag for the trackster collection to write");
1380 tracksterDescValidator.
ifValue(
1385 edm::Comment(
"Type of trackster. Trackster=regular trackster (from RECO). SimTracksterCP=Simtrackster " 1386 "from CaloParticle. SimTracksterSC=Simtrackster from SimCluster")),
1387 edm::allowedValues<std::string>(
"Trackster",
"SimTracksterCP",
"SimTracksterSC"));
1388 desc.addVPSet(
"tracksterCollections", tracksterDescValidator)->setComment(
"Trackster collections to dump");
1407 "egamma supercluster collection (either from PFECALSuperClusterProducer for Mustache, or from " 1408 "TICL->Egamma converter in case of TICL DNN superclusters)");
1411 "Trackster collection used to produce the reco::SuperCluster, used to provide a mapping back to the " 1412 "tracksters used in superclusters");
1415 ->setComment(
"SimTrackster from CaloParticle collection to use for simTICLcandidates");
1420 associatorDescValidator.
add<
std::string>(
"branchName")->setComment(
"Name of the output branches in the tree");
1421 associatorDescValidator.add<
std::string>(
"suffix")->setComment(
"Should be CP or SC (for the output branch name)");
1422 associatorDescValidator.add<
edm::InputTag>(
"associatorInputTag")
1423 ->setComment(
"Input tag for the associator (do not put the instance)");
1424 associatorDescValidator.add<
edm::InputTag>(
"tracksterCollection")
1425 ->setComment(
"Collection of tracksters used by the associator");
1426 associatorDescValidator.add<
edm::InputTag>(
"simTracksterCollection")
1427 ->setComment(
"Collection of SimTrackster used by the associator");
1428 desc.addVPSet(
"associators", associatorDescValidator)->setComment(
"Tracksters to SimTracksters associators to dump");
1435 desc.add<
bool>(
"saveLCs",
true);
1436 desc.add<
bool>(
"saveTICLCandidate",
true);
1437 desc.add<
bool>(
"saveSimTICLCandidate",
true);
1438 desc.add<
bool>(
"saveTracks",
true);
1439 desc.add<
bool>(
"saveSuperclustering",
true);
1440 desc.add<
bool>(
"saveRecoSuperclusters",
true)
1441 ->setComment(
"Save superclustering Egamma collections (as reco::SuperCluster)");
1442 descriptions.
add(
"ticlDumper",
desc);
double waferZ(int layer, bool reco) const
std::vector< float > simtrackster_timeBoundary
const edm::EDGetTokenT< reco::SuperClusterCollection > recoSuperClusters_token
std::vector< TTree * > tracksters_trees
TTree for each trackster collection to dump.
std::vector< float > trackster_eVector0_z
std::vector< float > cluster_timeErr
std::vector< float > simtrackster_track_boundaryPy
static DiskPointer build(Args &&... args)
const edm::EDGetTokenT< std::vector< double > > hgcaltracks_eta_token_
std::vector< edm::EDGetTokenT< std::vector< ticl::Trackster > > > tracksters_token_
a token for each trackster collection to dump
const edm::ESGetToken< CaloGeometry, CaloGeometryRecord > geometry_token_
ParameterDescriptionNode * ifValue(ParameterDescription< T > const &switchParameter, std::unique_ptr< ParameterDescriptionCases< T >> cases)
static int muAssocToTrack(const reco::TrackRef &trackref, const reco::MuonCollection &muons)
std::vector< float > cluster_position_x
std::vector< edm::EDGetTokenT< ticl::RecoToSimCollectionSimTracksters > > associations_recoToSim_token_
T getParameter(std::string const &) const
void initTree(TTree *trackster_tree_, edm::EventID *eventId_)
std::vector< std::vector< float > > simToReco_score
std::vector< int > simTICLCandidate_charge
std::vector< float > simtrackster_track_boundaryEta
std::vector< float > simtrackster_trackTime
std::vector< TracksterToSimTracksterAssociationHelper > associations_dumperHelpers_
the dumper helpers for each association map to dump
std::vector< float > trackster_EV2
std::vector< double > candidate_py
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
std::vector< std::vector< float > > trackster_vertices_time
const edm::EDGetTokenT< std::vector< double > > hgcaltracks_py_token_
bool saveSuperclustering_
std::vector< float > simtrackster_track_boundaryPx
std::vector< float > simTICLCandidate_raw_energy
void endRun(edm::Run const &iEvent, edm::EventSetup const &) override
TracksterDumperHelper(TracksterType tracksterType=TracksterType::Trackster)
const edm::EDGetTokenT< edm::ValueMap< float > > tracks_beta_token_
std::vector< float > trackster_sigmaPCA3
const edm::EDGetTokenT< edm::ValueMap< GlobalPoint > > tracks_pos_mtd_token_
static bool isMuon(const reco::PFBlockElement &elt)
std::vector< float > simtrackster_boundaryPy
std::vector< double > recoSuperCluster_energy
std::vector< double > recoSuperCluster_position_x
std::vector< std::vector< uint32_t > > tracksters_in_candidate
std::vector< float > cluster_position_y
std::vector< std::vector< float > > trackster_vertices_multiplicity
const edm::EDGetTokenT< std::vector< std::vector< unsigned int > > > superclustering_linkedResultTracksters_token
std::vector< std::vector< float > > trackster_vertices_y
std::vector< float > cluster_correctedEnergy
std::vector< float > trackster_eVector0_x
std::vector< float > trackster_raw_pt
std::vector< float > track_beta
Regular trackster (from RECO)
std::vector< uint32_t > cluster_seedID
const edm::EDGetTokenT< reco::CaloClusterCollection > recoSuperClusters_caloClusters_token
std::vector< double > Vec
std::vector< float > cluster_position_z
std::vector< int > track_quality
std::vector< float > track_hgcal_y
bool saveRecoSuperclusters_
std::vector< unsigned int > track_id
const edm::EDGetTokenT< std::vector< TICLCandidate > > ticl_candidates_token_
std::vector< std::vector< float > > trackster_vertices_energy
std::vector< double > recoSuperCluster_position_z
std::vector< float > simtrackster_track_boundaryY
std::vector< float > simTICLCandidate_boundaryY
std::vector< double > recoSuperCluster_rawEnergy
TTree * superclustering_tree_
const edm::EDGetTokenT< std::vector< ticl::Trackster > > simTracksters_SC_token_
const edm::EDGetTokenT< edm::ValueMap< float > > tracks_time_quality_token_
std::vector< float > cluster_energy
const edm::ESGetToken< Propagator, TrackingComponentsRecord > propagator_token_
void fillFromEvent(std::vector< ticl::Trackster > const &tracksters, std::vector< reco::CaloCluster > const &clusters, edm::ValueMap< std::pair< float, float >> const &layerClustersTimes, DetectorTools const &detectorTools, edm::Handle< std::vector< SimCluster >> simClusters_h, edm::Handle< std::vector< CaloParticle >> caloparticles_h, std::vector< reco::Track > const &tracks)
std::vector< int > candidate_charge
std::vector< float > track_hgcal_pz
std::vector< std::vector< float > > trackster_vertices_correctedEnergy
std::vector< std::vector< float > > trackster_vertices_correctedEnergyUncertainty
TracksterType tracksterType_
std::vector< std::vector< float > > trackster_id_probabilities
muons
the two sets of parameters below are mutually exclusive, depending if RECO or ALCARECO is used the us...
static TracksterType tracksterTypeFromString(std::string str)
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
std::vector< std::vector< uint32_t > > recoToSim
std::vector< float > candidate_time
const_iterator find(const key_type &k) const
find element with specified reference key
std::unique_ptr< DetectorTools > detectorTools_
std::vector< std::vector< float > > simToReco_sharedE
std::vector< float > trackster_sigmaPCA2
std::vector< float > track_hgcal_px
std::vector< std::vector< uint32_t > > trackster_vertices_indexes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
std::vector< unsigned int > cluster_layer_id
std::vector< float > candidate_energy
std::vector< int > track_charge
const_iterator end() const
last iterator over the map (read only)
std::vector< std::vector< float > > trackster_vertices_timeErr
std::vector< int > simTICLCandidate_track_in_candidate
std::vector< float > trackster_barycenter_z
std::vector< float > track_hgcal_eta
void fillFromEvent(edm::Handle< std::vector< ticl::Trackster >> tracksters_handle, edm::Handle< std::vector< ticl::Trackster >> simTracksters_h, ticl::RecoToSimCollectionSimTracksters const &tsRecoSimSCMap, ticl::SimToRecoCollectionSimTracksters const &tsSimToRecoSCMap)
std::vector< edm::EDGetTokenT< std::vector< ticl::Trackster > > > associations_simTracksterCollection_
the collection of simtracksters used by the associator
std::vector< int > cluster_type
const edm::EDGetTokenT< std::vector< CaloParticle > > caloparticles_token_
std::vector< float > trackster_barycenter_y
const edm::EDGetTokenT< edm::ValueMap< float > > tracks_time_token_
std::vector< float > simTICLCandidate_boundaryZ
const edm::EDGetTokenT< std::vector< ticl::Trackster > > tracksters_in_candidate_token_
GlobalPoint globalPosition() const
std::vector< float > simtrackster_regressed_pt
std::vector< float > track_hgcal_z
void analyze(const edm::Event &, const edm::EventSetup &) override
std::vector< float > trackster_barycenter_phi
std::vector< float > trackster_barycenter_eta
std::vector< std::vector< uint32_t > > recoSuperCluster_constituentTs
Indices to all tracksters inside the supercluster (same)
std::vector< int > track_missing_outer_hits
std::vector< SuperCluster > SuperClusterCollection
collection of SuperCluser objectr
std::vector< double > recoSuperCluster_position_y
std::vector< float > track_hgcal_phi
std::vector< float > cluster_time
std::vector< float > simTICLCandidate_boundaryPy
std::vector< double > track_time
std::vector< float > simtrackster_boundaryZ
std::vector< double > candidate_pz
std::vector< float > simtrackster_boundaryPx
std::vector< float > simtrackster_track_boundaryZ
TTree * associations_tree_
std::vector< edm::EDGetTokenT< std::vector< ticl::Trackster > > > associations_tracksterCollection_
the collection of tracksters used by the associator
std::vector< CaloCluster > CaloClusterCollection
collection of CaloCluster objects
edm::Ref< MuonCollection > MuonRef
presistent reference to a Muon
std::vector< float > simtrackster_boundaryX
std::vector< float > trackster_sigmaPCA1
std::vector< float > simtrackster_boundaryY
#define DEFINE_FWK_MODULE(type)
std::vector< std::vector< uint32_t > > simToReco
std::vector< float > simtrackster_boundaryPhi
std::vector< float > simTICLCandidate_boundaryPx
std::vector< float > simTICLCandidate_boundaryX
std::vector< double > candidate_px
std::vector< double > recoSuperCluster_correctedEnergy
const edm::EDGetTokenT< std::vector< double > > hgcaltracks_x_token_
std::vector< float > trackster_timeError
ParameterDescriptionBase * add(U const &iLabel, T const &value)
const edm::EDGetTokenT< std::vector< double > > hgcaltracks_z_token_
std::vector< float > track_hgcal_pt
std::vector< int > simTICLCandidate_pdgId
TICLDumper(const edm::ParameterSet &)
const edm::EDGetTokenT< std::vector< double > > hgcaltracks_px_token_
std::vector< std::vector< float > > recoToSim_sharedE
std::vector< float > trackster_EV3
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
const std::vector< edm::ParameterSet > associations_parameterSets_
A parameter set for each associator collection to dump (with treeName, etc)
std::vector< float > track_time_quality
const std::string propName_
std::pair< double, double > rangeR(double z, bool reco) const
std::vector< std::vector< float > > trackster_vertices_x
const edm::EDGetTokenT< std::vector< ticl::Trackster > > ticl_candidates_tracksters_token_
trackster collection used by TICLCandidate
std::vector< float > trackster_time
std::vector< float > trackster_raw_em_pt
std::vector< float > trackster_EV1
std::vector< float > simTICLCandidate_regressed_energy
std::vector< std::vector< float > > trackster_vertices_z
std::vector< float > trackster_raw_em_energy
const edm::EDGetTokenT< std::vector< bool > > tracks_mask_token_
std::vector< int > simtrackster_pdgID
std::vector< float > simTICLCandidate_caloParticleMass
bool saveSuperclusteringDNNScore_
std::vector< uint32_t > recoSuperCluster_seedTs
Index to seed trackster (into the trackster collection used to make superclusters, given by config recoSuperClusters_sourceTracksterCollection)
std::vector< float > simtrackster_track_boundaryPhi
const edm::EDGetTokenT< std::vector< int > > tracksterSeeds_token_
void beginRun(const edm::Run &, const edm::EventSetup &) override
edm::ESGetToken< HGCalDDDConstants, IdealGeometryRecord > hdc_token_
const edm::EDGetTokenT< std::vector< double > > hgcaltracks_y_token_
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
std::vector< float > trackster_eVector0_y
const edm::EDGetTokenT< std::vector< ticl::Trackster > > recoSuperClusters_sourceTracksters_token
const edm::EDGetTokenT< edm::ValueMap< float > > tracks_time_mtd_token_
void add(std::string const &label, ParameterSetDescription const &psetDescription)
std::vector< TracksterDumperHelper > tracksters_dumperHelpers_
the dumper helpers for each trackster collection to dump
std::vector< float > cluster_position_eta
std::vector< float > track_pt
std::vector< std::vector< float > > candidate_id_probabilities
std::vector< int > track_isTrackerMuon
std::vector< int > simtrackster_trackIdx
std::vector< float > simtrackster_track_boundaryPz
std::vector< std::vector< int > > simTICLCandidate_simTracksterCPIndex
SimTrackster from SimCluster.
std::vector< double > recoSuperCluster_position_phi
std::vector< float > track_hgcal_py
bool saveSimTICLCandidate_
std::vector< int > track_in_candidate
std::vector< float > track_time_err
std::vector< int > track_isMuon
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 > trackster_barycenter_x
std::vector< int > candidate_pdgId
std::vector< float > track_time_mtd_err
const edm::EDGetTokenT< edm::ValueMap< std::pair< float, float > > > clustersTime_token_
const edm::EDGetTokenT< edm::ValueMap< float > > tracks_time_err_token_
std::vector< double > recoSuperCluster_position_eta
const edm::EDGetTokenT< std::vector< double > > hgcaltracks_phi_token_
std::vector< int > track_nhits
std::vector< float > simtrackster_boundaryEta
const edm::EDGetTokenT< std::vector< TICLCandidate > > simTICLCandidate_token_
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > bfield_token_
std::vector< int > track_missing_inner_hits
SimTrackster from CaloParticle.
std::vector< float > track_hgcal_x
std::vector< float > trackster_raw_energy
std::vector< GlobalPoint > track_pos_mtd
std::vector< float > track_time_mtd
std::vector< uint32_t > cluster_number_of_hits
TTree * simTICLCandidate_tree
const edm::EDGetTokenT< std::vector< reco::CaloCluster > > layer_clusters_token_
std::vector< float > candidate_time_err
const edm::EDGetTokenT< std::vector< double > > hgcaltracks_pz_token_
std::vector< std::vector< unsigned int > > superclustering_linkedResultTracksters
const std::vector< edm::ParameterSet > tracksters_parameterSets_
A parameter set for each trackster collection to dump (giving tree name, etc)
const edm::EDGetTokenT< std::vector< reco::Track > > tracks_token_
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeometry_token_
void initTree(TTree *tree, std::string branchPrefix, std::string branchSuffix)
const edm::EDGetTokenT< std::vector< reco::Muon > > muons_token_
std::vector< float > simTICLCandidate_time
std::vector< std::vector< float > > recoToSim_score
std::vector< float > cluster_position_phi
std::vector< float > trackster_regressed_energy
std::vector< float > simtrackster_track_boundaryX
std::vector< float > simtrackster_boundaryPz
const edm::EDGetTokenT< std::vector< SimCluster > > simclusters_token_
std::vector< edm::EDGetTokenT< ticl::SimToRecoCollectionSimTracksters > > associations_simToReco_token_
The tokens for each assocation.
const std::string detector_
std::vector< float > simTICLCandidate_boundaryPz