CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
CSCAFEBThrAnalysis Class Reference

#include <CSCAFEBThrAnalysis.h>

Public Member Functions

void analyze (const CSCWireDigiCollection &wirecltn)
 
 CSCAFEBThrAnalysis ()
 
void done ()
 
void setup (const std::string &histoFileName)
 

Private Member Functions

void bookForId (int flag, const int &idint, const std::string &ids)
 
void hf1ForId (std::map< int, TH1 * > &mp, int flag, const int &id, float &x, float w)
 
void hf2ForId (std::map< int, TH2 * > &mp, int flag, const int &id, float &x, float &y, float w)
 

Private Attributes

int BegDac
 
const CSCToAFEB csctoafeb
 Layer, wire to AFEB, channel conversion. More...
 
int EndDac
 
int EvDac
 
TFile * hist_file
 ROOT hist file. More...
 
int unsigned indDac
 
std::map< int, std::vector< std::vector< float > > > m_res_for_db
 
std::map< int, std::vector< std::vector< int > > > m_wire_dac
 
std::map< int, std::vector< int > > m_wire_ev
 Maps - per event, threshold curve, fit results. More...
 
std::map< int, TH2 * > mh_AfebChi2perNDF
 
std::map< int, TH2 * > mh_AfebDac
 
std::map< int, TH2 * > mh_AfebNDF
 
std::map< int, TH2 * > mh_AfebNoisePar
 
std::map< int, TH2 * > mh_AfebThrPar
 
std::map< int, TH1 * > mh_ChanEff
 Histogram maps. More...
 
std::map< int, TH2 * > mh_FirstTime
 
int nmbev
 Statistics. More...
 
int nmbev_no_wire
 
int npulses
 DAC info. More...
 
int StepDac
 
std::vector< float > vecDac
 
std::vector< int > vecDacOccup
 

Detailed Description

Author

Definition at line 18 of file CSCAFEBThrAnalysis.h.

Constructor & Destructor Documentation

CSCAFEBThrAnalysis::CSCAFEBThrAnalysis ( )

Definition at line 10 of file CSCAFEBThrAnalysis.cc.

References BegDac, EndDac, EvDac, hist_file, indDac, m_res_for_db, m_wire_dac, mh_AfebDac, mh_ChanEff, mh_FirstTime, nmbev, nmbev_no_wire, npulses, StepDac, vecDac, and vecDacOccup.

10  {
11 
12 hist_file=nullptr; // set to null
13 
14 nmbev=0;
16 
17 npulses=100;
18 vecDac.clear();
19 BegDac=1;
20 EndDac=29;
21 EvDac=1;
22 StepDac=1;
23 indDac=0;
24 
25 vecDacOccup.assign(150,0);
26 m_wire_dac.clear();
27 m_res_for_db.clear();
28 mh_ChanEff.clear();
29 mh_FirstTime.clear();
30 mh_AfebDac.clear();
31 
32 }
std::map< int, TH2 * > mh_FirstTime
std::map< int, std::vector< std::vector< float > > > m_res_for_db
std::map< int, TH1 * > mh_ChanEff
Histogram maps.
std::vector< int > vecDacOccup
std::map< int, TH2 * > mh_AfebDac
std::vector< float > vecDac
int nmbev
Statistics.
TFile * hist_file
ROOT hist file.
std::map< int, std::vector< std::vector< int > > > m_wire_dac

Member Function Documentation

void CSCAFEBThrAnalysis::analyze ( const CSCWireDigiCollection wirecltn)

Store DAC

Plot time bin of the first hit vs AFEB channels

Store time bin of the first hit into map

Accumulate hits into map of wires vs DAC

Definition at line 135 of file CSCAFEBThrAnalysis.cc.

