CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Attributes
TrackstersProducer Class Reference
Inheritance diagram for TrackstersProducer:
edm::stream::EDProducer< edm::GlobalCache< TrackstersCache > >

Public Member Functions

void produce (edm::Event &, const edm::EventSetup &) override
 
 TrackstersProducer (const edm::ParameterSet &, const TrackstersCache *)
 
 ~TrackstersProducer () override
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< TrackstersCache > >
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
static void globalEndJob (TrackstersCache *)
 
static std::unique_ptr< TrackstersCacheinitializeGlobalCache (const edm::ParameterSet &)
 

Private Attributes

const edm::EDGetTokenT< std::vector< reco::CaloCluster > > clusters_token_
 
const edm::EDGetTokenT< edm::ValueMap< std::pair< float, float > > > clustersTime_token_
 
std::string detector_
 
bool doNose_
 
const edm::EDGetTokenT< std::vector< float > > filtered_layerclusters_mask_token_
 
const std::string itername_
 
edm::EDGetTokenT< TICLLayerTilesHFNoselayer_clusters_tiles_hfnose_token_
 
edm::EDGetTokenT< TICLLayerTileslayer_clusters_tiles_token_
 
std::unique_ptr< PatternRecognitionAlgoBaseT< TICLLayerTiles > > myAlgo_
 
std::unique_ptr< PatternRecognitionAlgoBaseT< TICLLayerTilesHFNose > > myAlgoHFNose_
 
const edm::EDGetTokenT< std::vector< float > > original_layerclusters_mask_token_
 
const edm::EDGetTokenT< std::vector< TICLSeedingRegion > > seeding_regions_token_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< TrackstersCache > >
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Detailed Description

Definition at line 32 of file TrackstersProducer.cc.

Constructor & Destructor Documentation

◆ TrackstersProducer()

TrackstersProducer::TrackstersProducer ( const edm::ParameterSet ps,
const TrackstersCache cache 
)
explicit

Definition at line 80 of file TrackstersProducer.cc.

81  : detector_(ps.getParameter<std::string>("detector")),
82  doNose_(detector_ == "HFNose"),
85  clusters_token_(consumes<std::vector<reco::CaloCluster>>(ps.getParameter<edm::InputTag>("layer_clusters"))),
86  filtered_layerclusters_mask_token_(consumes<std::vector<float>>(ps.getParameter<edm::InputTag>("filtered_mask"))),
87  original_layerclusters_mask_token_(consumes<std::vector<float>>(ps.getParameter<edm::InputTag>("original_mask"))),
89  consumes<edm::ValueMap<std::pair<float, float>>>(ps.getParameter<edm::InputTag>("time_layerclusters"))),
91  consumes<std::vector<TICLSeedingRegion>>(ps.getParameter<edm::InputTag>("seeding_regions"))),
92  itername_(ps.getParameter<std::string>("itername")) {
93  if (doNose_) {
95  consumes<TICLLayerTilesHFNose>(ps.getParameter<edm::InputTag>("layer_clusters_hfnose_tiles"));
96  } else {
97  layer_clusters_tiles_token_ = consumes<TICLLayerTiles>(ps.getParameter<edm::InputTag>("layer_clusters_tiles"));
98  }
99  produces<std::vector<Trackster>>();
100  produces<std::vector<float>>(); // Mask to be applied at the next iteration
101 }

References doNose_, edm::ParameterSet::getParameter(), layer_clusters_tiles_hfnose_token_, and layer_clusters_tiles_token_.

◆ ~TrackstersProducer()

TrackstersProducer::~TrackstersProducer ( )
inlineoverride

Definition at line 35 of file TrackstersProducer.cc.

35 {}

Member Function Documentation

◆ fillDescriptions()

void TrackstersProducer::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 103 of file TrackstersProducer.cc.

