CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
EcalNextToDeadChannelESProducer Class Reference
Inheritance diagram for EcalNextToDeadChannelESProducer:
edm::ESProducer edm::ESProxyFactoryProducer edm::eventsetup::DataProxyProvider

Public Types

typedef std::shared_ptr< EcalNextToDeadChannelReturnType
 
- Public Types inherited from edm::eventsetup::DataProxyProvider
typedef std::vector< std::pair< DataKey, edm::propagate_const< std::shared_ptr< DataProxy > > > > KeyedProxies
 
typedef std::vector< EventSetupRecordKeyKeys
 
typedef std::map< EventSetupRecordKey, KeyedProxiesRecordProxies
 

Public Member Functions

 EcalNextToDeadChannelESProducer (const edm::ParameterSet &iConfig)
 
ReturnType produce (const EcalNextToDeadChannelRcd &iRecord)
 
- Public Member Functions inherited from edm::ESProducer
 ESProducer ()
 
 ~ESProducer ()(false) override
 
- Public Member Functions inherited from edm::ESProxyFactoryProducer
 ESProxyFactoryProducer ()
 
void newInterval (const eventsetup::EventSetupRecordKey &iRecordType, const ValidityInterval &iInterval) override
 overrides DataProxyProvider method More...
 
 ~ESProxyFactoryProducer () noexcept(false) override
 
- Public Member Functions inherited from edm::eventsetup::DataProxyProvider
 DataProxyProvider ()
 
const ComponentDescriptiondescription () const
 
bool isUsingRecord (const EventSetupRecordKey &) const
 
const KeyedProxieskeyedProxies (const EventSetupRecordKey &iRecordKey) const
 
void resetProxies (const EventSetupRecordKey &iRecordType)
 
void resetProxiesIfTransient (const EventSetupRecordKey &iRecordType)
 
void setAppendToDataLabel (const edm::ParameterSet &)
 
void setDescription (const ComponentDescription &iDescription)
 
std::set< EventSetupRecordKeyusingRecords () const
 
virtual ~DataProxyProvider () noexcept(false)
 

Private Member Functions

void findNextToDeadChannelsCallback (const EcalChannelStatusRcd &chs)
 

Private Attributes

ReturnType returnRcd_
 
int statusThreshold_
 

Additional Inherited Members

- Static Public Member Functions inherited from edm::eventsetup::DataProxyProvider
static void prevalidate (ConfigurationDescriptions &)
 
- Protected Member Functions inherited from edm::ESProducer
template<typename T >
void setWhatProduced (T *iThis, const es::Label &iLabel=es::Label())
 
template<typename T >
void setWhatProduced (T *iThis, const char *iLabel)
 
template<typename T >
void setWhatProduced (T *iThis, const std::string &iLabel)
 
template<typename T , typename TDecorator >
void setWhatProduced (T *iThis, const TDecorator &iDec, const es::Label &iLabel=es::Label())
 
template<typename T , typename TReturn , typename TRecord >
void setWhatProduced (T *iThis, TReturn(T::*iMethod)(const TRecord &), const es::Label &iLabel=es::Label())
 
template<typename T , typename TReturn , typename TRecord , typename TArg >
void setWhatProduced (T *iThis, TReturn(T::*iMethod)(const TRecord &), const TArg &iDec, const es::Label &iLabel=es::Label())
 
- Protected Member Functions inherited from edm::ESProxyFactoryProducer
template<class TFactory >
void registerFactory (std::unique_ptr< TFactory > iFactory, const std::string &iLabel=std::string())
 
virtual void registerFactoryWithKey (const eventsetup::EventSetupRecordKey &iRecord, std::unique_ptr< eventsetup::ProxyFactoryBase > iFactory, const std::string &iLabel=std::string())
 
void registerProxies (const eventsetup::EventSetupRecordKey &iRecord, KeyedProxies &aProxyList) override
 override DataProxyProvider method More...
 
- Protected Member Functions inherited from edm::eventsetup::DataProxyProvider
void eraseAll (const EventSetupRecordKey &iRecordKey)
 deletes all the Proxies in aStream More...
 
void invalidateProxies (const EventSetupRecordKey &iRecordKey)
 
template<class T >
void usingRecord ()
 
void usingRecordWithKey (const EventSetupRecordKey &)
 

Detailed Description

ESProducer to fill the EcalNextToDeadChannel record starting from EcalChannelStatus information

Author
Stefano Argiro
Date
18 May 2011

Definition at line 24 of file EcalNextToDeadChannelESProducer.cc.

Member Typedef Documentation

Definition at line 29 of file EcalNextToDeadChannelESProducer.cc.

Constructor & Destructor Documentation

EcalNextToDeadChannelESProducer::EcalNextToDeadChannelESProducer ( const edm::ParameterSet iConfig)

Definition at line 45 of file EcalNextToDeadChannelESProducer.cc.