References BegDac, csctoafeb, CSCDetId::endcap(), EndDac, CSCToAFEB::getAfebCh(), CSCToAFEB::getAfebPos(), CSCToAFEB::getMaxWire(), hf2ForId(), mps_fire::i, indDac, m_wire_dac, m_wire_ev, mh_FirstTime, nmbev, nmbev_no_wire, relativeConstraints::ring, relativeConstraints::station, StepDac, vecDac, vecDacOccup, x, and y.

Referenced by CSCAFEBAnalyzer::analyze().

135  {
136 
137 std::ostringstream ss;
138 std::map<int,std::vector<int> >::iterator intIt;
139 std::map<int, std::vector<std::vector<int> > >::iterator wiredacIt;
140 
141 std::vector<int> vec;
142 int afeb,ch;
143 float x,y;
144 
145 m_wire_ev.clear();
146 
148 
149 nmbev++;
150 //indDac=(nmbev-1)/EvDac;
151 float dac=BegDac+StepDac*indDac;
152 if(vecDac.size() <= indDac) vecDac.push_back(dac);
153 
154 //std::cout<<" Event "<<nmbev;
155 //std::cout<<" "<<indDac<<" "<<vecDac[indDac]<<std::endl;
156 
157 //Anode wires
158 
160  if(wirecltn.begin() == wirecltn.end()) nmbev_no_wire++;
161 
162  if(wirecltn.begin() != wirecltn.end()) {
163 
165 
166  for (wiredetUnitIt=wirecltn.begin();
167  wiredetUnitIt!=wirecltn.end();
168  ++wiredetUnitIt){
169 
170  const CSCDetId& id = (*wiredetUnitIt).first;
171 
172  const int idchamber=id.endcap()*10000 +id.station()*1000+
173  id.ring()*100 +id.chamber();
174  const int idlayer =id.endcap()*100000+id.station()*10000+
175  id.ring()*1000+id.chamber()*10+id.layer();
176 
177  // std::cout<<idchamber<<" "<<idlayer<<std::endl;
178 
179  const int maxwire=csctoafeb.getMaxWire(id.station(),id.ring());
180  std::vector<int> wireplane(maxwire,0);
181 
182  const CSCWireDigiCollection::Range& range = (*wiredetUnitIt).second;
184  range.first; digiIt!=range.second; ++digiIt){
185 
186  int iwire=(*digiIt).getWireGroup();
187  if(iwire<=maxwire) {
188  if(wireplane[iwire-1]==0) {
189  wireplane[iwire-1]=(*digiIt).getBeamCrossingTag()+1;
190  ch=csctoafeb.getAfebCh(id.layer(),(*digiIt).getWireGroup());
191  afeb=csctoafeb.getAfebPos(id.layer(),(*digiIt).getWireGroup());
192 
194 
195  x=(afeb-1)*16+ch;
196  y=wireplane[iwire-1];
197  hf2ForId(mh_FirstTime, 100, idchamber,x, y, 1.0);
198 
199  } // end if wireplane[iwire-1]==0
200  } // end if iwire<=csctoafeb.getMaxWire(id.station(),id.ring()
201  } // end of for digis in layer
202 
204 
205  if(m_wire_ev.find(idlayer) == m_wire_ev.end())
206  m_wire_ev[idlayer]=wireplane;
207 
208  } // end of cycle on detUnit
209 
210 
212 
213  for(intIt=m_wire_ev.begin(); intIt!=m_wire_ev.end(); ++intIt) {
214  const int idwirev=(*intIt).first;
215  const std::vector<int> wiretemp=(*intIt).second; // What for?
216  int nsize=EndDac-BegDac+1;
217  std::vector<int> zer(nsize,0);
218 
219  wiredacIt=m_wire_dac.find(idwirev);
220  if(wiredacIt==m_wire_dac.end()) {
221  for(unsigned int j=0;j<wiretemp.size();j++)
222  m_wire_dac[idwirev].push_back(zer);
223  wiredacIt=m_wire_dac.find(idwirev);
224 // std::cout<<idwirev<<" "<<wiredacIt->second.size()<<" "<<
225 // wiredacIt->second[0].size()<<std::endl;
226  }
227  for(unsigned int i=0;i<(*intIt).second.size();i++)
228  if((*intIt).second[i]>0) wiredacIt->second[i][indDac]=
229  wiredacIt->second[i][indDac]+1;
230  } // end of adding hits to the map of wire/DAC
231  } // end of if wire collection not empty
232  indDac++;
233  if(dac==(float)EndDac) indDac=0;
234 } // end of void CSCAFEBThrAnalysis
int getAfebCh(int layer, int wiregroup) const
return AFEB channel number
Definition: CSCToAFEB.cc:14
std::map< int, TH2 * > mh_FirstTime
std::map< int, std::vector< int > > m_wire_ev
Maps - per event, threshold curve, fit results.
int endcap() const
Definition: CSCDetId.h:93
std::vector< int > vecDacOccup
int getMaxWire(int station, int ring) const
return max. number of wiregroups per layer
Definition: CSCToAFEB.cc:50
std::vector< float > vecDac
const CSCToAFEB csctoafeb
Layer, wire to AFEB, channel conversion.
std::vector< CSCWireDigi >::const_iterator const_iterator
int nmbev
Statistics.
int getAfebPos(int layer, int wiregroup) const
return AFEB position number
Definition: CSCToAFEB.cc:20
std::map< int, std::vector< std::vector< int > > > m_wire_dac
std::pair< const_iterator, const_iterator > Range
void hf2ForId(std::map< int, TH2 * > &mp, int flag, const int &id, float &x, float &y, float w)
void CSCAFEBThrAnalysis::bookForId ( int  flag,
const int &  idint,
const std::string &  ids 
)
private