103  {
104  // hgcalMultiClusters
106  desc.add<std::string>("detector", "HGCAL");
107  desc.add<edm::InputTag>("layer_clusters", edm::InputTag("hgcalLayerClusters"));
108  desc.add<edm::InputTag>("filtered_mask", edm::InputTag("filteredLayerClusters", "iterationLabelGoesHere"));
109  desc.add<edm::InputTag>("original_mask", edm::InputTag("hgcalLayerClusters", "InitialLayerClustersMask"));
110  desc.add<edm::InputTag>("time_layerclusters", edm::InputTag("hgcalLayerClusters", "timeLayerCluster"));
111  desc.add<edm::InputTag>("layer_clusters_tiles", edm::InputTag("ticlLayerTileProducer"));
112  desc.add<edm::InputTag>("layer_clusters_hfnose_tiles", edm::InputTag("ticlLayerTileHFNose"));
113  desc.add<edm::InputTag>("seeding_regions", edm::InputTag("ticlSeedingRegionProducer"));
114  desc.add<std::vector<int>>("filter_on_categories", {0});
115  desc.add<double>("pid_threshold", 0.); // make default such that no filtering is applied
116  desc.add<double>("energy_em_over_total_threshold", -1.); // make default such that no filtering is applied
117  desc.add<double>("max_longitudinal_sigmaPCA", 9999);
118  desc.add<int>("shower_start_max_layer", 9999); // make default such that no filtering is applied
119  desc.add<int>("algo_verbosity", 0);
120  desc.add<double>("min_cos_theta", 0.915);
121  desc.add<double>("root_doublet_max_distance_from_seed_squared", 9999);
122  desc.add<double>("min_cos_pointing", -1.);
123  desc.add<int>("skip_layers", 0);
124  desc.add<int>("max_missing_layers_in_trackster", 9999);
125  desc.add<double>("etaLimitIncreaseWindow", 2.1);
126  desc.add<int>("min_layers_per_trackster", 10);
127  desc.add<double>("max_delta_time", 3.); //nsigma
128  desc.add<bool>("out_in_dfs", true);
129  desc.add<int>("max_out_in_hops", 10);
130  desc.add<bool>("oneTracksterPerTrackSeed", false);
131  desc.add<bool>("promoteEmptyRegionToTrackster", false);
132  desc.add<std::string>("eid_graph_path", "RecoHGCal/TICL/data/tf_models/energy_id_v0.pb");
133  desc.add<std::string>("eid_input_name", "input");
134  desc.add<std::string>("eid_output_name_energy", "output/regressed_energy");
135  desc.add<std::string>("eid_output_name_id", "output/id_probabilities");
136  desc.add<std::string>("itername", "unknown");
137  desc.add<double>("eid_min_cluster_energy", 1.);
138  desc.add<int>("eid_n_layers", 50);
139  desc.add<int>("eid_n_clusters", 10);
140  descriptions.add("trackstersProducer", desc);
141 }

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), HLT_2018_cff::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.

◆ globalEndJob()

void TrackstersProducer::globalEndJob ( TrackstersCache cache)
static

Definition at line 75 of file TrackstersProducer.cc.

75  {
76  delete cache->eidGraphDef;
77  cache->eidGraphDef = nullptr;
78 }

References utilities::cache().

◆ initializeGlobalCache()

std::unique_ptr< TrackstersCache > TrackstersProducer::initializeGlobalCache ( const edm::ParameterSet params)
static

Definition at line 61 of file TrackstersProducer.cc.

61  {
62  // this method is supposed to create, initialize and return a TrackstersCache instance
63  std::unique_ptr<TrackstersCache> cache = std::make_unique<TrackstersCache>(params);
64 
65  // load the graph def and save it
66  std::string graphPath = params.getParameter<std::string>("eid_graph_path");
67  if (!graphPath.empty()) {
68  graphPath = edm::FileInPath(graphPath).fullPath();
69  cache->eidGraphDef = tensorflow::loadGraphDef(graphPath);
70  }
71 
72  return cache;
73 }

References utilities::cache(), edm::FileInPath::fullPath(), tensorflow::loadGraphDef(), CalibrationSummaryClient_cfi::params, and AlCaHLTBitMon_QueryRunRegistry::string.

◆ produce()

void TrackstersProducer::produce ( edm::Event evt,
const edm::EventSetup es 
)
override

Definition at line 143 of file TrackstersProducer.cc.

