CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Private Attributes
UnifiedSCCollectionProducer Class Reference
Inheritance diagram for UnifiedSCCollectionProducer:
edm::stream::EDProducer<>

Public Member Functions

void produce (edm::Event &, const edm::EventSetup &) override
 
 UnifiedSCCollectionProducer (const edm::ParameterSet &ps)
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Private Attributes

std::string bcCollection_
 
std::string bcCollectionUncleanOnly_
 
edm::EDGetTokenT
< reco::BasicClusterCollection
cleanBcCollection_
 
edm::EDGetTokenT
< reco::SuperClusterCollection
cleanScCollection_
 
std::string scCollection_
 
std::string scCollectionUncleanOnly_
 
edm::EDGetTokenT
< reco::BasicClusterCollection
uncleanBcCollection_
 
edm::EDGetTokenT
< reco::SuperClusterCollection
uncleanScCollection_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
using CacheTypes = CacheContexts< T...>
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T...>
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 

Detailed Description

Definition at line 48 of file UnifiedSCCollectionProducer.cc.

Constructor & Destructor Documentation

UnifiedSCCollectionProducer::UnifiedSCCollectionProducer ( const edm::ParameterSet ps)

Definition at line 72 of file UnifiedSCCollectionProducer.cc.

References bcCollection_, bcCollectionUncleanOnly_, cleanBcCollection_, cleanScCollection_, edm::ParameterSet::getParameter(), scCollection_, scCollectionUncleanOnly_, AlCaHLTBitMon_QueryRunRegistry::string, uncleanBcCollection_, and uncleanScCollection_.

72  {
75  // get the parameters
76  // the cleaned collection:
77  cleanBcCollection_ = consumes<BasicClusterCollection>(ps.getParameter<edm::InputTag>("cleanBcCollection"));
78  cleanScCollection_ = consumes<SuperClusterCollection>(ps.getParameter<edm::InputTag>("cleanScCollection"));
79 
80  // the uncleaned collection
81  uncleanBcCollection_ = consumes<BasicClusterCollection>(ps.getParameter<edm::InputTag>("uncleanBcCollection"));
82  uncleanScCollection_ = consumes<SuperClusterCollection>(ps.getParameter<edm::InputTag>("uncleanScCollection"));
83 
84  // the names of the products to be produced:
85  //
86  // the clean collection: this is as it was before, but labeled
87  bcCollection_ = ps.getParameter<std::string>("bcCollection");
88  scCollection_ = ps.getParameter<std::string>("scCollection");
89  // the unclean only collection: SC unique to the unclean collection
90  bcCollectionUncleanOnly_ = ps.getParameter<std::string>("bcCollectionUncleanOnly");
91  scCollectionUncleanOnly_ = ps.getParameter<std::string>("scCollectionUncleanOnly");
92  // the products:
93  produces<reco::BasicClusterCollection>(bcCollection_);
94  produces<reco::SuperClusterCollection>(scCollection_);
95  produces<reco::BasicClusterCollection>(bcCollectionUncleanOnly_);
96  produces<reco::SuperClusterCollection>(scCollectionUncleanOnly_);
97 }
edm::EDGetTokenT< reco::SuperClusterCollection > uncleanScCollection_
std::vector< SuperCluster > SuperClusterCollection
collection of SuperCluser objectr
edm::EDGetTokenT< reco::BasicClusterCollection > uncleanBcCollection_
edm::EDGetTokenT< reco::SuperClusterCollection > cleanScCollection_
edm::EDGetTokenT< reco::BasicClusterCollection > cleanBcCollection_
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
std::vector< BasicCluster > BasicClusterCollection
collection of BasicCluster objects

Member Function Documentation

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

Definition at line 99 of file UnifiedSCCollectionProducer.cc.

References bcCollection_, bcCollectionUncleanOnly_, cleanBcCollection_, reco::CaloCluster::cleanOnly, cleanScCollection_, reco::CaloCluster::common, reco::CaloCluster::energy(), reco::CaloCluster::eta(), first, edm::Event::getByToken(), mps_fire::i, reco::CaloCluster::isInClean(), reco::CaloCluster::isInUnclean(), edm::OrphanHandleBase::isValid(), dqmiolumiharvest::j, LogTrace, eostools::move(), edm::PtrVector< T >::push_back(), edm::Event::put(), scCollection_, scCollectionUncleanOnly_, reco::SuperCluster::seed(), fileCollector::seed, reco::CaloCluster::setFlags(), HLT_FULL_cff::superClusters, uncleanBcCollection_, reco::CaloCluster::uncleanOnly, and uncleanScCollection_.

