CMS 3D CMS Logo

List of all members | Public Member Functions | Private Types | Private Attributes
cms::ClusterizerFP420 Class Reference

#include <ClusterizerFP420.h>

Inheritance diagram for cms::ClusterizerFP420:
edm::EDProducer edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

void beginJob () override
 
 ClusterizerFP420 (const edm::ParameterSet &conf)
 
void produce (edm::Event &e, const edm::EventSetup &c) override
 
 ~ClusterizerFP420 () override
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
SerialTaskQueueglobalLuminosityBlocksQueue ()
 
SerialTaskQueueglobalRunsQueue ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDProducer () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Types

typedef std::vector< std::string > vstring
 

Private Attributes

edm::ParameterSet conf_
 
int dn0
 
std::vector< ClusterNoiseFP420noise
 
int pn0
 
int rn0
 
FP420ClusterMainsClusterizerFP420_
 
int sn0
 
ClusterCollectionFP420soutput
 
vstring trackerContainers
 
bool UseNoiseBadElectrodeFlagFromDB_
 
int verbosity
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > >
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
static bool wantsGlobalLuminosityBlocks ()
 
static bool wantsGlobalRuns ()
 
static bool wantsStreamLuminosityBlocks ()
 
static bool wantsStreamRuns ()
 
- Protected Member Functions inherited from edm::ProducerBase
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 declare what type of product will make and with which optional label More...
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Detailed Description

Definition at line 29 of file ClusterizerFP420.h.

Member Typedef Documentation

◆ vstring

typedef std::vector<std::string> cms::ClusterizerFP420::vstring
private

Definition at line 43 of file ClusterizerFP420.h.

Constructor & Destructor Documentation

◆ ClusterizerFP420()

cms::ClusterizerFP420::ClusterizerFP420 ( const edm::ParameterSet conf)
explicit

Definition at line 42 of file ClusterizerFP420.cc.

42  : conf_(conf) {
43  std::string alias(conf.getParameter<std::string>("@module_label"));
44 
45  produces<ClusterCollectionFP420>().setBranchAlias(alias);
46 
47  trackerContainers.clear();
48  trackerContainers = conf.getParameter<std::vector<std::string> >("ROUList");
49 
50  verbosity = conf_.getUntrackedParameter<int>("VerbosityLevel");
51  dn0 = conf_.getParameter<int>("NumberFP420Detectors");
52  sn0 = conf_.getParameter<int>("NumberFP420Stations");
53  pn0 = conf_.getParameter<int>("NumberFP420SPlanes");
54  rn0 = 7;
55  if (verbosity > 0) {
56  std::cout << "Creating a ClusterizerFP420" << std::endl;
57  std::cout << "ClusterizerFP420: dn0=" << dn0 << " sn0=" << sn0 << " pn0=" << pn0 << " rn0=" << rn0 << std::endl;
58  }
59 
61  }

References SiStripOfflineCRack_cfg::alias, conf_, gather_cfg::cout, dn0, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), pn0, rn0, sClusterizerFP420_, sn0, AlCaHLTBitMon_QueryRunRegistry::string, trackerContainers, and verbosity.

◆ ~ClusterizerFP420()

cms::ClusterizerFP420::~ClusterizerFP420 ( )
override

Definition at line 64 of file ClusterizerFP420.cc.

64 { delete sClusterizerFP420_; }

References sClusterizerFP420_.

Member Function Documentation

◆ beginJob()

void cms::ClusterizerFP420::beginJob ( void  )
overridevirtual

Reimplemented from edm::EDProducer.

Definition at line 67 of file ClusterizerFP420.cc.