Definition at line 40 of file CSCAFEBThrAnalysis.cc.

References hist_file, mh_AfebChi2perNDF, mh_AfebDac, mh_AfebNDF, mh_AfebNoisePar, mh_AfebThrPar, mh_ChanEff, and mh_FirstTime.

Referenced by hf1ForId(), and hf2ForId().

41  {
42  hist_file->cd();
43 
44  std::ostringstream ss;
45 
46  if(flag==100) {
47  ss <<idint<<"_Anode_First_Time";
48  mh_FirstTime[idint]=new TH2F(ss.str().c_str(),"",675,0.0,675.0,50,0.0,10.0);
49  mh_FirstTime[idint]->GetXaxis()->SetTitle("(AFEB-1)*16+ch");
50  mh_FirstTime[idint]->GetYaxis()->SetTitle("Anode First Time Bin");
51  mh_FirstTime[idint]->SetOption("BOX");
52  ss.str(""); // clear
53  }
54 
55  if(flag==101) {
56  ss <<idint<<"_Anode_Chan_Eff";
57  mh_ChanEff[idint]=new TH1F(ss.str().c_str(),"",675,0.0,675.0);
58  mh_ChanEff[idint]->GetXaxis()->SetTitle("(AFEB-1)*16+ch");
59  mh_ChanEff[idint]->GetYaxis()->SetTitle("Entries");
60  ss.str(""); // clear
61  }
62 
63  if(flag==200) {
64  ss <<idint<<"_Anode_AfebDac";
65  mh_AfebDac[idint]=new TH2F(ss.str().c_str(),"",75,0.0,75.0, 50,0.0,50.0);
66  mh_AfebDac[idint]->GetXaxis()->SetTitle("Threshold DAC");
67  mh_AfebDac[idint]->GetYaxis()->SetTitle("AFEB Channel Occupancy");
68  mh_AfebDac[idint]->SetOption("COL");
69  ss.str(""); // clear
70  }
71 
72  if(flag==300) {
73  ss <<idint<<"_Anode_AfebThrPar";
74  mh_AfebThrPar[idint]=new TH2F(ss.str().c_str(),"",700,0.0,700.0, 50,0.0,50.0);
75  mh_AfebThrPar[idint]->GetXaxis()->SetTitle("(AFEB-1)*16+ch");
76  mh_AfebThrPar[idint]->GetYaxis()->SetTitle("AFEB Channel Threshold (DAC)");
77  mh_AfebThrPar[idint]->SetOption("BOX");
78  ss.str(""); // clear
79  }
80 
81  if(flag==400) {
82  ss <<idint<<"_Anode_AfebNoisePar";
83  mh_AfebNoisePar[idint]=new TH2F(ss.str().c_str(),"",700,0.0,700.0, 50,0.0,5.0);
84  mh_AfebNoisePar[idint]->GetXaxis()->SetTitle("(AFEB-1)*16+ch");
85  mh_AfebNoisePar[idint]->GetYaxis()->SetTitle("AFEB Channel Noise (DAC)");
86  mh_AfebNoisePar[idint]->SetOption("BOX");
87  ss.str(""); // clear
88  }
89 
90  if(flag==500) {
91  ss <<idint<<"_Anode_AfebNDF";
92  mh_AfebNDF[idint]=new TH2F(ss.str().c_str(),"",700,0.0,700.0, 25,-5.0,20.0);
93  mh_AfebNDF[idint]->GetXaxis()->SetTitle("(AFEB-1)*16+ch");
94  mh_AfebNDF[idint]->GetYaxis()->SetTitle("AFEB Channel Fit NDF");
95  mh_AfebNDF[idint]->SetOption("BOX");
96  ss.str(""); // clear
97  }
98 
99  if(flag==600) {
100  ss <<idint<<"_Anode_AfebChi2perNDF";
101  mh_AfebChi2perNDF[idint]=new TH2F(ss.str().c_str(),"",700,0.0,700.0, 50,0.0,10.0);
102  mh_AfebChi2perNDF[idint]->GetXaxis()->SetTitle("(AFEB-1)*16+ch");
103  mh_AfebChi2perNDF[idint]->GetYaxis()->SetTitle("AFEB Channel Fit Chi2/NDF");
104  mh_AfebChi2perNDF[idint]->SetOption("BOX");
105  ss.str(""); // clear
106  }
107 }
std::map< int, TH2 * > mh_FirstTime
std::map< int, TH1 * > mh_ChanEff
Histogram maps.
std::map< int, TH2 * > mh_AfebChi2perNDF
std::map< int, TH2 * > mh_AfebDac
std::map< int, TH2 * > mh_AfebNDF
TFile * hist_file
ROOT hist file.
std::map< int, TH2 * > mh_AfebNoisePar
std::map< int, TH2 * > mh_AfebThrPar
void CSCAFEBThrAnalysis::done ( )

