CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Member Functions | Private Attributes
EEPedestalOnlineTask Class Reference

#include <EEPedestalOnlineTask.h>

Inheritance diagram for EEPedestalOnlineTask:
edm::EDAnalyzer edm::EDConsumerBase

Public Member Functions

 EEPedestalOnlineTask (const edm::ParameterSet &ps)
 Constructor. More...
 
virtual ~EEPedestalOnlineTask ()
 Destructor. More...
 
- Public Member Functions inherited from edm::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzer ()
 
ModuleDescription const & moduleDescription () const
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 
- Public Member Functions inherited from edm::EDConsumerBase
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Protected Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c)
 Analyze. More...
 
void beginJob (void)
 BeginJob. More...
 
void beginRun (const edm::Run &r, const edm::EventSetup &c)
 BeginRun. More...
 
void cleanup (void)
 Cleanup. More...
 
void endJob (void)
 EndJob. More...
 
void endRun (const edm::Run &r, const edm::EventSetup &c)
 EndRun. More...
 
void reset (void)
 Reset. More...
 
void setup (void)
 Setup. More...
 
- 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 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)
 

Private Attributes

DQMStoredqmStore_
 
edm::EDGetTokenT
< EEDigiCollection
EEDigiCollection_
 
bool enableCleanup_
 
int ievt_
 
bool init_
 
MonitorElementmePedMapG12_ [18]
 
bool mergeRuns_
 
std::string prefixME_
 
std::string subfolder_
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 

Detailed Description

Definition at line 20 of file EEPedestalOnlineTask.h.

Constructor & Destructor Documentation

EEPedestalOnlineTask::EEPedestalOnlineTask ( const edm::ParameterSet ps)

Constructor.

Definition at line 25 of file EEPedestalOnlineTask.cc.

References dqmStore_, EEDigiCollection_, enableCleanup_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), i, init_, mePedMapG12_, mergeRuns_, cppFunctionSkipper::operator, prefixME_, AlCaHLTBitMon_QueryRunRegistry::string, and subfolder_.