References edm::eventsetup::dependsOn(), findNextToDeadChannelsCallback(), edm::ParameterSet::getParameter(), returnRcd_, edm::ESProducer::setWhatProduced(), and statusThreshold_.

45  {
46  //the following line is needed to tell the framework what
47  // data is being produced
48  setWhatProduced(this,
50 
51  statusThreshold_= iConfig.getParameter<int>("channelStatusThresholdForDead");
52 
53  returnRcd_=std::make_shared<EcalCondObjectContainer<unsigned char>>();
54 }
T getParameter(std::string const &) const
depends_on::OneHolder< T, TDependsOnRecord > dependsOn(void(T::*iT)(const TDependsOnRecord &))
void setWhatProduced(T *iThis, const es::Label &iLabel=es::Label())
Definition: ESProducer.h:115
void findNextToDeadChannelsCallback(const EcalChannelStatusRcd &chs)

Member Function Documentation

void EcalNextToDeadChannelESProducer::findNextToDeadChannelsCallback ( const EcalChannelStatusRcd chs)
private

Definition at line 67 of file EcalNextToDeadChannelESProducer.cc.

References DEFINE_FWK_EVENTSETUP_MODULE, edm::eventsetup::EventSetupRecord::get(), h, EcalTools::isNextToDeadFromNeighbours(), EEDetId::IX_MAX, EEDetId::IX_MIN, EEDetId::IY_MAX, EEDetId::IY_MIN, EBDetId::MAX_IETA, EBDetId::MAX_IPHI, EBDetId::MIN_IPHI, returnRcd_, EcalCondObjectContainer< T >::setValue(), statusThreshold_, EBDetId::validDetId(), and EEDetId::validDetId().

Referenced by EcalNextToDeadChannelESProducer(), and produce().

67  {
68 
69 
70 
72 
73  // Find channels next to dead ones and fill corresponding record
74 
76  chs.get (h);
77 
78  for(int ieta=-EBDetId::MAX_IETA; ieta<=EBDetId::MAX_IETA; ++ieta) {
79  if(ieta==0) continue;
80  for(int iphi=EBDetId::MIN_IPHI; iphi<=EBDetId::MAX_IPHI; ++iphi) {
81  if (EBDetId::validDetId(ieta,iphi)) {
82 
83  EBDetId detid(ieta,iphi);
84 
86  *h,
88 
89 
90  rcd->setValue(detid,1);
91  };
92  }
93  } // for phi
94  } // for eta
95 
96  // endcap
97 
98  for(int iX=EEDetId::IX_MIN; iX<=EEDetId::IX_MAX ;++iX) {
99  for(int iY=EEDetId::IY_MIN; iY<=EEDetId::IY_MAX; ++iY) {
100 
101  if (EEDetId::validDetId(iX,iY,1)) {
102  EEDetId detid(iX,iY,1);
103 
105  *h,
107  rcd->setValue(detid,1);
108  };
109 
110  }
111 
112  if (EEDetId::validDetId(iX,iY,-1)) {
113  EEDetId detid(iX,iY,-1);
114 
116  *h,
118 
119  rcd->setValue(detid,1);
120  };
121  }
122  } // for iy
123  } // for ix
124 
125  returnRcd_.reset(rcd);
126 }
static const int MIN_IPHI
Definition: EBDetId.h:142
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
EcalCondObjectContainer< uint8_t > EcalNextToDeadChannel
static const int IX_MIN
Definition: EEDetId.h:294
static const int IY_MIN
Definition: EEDetId.h:298
static bool validDetId(int i, int j)
check if a valid index combination
Definition: EBDetId.h:124
void setValue(const uint32_t id, const Item &item)
void get(HolderT &iHolder) const
static const int IX_MAX
Definition: EEDetId.h:302
static bool isNextToDeadFromNeighbours(const DetId &id, const EcalChannelStatus &chs, int chStatusThreshold)
same as isNextToDead, but will use information from the neighbour
Definition: EcalTools.cc:71
static const int MAX_IPHI
Definition: EBDetId.h:144
static bool validDetId(int crystal_ix, int crystal_iy, int iz)
Definition: EEDetId.h:248
static const int MAX_IETA
Definition: EBDetId.h:143
static const int IY_MAX
Definition: EEDetId.h:306
EcalNextToDeadChannelESProducer::ReturnType EcalNextToDeadChannelESProducer::produce ( const EcalNextToDeadChannelRcd iRecord)

Definition at line 59 of file EcalNextToDeadChannelESProducer.cc.

References findNextToDeadChannelsCallback(), and returnRcd_.

59  {
60 
61  return returnRcd_ ;
62 }

Member Data Documentation

ReturnType EcalNextToDeadChannelESProducer::returnRcd_
private
int EcalNextToDeadChannelESProducer::statusThreshold_
private