99  {
100  edm::LogInfo("UnifiedSC") << ">>>>> Entering UnifiedSCCollectionProducer <<<<<";
101  // get the input collections
102  // __________________________________________________________________________
103  //
104  // cluster collections:
107  //
110 
111  evt.getByToken(cleanScCollection_, pCleanSC);
112  evt.getByToken(cleanBcCollection_, pCleanBC);
113  evt.getByToken(uncleanBcCollection_, pUncleanBC);
114  evt.getByToken(uncleanScCollection_, pUncleanSC);
115 
116  // the collections to be produced ___________________________________________
117  reco::BasicClusterCollection basicClusters;
119  //
120  reco::BasicClusterCollection basicClustersUncleanOnly;
121  reco::SuperClusterCollection superClustersUncleanOnly;
122  //
123  // run over the uncleaned SC and check how many of them are matched to
124  // the cleaned ones
125  // if you find a matched one, then keep the info that it is matched
126  // along with which clean SC was matched + its basic clusters
127  // if you find an unmatched one, keep the info and store its basic clusters
128  //
129  //
130  int uncleanSize = pUncleanSC->size();
131  int cleanSize = pCleanSC->size();
132 
133  LogTrace("UnifiedSC") << "Size of Clean Collection: " << cleanSize << ", uncleanSize: " << uncleanSize;
134 
135  // keep the indices
136  std::vector<int> inUncleanOnlyInd; // counting the unclean
137  std::vector<int> inCleanInd; // counting the unclean
138  std::vector<int> inCleanOnlyInd; // counting the clean
139  std::vector<DetId> scUncleanSeedDetId; // counting the unclean
140  std::vector<DetId> scCleanSeedDetId; // counting the clean
141  // ontains the index of the SC that owns that BS
142  // first basic cluster index, second: 0 for unclean and 1 for clean
143  std::vector<std::pair<int, int> > basicClusterOwner;
144  std::vector<std::pair<int, int> > basicClusterOwnerUncleanOnly;
145  // if this basic cluster is a seed it is 1
146  std::vector<int> uncleanBasicClusterIsSeed;
147 
148  // loop over unclean SC _____________________________________________________
149  for (int isc = 0; isc < uncleanSize; ++isc) {
150  reco::SuperClusterRef unscRef(pUncleanSC, isc);
151  const std::vector<std::pair<DetId, float> >& uhits = unscRef->hitsAndFractions();
152  int uhitsSize = uhits.size();
153  bool foundTheSame = false;
154  for (int jsc = 0; jsc < cleanSize; ++jsc) { // loop over the cleaned SC
155  reco::SuperClusterRef cscRef(pCleanSC, jsc);
156  const std::vector<std::pair<DetId, float> >& chits = cscRef->hitsAndFractions();
157  int chitsSize = chits.size();
158  foundTheSame = false;
159  if (unscRef->seed()->seed() == cscRef->seed()->seed() && chitsSize == uhitsSize) {
160  // if the clusters are exactly the same then because the clustering
161  // algorithm works in a deterministic way, the order of the rechits
162  // will be the same
163  foundTheSame = true;
164  for (int i = 0; i < chitsSize; ++i) {
165  if (uhits[i].first != chits[i].first) {
166  foundTheSame = false;
167  break;
168  }
169  }
170  }
171  if (foundTheSame) { // ok you have found it:
172  // this supercluster belongs to both collections
173  inUncleanOnlyInd.push_back(0);
174  inCleanInd.push_back(jsc); // keeps the index of the clean SC
175  scUncleanSeedDetId.push_back(unscRef->seed()->seed());
176  //
177  // keep its basic clusters:
178  for (reco::CaloCluster_iterator bciter = unscRef->clustersBegin(); bciter != unscRef->clustersEnd(); ++bciter) {
179  // the basic clusters
180  basicClusters.push_back(**bciter);
181  // index of the unclean SC
182  basicClusterOwner.push_back(std::make_pair(isc, 0));
183  }
184  break; // break the loop over unclean sc
185  }
186  }
187  if (not foundTheSame) { // this SC is only in the unclean collection
188  // mark it as unique in the uncleaned
189  inUncleanOnlyInd.push_back(1);
190  scUncleanSeedDetId.push_back(unscRef->seed()->seed());
191  // keep all its basic clusters
192  for (reco::CaloCluster_iterator bciter = unscRef->clustersBegin(); bciter != unscRef->clustersEnd(); ++bciter) {
193  // the basic clusters
194  basicClustersUncleanOnly.push_back(**bciter);
195  basicClusterOwnerUncleanOnly.push_back(std::make_pair(isc, 0));
196  }
197  }
198  } // loop over the unclean SC _______________________________________________
199  //
200  int inCleanSize = inCleanInd.size();
201  //
202  // loop over the clean SC, check that are not in common with the unclean
203  // ones and then store their SC as before ___________________________________
204  for (int jsc = 0; jsc < cleanSize; ++jsc) {
205  // check whether this index is already in the common collection
206  bool takenAlready = false;
207  for (int j = 0; j < inCleanSize; ++j) {
208  if (jsc == inCleanInd[j]) {
209  takenAlready = true;
210  break;
211  }
212  }
213  if (takenAlready) {
214  inCleanOnlyInd.push_back(0);
215  scCleanSeedDetId.push_back(DetId(0));
216  continue;
217  }
218  inCleanOnlyInd.push_back(1);
219  reco::SuperClusterRef cscRef(pCleanSC, jsc);
220  scCleanSeedDetId.push_back(cscRef->seed()->seed());
221  for (reco::CaloCluster_iterator bciter = cscRef->clustersBegin(); bciter != cscRef->clustersEnd(); ++bciter) {
222  // the basic clusters
223  basicClusters.push_back(**bciter);
224  basicClusterOwner.push_back(std::make_pair(jsc, 1));
225  }
226  } // end loop over clean SC _________________________________________________
227  //
228  //
229 
230  // Final check: in the endcap BC may exist that are not associated to SC,
231  // we need to recover them as well (e.g. multi5x5 algo)
232  // This is should be optimized (SA, 20110621)
233 
234  // loop on original clean BC collection and see if the BC is missing from the new one
235  for (reco::BasicClusterCollection::const_iterator bc = pCleanBC->begin(); bc != pCleanBC->end(); ++bc) {
236  bool foundTheSame = false;
237  for (reco::BasicClusterCollection::const_iterator cleanonly_bc = basicClusters.begin();
238  cleanonly_bc != basicClusters.end();
239  ++cleanonly_bc) {
240  const std::vector<std::pair<DetId, float> >& chits = bc->hitsAndFractions();
241  int chitsSize = chits.size();
242 
243  const std::vector<std::pair<DetId, float> >& uhits = cleanonly_bc->hitsAndFractions();
244  int uhitsSize = uhits.size();
245 
246  if (cleanonly_bc->seed() == bc->seed() && chitsSize == uhitsSize) {
247  foundTheSame = true;
248  for (int i = 0; i < chitsSize; ++i) {
249  if (uhits[i].first != chits[i].first) {
250  foundTheSame = false;
251  break;
252  }
253  }
254  }
255 
256  } // loop on new clean BC collection
257 
258  // clean basic cluster is not associated to SC and does not belong to the
259  // new collection, add it
260  if (!foundTheSame) {
261  basicClusters.push_back(*bc);
262  LogTrace("UnifiedSC") << "found BC to add that was not associated to any SC";
263  }
264 
265  } // loop on original clean BC collection
266 
267  // at this point we have the basic cluster collection ready
268  // Up to index basicClusterOwner.size() we have the BC owned by a SC
269  // The remaining are BCs not owned by a SC
270 
271  int bcSize = (int)basicClusterOwner.size();
272  int bcSizeUncleanOnly = (int)basicClustersUncleanOnly.size();
273 
274  LogTrace("UnifiedSC") << "Found cleaned SC: " << cleanSize << " uncleaned SC: " << uncleanSize;
275  //
276  // export the clusters to the event from the clean clusters
277  auto basicClusters_p = std::make_unique<reco::BasicClusterCollection>();
278  basicClusters_p->assign(basicClusters.begin(), basicClusters.end());
280  if (!(bccHandle.isValid())) {
281  edm::LogWarning("MissingInput") << "could not handle the new BasicClusters!";
282  return;
283  }
284  reco::BasicClusterCollection basicClustersProd = *bccHandle;
285 
286  LogTrace("UnifiedSC") << "Got the BasicClusters from the event again";
287  //
288  // export the clusters to the event: from the unclean only clusters
289  auto basicClustersUncleanOnly_p = std::make_unique<reco::BasicClusterCollection>();
290  basicClustersUncleanOnly_p->assign(basicClustersUncleanOnly.begin(), basicClustersUncleanOnly.end());
292  evt.put(std::move(basicClustersUncleanOnly_p), bcCollectionUncleanOnly_);
293  if (!(bccHandleUncleanOnly.isValid())) {
294  edm::LogWarning("MissingInput") << "could not handle the new BasicClusters (Unclean Only)!";
295  return;
296  }
297  reco::BasicClusterCollection basicClustersUncleanOnlyProd = *bccHandleUncleanOnly;
298  LogTrace("UnifiedSC") << "Got the BasicClusters from the event again (Unclean Only)";
299  //
300 
301  // now we can build the SC collection
302  //
303  // start again from the unclean collection
304  // all the unclean SC will become members of the new collection
305  // with different algoIDs ___________________________________________________
306  for (int isc = 0; isc < uncleanSize; ++isc) {
307  reco::CaloClusterPtrVector clusterPtrVector;
308  // the seed is the basic cluster with the highest energy
310  if (inUncleanOnlyInd[isc] == 1) { // unclean SC Unique in Unclean
311  for (int jbc = 0; jbc < bcSizeUncleanOnly; ++jbc) {
312  std::pair<int, int> theBcOwner = basicClusterOwnerUncleanOnly[jbc];
313  if (theBcOwner.first == isc && theBcOwner.second == 0) {
314  reco::CaloClusterPtr currentClu = reco::CaloClusterPtr(bccHandleUncleanOnly, jbc);
315  clusterPtrVector.push_back(currentClu);
316  if (scUncleanSeedDetId[isc] == currentClu->seed()) {
317  seed = currentClu;
318  }
319  }
320  }
321 
322  } else { // unclean SC common in clean and unclean
323  for (int jbc = 0; jbc < bcSize; ++jbc) {
324  std::pair<int, int> theBcOwner = basicClusterOwner[jbc];
325  if (theBcOwner.first == isc && theBcOwner.second == 0) {
326  reco::CaloClusterPtr currentClu = reco::CaloClusterPtr(bccHandle, jbc);
327  clusterPtrVector.push_back(currentClu);
328  if (scUncleanSeedDetId[isc] == currentClu->seed()) {
329  seed = currentClu;
330  }
331  }
332  }
333  }
334  //std::cout << "before getting the uncl" << std::endl;
335  reco::SuperClusterRef unscRef(pUncleanSC, isc);
336  reco::SuperCluster newSC(unscRef->energy(), unscRef->position(), seed, clusterPtrVector);
337  // now set the algoID for this SC again
338  if (inUncleanOnlyInd[isc] == 1) {
339  // set up the quality to unclean only .............
341  superClustersUncleanOnly.push_back(newSC);
342  } else {
343  // set up the quality to common .............
344  newSC.setFlags(reco::CaloCluster::common);
345  superClusters.push_back(newSC);
346  }
347  // now you can store your SC
348 
349  } // end loop over unclean SC _______________________________________________
350  // flags numbering scheme
351  // flags = 0 = cleanedOnly cluster is only in the cleaned collection
352  // flags = 100 = common cluster is common in both collections
353  // flags = 200 = uncleanedOnly cluster is only in the uncleaned collection
354 
355  // now loop over the clean SC and do the same but now you have to avoid the
356  // the duplicated ones ______________________________________________________
357  for (int jsc = 0; jsc < cleanSize; ++jsc) {
358  //std::cout << "working in cl #" << jsc << std::endl;
359  // check that the SC is not in the unclean collection
360  if (inCleanOnlyInd[jsc] == 0)
361  continue;
362  reco::CaloClusterPtrVector clusterPtrVector;
363  // the seed is the basic cluster with the highest energy
365  for (int jbc = 0; jbc < bcSize; ++jbc) {
366  std::pair<int, int> theBcOwner = basicClusterOwner[jbc];
367  if (theBcOwner.first == jsc && theBcOwner.second == 1) {
368  reco::CaloClusterPtr currentClu = reco::CaloClusterPtr(bccHandle, jbc);
369  clusterPtrVector.push_back(currentClu);
370  if (scCleanSeedDetId[jsc] == currentClu->seed()) {
371  seed = currentClu;
372  }
373  }
374  }
375  reco::SuperClusterRef cscRef(pCleanSC, jsc);
376  reco::SuperCluster newSC(cscRef->energy(), cscRef->position(), seed, clusterPtrVector);
378 
379  // add it to the collection:
380  superClusters.push_back(newSC);
381 
382  } // end loop over clean SC _________________________________________________
383 
384  LogTrace("UnifiedSC") << "New SC collection was created";
385 
386  auto superClusters_p = std::make_unique<reco::SuperClusterCollection>();
387  superClusters_p->assign(superClusters.begin(), superClusters.end());
388 
389  evt.put(std::move(superClusters_p), scCollection_);
390 
391  LogTrace("UnifiedSC") << "Clusters (Basic/Super) added to the Event! :-)";
392 
393  auto superClustersUncleanOnly_p = std::make_unique<reco::SuperClusterCollection>();
394  superClustersUncleanOnly_p->assign(superClustersUncleanOnly.begin(), superClustersUncleanOnly.end());
395 
396  evt.put(std::move(superClustersUncleanOnly_p), scCollectionUncleanOnly_);
397 
398  // ----- debugging ----------
399  // print the new collection SC quantities
400 
401  // print out the clean collection SC
402  LogTrace("UnifiedSC") << "Clean Collection SC ";
403  for (int i = 0; i < cleanSize; ++i) {
404  reco::SuperClusterRef cscRef(pCleanSC, i);
405  LogTrace("UnifiedSC") << " >>> clean #" << i << "; Energy: " << cscRef->energy() << " eta: " << cscRef->eta()
406  << " sc seed detid: " << cscRef->seed()->seed().rawId() << std::endl;
407  }
408  // the unclean SC
409  LogTrace("UnifiedSC") << "Unclean Collection SC ";
410  for (int i = 0; i < uncleanSize; ++i) {
411  reco::SuperClusterRef uscRef(pUncleanSC, i);
412  LogTrace("UnifiedSC") << " >>> unclean #" << i << "; Energy: " << uscRef->energy() << " eta: " << uscRef->eta()
413  << " sc seed detid: " << uscRef->seed()->seed().rawId();
414  }
415  // the new collection
416  LogTrace("UnifiedSC") << "The new SC clean collection with size " << superClusters.size() << std::endl;
417 
418  int new_unclean = 0, new_clean = 0;
419  for (int i = 0; i < (int)superClusters.size(); ++i) {
420  const reco::SuperCluster& nsc = superClusters[i];
421  LogTrace("UnifiedSC") << "SC was got" << std::endl
422  << " ---> energy: " << nsc.energy() << std::endl
423  << " ---> eta: " << nsc.eta() << std::endl
424  << " ---> inClean: " << nsc.isInClean() << std::endl
425  << " ---> id: " << nsc.seed()->seed().rawId() << std::endl
426  << " >>> newSC #" << i << "; Energy: " << nsc.energy() << " eta: " << nsc.eta()
427  << " isClean=" << nsc.isInClean() << " isUnclean=" << nsc.isInUnclean()
428  << " sc seed detid: " << nsc.seed()->seed().rawId();
429 
430  if (nsc.isInUnclean())
431  ++new_unclean;
432  if (nsc.isInClean())
433  ++new_clean;
434  }
435  LogTrace("UnifiedSC") << "The new SC unclean only collection with size " << superClustersUncleanOnly.size();
436  for (int i = 0; i < (int)superClustersUncleanOnly.size(); ++i) {
437  const reco::SuperCluster nsc = superClustersUncleanOnly[i];
438  LogTrace("UnifiedSC") << " >>> newSC #" << i << "; Energy: " << nsc.energy() << " eta: " << nsc.eta()
439  << " isClean=" << nsc.isInClean() << " isUnclean=" << nsc.isInUnclean()
440  << " sc seed detid: " << nsc.seed()->seed().rawId();
441  if (nsc.isInUnclean())
442  ++new_unclean;
443  if (nsc.isInClean())
444  ++new_clean;
445  }
446  if ((new_unclean != uncleanSize) || (new_clean != cleanSize)) {
447  LogTrace("UnifiedSC") << ">>>>!!!!!! MISMATCH: new unclean/ old unclean= " << new_unclean << " / " << uncleanSize
448  << ", new clean/ old clean" << new_clean << " / " << cleanSize;
449  }
450 }
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:133
edm::EDGetTokenT< reco::SuperClusterCollection > uncleanScCollection_
bool isInUnclean() const
Definition: CaloCluster.h:199
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
void push_back(Ptr< T > const &iPtr)
Definition: PtrVector.h:149
edm::Ptr< CaloCluster > CaloClusterPtr
double eta() const
pseudorapidity of cluster centroid
Definition: CaloCluster.h:181
#define LogTrace(id)
void setFlags(uint32_t flags)
Definition: CaloCluster.h:194
std::vector< SuperCluster > SuperClusterCollection
collection of SuperCluser objectr
def move
Definition: eostools.py:511
double energy() const
cluster energy
Definition: CaloCluster.h:149
edm::EDGetTokenT< reco::BasicClusterCollection > uncleanBcCollection_
bool isInClean() const
Definition: CaloCluster.h:198
edm::EDGetTokenT< reco::SuperClusterCollection > cleanScCollection_
edm::EDGetTokenT< reco::BasicClusterCollection > cleanBcCollection_
Log< level::Info, false > LogInfo
Definition: DetId.h:17
std::vector< BasicCluster > BasicClusterCollection
collection of BasicCluster objects
const CaloClusterPtr & seed() const
seed BasicCluster
Definition: SuperCluster.h:77
Log< level::Warning, false > LogWarning