Plot "efficiency" vs AFEB channels

Fitting threshold curve

Histogram fit results for given CSC vs wire defined as x=(afeb-1)*16+ch

Threshold

Noise

NDF

Chi2/NDF

Prepare vector of fit results

Store fit results to map of wire vectors of vectors of results

Definition at line 237 of file CSCAFEBThrAnalysis.cc.

References BegDac, gather_cfg::cout, CSCFitAFEBThr::CSCFitAFEBThr(), csctoafeb, EndDac, objects.autophobj::float, CSCToAFEB::getAfebCh(), CSCToAFEB::getAfebPos(), hf1ForId(), hf2ForId(), hist_file, mps_fire::i, indDac, m_res_for_db, m_wire_dac, mh_AfebChi2perNDF, mh_AfebDac, mh_AfebNDF, mh_AfebNoisePar, mh_AfebThrPar, mh_ChanEff, nmbev, nmbev_no_wire, npulses, CSCobject::obj, findQualityFiles::size, CSCFitAFEBThr::ThresholdNoise(), vecDac, vecDacOccup, x, and y.

Referenced by CSCAFEBAnalyzer::endJob().

237  {
238 
239  float x,y;
240 
241  //This is for DB transfer
242  CSCobject *cn = new CSCobject();
243  // Unused variable dbon caused compiler warning.
244  //condbon *dbon = new condbon();
245  new condbon();
246  // Note: cn and dbon pointers are never freed, I think. This leaks memory!!!
247 
248  std::map<int, std::vector<std::vector<int> > >::iterator mwiredacIt;
249  std::map<int, std::vector<std::vector<float> > >::iterator mresfordbIt;
250  std::vector<int>::iterator vecIt;
251 
252  std::cout<<"Events analyzed "<<nmbev<<std::endl;
253  std::cout<<"Events no anodes "<<nmbev_no_wire<<std::endl<<std::endl;
254 
255  std::cout<<"DAC occupancy"<<std::endl;
256  size_t ndacsize=EndDac-BegDac+1;
257  for(size_t i=0;i<ndacsize;i++) std::cout
258  <<" "<<vecDacOccup[i];
259  std::cout<<"\n\n"<<std::endl;
260 
261  std::vector<float> inputx;
262  std::vector<float> inputy;
263 
264  std::vector<float> mypar(2, 0.0);
265  std::vector<float> ermypar(2, 0.0);
266  float ercorr, chisq, edm;
267  int ndf,niter;
268 
269  int ch, afeb, idchmb;
270 
271  CSCFitAFEBThr * fitAnodeThr;
272 
273  std::vector<float> fitres(4,0);
274 
275 // std::cout<<"Threshold curves:\n"<<std::endl;
276 
277  for(mwiredacIt=m_wire_dac.begin();mwiredacIt!=m_wire_dac.end();++mwiredacIt){
278  int idwiredac=(*mwiredacIt).first;
279 
280  int layer=idwiredac-(idwiredac/10)*10;
281  idchmb=idwiredac/10;
282 
283  for(int unsigned iwire=0; iwire<mwiredacIt->second.size();iwire++) {
284 
285  afeb=csctoafeb.getAfebPos(layer,iwire+1);
286  ch=csctoafeb.getAfebCh(layer,iwire+1);
287  int afebid=(idwiredac/10)*100+csctoafeb.getAfebPos(layer,iwire+1);
288 
289  indDac=0;
290  for(vecIt=mwiredacIt->second[iwire].begin();
291  vecIt!=mwiredacIt->second[iwire].end(); ++vecIt) {
292 
293  x=vecDac[indDac]; y=*vecIt;
294  hf2ForId(mh_AfebDac, 200, afebid,x, y,1.0);
295 
297  if(indDac==0) {
298  x=(afeb-1)*16+ch;
299  y=*vecIt;
300  hf1ForId(mh_ChanEff, 101, idchmb, x, y);
301  }
302 
303  inputx.push_back(x);
304  inputy.push_back(y);
305 
306  indDac++;
307  }
308  // end of DAC cycle to form vectors of input data (inputx,inputy)for fit
309 
310 // std::cout<<afebid<<" "<<ch<<std::endl;
311 // for(unsigned int i=0;i<inputx.size();i++)
312 // std::cout<<" "<<inputy[i];
313 // std::cout<<std::endl;
314 
315 
316  for(unsigned int i=0;i<2;i++) {mypar[i]=0.0; ermypar[i]=0.0;}
317  ercorr=0.0;
318  chisq=0.0;
319  ndf=0;
320  niter=0;
321  edm=0.0;
322 
324  fitAnodeThr=new CSCFitAFEBThr();
325 
326 fitAnodeThr->ThresholdNoise(inputx,inputy,npulses,vecDacOccup,mypar,ermypar,ercorr,chisq,ndf,niter,edm);
327  delete fitAnodeThr;
328 
329 // std::cout<<"Fit "<<mypar[0]<<" "<<mypar[1]<<" "<<ndf<<" "<<chisq
330 // <<std::endl<<std::endl;
331 
333 
334  x=(afeb-1)*16+ch;
335 
337  y=mypar[0];
338  hf2ForId(mh_AfebThrPar, 300, idchmb,x, y, 1.0);
339 
341  y=mypar[1];
342  hf2ForId(mh_AfebNoisePar, 400, idchmb,x, y, 1.0);
343 
345  y=ndf;
346  hf2ForId(mh_AfebNDF, 500, idchmb,x, y, 1.0);
347 
349  y=0.0;
350  if(ndf>0) y=chisq/(float)ndf;
351  hf2ForId(mh_AfebChi2perNDF, 600, idchmb,x, y, 1.0);
352 
354  fitres[0]=mypar[0];
355  fitres[1]=mypar[1];
356  fitres[2]=ndf;
357  fitres[3]=0.0;
358  if(ndf>0) fitres[3]=chisq/(float)ndf;
359 
361 
362  mresfordbIt=m_res_for_db.find(idwiredac);
363  if(mresfordbIt==m_res_for_db.end())
364  m_res_for_db[idwiredac].push_back(fitres);
365  else m_res_for_db[idwiredac].push_back(fitres);
366 
367  inputx.clear();
368  inputy.clear();
369 
370 } // end for(int iwire=0)
371 } // end of iteration thru m_wire_dac map
372 
373  std::cout<<"Size of map for DB "<<m_res_for_db.size()<<std::endl;
374 
375  std::cout<<"The following CSCs will go to DB"<<std::endl<<std::endl;
376 
377  for(mresfordbIt=m_res_for_db.begin(); mresfordbIt!=m_res_for_db.end();
378  ++mresfordbIt) {
379  int idlayer=(*mresfordbIt).first;
380  idchmb=idlayer/10;
381  int layer=idlayer-idchmb*10;
382  std::cout<<"CSC "<<idchmb<<" Layer "<<layer<<" "
383  <<(*mresfordbIt).second.size()<<std::endl;
384  }
385 
386  for(mresfordbIt=m_res_for_db.begin(); mresfordbIt!=m_res_for_db.end();
387  ++mresfordbIt) {
388  int idlayer=(*mresfordbIt).first;
389 
390  //This is for DB transfer
391  int size = (*mresfordbIt).second.size();
392  cn->obj[idlayer].resize(size);
393 
394  for (unsigned int i=0;i<(*mresfordbIt).second.size();i++) {
395  std::cout<<idlayer<<" "<<i+1<<" ";
396 
397  for(int j=0;j<4;j++)
398  std::cout<< (*mresfordbIt).second[i][j]<<" ";
399  std::cout<<std::endl;
400 
401  //This is for DB transfer
402  cn->obj[idlayer][i].resize(4);
403  cn->obj[idlayer][i][0] = (*mresfordbIt).second[i][0];
404  cn->obj[idlayer][i][1] = (*mresfordbIt).second[i][1];
405  cn->obj[idlayer][i][2] = (*mresfordbIt).second[i][2];
406  cn->obj[idlayer][i][3] = (*mresfordbIt).second[i][3];
407  }
408  }
409 
410  //send data to DB
411  //dbon->cdbon_last_run("afeb_thresholds",&run);
412  //std::cout<<"Last AFEB thresholds run "<<run<<" for run file "<<myname<<" saved "<<myTime<<std::endl;
413  //if(debug) dbon->cdbon_write(cn,"afeb_thresholds",run+1,myTime);
414 
415  if(hist_file!=nullptr) { // if there was a histogram file...
416  hist_file->Write(); // write out the histrograms
417  delete hist_file; // close and delete the file
418  hist_file=nullptr; // set to zero to clean up
419  std::cout << "Hist. file was closed\n";
420  }
421 
422  std::cout<<" End of CSCAFEBThrAnalysis"<<std::endl;
423 }
size
Write out results.
int getAfebCh(int layer, int wiregroup) const
return AFEB channel number
Definition: CSCToAFEB.cc:14
std::map< int, std::vector< std::vector< float > > > m_res_for_db
virtual bool ThresholdNoise(const std::vector< float > &inputx, const std::vector< float > &inputy, const int &npulses, std::vector< int > &dacoccup, std::vector< float > &mypar, std::vector< float > &ermypar, float &ercorr, float &chisq, int &ndf, int &niter, float &edm) const
std::map< int, TH1 * > mh_ChanEff
Histogram maps.
std::vector< int > vecDacOccup
std::map< int, TH2 * > mh_AfebChi2perNDF
std::map< int, TH2 * > mh_AfebDac
std::vector< float > vecDac
const CSCToAFEB csctoafeb
Layer, wire to AFEB, channel conversion.
std::map< int, TH2 * > mh_AfebNDF
int nmbev
Statistics.
void hf1ForId(std::map< int, TH1 * > &mp, int flag, const int &id, float &x, float w)
HLT enums.
TFile * hist_file
ROOT hist file.
int getAfebPos(int layer, int wiregroup) const
return AFEB position number
Definition: CSCToAFEB.cc:20
std::map< int, TH2 * > mh_AfebNoisePar
std::map< int, std::vector< std::vector< int > > > m_wire_dac
std::map< int, std::vector< std::vector< float > > > obj
Definition: CSCobject.h:12
std::map< int, TH2 * > mh_AfebThrPar
void hf2ForId(std::map< int, TH2 * > &mp, int flag, const int &id, float &x, float &y, float w)
void CSCAFEBThrAnalysis::hf1ForId ( std::map< int, TH1 * > &  mp,
int  flag,
const int &  id,
float &  x,
float  w 
)
private

