CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HcalRecHitsDQMClient.cc
Go to the documentation of this file.
3 
8 
11 
13 {
14 
15  outputFile_ = iConfig.getUntrackedParameter<std::string>("outputFile", "myfile.root");
16 
18  if (!dbe_) {
19  edm::LogError("HcalRecHitsDQMClient") << "unable to get DQMStore service, upshot is no client histograms will be made";
20  }
21  if(iConfig.getUntrackedParameter<bool>("DQMStore", false)) {
22  if(dbe_) dbe_->setVerbose(0);
23  }
24 
25  debug_ = false;
26  verbose_ = false;
27 
28  dirName_=iConfig.getParameter<std::string>("DQMDirName");
29  if(dbe_) dbe_->setCurrentFolder(dirName_);
30 
31 }
32 
33 
35 {
36 
37 }
38 
40 {
41 
42 
43 }
44 
46 {
47  if ( outputFile_.size() != 0 && dbe_ ) dbe_->save(outputFile_);
48 }
49 
51 {
52 
53 }
54 
55 
57 {
58  runClient_();
59 }
60 
61 //dummy analysis function
63 {
64 
65 }
66 
68 {
69 // runClient_();
70 }
71 
73 {
74  if(!dbe_) return; //we dont have the DQMStore so we cant do anything
76 
77  if (verbose_) std::cout << "\nrunClient" << std::endl;
78 
79  std::vector<MonitorElement*> hcalMEs;
80 
81  // Since out folders are fixed to three, we can just go over these three folders
82  // i.e., CaloTowersV/CaloTowersTask, HcalRecHitsV/HcalRecHitTask, NoiseRatesV/NoiseRatesTask.
83  std::vector<std::string> fullPathHLTFolders = dbe_->getSubdirs();
84  for(unsigned int i=0;i<fullPathHLTFolders.size();i++) {
85 
86  if (verbose_) std::cout <<"\nfullPath: "<< fullPathHLTFolders[i] << std::endl;
87  dbe_->setCurrentFolder(fullPathHLTFolders[i]);
88 
89  std::vector<std::string> fullSubPathHLTFolders = dbe_->getSubdirs();
90  for(unsigned int j=0;j<fullSubPathHLTFolders.size();j++) {
91 
92  if (verbose_) std::cout <<"fullSub: "<<fullSubPathHLTFolders[j] << std::endl;
93 
94  if( strcmp(fullSubPathHLTFolders[j].c_str(), "HcalRecHitsV/HcalRecHitTask") ==0 ){
95  hcalMEs = dbe_->getContents(fullSubPathHLTFolders[j]);
96  if (verbose_) std::cout <<"hltMES size : "<<hcalMEs.size()<<std::endl;
97  if( !HcalRecHitsEndjob(hcalMEs) ) std::cout<<"\nError in HcalRecHitsEndjob!"<<std::endl<<std::endl;
98  }
99 
100  }
101 
102  }
103 
104 }
105 
106 
107 // called after entering the HcalRecHitsV/HcalRecHitTask directory
108 // hcalMEs are within that directory
109 int HcalRecHitsDQMClient::HcalRecHitsEndjob(const std::vector<MonitorElement*> &hcalMEs){
110 
111  int useAllHistos = 0, subdet =5;
112 
113 // for ZS ...
114 // MonitorElement* emap_min_ME =0;
115  MonitorElement* ZS_HO=0, *ZS_seqHO=0;
116  MonitorElement* ZS_HB1=0, *ZS_seqHB1=0, *ZS_HB2=0, *ZS_seqHB2=0;
117  MonitorElement* ZS_HF1=0, *ZS_seqHF1=0, *ZS_HF2=0, *ZS_seqHF2=0;
118  MonitorElement* ZS_HE1=0, *ZS_seqHE1=0, *ZS_HE2=0, *ZS_seqHE2=0, *ZS_HE3=0, *ZS_seqHE3=0;
119  MonitorElement* map_depth1 =0, *map_depth2 =0, *map_depth3 =0, *map_depth4 =0;
120 // others
121  MonitorElement* Nhf=0;
122  MonitorElement* emap_depth1 =0, *emap_depth2 =0, *emap_depth3 =0, *emap_depth4 =0;
123  MonitorElement* occupancy_seqHB1 =0, *occupancy_seqHB2 =0;
124  MonitorElement* occupancy_seqHE1 =0, *occupancy_seqHE2 =0, *occupancy_seqHE3 =0;
125  MonitorElement* occupancy_seqHF1 =0, *occupancy_seqHF2 =0;
126  MonitorElement* occupancy_seqHO =0;
127  MonitorElement* emean_seqHB1 =0, *emean_seqHB2 =0;
128  MonitorElement* emean_seqHE1 =0, *emean_seqHE2 =0, *emean_seqHE3 =0;
129  MonitorElement* emean_seqHF1 =0, *emean_seqHF2 =0;
130  MonitorElement* emean_seqHO =0;
131 
132  MonitorElement* RMS_seq_HB1 =0, *RMS_seq_HB2 =0;
133  MonitorElement* RMS_seq_HE1 =0, *RMS_seq_HE2 =0, *RMS_seq_HE3 =0;
134  MonitorElement* RMS_seq_HF1 =0, *RMS_seq_HF2 =0;
135  MonitorElement* RMS_seq_HO =0;
136 
137  MonitorElement *occupancy_map_HO =0;
138  MonitorElement* occupancy_map_HB1 =0, *occupancy_map_HB2 =0;
139  MonitorElement* occupancy_map_HF1 =0, *occupancy_map_HF2 =0;
140  MonitorElement* occupancy_map_HE1 =0, *occupancy_map_HE2 =0, *occupancy_map_HE3 =0;
141 
142  MonitorElement* emean_vs_ieta_HB1 =0, *emean_vs_ieta_HB2 =0;
143  MonitorElement* emean_vs_ieta_HE1 =0, *emean_vs_ieta_HE2 =0/*, *emean_vs_ieta_HE3 =0*/;
144  //MonitorElement* emean_vs_ieta_HF1 =0, *emean_vs_ieta_HF2 =0;
145  //MonitorElement* emean_vs_ieta_HO =0;
146  MonitorElement* RMS_vs_ieta_HB1 =0, *RMS_vs_ieta_HB2 =0;
147  MonitorElement* RMS_vs_ieta_HE1 =0, *RMS_vs_ieta_HE2 =0, *RMS_vs_ieta_HE3 =0;
148  MonitorElement* RMS_vs_ieta_HF1 =0, *RMS_vs_ieta_HF2 =0;
149  MonitorElement* RMS_vs_ieta_HO =0;
150  MonitorElement* occupancy_vs_ieta_HB1 =0, *occupancy_vs_ieta_HB2 =0;
151  MonitorElement* occupancy_vs_ieta_HE1 =0, *occupancy_vs_ieta_HE2 =0, *occupancy_vs_ieta_HE3 =0;
152  MonitorElement* occupancy_vs_ieta_HF1 =0, *occupancy_vs_ieta_HF2 =0;
153  MonitorElement* occupancy_vs_ieta_HO =0;
154 
155  MonitorElement* RecHit_StatusWord_HB =0, *RecHit_StatusWord_HE=0, *RecHit_StatusWord_HO =0, *RecHit_StatusWord_HF =0, *RecHit_StatusWord_HF67 =0;
156  MonitorElement* RecHit_Aux_StatusWord_HB =0, *RecHit_Aux_StatusWord_HE=0, *RecHit_Aux_StatusWord_HO =0, *RecHit_Aux_StatusWord_HF =0;
157 
158  for(unsigned int ih=0; ih<hcalMEs.size(); ih++){
159  if( strcmp(hcalMEs[ih]->getName().c_str(), "ZSmin_map_depth1") ==0 ){
160  useAllHistos =1; subdet =6;
161  }
162  if( strcmp(hcalMEs[ih]->getName().c_str(), "RMS_vs_ieta_HB1") ==0 ){
163  useAllHistos =1;
164  }
165 // if( strcmp(hcalMEs[ih]->getName().c_str(), "emap_min_ME") ==0 ){ emap_min_ME = hcalMEs[ih]; }
166  if( strcmp(hcalMEs[ih]->getName().c_str(), "ZSmin_simple1D_HO") ==0 ){ ZS_HO = hcalMEs[ih]; }
167  else if( strcmp(hcalMEs[ih]->getName().c_str(), "ZSmin_sequential1D_HO") ==0 ){ ZS_seqHO = hcalMEs[ih]; }
168  else if( strcmp(hcalMEs[ih]->getName().c_str(), "ZSmin_simple1D_HB1") ==0 ){ ZS_HB1 = hcalMEs[ih]; }
169  else if( strcmp(hcalMEs[ih]->getName().c_str(), "ZSmin_sequential1D_HB1") ==0 ){ ZS_seqHB1 = hcalMEs[ih]; }
170  else if( strcmp(hcalMEs[ih]->getName().c_str(), "ZSmin_simple1D_HB2") ==0 ){ ZS_HB2 = hcalMEs[ih]; }
171  else if( strcmp(hcalMEs[ih]->getName().c_str(), "ZSmin_sequential1D_HB2") ==0 ){ ZS_seqHB2 = hcalMEs[ih]; }
172  else if( strcmp(hcalMEs[ih]->getName().c_str(), "ZSmin_simple1D_HF1") ==0 ){ ZS_HF1 = hcalMEs[ih]; }
173  else if( strcmp(hcalMEs[ih]->getName().c_str(), "ZSmin_sequential1D_HF1") ==0 ){ ZS_seqHF1 = hcalMEs[ih]; }
174  else if( strcmp(hcalMEs[ih]->getName().c_str(), "ZSmin_simple1D_HF2") ==0 ){ ZS_HF2 = hcalMEs[ih]; }
175  else if( strcmp(hcalMEs[ih]->getName().c_str(), "ZSmin_sequential1D_HF2") ==0 ){ ZS_seqHF2 = hcalMEs[ih]; }
176  else if( strcmp(hcalMEs[ih]->getName().c_str(), "ZSmin_simple1D_HE1") ==0 ){ ZS_HE1 = hcalMEs[ih]; }
177  else if( strcmp(hcalMEs[ih]->getName().c_str(), "ZSmin_sequential1D_HE1") ==0 ){ ZS_seqHE1 = hcalMEs[ih]; }
178  else if( strcmp(hcalMEs[ih]->getName().c_str(), "ZSmin_simple1D_HE2") ==0 ){ ZS_HE2 = hcalMEs[ih]; }
179  else if( strcmp(hcalMEs[ih]->getName().c_str(), "ZSmin_sequential1D_HE2") ==0 ){ ZS_seqHE2 = hcalMEs[ih]; }
180  else if( strcmp(hcalMEs[ih]->getName().c_str(), "ZSmin_simple1D_HE3") ==0 ){ ZS_HE3 = hcalMEs[ih]; }
181  else if( strcmp(hcalMEs[ih]->getName().c_str(), "ZSmin_sequential1D_HE3") ==0 ){ ZS_seqHE3 = hcalMEs[ih]; }
182  else if( strcmp(hcalMEs[ih]->getName().c_str(), "ZSmin_map_depth1") ==0 ){ map_depth1= hcalMEs[ih]; }
183  else if( strcmp(hcalMEs[ih]->getName().c_str(), "ZSmin_map_depth2") ==0 ){ map_depth2= hcalMEs[ih]; }
184  else if( strcmp(hcalMEs[ih]->getName().c_str(), "ZSmin_map_depth3") ==0 ){ map_depth3= hcalMEs[ih]; }
185  else if( strcmp(hcalMEs[ih]->getName().c_str(), "ZSmin_map_depth4") ==0 ){ map_depth4= hcalMEs[ih]; }
186 
187  else if( strcmp(hcalMEs[ih]->getName().c_str(), "N_HF") ==0 ){ Nhf= hcalMEs[ih]; }
188  else if( strcmp(hcalMEs[ih]->getName().c_str(), "emap_depth1") ==0 ){ emap_depth1= hcalMEs[ih]; }
189  else if( strcmp(hcalMEs[ih]->getName().c_str(), "emap_depth2") ==0 ){ emap_depth2= hcalMEs[ih]; }
190  else if( strcmp(hcalMEs[ih]->getName().c_str(), "emap_depth3") ==0 ){ emap_depth3= hcalMEs[ih]; }
191  else if( strcmp(hcalMEs[ih]->getName().c_str(), "emap_depth4") ==0 ){ emap_depth4= hcalMEs[ih]; }
192 
193  else if( strcmp(hcalMEs[ih]->getName().c_str(), "occ_sequential1D_HB1") ==0 ){ occupancy_seqHB1= hcalMEs[ih]; }
194  else if( strcmp(hcalMEs[ih]->getName().c_str(), "occ_sequential1D_HB2") ==0 ){ occupancy_seqHB2= hcalMEs[ih]; }
195  else if( strcmp(hcalMEs[ih]->getName().c_str(), "occ_sequential1D_HE1") ==0 ){ occupancy_seqHE1= hcalMEs[ih]; }
196  else if( strcmp(hcalMEs[ih]->getName().c_str(), "occ_sequential1D_HE2") ==0 ){ occupancy_seqHE2= hcalMEs[ih]; }
197  else if( strcmp(hcalMEs[ih]->getName().c_str(), "occ_sequential1D_HE3") ==0 ){ occupancy_seqHE3= hcalMEs[ih]; }
198  else if( strcmp(hcalMEs[ih]->getName().c_str(), "occ_sequential1D_HF1") ==0 ){ occupancy_seqHF1= hcalMEs[ih]; }
199  else if( strcmp(hcalMEs[ih]->getName().c_str(), "occ_sequential1D_HF2") ==0 ){ occupancy_seqHF2= hcalMEs[ih]; }
200  else if( strcmp(hcalMEs[ih]->getName().c_str(), "occ_sequential1D_HO") ==0 ){ occupancy_seqHO= hcalMEs[ih]; }
201  else if( strcmp(hcalMEs[ih]->getName().c_str(), "emean_seq_HB1") ==0 ){ emean_seqHB1= hcalMEs[ih]; }
202  else if( strcmp(hcalMEs[ih]->getName().c_str(), "emean_seq_HB2") ==0 ){ emean_seqHB2= hcalMEs[ih]; }
203  else if( strcmp(hcalMEs[ih]->getName().c_str(), "emean_seq_HE1") ==0 ){ emean_seqHE1= hcalMEs[ih]; }
204  else if( strcmp(hcalMEs[ih]->getName().c_str(), "emean_seq_HE2") ==0 ){ emean_seqHE2= hcalMEs[ih]; }
205  else if( strcmp(hcalMEs[ih]->getName().c_str(), "emean_seq_HE3") ==0 ){ emean_seqHE3= hcalMEs[ih]; }
206  else if( strcmp(hcalMEs[ih]->getName().c_str(), "emean_seq_HF1") ==0 ){ emean_seqHF1= hcalMEs[ih]; }
207  else if( strcmp(hcalMEs[ih]->getName().c_str(), "emean_seq_HF2") ==0 ){ emean_seqHF2= hcalMEs[ih]; }
208  else if( strcmp(hcalMEs[ih]->getName().c_str(), "emean_seq_HO") ==0 ){ emean_seqHO= hcalMEs[ih]; }
209  else if( strcmp(hcalMEs[ih]->getName().c_str(), "RMS_seq_HB1") ==0 ){ RMS_seq_HB1= hcalMEs[ih]; }
210  else if( strcmp(hcalMEs[ih]->getName().c_str(), "RMS_seq_HB2") ==0 ){ RMS_seq_HB2= hcalMEs[ih]; }
211  else if( strcmp(hcalMEs[ih]->getName().c_str(), "RMS_seq_HE1") ==0 ){ RMS_seq_HE1= hcalMEs[ih]; }
212  else if( strcmp(hcalMEs[ih]->getName().c_str(), "RMS_seq_HE2") ==0 ){ RMS_seq_HE2= hcalMEs[ih]; }
213  else if( strcmp(hcalMEs[ih]->getName().c_str(), "RMS_seq_HE3") ==0 ){ RMS_seq_HE3= hcalMEs[ih]; }
214  else if( strcmp(hcalMEs[ih]->getName().c_str(), "RMS_seq_HF1") ==0 ){ RMS_seq_HF1= hcalMEs[ih]; }
215  else if( strcmp(hcalMEs[ih]->getName().c_str(), "RMS_seq_HF2") ==0 ){ RMS_seq_HF2= hcalMEs[ih]; }
216  else if( strcmp(hcalMEs[ih]->getName().c_str(), "RMS_seq_HO") ==0 ){ RMS_seq_HO= hcalMEs[ih]; }
217  else if( strcmp(hcalMEs[ih]->getName().c_str(), "occupancy_map_HB1") ==0 ){ occupancy_map_HB1= hcalMEs[ih]; }
218  else if( strcmp(hcalMEs[ih]->getName().c_str(), "occupancy_map_HB2") ==0 ){ occupancy_map_HB2= hcalMEs[ih]; }
219  else if( strcmp(hcalMEs[ih]->getName().c_str(), "occupancy_map_HE1") ==0 ){ occupancy_map_HE1= hcalMEs[ih]; }
220  else if( strcmp(hcalMEs[ih]->getName().c_str(), "occupancy_map_HE2") ==0 ){ occupancy_map_HE2= hcalMEs[ih]; }
221  else if( strcmp(hcalMEs[ih]->getName().c_str(), "occupancy_map_HE3") ==0 ){ occupancy_map_HE3= hcalMEs[ih]; }
222  else if( strcmp(hcalMEs[ih]->getName().c_str(), "occupancy_map_HF1") ==0 ){ occupancy_map_HF1= hcalMEs[ih]; }
223  else if( strcmp(hcalMEs[ih]->getName().c_str(), "occupancy_map_HF2") ==0 ){ occupancy_map_HF2= hcalMEs[ih]; }
224  else if( strcmp(hcalMEs[ih]->getName().c_str(), "occupancy_map_HO") ==0 ){ occupancy_map_HO= hcalMEs[ih]; }
225  else if( strcmp(hcalMEs[ih]->getName().c_str(), "emean_vs_ieta_HB1") ==0 ){ emean_vs_ieta_HB1= hcalMEs[ih]; }
226  else if( strcmp(hcalMEs[ih]->getName().c_str(), "emean_vs_ieta_HB2") ==0 ){ emean_vs_ieta_HB2= hcalMEs[ih]; }
227  else if( strcmp(hcalMEs[ih]->getName().c_str(), "emean_vs_ieta_HE1") ==0 ){ emean_vs_ieta_HE1= hcalMEs[ih]; }
228  else if( strcmp(hcalMEs[ih]->getName().c_str(), "emean_vs_ieta_HE2") ==0 ){ emean_vs_ieta_HE2= hcalMEs[ih]; }
229  //else if( strcmp(hcalMEs[ih]->getName().c_str(), "emean_vs_ieta_HE3") ==0 ){ emean_vs_ieta_HE3= hcalMEs[ih]; }
230  //else if( strcmp(hcalMEs[ih]->getName().c_str(), "emean_vs_ieta_HF1") ==0 ){ emean_vs_ieta_HF1= hcalMEs[ih]; }
231  //else if( strcmp(hcalMEs[ih]->getName().c_str(), "emean_vs_ieta_HF2") ==0 ){ emean_vs_ieta_HF2= hcalMEs[ih]; }
232  //else if( strcmp(hcalMEs[ih]->getName().c_str(), "emean_vs_ieta_HO") ==0 ){ emean_vs_ieta_HO= hcalMEs[ih]; }
233  else if( strcmp(hcalMEs[ih]->getName().c_str(), "RMS_vs_ieta_HB1") ==0 ){ RMS_vs_ieta_HB1= hcalMEs[ih]; }
234  else if( strcmp(hcalMEs[ih]->getName().c_str(), "RMS_vs_ieta_HB2") ==0 ){ RMS_vs_ieta_HB2= hcalMEs[ih]; }
235  else if( strcmp(hcalMEs[ih]->getName().c_str(), "RMS_vs_ieta_HE1") ==0 ){ RMS_vs_ieta_HE1= hcalMEs[ih]; }
236  else if( strcmp(hcalMEs[ih]->getName().c_str(), "RMS_vs_ieta_HE2") ==0 ){ RMS_vs_ieta_HE2= hcalMEs[ih]; }
237  else if( strcmp(hcalMEs[ih]->getName().c_str(), "RMS_vs_ieta_HE3") ==0 ){ RMS_vs_ieta_HE3= hcalMEs[ih]; }
238  else if( strcmp(hcalMEs[ih]->getName().c_str(), "RMS_vs_ieta_HF1") ==0 ){ RMS_vs_ieta_HF1= hcalMEs[ih]; }
239  else if( strcmp(hcalMEs[ih]->getName().c_str(), "RMS_vs_ieta_HF2") ==0 ){ RMS_vs_ieta_HF2= hcalMEs[ih]; }
240  else if( strcmp(hcalMEs[ih]->getName().c_str(), "RMS_vs_ieta_HO") ==0 ){ RMS_vs_ieta_HO= hcalMEs[ih]; }
241  else if( strcmp(hcalMEs[ih]->getName().c_str(), "occupancy_vs_ieta_HB1") ==0 ){ occupancy_vs_ieta_HB1= hcalMEs[ih]; }
242  else if( strcmp(hcalMEs[ih]->getName().c_str(), "occupancy_vs_ieta_HB2") ==0 ){ occupancy_vs_ieta_HB2= hcalMEs[ih]; }
243  else if( strcmp(hcalMEs[ih]->getName().c_str(), "occupancy_vs_ieta_HE1") ==0 ){ occupancy_vs_ieta_HE1= hcalMEs[ih]; }
244  else if( strcmp(hcalMEs[ih]->getName().c_str(), "occupancy_vs_ieta_HE2") ==0 ){ occupancy_vs_ieta_HE2= hcalMEs[ih]; }
245  else if( strcmp(hcalMEs[ih]->getName().c_str(), "occupancy_vs_ieta_HE3") ==0 ){ occupancy_vs_ieta_HE3= hcalMEs[ih]; }
246  else if( strcmp(hcalMEs[ih]->getName().c_str(), "occupancy_vs_ieta_HF1") ==0 ){ occupancy_vs_ieta_HF1= hcalMEs[ih]; }
247  else if( strcmp(hcalMEs[ih]->getName().c_str(), "occupancy_vs_ieta_HF2") ==0 ){ occupancy_vs_ieta_HF2= hcalMEs[ih]; }
248  else if( strcmp(hcalMEs[ih]->getName().c_str(), "occupancy_vs_ieta_HO") ==0 ){ occupancy_vs_ieta_HO= hcalMEs[ih]; }
249  else if( strcmp(hcalMEs[ih]->getName().c_str(), "HcalRecHitTask_RecHit_StatusWord_HB") ==0 ){ RecHit_StatusWord_HB= hcalMEs[ih]; }
250  else if( strcmp(hcalMEs[ih]->getName().c_str(), "HcalRecHitTask_RecHit_StatusWord_HE") ==0 ){ RecHit_StatusWord_HE= hcalMEs[ih]; }
251  else if( strcmp(hcalMEs[ih]->getName().c_str(), "HcalRecHitTask_RecHit_StatusWord_HO") ==0 ){ RecHit_StatusWord_HO= hcalMEs[ih]; }
252  else if( strcmp(hcalMEs[ih]->getName().c_str(), "HcalRecHitTask_RecHit_StatusWord_HF") ==0 ){ RecHit_StatusWord_HF= hcalMEs[ih]; }
253  else if( strcmp(hcalMEs[ih]->getName().c_str(), "HcalRecHitTask_RecHit_StatusWord_HF67") ==0 ){ RecHit_StatusWord_HF67= hcalMEs[ih]; }
254  else if( strcmp(hcalMEs[ih]->getName().c_str(), "HcalRecHitTask_RecHit_Aux_StatusWord_HB") ==0 ){ RecHit_Aux_StatusWord_HB= hcalMEs[ih]; }
255  else if( strcmp(hcalMEs[ih]->getName().c_str(), "HcalRecHitTask_RecHit_Aux_StatusWord_HE") ==0 ){ RecHit_Aux_StatusWord_HE= hcalMEs[ih]; }
256  else if( strcmp(hcalMEs[ih]->getName().c_str(), "HcalRecHitTask_RecHit_Aux_StatusWord_HO") ==0 ){ RecHit_Aux_StatusWord_HO= hcalMEs[ih]; }
257  else if( strcmp(hcalMEs[ih]->getName().c_str(), "HcalRecHitTask_RecHit_Aux_StatusWord_HF") ==0 ){ RecHit_Aux_StatusWord_HF= hcalMEs[ih]; }
258  }
259  if( useAllHistos !=0 && useAllHistos !=1 ) return 0;
260 
261  //None of the ZS stuff necessary for drawn histograms
262  if (subdet==6 && useAllHistos) {
263 // FIXME: a dummy emap_min! No solutions yet found.
264 // Since useAllHistos is set to disable it in our ususal validation, it's left here to be fixed later...
265  double emap_min[82][72][4][4];
266 /* NOT a valid solution
267  for(unsigned int i1=0; i1 <82; i1++){
268  for(unsigned int i2=0; i2<72; i2++){
269  for(unsigned int i3=0; i3<4; i3++){
270  for(unsigned int i4=0; i4<4; i4++){
271  int idx = i1 + i2*82 + i3*(82*72) + i4*(82*72*4);
272  emap_min[i1][i2][i3][i4] = emap_min_ME->GetBinContent(idx+1);
273  }
274  }
275  }
276  }
277 */
278  for (unsigned int i1 = 0; i1 < 82; i1++) {
279  for (unsigned int i2 = 0; i2 < 72; i2++) {
280 
281  int index = (i1-41) * 72 + i2;
282 
283  double e = emap_min[i1][i2][0][0];
284  if( e < 10000.) {
285  ZS_HB1->Fill(e);
286  ZS_seqHB1->Fill(double(index),e);
287  }
288  e = emap_min[i1][i2][1][0];
289  if( e < 10000.) {
290  ZS_HB2->Fill(e);
291  ZS_seqHB2->Fill(double(index),e);
292  }
293 
294  e = emap_min[i1][i2][0][1];
295  if( e < 10000.) {
296  ZS_HE1->Fill(e);
297  ZS_seqHE1->Fill(double(index),e);
298  }
299  e = emap_min[i1][i2][1][1];
300  if( e < 10000.) {
301  ZS_HE2->Fill(e);
302  ZS_seqHE2->Fill(double(index),e);
303  }
304  e = emap_min[i1][i2][2][1];
305  if( e < 10000.) {
306  ZS_HE3->Fill(e);
307  ZS_seqHE3->Fill(double(index),e);
308  }
309 
310  e = emap_min[i1][i2][3][2];
311  if( e < 10000.) {
312  ZS_HO->Fill(e);
313  ZS_seqHO->Fill(double(index),e);
314  }
315 
316  e = emap_min[i1][i2][0][3];
317  if( e < 10000.) {
318  ZS_HF1->Fill(e);
319  ZS_seqHF1->Fill(double(index),e);
320  }
321 
322  e = emap_min[i1][i2][1][3];
323  if( e < 10000.) {
324  ZS_HF2->Fill(e);
325  ZS_seqHF2->Fill(double(index),e);
326  }
327 
328  for (unsigned int i3 = 0; i3 < 4; i3++) { // depth
329  double emin = 100000.;
330  for (unsigned int i4 = 0; i4 < 4; i4++) { // subdet
331  /*
332  std::cout << "* ieta, iphi, depth, sub = "
333  << i1 << ", " << i2 << ", " << i3 << ", " << i4
334  << " emap_min = " << emap_min [i1][i2][i3][i4]
335  << std::endl;
336  */
337  if ( emin > emap_min [i1][i2][i3][i4])
338  emin = emap_min [i1][i2][i3][i4];
339  }
340 
341  int ieta = i1-41;
342  if( i3 == 0 && emin < 10000.) {
343  map_depth1->Fill(double(ieta),double(i2),emin);
344  /*
345  std::cout << "* Fill map_depth1 " << double(ieta) << " "
346  << double(i2) << " with " << emin << std::endl;
347  */
348  }
349  if( i3 == 1 && emin < 10000.)
350  map_depth2->Fill(double(ieta),double(i2),emin);
351  if( i3 == 2 && emin < 10000.)
352  map_depth3->Fill(double(ieta),double(i2),emin);
353  if( i3 == 3 && emin < 10000.)
354  map_depth4->Fill(double(ieta),double(i2),emin);
355  }
356  }
357  }
358  }
359  // mean energies and occupancies evaluation
360  else {
361 
362  double nevtot = Nhf->getEntries();
363  if(verbose_) std::cout<<"nevtot : "<<nevtot<<std::endl;
364 
365  int nx = occupancy_map_HB1->getNbinsX();
366  int ny = occupancy_map_HB1->getNbinsY();
367 
368  float cnorm;
369  float fev = float (nevtot);
370  // std::cout << "*** nevtot " << nevtot << std::endl;
371 
372  float sumphi_hb1, sumphi_hb2, sumphi_he1, sumphi_he2, sumphi_he3,
373  sumphi_ho, sumphi_hf1, sumphi_hf2;
374  /*
375  if(nx != 82 || ny != 72)
376  std::cout << "*** problem with binning " << std::endl;
377  */
378  float phi_factor;
379 
380  // First - special <E> maps
381  int nx1 = emap_depth1->getNbinsX();
382  int ny1 = emap_depth1->getNbinsY();
383  for (int i = 1; i <= nx1; i++) {
384  for (int j = 1; j <= ny1; j++) {
385  cnorm = emap_depth1->getBinContent(i,j) / fev;
386  emap_depth1->setBinContent(i,j,cnorm);
387  cnorm = emap_depth2->getBinContent(i,j) / fev;
388  emap_depth2->setBinContent(i,j,cnorm);
389  cnorm = emap_depth3->getBinContent(i,j) / fev;
390  emap_depth3->setBinContent(i,j,cnorm);
391  cnorm = emap_depth4->getBinContent(i,j) / fev;
392  emap_depth4->setBinContent(i,j,cnorm);
393  }
394  }
395 
396  // Second: all others regular maps
397  for (int i = 1; i <= nx; i++) {
398  sumphi_hb1 = 0.;
399  sumphi_hb2 = 0.;
400  sumphi_he1 = 0.;
401  sumphi_he2 = 0.;
402  sumphi_he3 = 0.;
403  sumphi_ho = 0.;
404  sumphi_hf1 = 0.;
405  sumphi_hf2 = 0.;
406 
407  for (int j = 1; j <= ny; j++) {
408 
409  int index = (i-42) * ny + j-1;
410 
411  //Occupancies (needed for occ vs ieta histos)
412  cnorm = occupancy_map_HB1->getBinContent(i,j) / fev;
413  occupancy_map_HB1->setBinContent(i,j,cnorm);
414 
415  cnorm = occupancy_map_HB2->getBinContent(i,j) / fev;
416  occupancy_map_HB2->setBinContent(i,j,cnorm);
417 
418  cnorm = occupancy_map_HE1->getBinContent(i,j) / fev;
419  occupancy_map_HE1->setBinContent(i,j,cnorm);
420 
421  cnorm = occupancy_map_HE2->getBinContent(i,j) / fev;
422  occupancy_map_HE2->setBinContent(i,j,cnorm);
423 
424  cnorm = occupancy_map_HE3->getBinContent(i,j) / fev;
425  occupancy_map_HE3->setBinContent(i,j,cnorm);
426 
427  cnorm = occupancy_map_HO->getBinContent(i,j) / fev;
428  occupancy_map_HO->setBinContent(i,j,cnorm);
429 
430  cnorm = occupancy_map_HF1->getBinContent(i,j) / fev;
431  occupancy_map_HF1->setBinContent(i,j,cnorm);
432 
433  cnorm = occupancy_map_HF2->getBinContent(i,j) / fev;
434  occupancy_map_HF2->setBinContent(i,j,cnorm);
435 
436  sumphi_hb1 += occupancy_map_HB1->getBinContent(i,j);
437  sumphi_hb2 += occupancy_map_HB2->getBinContent(i,j);
438  sumphi_he1 += occupancy_map_HE1->getBinContent(i,j);
439  sumphi_he2 += occupancy_map_HE2->getBinContent(i,j);
440  sumphi_he3 += occupancy_map_HE3->getBinContent(i,j);
441  sumphi_ho += occupancy_map_HO->getBinContent(i,j);
442  sumphi_hf1 += occupancy_map_HF1->getBinContent(i,j);
443  sumphi_hf2 += occupancy_map_HF2->getBinContent(i,j);
444 
445  // Occupancies - not in main drawn set of histos
446  if(useAllHistos){
447  occupancy_seqHB1->Fill(double(index),cnorm);
448  occupancy_seqHB2->Fill(double(index),cnorm);
449  occupancy_seqHE1->Fill(double(index),cnorm);
450  occupancy_seqHE2->Fill(double(index),cnorm);
451  occupancy_seqHE3->Fill(double(index),cnorm);
452  occupancy_seqHO->Fill(double(index),cnorm);
453  occupancy_seqHF1->Fill(double(index),cnorm);
454  occupancy_seqHF2->Fill(double(index),cnorm);
455  }
456  }
457 
458  int ieta = i - 42; // -41 -1, 0 40
459  if(ieta >=0 ) ieta +=1; // -41 -1, 1 41 - to make it detector-like
460 
461  if(ieta >= -20 && ieta <= 20 )
462  {phi_factor = 72.;}
463  else {
464  if(ieta >= 40 || ieta <= -40 ) {phi_factor = 18.;}
465  else
466  phi_factor = 36.;
467  }
468  if(ieta >= 0) ieta -= 1; // -41 -1, 0 40 - to bring back to histo num
469 
470  /*
471  std::cout << "*** ieta = " << ieta << " sumphi_hb1, sumphi_hb2, sumphi_he1, sumphi_he2, simphi_he3, sumphi_ho, simphi_hf1, sumphi_hf2" << std::endl
472  << sumphi_hb1 << " " << sumphi_hb2 << " " << sumphi_he1 << " "
473  << sumphi_he2 << " " << simphi_he3 << " " << sumphi_ho << " "
474  << simphi_hf1 << " " << sumphi_hf2 << std::endl << std::endl;
475  */
476  //Occupancy vs. ieta histos are drawn, RMS is not
477  cnorm = sumphi_hb1 / phi_factor;
478  occupancy_vs_ieta_HB1->Fill(float(ieta), cnorm);
479  cnorm = sumphi_hb2 / phi_factor;
480  occupancy_vs_ieta_HB2->Fill(float(ieta), cnorm);
481  cnorm = sumphi_he1 / phi_factor;
482  occupancy_vs_ieta_HE1->Fill(float(ieta), cnorm);
483  cnorm = sumphi_he2 / phi_factor;
484  occupancy_vs_ieta_HE2->Fill(float(ieta), cnorm);
485  cnorm = sumphi_he3 / phi_factor;
486  occupancy_vs_ieta_HE3->Fill(float(ieta), cnorm);
487  cnorm = sumphi_ho / phi_factor;
488  occupancy_vs_ieta_HO->Fill(float(ieta), cnorm);
489  cnorm = sumphi_hf1 / phi_factor;
490  occupancy_vs_ieta_HF1->Fill(float(ieta), cnorm);
491  cnorm = sumphi_hf2 / phi_factor;
492  occupancy_vs_ieta_HF2->Fill(float(ieta), cnorm);
493 
494  if (useAllHistos){
495  // RMS vs ieta (Emean's one)
496  cnorm = emean_vs_ieta_HB1->getBinError(i);
497  RMS_vs_ieta_HB1->Fill(ieta,cnorm);
498  cnorm = emean_vs_ieta_HB2->getBinError(i);
499  RMS_vs_ieta_HB2->Fill(ieta,cnorm);
500  cnorm = emean_vs_ieta_HE1->getBinError(i);
501  RMS_vs_ieta_HE1->Fill(ieta,cnorm);
502  cnorm = emean_vs_ieta_HE2->getBinError(i);
503  RMS_vs_ieta_HE2->Fill(ieta,cnorm);
504  cnorm = emean_vs_ieta_HE1->getBinError(i);
505  RMS_vs_ieta_HE3->Fill(ieta,cnorm);
506  cnorm = emean_vs_ieta_HB1->getBinError(i);
507  RMS_vs_ieta_HO->Fill(ieta,cnorm);
508  cnorm = emean_vs_ieta_HB1->getBinError(i);
509  RMS_vs_ieta_HF1->Fill(ieta,cnorm);
510  cnorm = emean_vs_ieta_HB1->getBinError(i);
511  RMS_vs_ieta_HF2->Fill(ieta,cnorm);
512  }
513  } // end of i-loop
514 
515 
516  // RMS seq (not drawn)
517  if(useAllHistos){
518  nx = emean_seqHB1->getNbinsX();
519  for(int ibin = 1; ibin <= nx; ibin++ ){
520  cnorm = emean_seqHB1->getBinError(ibin);
521  RMS_seq_HB1->setBinContent(ibin, cnorm);
522  cnorm = emean_seqHB2->getBinError(ibin);
523  RMS_seq_HB2->setBinContent(ibin, cnorm);
524  cnorm = emean_seqHO->getBinError(ibin);
525  RMS_seq_HO->setBinContent(ibin, cnorm);
526  }
527  nx = emean_seqHE1->getNbinsX();
528  for(int ibin = 1; ibin <= nx; ibin++ ){
529  cnorm = emean_seqHE1->getBinError(ibin);
530  RMS_seq_HE1->setBinContent(ibin, cnorm);
531  cnorm = emean_seqHE2->getBinError(ibin);
532  RMS_seq_HE2->setBinContent(ibin, cnorm);
533  cnorm = emean_seqHE3->getBinError(ibin);
534  RMS_seq_HE3->setBinContent(ibin, cnorm);
535  }
536  nx = emean_seqHF1->getNbinsX();
537  for(int ibin = 1; ibin <= nx; ibin++ ){
538  cnorm = emean_seqHF1->getBinError(ibin);
539  RMS_seq_HF1->setBinContent(ibin, cnorm);
540  cnorm = emean_seqHF2->getBinError(ibin);
541  RMS_seq_HF2->setBinContent(ibin, cnorm);
542  }
543  }
544  //Status Word (drawn)
545  nx = RecHit_StatusWord_HB->getNbinsX();
546  for (int ibin = 1; ibin <= nx; ibin++) {
547  cnorm = RecHit_StatusWord_HB->getBinContent(ibin) / (fev * 2592.);
548  RecHit_StatusWord_HB->setBinContent(ibin,cnorm);
549 
550  cnorm = RecHit_StatusWord_HE->getBinContent(ibin) / (fev * 2592.);
551  RecHit_StatusWord_HE->setBinContent(ibin,cnorm);
552 
553  cnorm = RecHit_StatusWord_HO->getBinContent(ibin) / (fev * 2160.);
554  RecHit_StatusWord_HO->setBinContent(ibin,cnorm);
555 
556  cnorm = RecHit_StatusWord_HF->getBinContent(ibin) / (fev * 1728.);
557  RecHit_StatusWord_HF->setBinContent(ibin,cnorm);
558 
559  cnorm = RecHit_Aux_StatusWord_HB->getBinContent(ibin) / (fev * 2592.);
560  RecHit_Aux_StatusWord_HB->setBinContent(ibin,cnorm);
561 
562  cnorm = RecHit_Aux_StatusWord_HE->getBinContent(ibin) / (fev * 2592.);
563  RecHit_Aux_StatusWord_HE->setBinContent(ibin,cnorm);
564 
565  cnorm = RecHit_Aux_StatusWord_HO->getBinContent(ibin) / (fev * 2160.);
566  RecHit_Aux_StatusWord_HO->setBinContent(ibin,cnorm);
567 
568  cnorm = RecHit_Aux_StatusWord_HF->getBinContent(ibin) / (fev * 1728.);
569  RecHit_Aux_StatusWord_HF->setBinContent(ibin,cnorm);
570  }
571  //HF 2-bit status word (not drawn)
572  if(useAllHistos){
573  nx = RecHit_StatusWord_HF67->getNbinsX();
574  for (int ibin = 1; ibin <= nx; ibin++) {
575  cnorm = RecHit_StatusWord_HF67->getBinContent(ibin) / (fev * 1728.);
576  RecHit_StatusWord_HF67->setBinContent(ibin,cnorm);
577  }
578  }
579  }
580 
581  return 1;
582 }
583 
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
int i
Definition: DBlmapReader.cc:9
virtual void endRun(const edm::Run &run, const edm::EventSetup &c)
void setBinContent(int binx, double content)
set content of bin (1-D)
std::vector< std::string > getSubdirs(void) const
Definition: DQMStore.cc:1419
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE")
Definition: DQMStore.cc:2113
double getEntries(void) const
get # of entries
int getNbinsY(void) const
get # of bins in Y-axis
void Fill(long long x)
int iEvent
Definition: GenABIO.cc:243
virtual void analyze(const edm::Event &, const edm::EventSetup &)
int j
Definition: DBlmapReader.cc:9
std::string getName(Reflex::Type &cc)
Definition: ClassFiller.cc:18
virtual void beginJob(void)
std::vector< MonitorElement * > getContents(const std::string &path) const
Definition: DQMStore.cc:1497
int HcalRecHitsEndjob(const std::vector< MonitorElement * > &hcalMEs)
double getBinError(int binx) const
get uncertainty on content of bin (1-D) - See TH1::GetBinError for details
HcalRecHitsDQMClient(const edm::ParameterSet &)
virtual void endLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
double getBinContent(int binx) const
get content of bin (1-D)
virtual void beginRun(const edm::Run &run, const edm::EventSetup &c)
int getNbinsX(void) const
get # of bins in X-axis
tuple cout
Definition: gather_cfg.py:121
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:429
Definition: Run.h:33