78 std::pair<float, float> rMinMax =
hgcons.
rangeR(zVal,
true);
81 std::pair<float, float> rMinMax_interface =
hgcons.
rangeR(zVal_interface,
true);
83 for (
int iSide = 0; iSide < 2; ++iSide) {
84 float zSide = (iSide == 0) ? (-1. * zVal) : zVal;
91 zSide = (iSide == 0) ? (-1. * zVal_interface) : zVal_interface;
95 SimpleDiskBounds(rMinMax_interface.first, rMinMax_interface.second, zSide - 0.5, zSide + 0.5))
118 if (
str ==
"Trackster")
120 if (
str ==
"SimTracksterCP")
122 if (
str ==
"SimTracksterSC")
124 throw std::runtime_error(
"TICLDumper : TracksterDumperHelper : Invalid trackster type " +
str);
135 trackster_tree_->Branch(
"event", eventId_);
136 trackster_tree_->Branch(
"NTracksters", &
nTracksters);
137 trackster_tree_->Branch(
"NClusters", &
nClusters);
256 std::vector<reco::CaloCluster>
const&
clusters,
257 edm::ValueMap<std::pair<float, float>>
const& layerClustersTimes,
259 edm::Handle<std::vector<SimCluster>> simClusters_h,
260 edm::Handle<std::vector<CaloParticle>> caloparticles_h,
261 std::vector<reco::Track>
const&
tracks) {
264 for (
auto trackster_iterator =
tracksters.begin(); trackster_iterator !=
tracksters.end(); ++trackster_iterator) {
278 trackster_EV1.push_back(trackster_iterator->eigenvalues()[0]);
279 trackster_EV2.push_back(trackster_iterator->eigenvalues()[1]);
280 trackster_EV3.push_back(trackster_iterator->eigenvalues()[2]);
299 using CaloObjectVariant = std::variant<CaloParticle, SimCluster>;
300 CaloObjectVariant caloObj;
301 if (trackster_iterator->seedID() == caloparticles_h.id()) {
304 caloObj =
simclusters[trackster_iterator->seedIndex()];
307 auto const&
simTrack = std::visit([](
auto&&
obj) {
return obj.g4Tracks()[0]; }, caloObj);
308 auto const& caloPt = std::visit([](
auto&&
obj) {
return obj.pt(); }, caloObj);
330 auto const trackIdx = trackster_iterator->trackIdx();
332 if (trackIdx != -1) {
340 if (tsos.isValid()) {
342 const auto& globalMom = tsos.globalMomentum();
374 std::vector<float> id_probs;
375 for (
size_t i = 0;
i < 8;
i++)
376 id_probs.push_back(trackster_iterator->id_probabilities(
i));
380 std::vector<uint32_t> vertices_indexes;
381 std::vector<float> vertices_x;
382 std::vector<float> vertices_y;
383 std::vector<float> vertices_z;
384 std::vector<float> vertices_time;
385 std::vector<float> vertices_timeErr;
386 std::vector<float> vertices_energy;
387 std::vector<float> vertices_correctedEnergy;
388 std::vector<float> vertices_correctedEnergyUncertainty;
389 for (
auto idx : trackster_iterator->vertices()) {
390 vertices_indexes.push_back(
idx);
392 vertices_x.push_back(associated_cluster.x());
393 vertices_y.push_back(associated_cluster.y());
394 vertices_z.push_back(associated_cluster.z());
395 vertices_energy.push_back(associated_cluster.energy());
396 vertices_correctedEnergy.push_back(associated_cluster.correctedEnergy());
397 vertices_correctedEnergyUncertainty.push_back(associated_cluster.correctedEnergyUncertainty());
398 vertices_time.push_back(layerClustersTimes.get(
idx).first);
399 vertices_timeErr.push_back(layerClustersTimes.get(
idx).second);
412 std::vector<float> vertices_multiplicity;
413 for (
auto multiplicity : trackster_iterator->vertex_multiplicity()) {
414 vertices_multiplicity.push_back(multiplicity);
492 tree->Branch((branchPrefix +
"_recoToSim_" + branchSuffix).c_str(), &
recoToSim);
493 tree->Branch((branchPrefix +
"_recoToSim_" + branchSuffix +
"_score").c_str(), &
recoToSim_score);
494 tree->Branch((branchPrefix +
"_recoToSim_" + branchSuffix +
"_sharedE").c_str(), &
recoToSim_sharedE);
495 tree->Branch((branchPrefix +
"_simToReco_" + branchSuffix).c_str(), &
simToReco);
496 tree->Branch((branchPrefix +
"_simToReco_" + branchSuffix +
"_score").c_str(), &
simToReco_score);
497 tree->Branch((branchPrefix +
"_simToReco_" + branchSuffix +
"_sharedE").c_str(), &
simToReco_sharedE);
511 const auto numberOfTracksters = recoToSimMap.
getMap().size();
516 for (
size_t i = 0;
i < numberOfTracksters; ++
i) {
517 for (
const auto& [simTracksterIndex, sharedEnergyAndScorePair] : recoToSimMap[
i]) {
525 const auto numberOfSimTracksters = simToRecoMap.
getMap().size();
530 for (
size_t i = 0;
i < numberOfSimTracksters; ++
i) {
531 for (
const auto& [recoTracksterIndex, sharedEnergyAndScorePair] : simToRecoMap[
i]) {
554 typedef std::vector<double>
Vec;
565 const std::vector<edm::ParameterSet>
567 std::vector<edm::EDGetTokenT<std::vector<ticl::Trackster>>>
569 std::vector<TracksterDumperHelper>
607 const std::vector<edm::ParameterSet>
609 std::vector<edm::EDGetTokenT<TracksterToTracksterMap>>
612 std::vector<TracksterToSimTracksterAssociationHelper>
644 std::vector<std::vector<unsigned int>>
655 std::vector<uint32_t>
657 std::vector<std::vector<uint32_t>>
745 tsDumper.clearVariables();
839 tracksters_in_candidate_token_(
843 ticl_candidates_tracksters_token_(
846 tracks_time_token_(consumes<
edm::ValueMap<
float>>(ps.getParameter<
edm::
InputTag>(
"tracksTime"))),
847 tracks_time_quality_token_(consumes<
edm::ValueMap<
float>>(ps.getParameter<
edm::
InputTag>(
"tracksTimeQual"))),
848 tracks_time_err_token_(consumes<
edm::ValueMap<
float>>(ps.getParameter<
edm::
InputTag>(
"tracksTimeErr"))),
849 tracks_beta_token_(consumes<
edm::ValueMap<
float>>(ps.getParameter<
edm::
InputTag>(
"tracksBeta"))),
850 tracks_time_mtd_token_(consumes<
edm::ValueMap<
float>>(ps.getParameter<
edm::
InputTag>(
"tracksTimeMtd"))),
851 tracks_time_mtd_err_token_(consumes<
edm::ValueMap<
float>>(ps.getParameter<
edm::
InputTag>(
"tracksTimeMtdErr"))),
856 superclustering_linkedResultTracksters_token(
858 recoSuperClusters_token(
860 recoSuperClusters_caloClusters_token(
862 recoSuperClusters_sourceTracksters_token(consumes<
std::
vector<
ticl::Trackster>>(
863 ps.getParameter<
edm::
InputTag>(
"recoSuperClusters_sourceTracksterCollection"))),
865 simTracksters_SC_token_(
867 simTICLCandidate_token_(
871 associations_dumperHelpers_(associations_parameterSets_.
size()),
872 simclusters_token_(consumes(ps.getParameter<
edm::
InputTag>(
"simclusters"))),
873 caloparticles_token_(consumes(ps.getParameter<
edm::
InputTag>(
"caloparticles"))),
875 detector_(ps.getParameter<
std::
string>(
"detector")),
876 propName_(ps.getParameter<
std::
string>(
"propagator")),
880 saveLCs_(ps.getParameter<
bool>(
"saveLCs")),
881 saveSuperclustering_(ps.getParameter<
bool>(
"saveSuperclustering")),
883 saveRecoSuperclusters_(ps.getParameter<
bool>(
"saveRecoSuperclusters")),
884 saveTICLCandidate_(ps.getParameter<
bool>(
"saveSimTICLCandidate")),
885 saveSimTICLCandidate_(ps.getParameter<
bool>(
"saveSimTICLCandidate")),
886 saveTracks_(ps.getParameter<
bool>(
"saveTracks")) {
887 std::string detectorName_ = (
detector_ ==
"HFNose") ?
"HGCalHFNoseSensitive" :
"HGCalEESensitive";
889 esConsumes<HGCalDDDConstants, IdealGeometryRecord, edm::Transition::BeginRun>(
edm::ESInputTag(
"", detectorName_));
1052 const auto&
clusters = *layer_clusters_h;
1056 const auto& layerClustersTimes = *clustersTime_h;
1068 const auto&
tracks = *tracks_h;
1072 const auto& trackTime = *trackTime_h;
1076 const auto& trackTimeErr = *trackTimeErr_h;
1080 const auto& trackBeta = *trackBeta_h;
1084 const auto& trackTimeQual = *trackTimeQual_h;
1088 const auto& trackTimeMtd = *trackTimeMtd_h;
1092 const auto& trackTimeMtdErr = *trackTimeMtdErr_h;
1096 const auto& trackPosMtd = *trackPosMtd_h;
1105 auto&
muons = *muons_h;
1111 std::vector<ticl::Trackster>
const& recoSuperClusters_sourceTracksters =
1117 for (
unsigned ts_id = 0; ts_id < recoSuperClusters_sourceTracksters.size(); ts_id++) {
1118 for (
unsigned int lc_index : recoSuperClusters_sourceTracksters[ts_id].
vertices()) {
1121 assert(insertionSucceeded &&
"TICLDumper found tracksters sharing rechits");
1126 for (
auto const& recoSc : recoSuperClusters) {
1150 const auto& simTICLCandidates = *simTICLCandidates_h;
1170 for (
size_t i = 0;
i < simTICLCandidates.size(); ++
i) {
1171 auto const&
cand = simTICLCandidates[
i];
1178 std::vector<int> tmpIdxVec;
1179 for (
auto const& simTS :
cand.tracksters()) {
1181 tmpIdxVec.push_back(trackster_idx);
1185 auto const& trackPtr =
cand.trackPtr();
1186 if (!trackPtr.isNull()) {
1187 auto const&
track = *trackPtr;
1195 if (tsos.isValid()) {
1196 const auto& globalPos = tsos.globalPosition();
1197 const auto& globalMom = tsos.globalMomentum();
1224 for (
auto cluster_iterator =
clusters.begin(); cluster_iterator !=
clusters.end(); ++cluster_iterator) {
1225 auto lc_seed = cluster_iterator->seed();
1235 auto haf = cluster_iterator->hitsAndFractions();
1238 uint32_t number_of_hits = cluster_iterator->hitsAndFractions().size();
1242 cluster_time.push_back(layerClustersTimes.get(c_id).first);
1260 std::vector<float> id_probs;
1261 for (
int j = 0;
j < 8;
j++) {
1263 id_probs.push_back(candidate.id_probability(
type));
1267 auto trackster_ptrs = candidate.tracksters();
1268 auto track_ptr = candidate.trackPtr();
1269 for (
const auto& ts_ptr : trackster_ptrs) {
1273 if (track_ptr.isNull())
1288 for (
size_t i = 0;
i <
tracks.size();
i++) {
1295 if (tsos.isValid()) {
1296 const auto& globalPos = tsos.globalPosition();
1297 const auto& globalMom = tsos.globalMomentum();
1353 ->setComment(
"Name of the output tree for the trackster collection");
1354 tracksterDescValidator.
add<
edm::InputTag>(
"inputTag")->setComment(
"Input tag for the trackster collection to write");
1355 tracksterDescValidator.
ifValue(
1360 edm::Comment(
"Type of trackster. Trackster=regular trackster (from RECO). SimTracksterCP=Simtrackster " 1361 "from CaloParticle. SimTracksterSC=Simtrackster from SimCluster")),
1362 edm::allowedValues<std::string>(
"Trackster",
"SimTracksterCP",
"SimTracksterSC"));
1363 desc.addVPSet(
"tracksterCollections", tracksterDescValidator)->setComment(
"Trackster collections to dump");
1382 "egamma supercluster collection (either from PFECALSuperClusterProducer for Mustache, or from " 1383 "TICL->Egamma converter in case of TICL DNN superclusters)");
1386 "Trackster collection used to produce the reco::SuperCluster, used to provide a mapping back to the " 1387 "tracksters used in superclusters");
1390 ->setComment(
"SimTrackster from CaloParticle collection to use for simTICLcandidates");
1395 associatorDescValidator.
add<
std::string>(
"branchName")->setComment(
"Name of the output branches in the tree");
1396 associatorDescValidator.add<
std::string>(
"suffix")->setComment(
"Should be CP or SC (for the output branch name)");
1397 associatorDescValidator.add<
edm::InputTag>(
"associatorRecoToSimInputTag")
1398 ->setComment(
"Input tag for the RecoToSim associator to dump");
1399 associatorDescValidator.add<
edm::InputTag>(
"associatorSimToRecoInputTag")
1400 ->setComment(
"Input tag for the SimToReco associator to dump");
1401 desc.addVPSet(
"associators", associatorDescValidator)->setComment(
"Tracksters to SimTracksters associators to dump");
1408 desc.add<
bool>(
"saveLCs",
true);
1409 desc.add<
bool>(
"saveTICLCandidate",
true);
1410 desc.add<
bool>(
"saveSimTICLCandidate",
true);
1411 desc.add<
bool>(
"saveTracks",
true);
1412 desc.add<
bool>(
"saveSuperclustering",
true);
1413 desc.add<
bool>(
"saveRecoSuperclusters",
true)
1414 ->setComment(
"Save superclustering Egamma collections (as reco::SuperCluster)");
1415 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
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< edm::EDGetTokenT< TracksterToTracksterMap > > associations_simToReco_token_
The tokens for each assocation.
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
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
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
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
void fillFromEvent(TracksterToTracksterMap const &recoToSimMap, TracksterToTracksterMap const &simToRecoMap)
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< 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< edm::EDGetTokenT< TracksterToTracksterMap > > associations_recoToSim_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_
const std::string detector_
std::vector< float > simTICLCandidate_boundaryPz