67  {
68  if (verbosity > 0) {
69  std::cout << "BeginJob method " << std::endl;
70  }
71  //Getting Calibration data (Noises and BadElectrodes Flag)
72  // bool UseNoiseBadElectrodeFlagFromDB_=conf_.getParameter<bool>("UseNoiseBadElectrodeFlagFromDB");
73  // if (UseNoiseBadElectrodeFlagFromDB_==true){
74  // iSetup.get<ClusterNoiseFP420Rcd>().get(noise);// AZ: do corrections for noise here
75  //=========================================================
76  //
77  // Debug: show noise for DetIDs
78  // ElectrodNoiseMapIterator mapit = noise->m_noises.begin();
79  // for (;mapit!=noise->m_noises.end();mapit++)
80  // {
81  // unsigned int detid = (*mapit).first;
82  // std::cout << "detid " << detid << " # Electrode " << (*mapit).second.size()<<std::endl;
83  // //ElectrodNoiseVector theElectrodVector = (*mapit).second;
84  // const ElectrodNoiseVector theElectrodVector = noise->getElectrodNoiseVector(detid);
85 
86  // int electrode=0;
87  // ElectrodNoiseVectorIterator iter=theElectrodVector.begin();
88  // //for(; iter!=theElectrodVector.end(); iter++)
89  // {
90  // std::cout << " electrode " << electrode++ << " =\t"
91  // << iter->getNoise() << " \t"
92  // << iter->getDisable() << " \t"
93  // << std::endl;
94  // }
95  // }
96  //===========================================================
97  // }
98  }

References gather_cfg::cout, and verbosity.

◆ produce()

void cms::ClusterizerFP420::produce ( edm::Event e,
const edm::EventSetup c 
)
overridevirtual

Implements edm::EDProducer.

Definition at line 100 of file ClusterizerFP420.cc.

100  {
101  // beginJob;
102  // be lazy and include the appropriate namespaces
103  using namespace edm;
104  using namespace std;
105  if (verbosity > 0) {
106  std::cout << "ClusterizerFP420: produce" << std::endl;
107  }
108 
109  // Get input
110  //A
111  // edm::Handle<DigiCollectionFP420> icf_simhit;
112  /*
113  Handle<DigiCollectionFP420> cf_simhit;
114  std::vector<const DigiCollectionFP420 *> cf_simhitvec;
115  for(uint32_t i = 0; i< trackerContainers.size();i++){
116  iEvent.getByLabel( trackerContainers[i], cf_simhit);
117  cf_simhitvec.push_back(cf_simhit.product()); }
118  std::unique_ptr<DigiCollectionFP420 > digis(new DigiCollectionFP420(cf_simhitvec));
119 
120  std::vector<HDigiFP420> input;
121  DigiCollectionFP420::iterator isim;
122  for (isim=digis->begin(); isim!= digis->end();isim++) {
123  input.push_back(*isim);
124  }
125 */
126  //B
127 
129  try {
130  // iEvent.getByLabel( "FP420Digi" , digis);
131  iEvent.getByLabel(trackerContainers[0], input);
132  } catch (const Exception&) {
133  // in principal, should never happen, as it's taken care of by Framework
134  throw cms::Exception("InvalidReference") << "Invalid reference to DigiCollectionFP420 \n";
135  }
136 
137  if (verbosity > 0) {
138  std::cout << "ClusterizerFP420: OK1" << std::endl;
139  }
140 
141  // Step C: create empty output collection
142  auto soutput = std::make_unique<ClusterCollectionFP420>();
144  /*
145  std::vector<SimVertex> input;
146  Handle<DigiCollectionFP420> digis;
147  iEvent.getByLabel("FP420Digi",digis);
148  input.insert(input.end(),digis->begin(),digis->end());
149 
150 
151 
152  std::vector<HDigiFP420> input;
153  for(std::vector<HDigiFP420>::const_iterator vsim=digis->begin();
154  vsim!=digis->end(); ++vsim){
155  input.push_back(*vsim);
156  }
157  theSimTracks.insert(theSimTracks.end(),SimTk->begin(),SimTk->end());
158 */
159  // std::vector<HDigiFP420> input;
160  // DigiCollectionFP420 input;
161  //input.push_back(digis);
162  // input.insert(input.end(), digis->begin(), digis->end());
163 
164  /*
165  std::vector<HDigiFP420> input;
166  input.clear();
167  DigiCollectionFP420::ContainerIterator sort_begin = digis->begin();
168  DigiCollectionFP420::ContainerIterator sort_end = digis->end();
169  for ( ;sort_begin != sort_end; ++sort_begin ) {
170  input.push_back(*sort_begin);
171  } // for
172 */
173 
174  // put zero to container info from the beginning (important! because not any detID is updated with coming of new event !!!!!!
175  // clean info of container from previous event
176  for (int det = 1; det < dn0; det++) {
177  for (int sector = 1; sector < sn0; sector++) {
178  for (int zmodule = 1; zmodule < pn0; zmodule++) {
179  for (int zside = 1; zside < rn0; zside++) {
180  // intindex is a continues numbering of FP420
181  unsigned int detID = FP420NumberingScheme::packMYIndex(rn0, pn0, sn0, det, zside, sector, zmodule);
182  std::vector<ClusterFP420> collector;
183  collector.clear();
185  inputRange.first = collector.begin();
186  inputRange.second = collector.end();
187 
188  soutput->putclear(inputRange, detID);
189 
190  } //for
191  } //for
192  } //for
193  } //for
194 
195  // !!!!!!
196  // if we want to keep Cluster container/Collection for one event ---> uncomment the line below and vice versa
197  soutput->clear(); //container_.clear() --> start from the beginning of the container
198 
199  // RUN now: !!!!!!
200  // sClusterizerFP420_.run(input, soutput, noise);
201  if (verbosity > 0) {
202  std::cout << "ClusterizerFP420: OK2" << std::endl;
203  }
205 
206  if (verbosity > 0) {
207  std::cout << "ClusterizerFP420: OK3" << std::endl;
208  }
209 
210  // if(collectorZS.data.size()>0){
211 
212  // std::cout <<"======= ClusterizerFP420: end of produce " << std::endl;
213 
214  // Step D: write output to file
215  iEvent.put(std::move(soutput));
216  if (verbosity > 0) {
217  std::cout << "ClusterizerFP420: OK4" << std::endl;
218  }
219  } //produce