Definition at line 109 of file CSCAFEBThrAnalysis.cc.

References bookForId(), and h.

Referenced by done().

110  {
111 
112  std::map<int,TH1*>::iterator h;
113  h=mp.find(id);
114  if (h==mp.end()) {
115  bookForId(flag,id,"");
116  h=mp.find(id);
117  }
118  h->second->Fill(x,w);
119 }
const double w
Definition: UKUtility.cc:23
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
void bookForId(int flag, const int &idint, const std::string &ids)
void CSCAFEBThrAnalysis::hf2ForId ( std::map< int, TH2 * > &  mp,
int  flag,
const int &  id,
float &  x,
float &  y,
float  w 
)
private

Definition at line 121 of file CSCAFEBThrAnalysis.cc.

References bookForId(), and h.

Referenced by analyze(), and done().

122  {
123 
124  std::map<int,TH2*>::iterator h;
125  h=mp.find(id);
126  if (h==mp.end()) {
127  bookForId(flag,id,"");
128  h=mp.find(id);
129  }
130  h->second->Fill(x,y,w);
131 }
const double w
Definition: UKUtility.cc:23
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
void bookForId(int flag, const int &idint, const std::string &ids)
void CSCAFEBThrAnalysis::setup ( const std::string &  histoFileName)

open the histogram file