143  {
144  auto result = std::make_unique<std::vector<Trackster>>();
145  auto output_mask = std::make_unique<std::vector<float>>();
146 
147  const std::vector<float>& original_layerclusters_mask = evt.get(original_layerclusters_mask_token_);
148  const auto& layerClusters = evt.get(clusters_token_);
149  const auto& inputClusterMask = evt.get(filtered_layerclusters_mask_token_);
150  const auto& layerClustersTimes = evt.get(clustersTime_token_);
151  const auto& seeding_regions = evt.get(seeding_regions_token_);
152 
153  std::unordered_map<int, std::vector<int>> seedToTrackstersAssociation;
154  // if it's regional iteration and there are seeding regions
155  if (!seeding_regions.empty() and seeding_regions[0].index != -1) {
156  auto numberOfSeedingRegions = seeding_regions.size();
157  for (unsigned int i = 0; i < numberOfSeedingRegions; ++i) {
158  seedToTrackstersAssociation.emplace(seeding_regions[i].index, 0);
159  }
160  }
161 
162  if (doNose_) {
165  evt, es, layerClusters, inputClusterMask, layerClustersTimes, layer_clusters_hfnose_tiles, seeding_regions);
166 
167  myAlgoHFNose_->makeTracksters(inputHFNose, *result, seedToTrackstersAssociation);
168 
169  } else {
172  evt, es, layerClusters, inputClusterMask, layerClustersTimes, layer_clusters_tiles, seeding_regions);
173 
174  myAlgo_->makeTracksters(input, *result, seedToTrackstersAssociation);
175  }
176  // Now update the global mask and put it into the event
177  output_mask->reserve(original_layerclusters_mask.size());
178  // Copy over the previous state
179  std::copy(
180  std::begin(original_layerclusters_mask), std::end(original_layerclusters_mask), std::back_inserter(*output_mask));
181 
182  // Mask the used elements, accordingly
183  for (auto const& trackster : *result) {
184  for (auto const v : trackster.vertices()) {
185  // TODO(rovere): for the moment we mask the layer cluster completely. In
186  // the future, properly compute the fraction of usage.
187  (*output_mask)[v] = 0.;
188  }
189  }
190 
191  evt.put(std::move(result));
192  evt.put(std::move(output_mask));
193 }

References begin, clusters_token_, clustersTime_token_, filterCSVwithJSON::copy, doNose_, end, filtered_layerclusters_mask_token_, edm::Event::get(), mps_fire::i, input, ticlTrackstersEM_cfi::layer_clusters_hfnose_tiles, ticlTrackstersEM_cfi::layer_clusters_tiles, layer_clusters_tiles_hfnose_token_, layer_clusters_tiles_token_, hltEgammaHGCALIDVarsL1Seeded_cfi::layerClusters, eostools::move(), myAlgo_, myAlgoHFNose_, original_layerclusters_mask_token_, edm::Event::put(), mps_fire::result, ticlTrackstersEM_cfi::seeding_regions, seeding_regions_token_, and findQualityFiles::v.

Member Data Documentation

◆ clusters_token_

const edm::EDGetTokenT<std::vector<reco::CaloCluster> > TrackstersProducer::clusters_token_
private

Definition at line 50 of file TrackstersProducer.cc.

Referenced by produce().

◆ clustersTime_token_

const edm::EDGetTokenT<edm::ValueMap<std::pair<float, float> > > TrackstersProducer::clustersTime_token_
private

Definition at line 53 of file TrackstersProducer.cc.

Referenced by produce().

◆ detector_

std::string TrackstersProducer::detector_
private

Definition at line 45 of file TrackstersProducer.cc.

◆ doNose_

bool TrackstersProducer::doNose_
private

Definition at line 46 of file TrackstersProducer.cc.

Referenced by produce(), and TrackstersProducer().

◆ filtered_layerclusters_mask_token_

const edm::EDGetTokenT<std::vector<float> > TrackstersProducer::filtered_layerclusters_mask_token_
private

Definition at line 51 of file TrackstersProducer.cc.

Referenced by produce().

◆ itername_

const std::string TrackstersProducer::itername_
private

Definition at line 57 of file TrackstersProducer.cc.

◆ layer_clusters_tiles_hfnose_token_

edm::EDGetTokenT<TICLLayerTilesHFNose> TrackstersProducer::layer_clusters_tiles_hfnose_token_
private

Definition at line 55 of file TrackstersProducer.cc.

Referenced by produce(), and TrackstersProducer().

◆ layer_clusters_tiles_token_

edm::EDGetTokenT<TICLLayerTiles> TrackstersProducer::layer_clusters_tiles_token_
private

Definition at line 54 of file TrackstersProducer.cc.

Referenced by produce(), and TrackstersProducer().

◆ myAlgo_

std::unique_ptr<PatternRecognitionAlgoBaseT<TICLLayerTiles> > TrackstersProducer::myAlgo_
private

Definition at line 47 of file TrackstersProducer.cc.

Referenced by produce().

◆ myAlgoHFNose_

std::unique_ptr<PatternRecognitionAlgoBaseT<TICLLayerTilesHFNose> > TrackstersProducer::myAlgoHFNose_
private

Definition at line 48 of file TrackstersProducer.cc.

Referenced by produce().

◆ original_layerclusters_mask_token_

const edm::EDGetTokenT<std::vector<float> > TrackstersProducer::original_layerclusters_mask_token_
private