References ClusterCollectionFP420::clear(), gather_cfg::cout, dn0, Exception, ClusterCollectionFP420::get(), iEvent, input, pileupCalc::inputRange, eostools::move(), noise, FP420NumberingScheme::packMYIndex(), pn0, ClusterCollectionFP420::putclear(), rn0, FP420ClusterMain::run(), sClusterizerFP420_, sn0, soutput, trackerContainers, verbosity, and ecaldqm::zside().

Member Data Documentation

◆ conf_

edm::ParameterSet cms::ClusterizerFP420::conf_
private

Definition at line 45 of file ClusterizerFP420.h.

Referenced by ClusterizerFP420().

◆ dn0

int cms::ClusterizerFP420::dn0
private

Definition at line 54 of file ClusterizerFP420.h.

Referenced by ClusterizerFP420(), and produce().

◆ noise

std::vector<ClusterNoiseFP420> cms::ClusterizerFP420::noise
private

Definition at line 52 of file ClusterizerFP420.h.

Referenced by produce().

◆ pn0

int cms::ClusterizerFP420::pn0
private

Definition at line 54 of file ClusterizerFP420.h.

Referenced by ClusterizerFP420(), and produce().

◆ rn0

int cms::ClusterizerFP420::rn0
private

Definition at line 54 of file ClusterizerFP420.h.

Referenced by ClusterizerFP420(), and produce().

◆ sClusterizerFP420_

FP420ClusterMain* cms::ClusterizerFP420::sClusterizerFP420_
private

Definition at line 48 of file ClusterizerFP420.h.

Referenced by ClusterizerFP420(), produce(), and ~ClusterizerFP420().

◆ sn0

int cms::ClusterizerFP420::sn0
private

Definition at line 54 of file ClusterizerFP420.h.