25  {
26 
27  init_ = false;
28 
30 
31  prefixME_ = ps.getUntrackedParameter<std::string>("prefixME", "");
32 
33  subfolder_ = ps.getUntrackedParameter<std::string>("subfolder", "");
34 
35  enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
36 
37  mergeRuns_ = ps.getUntrackedParameter<bool>("mergeRuns", false);
38 
39  EEDigiCollection_ = consumes<EEDigiCollection>(ps.getParameter<edm::InputTag>("EEDigiCollection"));
40 
41  for (int i = 0; i < 18; i++) {
42  mePedMapG12_[i] = 0;
43  }
44 
45 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
int i
Definition: DBlmapReader.cc:9
MonitorElement * mePedMapG12_[18]
edm::EDGetTokenT< EEDigiCollection > EEDigiCollection_
EEPedestalOnlineTask::~EEPedestalOnlineTask ( )
virtual

Destructor.

Definition at line 47 of file EEPedestalOnlineTask.cc.

47  {
48 
49 }

Member Function Documentation

void EEPedestalOnlineTask::analyze ( const edm::Event e,
const edm::EventSetup c 
)
protectedvirtual

Analyze.

Implements edm::EDAnalyzer.

Definition at line 141 of file EEPedestalOnlineTask.cc.

References ecalMGPA::adc(), EcalMGPASample::adc(), EEDigiCollection_, MonitorElement::Fill(), EcalMGPASample::gainId(), edm::Event::getByToken(), i, ievt_, init_, ecalpyutils::ism(), Numbers::iSM(), EEDetId::ix(), LogDebug, mePedMapG12_, EcalDataFrame::sample(), and setup().

141  {
142 
143  if ( ! init_ ) this->setup();
144 
145  ievt_++;
146 
148 
149  if ( e.getByToken(EEDigiCollection_, digis) ) {
150 
151  int need = digis->size();
152  LogDebug("EEPedestalOnlineTask") << "event " << ievt_ << " digi collection size " << need;
153 
154  for ( EEDigiCollection::const_iterator digiItr = digis->begin(); digiItr != digis->end(); ++digiItr ) {
155 
156  EEDetId id = digiItr->id();
157 
158  int ix = id.ix();
159  int iy = id.iy();
160 
161  int ism = Numbers::iSM( id );
162 
163  if ( ism >= 1 && ism <= 9 ) ix = 101 - ix;
164 
165  float xix = ix - 0.5;
166  float xiy = iy - 0.5;
167 
168  EEDataFrame dataframe = (*digiItr);
169 
170  int iMax(-1);
171  int maxADC(0);
172  for(int i(0); i < 10; i++){
173  if(dataframe.sample(i).gainId() != 1) break;
174  int adc(dataframe.sample(i).adc());
175  if(adc > maxADC){
176  maxADC = adc;
177  iMax = i;
178  }
179  }
180 
181  if(iMax != 5) continue;
182 
183  for (int i = 0; i < 3; i++) {
184 
185  int adc = dataframe.sample(i).adc();
186 
187  MonitorElement* mePedMap = 0;
188 
189  if ( dataframe.sample(i).gainId() == 1 ) mePedMap = mePedMapG12_[ism-1];
190  if ( dataframe.sample(i).gainId() == 2 ) mePedMap = 0;
191  if ( dataframe.sample(i).gainId() == 3 ) mePedMap = 0;
192 
193  float xval = float(adc);
194 
195  if ( mePedMap ) mePedMap->Fill(xix, xiy, xval);
196 
197  }
198 
199  }
200 
201  } else {
202 
203  edm::LogWarning("EEPedestalOnlineTask") << "EEDigiCollection not available";
204 
205  }
206 
207 }
int adc(sample_type sample)
get the ADC sample (12 bits)
#define LogDebug(id)
int i
Definition: DBlmapReader.cc:9
int ix() const
Definition: EEDetId.h:76
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:434
EcalMGPASample sample(int i) const
Definition: EcalDataFrame.h:29
int gainId() const
get the gainId (2 bits)
MonitorElement * mePedMapG12_[18]
void Fill(long long x)
edm::EDGetTokenT< EEDigiCollection > EEDigiCollection_
static unsigned iSM(const unsigned ism, const EcalSubdetector subdet)
Definition: Numbers.cc:243
int ism(int ieta, int iphi)
Definition: EcalPyUtils.cc:56
int adc() const
get the ADC sample (12 bits)
void EEPedestalOnlineTask::beginJob ( void  )
protectedvirtual

BeginJob.

Reimplemented from edm::EDAnalyzer.

Definition at line 51 of file EEPedestalOnlineTask.cc.

References dqmStore_, ievt_, prefixME_, DQMStore::rmdir(), and DQMStore::setCurrentFolder().

51  {
52 
53  ievt_ = 0;
54 
55  if ( dqmStore_ ) {
56  dqmStore_->setCurrentFolder(prefixME_ + "/EEPedestalOnlineTask");
57  dqmStore_->rmdir(prefixME_ + "/EEPedestalOnlineTask");
58  }
59 
60 }
void rmdir(const std::string &fullpath)
Definition: DQMStore.cc:2730
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:584
void EEPedestalOnlineTask::beginRun ( const edm::Run r,
const edm::EventSetup c 
)
protectedvirtual

BeginRun.

Reimplemented from edm::EDAnalyzer.

Definition at line 62 of file EEPedestalOnlineTask.cc.

References Numbers::initGeometry(), mergeRuns_, and reset().

62  {
63 
64  Numbers::initGeometry(c, false);
65 
66  if ( ! mergeRuns_ ) this->reset();
67 
68 }
static void initGeometry(const edm::EventSetup &setup, bool verbose=false)
Definition: Numbers.cc:47
void EEPedestalOnlineTask::cleanup ( void  )
protected

Cleanup.

Definition at line 110 of file EEPedestalOnlineTask.cc.

References dir, dqmStore_, i, init_, mePedMapG12_, prefixME_, DQMStore::removeElement(), DQMStore::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, and subfolder_.

Referenced by endJob().

110  {
111 
112  if ( ! init_ ) return;
113 
114  if ( dqmStore_ ) {
115  std::string dir = prefixME_ + "/EEPedestalOnlineTask";
116  if(subfolder_.size())
117  dir += "/" + subfolder_;
118 
120 
121  dqmStore_->setCurrentFolder(dir + "/Gain12");
122  for ( int i = 0; i < 18; i++ ) {
123  if ( mePedMapG12_[i] ) dqmStore_->removeElement( mePedMapG12_[i]->getName() );
124  mePedMapG12_[i] = 0;
125  }
126 
127  }
128 
129  init_ = false;
130 
131 }
int i
Definition: DBlmapReader.cc:9
MonitorElement * mePedMapG12_[18]
void removeElement(const std::string &name)
Definition: DQMStore.cc:2772
dbl *** dir
Definition: mlp_gen.cc:35
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:584
void EEPedestalOnlineTask::endJob ( void  )
protectedvirtual

EndJob.

Reimplemented from edm::EDAnalyzer.

Definition at line 133 of file EEPedestalOnlineTask.cc.

References cleanup(), enableCleanup_, and ievt_.

133  {
134 
135  edm::LogInfo("EEPedestalOnlineTask") << "analyzed " << ievt_ << " events";
136 
137  if ( enableCleanup_ ) this->cleanup();
138 
139 }
void cleanup(void)
Cleanup.
void EEPedestalOnlineTask::endRun ( const edm::Run r,
const edm::EventSetup c 
)
protectedvirtual

EndRun.

Reimplemented from edm::EDAnalyzer.

Definition at line 70 of file EEPedestalOnlineTask.cc.

70  {
71 
72 }
void EEPedestalOnlineTask::reset ( void  )
protected

Reset.

Definition at line 74 of file EEPedestalOnlineTask.cc.

References i, mePedMapG12_, and MonitorElement::Reset().

Referenced by beginRun().

74  {
75 
76  for (int i = 0; i < 18; i++) {
77  if ( mePedMapG12_[i] ) mePedMapG12_[i]->Reset();
78  }
79 
80 }
int i
Definition: DBlmapReader.cc:9
MonitorElement * mePedMapG12_[18]
void Reset(void)
reset ME (ie. contents, errors, etc)
void EEPedestalOnlineTask::setup ( void  )
protected

Setup.

Definition at line 82 of file EEPedestalOnlineTask.cc.

References DQMStore::bookProfile2D(), dir, dqmStore_, i, init_, Numbers::ix0EE(), Numbers::iy0EE(), mePedMapG12_, mergeVDriftHistosByStation::name, prefixME_, Numbers::sEE(), MonitorElement::setAxisTitle(), DQMStore::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, subfolder_, and DQMStore::tag().

Referenced by analyze().

82  {
83 
84  init_ = true;
85 
88 
89  if ( dqmStore_ ) {
90  dir = prefixME_ + "/EEPedestalOnlineTask";
91  if(subfolder_.size())
92  dir += "/" + subfolder_;
93 
95 
96  dqmStore_->setCurrentFolder(dir + "/Gain12");
97  for (int i = 0; i < 18; i++) {
98  name = "EEPOT pedestal " + Numbers::sEE(i+1) + " G12";
99  mePedMapG12_[i] = dqmStore_->bookProfile2D(name, name, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50., 4096, 0., 4096., "s");
100  mePedMapG12_[i]->setAxisTitle("ix", 1);
101  if ( i+1 >= 1 && i+1 <= 9 ) mePedMapG12_[i]->setAxisTitle("101-ix", 1);
102  mePedMapG12_[i]->setAxisTitle("iy", 2);
103  dqmStore_->tag(mePedMapG12_[i], i+1);
104  }
105 
106  }
107 
108 }
static std::string sEE(const unsigned ism)
Definition: Numbers.cc:223
int i
Definition: DBlmapReader.cc:9
static int ix0EE(const unsigned ism)
Definition: Numbers.cc:770
MonitorElement * mePedMapG12_[18]
static int iy0EE(const unsigned ism)
Definition: Numbers.cc:809
void tag(MonitorElement *me, unsigned int myTag)
Definition: DQMStore.cc:1509
dbl *** dir
Definition: mlp_gen.cc:35
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:584
MonitorElement * bookProfile2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, int nchZ, double lowZ, double highZ, const char *option="s")
Definition: DQMStore.cc:1330