Definition at line 34 of file CSCAFEBThrAnalysis.cc.

References hist_file.

Referenced by CSCAFEBAnalyzer::CSCAFEBAnalyzer().

34  {
36  hist_file=new TFile(histoFileName.c_str(),"RECREATE");
37  hist_file->cd();
38 }
TFile * hist_file
ROOT hist file.

Member Data Documentation

int CSCAFEBThrAnalysis::BegDac
private

Definition at line 38 of file CSCAFEBThrAnalysis.h.

Referenced by analyze(), CSCAFEBThrAnalysis(), and done().

const CSCToAFEB CSCAFEBThrAnalysis::csctoafeb
private

Layer, wire to AFEB, channel conversion.

Definition at line 51 of file CSCAFEBThrAnalysis.h.

Referenced by analyze(), and done().

int CSCAFEBThrAnalysis::EndDac
private

Definition at line 39 of file CSCAFEBThrAnalysis.h.

Referenced by analyze(), CSCAFEBThrAnalysis(), and done().

int CSCAFEBThrAnalysis::EvDac
private

Definition at line 40 of file CSCAFEBThrAnalysis.h.

Referenced by CSCAFEBThrAnalysis().

TFile* CSCAFEBThrAnalysis::hist_file
private

ROOT hist file.

Definition at line 54 of file CSCAFEBThrAnalysis.h.

