CMS 3D CMS Logo

List of all members | Public Member Functions | Private Types | Private Member Functions | Private Attributes
CentralityBinProducer Class Reference

#include <RecoHI/CentralityBinProducer/src/CentralityBinProducer.cc>

Inheritance diagram for CentralityBinProducer:
edm::EDProducer edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 CentralityBinProducer (const edm::ParameterSet &)
 
 ~CentralityBinProducer () 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
 
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)
 
 ~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 const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
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
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
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

enum  VariableType {
  HFtowers = 0, HFtowersPlus = 1, HFtowersMinus = 2, HFtowersTrunc = 3,
  HFtowersPlusTrunc = 4, HFtowersMinusTrunc = 5, HFhits = 6, PixelHits = 7,
  PixelTracks = 8, Tracks = 9, EB = 10, EE = 11,
  ZDChitsPlus = 12, ZDChitsMinus = 13, Missing = 14
}
 

Private Member Functions

void beginRun (edm::Run const &run, const edm::EventSetup &iSetup) override
 
void produce (edm::Event &, const edm::EventSetup &) override
 

Private Attributes

std::string centralityLabel_
 
std::string centralityMC_
 
std::string centralityVariable_
 
edm::Handle< reco::Centralitychandle_
 
edm::ESHandle< CentralityTableinputDB_
 
unsigned int pPbRunFlip_
 
unsigned int prevRun_
 
edm::EDGetTokenT< reco::Centralitytag_
 
VariableType varType_
 

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
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, 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)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Description: [one line class summary]

Implementation: [Notes on implementation]

Definition at line 46 of file CentralityBinProducer.cc.

Member Enumeration Documentation

Enumerator
HFtowers 
HFtowersPlus 
HFtowersMinus 
HFtowersTrunc 
HFtowersPlusTrunc 
HFtowersMinusTrunc 
HFhits 
PixelHits 
PixelTracks 
Tracks 
EB 
EE 
ZDChitsPlus 
ZDChitsMinus 
Missing 

Definition at line 47 of file CentralityBinProducer.cc.

Constructor & Destructor Documentation

CentralityBinProducer::CentralityBinProducer ( const edm::ParameterSet iConfig)
explicit

Definition at line 99 of file CentralityBinProducer.cc.

References centralityLabel_, centralityMC_, centralityVariable_, EB, EE, Exception, edm::ParameterSet::exists(), edm::ParameterSet::getParameter(), HFhits, HFtowers, HFtowersMinus, HFtowersMinusTrunc, HFtowersPlus, HFtowersPlusTrunc, HFtowersTrunc, Missing, PixelHits, PixelTracks, pPbRunFlip_, AlCaHLTBitMon_QueryRunRegistry::string, tag_, Tracks, varType_, ZDChitsMinus, and ZDChitsPlus.

99  : prevRun_(0), varType_(Missing) {
100  using namespace edm;
101  tag_ = consumes<reco::Centrality>(iConfig.getParameter<edm::InputTag>("Centrality"));
102  centralityVariable_ = iConfig.getParameter<std::string>("centralityVariable");
103  pPbRunFlip_ = iConfig.getParameter<unsigned int>("pPbRunFlip");
104 
105  if (centralityVariable_ == "HFtowers")
106  varType_ = HFtowers;
107  if (centralityVariable_ == "HFtowersPlus")
109  if (centralityVariable_ == "HFtowersMinus")
111  if (centralityVariable_ == "HFtowersTrunc")
113  if (centralityVariable_ == "HFtowersPlusTrunc")
115  if (centralityVariable_ == "HFtowersMinusTrunc")
117  if (centralityVariable_ == "HFhits")
118  varType_ = HFhits;
119  if (centralityVariable_ == "PixelHits")
121  if (centralityVariable_ == "PixelTracks")
123  if (centralityVariable_ == "Tracks")
124  varType_ = Tracks;
125  if (centralityVariable_ == "EB")
126  varType_ = EB;
127  if (centralityVariable_ == "EE")
128  varType_ = EE;
129  if (centralityVariable_ == "ZDChitsPlus")
131  if (centralityVariable_ == "ZDChitsMinus")
133  if (varType_ == Missing) {
134  std::string errorMessage = "Requested Centrality variable does not exist : " + centralityVariable_ + "\n" +
135  "Supported variables are: \n" +
136  "HFtowers HFtowersPlus HFtowersMinus HFtowersTrunc HFtowersPlusTrunc HFtowersMinusTrunc "
137  "HFhits PixelHits PixelTracks Tracks EB EE" +
138  "\n";
139  throw cms::Exception("Configuration", errorMessage);
140  }
141 
142  if (iConfig.exists("nonDefaultGlauberModel")) {
143  centralityMC_ = iConfig.getParameter<std::string>("nonDefaultGlauberModel");
144  }
146 
147  produces<int>(centralityVariable_);
148 }
T getParameter(std::string const &) const
bool exists(std::string const &parameterName) const
checks if a parameter exists
HLT enums.
edm::EDGetTokenT< reco::Centrality > tag_
CentralityBinProducer::~CentralityBinProducer ( )
override