Definition at line 52 of file TrackstersProducer.cc.

Referenced by produce().

◆ seeding_regions_token_

const edm::EDGetTokenT<std::vector<TICLSeedingRegion> > TrackstersProducer::seeding_regions_token_
private

Definition at line 56 of file TrackstersProducer.cc.

Referenced by produce().

mps_fire.i
i
Definition: mps_fire.py:355
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
input
static const std::string input
Definition: EdmProvDump.cc:48
ticlTrackstersEM_cfi.layer_clusters_tiles
layer_clusters_tiles
Definition: ticlTrackstersEM_cfi.py:20
filterCSVwithJSON.copy
copy
Definition: filterCSVwithJSON.py:36
TrackstersProducer::detector_
std::string detector_
Definition: TrackstersProducer.cc:45
TrackstersProducer::myAlgo_
std::unique_ptr< PatternRecognitionAlgoBaseT< TICLLayerTiles > > myAlgo_
Definition: TrackstersProducer.cc:47
CalibrationSummaryClient_cfi.params
params
Definition: CalibrationSummaryClient_cfi.py:14
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
TrackstersProducer::layer_clusters_tiles_token_
edm::EDGetTokenT< TICLLayerTiles > layer_clusters_tiles_token_
Definition: TrackstersProducer.cc:54
findQualityFiles.v
v
Definition: findQualityFiles.py:179
end
#define end
Definition: vmac.h:39
TrackstersProducer::clustersTime_token_
const edm::EDGetTokenT< edm::ValueMap< std::pair< float, float > > > clustersTime_token_
Definition: TrackstersProducer.cc:53
TrackstersProducer::seeding_regions_token_
const edm::EDGetTokenT< std::vector< TICLSeedingRegion > > seeding_regions_token_
Definition: TrackstersProducer.cc:56
edm::FileInPath
Definition: FileInPath.h:64
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
hltEgammaHGCALIDVarsL1Seeded_cfi.layerClusters
layerClusters
Definition: hltEgammaHGCALIDVarsL1Seeded_cfi.py:5
utilities.cache
def cache(function)
Definition: utilities.py:3
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
TrackstersProducer::doNose_
bool doNose_
Definition: TrackstersProducer.cc:46
TrackstersProducer::clusters_token_
const edm::EDGetTokenT< std::vector< reco::CaloCluster > > clusters_token_
Definition: TrackstersProducer.cc:50
edm::Event::put
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:132
TrackstersProducer::itername_
const std::string itername_
Definition: TrackstersProducer.cc:57
TrackstersProducer::filtered_layerclusters_mask_token_
const edm::EDGetTokenT< std::vector< float > > filtered_layerclusters_mask_token_
Definition: TrackstersProducer.cc:51
ticl::PatternRecognitionAlgoBaseT::Inputs
Definition: PatternRecognitionAlgoBase.h:30
tensorflow::loadGraphDef
GraphDef * loadGraphDef(const std::string &pbFile)
Definition: TensorFlow.cc:68
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
eostools.move
def move(src, dest)
Definition: eostools.py:511
TrackstersProducer::myAlgoHFNose_
std::unique_ptr< PatternRecognitionAlgoBaseT< TICLLayerTilesHFNose > > myAlgoHFNose_
Definition: TrackstersProducer.cc:48
edm::ValueMap
Definition: ValueMap.h:107
ticlTrackstersEM_cfi.seeding_regions
seeding_regions
Definition: ticlTrackstersEM_cfi.py:35
ticlTrackstersEM_cfi.layer_clusters_hfnose_tiles
layer_clusters_hfnose_tiles
Definition: ticlTrackstersEM_cfi.py:19
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
mps_fire.result
result
Definition: mps_fire.py:303
ticl::PatternRecognitionbyCA
Definition: PatternRecognitionbyCA.h:14
TrackstersProducer::layer_clusters_tiles_hfnose_token_
edm::EDGetTokenT< TICLLayerTilesHFNose > layer_clusters_tiles_hfnose_token_
Definition: TrackstersProducer.cc:55
edm::Event::get
bool get(ProductID const &oid, Handle< PROD > &result) const
Definition: Event.h:337
edm::InputTag
Definition: InputTag.h:15
begin
#define begin
Definition: vmac.h:32
edm::FileInPath::fullPath
std::string fullPath() const
Definition: FileInPath.cc:163
TrackstersProducer::original_layerclusters_mask_token_
const edm::EDGetTokenT< std::vector< float > > original_layerclusters_mask_token_
Definition: TrackstersProducer.cc:52