CMS 3D CMS Logo

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