Referenced by bookForId(), CSCAFEBThrAnalysis(), done(), and setup().

int unsigned CSCAFEBThrAnalysis::indDac
private

Definition at line 37 of file CSCAFEBThrAnalysis.h.

Referenced by analyze(), CSCAFEBThrAnalysis(), and done().

std::map<int, std::vector<std::vector<float> > > CSCAFEBThrAnalysis::m_res_for_db
private

Definition at line 48 of file CSCAFEBThrAnalysis.h.

Referenced by CSCAFEBThrAnalysis(), and done().

std::map<int, std::vector<std::vector<int> > > CSCAFEBThrAnalysis::m_wire_dac
private

Definition at line 47 of file CSCAFEBThrAnalysis.h.

Referenced by analyze(), CSCAFEBThrAnalysis(), and done().

std::map<int, std::vector<int> > CSCAFEBThrAnalysis::m_wire_ev
private

Maps - per event, threshold curve, fit results.

Definition at line 46 of file CSCAFEBThrAnalysis.h.

Referenced by analyze().

std::map<int, TH2*> CSCAFEBThrAnalysis::mh_AfebChi2perNDF
private

Definition at line 64 of file CSCAFEBThrAnalysis.h.

Referenced by bookForId(), and done().

std::map<int, TH2*> CSCAFEBThrAnalysis::mh_AfebDac
private