Definition at line 150 of file CentralityBinProducer.cc.

150  {
151  // do anything here that needs to be done at desctruction time
152  // (e.g. close files, deallocate resources etc.)
153 }

Member Function Documentation

void CentralityBinProducer::beginRun ( edm::Run const &  run,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 222 of file CentralityBinProducer.cc.

References centralityLabel_, centralityVariable_, DEFINE_FWK_MODULE, edm::EventSetup::get(), HFtowersMinus, HFtowersMinusTrunc, HFtowersPlus, HFtowersPlusTrunc, inputDB_, pPbRunFlip_, prevRun_, edm::RunBase::run(), varType_, ZDChitsMinus, and ZDChitsPlus.

222  {
223  if (prevRun_ < pPbRunFlip_ && iRun.run() >= pPbRunFlip_) {
224  if (centralityVariable_ == "HFtowersPlus")
226  if (centralityVariable_ == "HFtowersMinus")
228  if (centralityVariable_ == "HFtowersPlusTrunc")
230  if (centralityVariable_ == "HFtowersMinusTrunc")
232  if (centralityVariable_ == "ZDChitsPlus")
234  if (centralityVariable_ == "ZDChitsMinus")
236  }
237  prevRun_ = iRun.run();
238 
239  iSetup.get<HeavyIonRcd>().get(centralityLabel_, inputDB_);
240 }
edm::ESHandle< CentralityTable > inputDB_
T get() const
Definition: EventSetup.h:73
void CentralityBinProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 160 of file CentralityBinProducer.cc.

References newFWLiteAna::bin, centralityVariable_, chandle_, EB, EE, reco::Centrality::EtEBSum(), reco::Centrality::EtEESum(), reco::Centrality::EtHFhitSum(), reco::Centrality::EtHFtowerSum(), reco::Centrality::EtHFtowerSumMinus(), reco::Centrality::EtHFtowerSumPlus(), reco::Centrality::EtHFtruncated(), reco::Centrality::EtHFtruncatedMinus(), reco::Centrality::EtHFtruncatedPlus(), Exception, edm::Event::getByToken(), HFhits, HFtowers, HFtowersMinus, HFtowersMinusTrunc, HFtowersPlus, HFtowersPlusTrunc, HFtowersTrunc, mps_fire::i, inputDB_, CentralityTable::m_table, reco::Centrality::multiplicityPixel(), reco::Centrality::NpixelTracks(), reco::Centrality::Ntracks(), PixelHits, PixelTracks, edm::Event::put(), tag_, Tracks, varType_, ZDChitsMinus, ZDChitsPlus, reco::Centrality::zdcSumMinus(), and reco::Centrality::zdcSumPlus().

160  {
161  iEvent.getByToken(tag_, chandle_);
162 
163  double value = 0;
164  switch (varType_) {
165  case HFtowers:
166  value = chandle_->EtHFtowerSum();
167  break;
168  case HFtowersPlus:
169  value = chandle_->EtHFtowerSumPlus();
170  break;
171  case HFtowersMinus:
172  value = chandle_->EtHFtowerSumMinus();
173  break;
174  case HFhits:
175  value = chandle_->EtHFhitSum();
176  break;
177  case HFtowersTrunc:
178  value = chandle_->EtHFtruncated();
179  break;
180  case HFtowersPlusTrunc:
181  value = chandle_->EtHFtruncatedPlus();
182  break;
183  case HFtowersMinusTrunc:
184  value = chandle_->EtHFtruncatedMinus();
185  break;
186  case PixelHits:
187  value = chandle_->multiplicityPixel();
188  break;
189  case PixelTracks:
190  value = chandle_->NpixelTracks();
191  break;
192  case Tracks:
193  value = chandle_->Ntracks();
194  break;
195  case EB:
196  value = chandle_->EtEBSum();
197  break;
198  case EE:
199  value = chandle_->EtEESum();
200  break;
201  case ZDChitsPlus:
202  value = chandle_->zdcSumPlus();
203  break;
204  case ZDChitsMinus:
205  value = chandle_->zdcSumMinus();
206  break;
207  default:
208  throw cms::Exception("CentralityBinProducer", "Centrality variable not recognized.");
209  }
210 
211  int bin = inputDB_->m_table.size() - 1;
212  for (unsigned int i = 0; i < inputDB_->m_table.size(); ++i) {
213  if (value >= inputDB_->m_table[i].bin_edge && value) {
214  bin = i;
215  break;
216  }
217  }
218 
219  iEvent.put(std::make_unique<int>(bin), centralityVariable_);
220 }
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:131
std::vector< CBin > m_table
double EtEESum() const
Definition: Centrality.h:33
double Ntracks() const
Definition: Centrality.h:46
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
double EtHFtowerSumMinus() const
Definition: Centrality.h:26
double EtHFtruncatedPlus() const
Definition: Centrality.h:31
edm::ESHandle< CentralityTable > inputDB_
double zdcSumMinus() const
Definition: Centrality.h:56
double EtHFtowerSumPlus() const
Definition: Centrality.h:25
Definition: value.py:1
edm::Handle< reco::Centrality > chandle_
double EtHFtruncatedMinus() const
Definition: Centrality.h:32
double multiplicityPixel() const
Definition: Centrality.h:43
double EtHFtowerSum() const
Definition: Centrality.h:24
double EtEBSum() const
Definition: Centrality.h:39
double EtHFhitSum() const
Definition: Centrality.h:21
double EtHFtruncated() const
Definition: Centrality.h:30
edm::EDGetTokenT< reco::Centrality > tag_
double NpixelTracks() const
Definition: Centrality.h:50
double zdcSumPlus() const
Definition: Centrality.h:55

Member Data Documentation

std::string CentralityBinProducer::centralityLabel_
private

Definition at line 80 of file CentralityBinProducer.cc.

Referenced by beginRun(), and CentralityBinProducer().

std::string CentralityBinProducer::centralityMC_
private

Definition at line 81 of file CentralityBinProducer.cc.

Referenced by CentralityBinProducer().

std::string CentralityBinProducer::centralityVariable_
private

Definition at line 79 of file CentralityBinProducer.cc.

Referenced by beginRun(), CentralityBinProducer(), and produce().

edm::Handle<reco::Centrality> CentralityBinProducer::chandle_
private

Definition at line 75 of file CentralityBinProducer.cc.

Referenced by produce().

edm::ESHandle<CentralityTable> CentralityBinProducer::inputDB_
private

Definition at line 77 of file CentralityBinProducer.cc.

Referenced by beginRun(), and produce().

unsigned int CentralityBinProducer::pPbRunFlip_
private

Definition at line 85 of file CentralityBinProducer.cc.

Referenced by beginRun(), and CentralityBinProducer().

unsigned int CentralityBinProducer::prevRun_
private

Definition at line 82 of file CentralityBinProducer.cc.

Referenced by beginRun().

edm::EDGetTokenT<reco::Centrality> CentralityBinProducer::tag_
private

Definition at line 76 of file CentralityBinProducer.cc.

Referenced by CentralityBinProducer(), and produce().

VariableType CentralityBinProducer::varType_
private

Definition at line 84 of file CentralityBinProducer.cc.

Referenced by beginRun(), CentralityBinProducer(), and produce().