Referenced by ClusterizerFP420(), and produce().

◆ soutput

ClusterCollectionFP420* cms::ClusterizerFP420::soutput
private

Definition at line 50 of file ClusterizerFP420.h.

Referenced by produce().

◆ trackerContainers

vstring cms::ClusterizerFP420::trackerContainers
private

Definition at line 46 of file ClusterizerFP420.h.

Referenced by ClusterizerFP420(), and produce().

◆ UseNoiseBadElectrodeFlagFromDB_

bool cms::ClusterizerFP420::UseNoiseBadElectrodeFlagFromDB_
private

Definition at line 53 of file ClusterizerFP420.h.

◆ verbosity

int cms::ClusterizerFP420::verbosity
private

Definition at line 55 of file ClusterizerFP420.h.

Referenced by beginJob(), ClusterizerFP420(), and produce().

input
static const std::string input
Definition: EdmProvDump.cc:48
FP420ClusterMain
Definition: FP420ClusterMain.h:25
ecaldqm::zside
int zside(DetId const &)
Definition: EcalDQMCommonUtils.cc:189
edm
HLT enums.
Definition: AlignableModifier.h:19
gather_cfg.cout
cout
Definition: gather_cfg.py:144
cms::ClusterizerFP420::conf_
edm::ParameterSet conf_
Definition: ClusterizerFP420.h:45
cms::ClusterizerFP420::verbosity
int verbosity
Definition: ClusterizerFP420.h:55
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
edm::Handle
Definition: AssociativeIterator.h:50
edm::Exception
Definition: EDMException.h:77
pileupCalc.inputRange
inputRange
Definition: pileupCalc.py:218
ClusterCollectionFP420::clear
void clear()
Definition: ClusterCollectionFP420.cc:97
FP420ClusterMain::run
void run(edm::Handle< DigiCollectionFP420 > &input, ClusterCollectionFP420 *soutput, std::vector< ClusterNoiseFP420 > &noise)
Runs the algorithm.
Definition: FP420ClusterMain.cc:112
cms::ClusterizerFP420::sn0
int sn0
Definition: ClusterizerFP420.h:54
cms::ClusterizerFP420::dn0
int dn0
Definition: ClusterizerFP420.h:54
cms::ClusterizerFP420::pn0
int pn0
Definition: ClusterizerFP420.h:54
cms::ClusterizerFP420::rn0
int rn0
Definition: ClusterizerFP420.h:54
FP420NumberingScheme::packMYIndex
static unsigned packMYIndex(int rn0, int pn0, int sn0, int det, int zside, int sector, int zmodule)
Definition: FP420NumberingScheme.h:37
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
cms::ClusterizerFP420::sClusterizerFP420_
FP420ClusterMain * sClusterizerFP420_
Definition: ClusterizerFP420.h:48
iEvent
int iEvent
Definition: GenABIO.cc:224
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
cms::ClusterizerFP420::soutput
ClusterCollectionFP420 * soutput
Definition: ClusterizerFP420.h:50
eostools.move
def move(src, dest)
Definition: eostools.py:511
std
Definition: JetResolutionObject.h:76
ClusterCollectionFP420::putclear
void putclear(Range input, unsigned int detID)
Definition: ClusterCollectionFP420.cc:98
SiStripOfflineCRack_cfg.alias
alias
Definition: SiStripOfflineCRack_cfg.py:129
Exception
Definition: hltDiff.cc:246
ClusterCollectionFP420::get
const Range get(unsigned int detID) const
Definition: ClusterCollectionFP420.cc:69
cms::ClusterizerFP420::noise
std::vector< ClusterNoiseFP420 > noise
Definition: ClusterizerFP420.h:52
ClusterCollectionFP420::Range
std::pair< ContainerIterator, ContainerIterator > Range
Definition: ClusterCollectionFP420.h:12
cms::ClusterizerFP420::trackerContainers
vstring trackerContainers
Definition: ClusterizerFP420.h:46