CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EBPedestalOnlineTask.cc
Go to the documentation of this file.
1 /*
2  * \file EBPedestalOnlineTask.cc
3  *
4  * $Date: 2010/03/27 20:07:58 $
5  * $Revision: 1.45 $
6  * \author G. Della Ricca
7  *
8 */
9 
10 #include <iostream>
11 #include <fstream>
12 
15 
17 
19 
23 
25 
27 
29 
30  init_ = false;
31 
33 
34  prefixME_ = ps.getUntrackedParameter<std::string>("prefixME", "");
35 
36  enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
37 
38  mergeRuns_ = ps.getUntrackedParameter<bool>("mergeRuns", false);
39 
40  EBDigiCollection_ = ps.getParameter<edm::InputTag>("EBDigiCollection");
41 
42  for (int i = 0; i < 36; i++) {
43  mePedMapG12_[i] = 0;
44  }
45 
46 }
47 
49 
50 }
51 
53 
54  ievt_ = 0;
55 
56  if ( dqmStore_ ) {
57  dqmStore_->setCurrentFolder(prefixME_ + "/EBPedestalOnlineTask");
58  dqmStore_->rmdir(prefixME_ + "/EBPedestalOnlineTask");
59  }
60 
61 }
62 
64 
65  Numbers::initGeometry(c, false);
66 
67  if ( ! mergeRuns_ ) this->reset();
68 
69 }
70 
72 
73 }
74 
76 
77  for (int i = 0; i < 36; i++) {
78  if ( mePedMapG12_[i] ) mePedMapG12_[i]->Reset();
79  }
80 
81 }
82 
84 
85  init_ = true;
86 
87  char histo[200];
88 
89  if ( dqmStore_ ) {
90  dqmStore_->setCurrentFolder(prefixME_ + "/EBPedestalOnlineTask");
91 
92  dqmStore_->setCurrentFolder(prefixME_ + "/EBPedestalOnlineTask/Gain12");
93  for (int i = 0; i < 36; i++) {
94  sprintf(histo, "EBPOT pedestal %s G12", Numbers::sEB(i+1).c_str());
95  mePedMapG12_[i] = dqmStore_->bookProfile2D(histo, histo, 85, 0., 85., 20, 0., 20., 4096, 0., 4096., "s");
96  mePedMapG12_[i]->setAxisTitle("ieta", 1);
97  mePedMapG12_[i]->setAxisTitle("iphi", 2);
98  dqmStore_->tag(mePedMapG12_[i], i+1);
99  }
100 
101  }
102 
103 }
104 
106 
107  if ( ! init_ ) return;
108 
109  if ( dqmStore_ ) {
110  dqmStore_->setCurrentFolder(prefixME_ + "/EBPedestalOnlineTask");
111 
112  dqmStore_->setCurrentFolder(prefixME_ + "/EBPedestalOnlineTask/Gain12");
113  for ( int i = 0; i < 36; i++ ) {
115  mePedMapG12_[i] = 0;
116  }
117 
118  }
119 
120  init_ = false;
121 
122 }
123 
125 
126  edm::LogInfo("EBPedestalOnlineTask") << "analyzed " << ievt_ << " events";
127 
128  if ( enableCleanup_ ) this->cleanup();
129 
130 }
131 
133 
134  if ( ! init_ ) this->setup();
135 
136  ievt_++;
137 
139 
140  if ( e.getByLabel(EBDigiCollection_, digis) ) {
141 
142  int nebd = digis->size();
143  LogDebug("EBPedestalOnlineTask") << "event " << ievt_ << " digi collection size " << nebd;
144 
145  for ( EBDigiCollection::const_iterator digiItr = digis->begin(); digiItr != digis->end(); ++digiItr ) {
146 
147  EBDetId id = digiItr->id();
148 
149  int ic = id.ic();
150  int ie = (ic-1)/20 + 1;
151  int ip = (ic-1)%20 + 1;
152 
153  int ism = Numbers::iSM( id );
154 
155  float xie = ie - 0.5;
156  float xip = ip - 0.5;
157 
158  EBDataFrame dataframe = (*digiItr);
159 
160  for (int i = 0; i < 3; i++) {
161 
162  int adc = dataframe.sample(i).adc();
163 
164  MonitorElement* mePedMap = 0;
165 
166  if ( dataframe.sample(i).gainId() == 1 ) mePedMap = mePedMapG12_[ism-1];
167  if ( dataframe.sample(i).gainId() == 2 ) mePedMap = 0;
168  if ( dataframe.sample(i).gainId() == 3 ) mePedMap = 0;
169 
170  float xval = float(adc);
171 
172  if ( mePedMap ) mePedMap->Fill(xie, xip, xval);
173 
174  }
175 
176  }
177 
178  } else {
179 
180  edm::LogWarning("EBPedestalOnlineTask") << EBDigiCollection_ << " not available";
181 
182  }
183 
184 }
185 
int adc(sample_type sample)
get the ADC sample (12 bits)
#define LogDebug(id)
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
void beginRun(const edm::Run &r, const edm::EventSetup &c)
BeginRun.
int i
Definition: DBlmapReader.cc:9
static std::string sEB(const int ism)
Definition: Numbers.cc:81
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
void rmdir(const std::string &fullpath)
Definition: DQMStore.cc:2296
Some &quot;id&quot; conversions.
EcalMGPASample sample(int i) const
Definition: EcalDataFrame.h:28
void analyze(const edm::Event &e, const edm::EventSetup &c)
Analyze.
tuple histo
Definition: trackerHits.py:12
int gainId() const
get the gainId (2 bits)
void endRun(const edm::Run &r, const edm::EventSetup &c)
EndRun.
void Fill(long long x)
void tag(MonitorElement *me, unsigned int myTag)
Definition: DQMStore.cc:1156
virtual ~EBPedestalOnlineTask()
Destructor.
edm::InputTag EBDigiCollection_
static int iSM(const int ism, const EcalSubdetector subdet)
Definition: Numbers.cc:216
void removeElement(const std::string &name)
Definition: DQMStore.cc:2338
MonitorElement * mePedMapG12_[36]
std::string getName(Reflex::Type &cc)
Definition: ClassFiller.cc:18
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:359
void endJob(void)
EndJob.
int ic() const
get ECAL/crystal number inside SM
Definition: EBDetId.cc:94
void beginJob(void)
BeginJob.
static void initGeometry(const edm::EventSetup &setup, bool verbose=false)
Definition: Numbers.cc:43
void cleanup(void)
Cleanup.
EBPedestalOnlineTask(const edm::ParameterSet &ps)
Constructor.
int ism(int ieta, int iphi)
Definition: EcalPyUtils.cc:47
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void Reset(void)
reset ME (ie. contents, errors, etc)
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:237
Definition: Run.h:31
int adc() const
get the ADC sample (12 bits)
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:977