Member Data Documentation

std::string UnifiedSCCollectionProducer::bcCollection_
private

Definition at line 63 of file UnifiedSCCollectionProducer.cc.

Referenced by produce(), and UnifiedSCCollectionProducer().

std::string UnifiedSCCollectionProducer::bcCollectionUncleanOnly_
private

Definition at line 65 of file UnifiedSCCollectionProducer.cc.

Referenced by produce(), and UnifiedSCCollectionProducer().

edm::EDGetTokenT<reco::BasicClusterCollection> UnifiedSCCollectionProducer::cleanBcCollection_
private

Definition at line 56 of file UnifiedSCCollectionProducer.cc.

Referenced by produce(), and UnifiedSCCollectionProducer().

edm::EDGetTokenT<reco::SuperClusterCollection> UnifiedSCCollectionProducer::cleanScCollection_
private

Definition at line 57 of file UnifiedSCCollectionProducer.cc.

Referenced by produce(), and UnifiedSCCollectionProducer().

std::string UnifiedSCCollectionProducer::scCollection_
private

Definition at line 64 of file UnifiedSCCollectionProducer.cc.

Referenced by produce(), and UnifiedSCCollectionProducer().

std::string UnifiedSCCollectionProducer::scCollectionUncleanOnly_
private

Definition at line 66 of file UnifiedSCCollectionProducer.cc.

Referenced by produce(), and UnifiedSCCollectionProducer().

edm::EDGetTokenT<reco::BasicClusterCollection> UnifiedSCCollectionProducer::uncleanBcCollection_
private

Definition at line 59 of file UnifiedSCCollectionProducer.cc.

Referenced by produce(), and UnifiedSCCollectionProducer().

edm::EDGetTokenT<reco::SuperClusterCollection> UnifiedSCCollectionProducer::uncleanScCollection_
private

Definition at line 60 of file UnifiedSCCollectionProducer.cc.

Referenced by produce(), and UnifiedSCCollectionProducer().