Definition at line 60 of file CSCAFEBThrAnalysis.h.

Referenced by bookForId(), CSCAFEBThrAnalysis(), and done().

std::map<int, TH2*> CSCAFEBThrAnalysis::mh_AfebNDF
private

Definition at line 63 of file CSCAFEBThrAnalysis.h.

Referenced by bookForId(), and done().

std::map<int, TH2*> CSCAFEBThrAnalysis::mh_AfebNoisePar
private

Definition at line 62 of file CSCAFEBThrAnalysis.h.

Referenced by bookForId(), and done().

std::map<int, TH2*> CSCAFEBThrAnalysis::mh_AfebThrPar
private

Definition at line 61 of file CSCAFEBThrAnalysis.h.

Referenced by bookForId(), and done().

std::map<int, TH1*> CSCAFEBThrAnalysis::mh_ChanEff
private

Histogram maps.

Definition at line 57 of file CSCAFEBThrAnalysis.h.

Referenced by bookForId(), CSCAFEBThrAnalysis(), and done().

std::map<int, TH2*> CSCAFEBThrAnalysis::mh_FirstTime
private

Definition at line 59 of file CSCAFEBThrAnalysis.h.

Referenced by analyze(), bookForId(), and CSCAFEBThrAnalysis().

int CSCAFEBThrAnalysis::nmbev
private

Statistics.

Definition at line 32 of file CSCAFEBThrAnalysis.h.

Referenced by analyze(), CSCAFEBThrAnalysis(), and done().

int CSCAFEBThrAnalysis::nmbev_no_wire
private

Definition at line 33 of file CSCAFEBThrAnalysis.h.

Referenced by analyze(), CSCAFEBThrAnalysis(), and done().

int CSCAFEBThrAnalysis::npulses
private

DAC info.

Definition at line 36 of file CSCAFEBThrAnalysis.h.

Referenced by CSCAFEBThrAnalysis(), and done().

int CSCAFEBThrAnalysis::StepDac
private

Definition at line 41 of file CSCAFEBThrAnalysis.h.

Referenced by analyze(), and CSCAFEBThrAnalysis().

std::vector<float> CSCAFEBThrAnalysis::vecDac
private

Definition at line 42 of file CSCAFEBThrAnalysis.h.

Referenced by analyze(), CSCAFEBThrAnalysis(), and done().

std::vector<int> CSCAFEBThrAnalysis::vecDacOccup
private

Definition at line 43 of file CSCAFEBThrAnalysis.h.

Referenced by analyze(), CSCAFEBThrAnalysis(), and done().