Member Data Documentation

DQMStore* EEPedestalOnlineTask::dqmStore_
private

Definition at line 60 of file EEPedestalOnlineTask.h.

Referenced by beginJob(), cleanup(), EEPedestalOnlineTask(), and setup().

edm::EDGetTokenT<EEDigiCollection> EEPedestalOnlineTask::EEDigiCollection_
private

Definition at line 70 of file EEPedestalOnlineTask.h.

Referenced by analyze(), and EEPedestalOnlineTask().

bool EEPedestalOnlineTask::enableCleanup_
private

Definition at line 66 of file EEPedestalOnlineTask.h.

Referenced by EEPedestalOnlineTask(), and endJob().

int EEPedestalOnlineTask::ievt_
private

Definition at line 58 of file EEPedestalOnlineTask.h.

Referenced by analyze(), beginJob(), and endJob().

bool EEPedestalOnlineTask::init_
private

Definition at line 74 of file EEPedestalOnlineTask.h.

Referenced by analyze(), cleanup(), EEPedestalOnlineTask(), and setup().

MonitorElement* EEPedestalOnlineTask::mePedMapG12_[18]
private

Definition at line 72 of file EEPedestalOnlineTask.h.

Referenced by analyze(), cleanup(), EEPedestalOnlineTask(), reset(), and setup().

bool EEPedestalOnlineTask::mergeRuns_
private

Definition at line 68 of file EEPedestalOnlineTask.h.

Referenced by beginRun(), and EEPedestalOnlineTask().

std::string EEPedestalOnlineTask::prefixME_
private

Definition at line 62 of file EEPedestalOnlineTask.h.

Referenced by beginJob(), cleanup(), EEPedestalOnlineTask(), and setup().

std::string EEPedestalOnlineTask::subfolder_
private

Definition at line 64 of file EEPedestalOnlineTask.h.

Referenced by cleanup(), EEPedestalOnlineTask(), and setup().