CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
EcalZmassClient Class Reference
Inheritance diagram for EcalZmassClient:
edm::EDAnalyzer edm::EDConsumerBase

Public Member Functions

 EcalZmassClient (const edm::ParameterSet &)
 
 ~EcalZmassClient ()
 
- Public Member Functions inherited from edm::EDAnalyzer
 EDAnalyzer ()
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 
- Public Member Functions inherited from edm::EDConsumerBase
 EDConsumerBase ()
 
ProductHolderIndex indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndex > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndex > &) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Static Public Member Functions

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

Private Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &)
 
virtual void beginJob ()
 
virtual void beginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void beginRun (edm::Run const &, edm::EventSetup const &)
 
virtual void endJob ()
 
virtual void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void endRun (edm::Run const &, edm::EventSetup const &)
 

Private Attributes

MonitorElementh_95_ee_invMass_BB
 
MonitorElementh_95_ee_invMass_EB
 
MonitorElementh_95_ee_invMass_EE
 
MonitorElementh_e1_et
 
MonitorElementh_e1_eta
 
MonitorElementh_e1_phi
 
MonitorElementh_e2_et
 
MonitorElementh_e2_eta
 
MonitorElementh_e2_phi
 
MonitorElementh_ee_invMass
 
MonitorElementh_ee_invMass_BB
 
MonitorElementh_ee_invMass_EB
 
MonitorElementh_ee_invMass_EE
 
MonitorElementh_fitres1
 
MonitorElementh_fitres1bis
 
MonitorElementh_fitres1Chi2
 
MonitorElementh_fitres2
 
MonitorElementh_fitres2bis
 
MonitorElementh_fitres2Chi2
 
MonitorElementh_fitres3
 
MonitorElementh_fitres3bis
 
MonitorElementh_fitres3Chi2
 
std::string prefixME_
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
typedef WorkerT< EDAnalyzerWorkerType
 
- Protected Member Functions inherited from edm::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
CurrentProcessingContext const * currentContext () const
 
- 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)
 

Detailed Description

Definition at line 51 of file EcalZmassClient.cc.

Constructor & Destructor Documentation

EcalZmassClient::EcalZmassClient ( const edm::ParameterSet iConfig)
explicit

Definition at line 134 of file EcalZmassClient.cc.

References edm::ParameterSet::getUntrackedParameter(), prefixME_, and AlCaHLTBitMon_QueryRunRegistry::string.

135 {
136  prefixME_ = iConfig.getUntrackedParameter < std::string > ("prefixME", "");
137 
138 }
T getUntrackedParameter(std::string const &, T const &) const
std::string prefixME_
EcalZmassClient::~EcalZmassClient ( )

Definition at line 141 of file EcalZmassClient.cc.

142 {
143 
144  // do anything here that needs to be done at desctruction time
145  // (e.g. close files, deallocate resources etc.)
146 
147 }

Member Function Documentation

void EcalZmassClient::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
privatevirtual

Implements edm::EDAnalyzer.

Definition at line 156 of file EcalZmassClient.cc.

158 {
159 
160 }
void EcalZmassClient::beginJob ( void  )
privatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 165 of file EcalZmassClient.cc.

166 {
167 }
void EcalZmassClient::beginLuminosityBlock ( edm::LuminosityBlock const &  ,
edm::EventSetup const &   
)
privatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 804 of file EcalZmassClient.cc.

806 {
807 }
void EcalZmassClient::beginRun ( edm::Run const &  ,
edm::EventSetup const &   
)
privatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 177 of file EcalZmassClient.cc.

References DQMStore::book1D(), h_fitres1, h_fitres1bis, h_fitres1Chi2, h_fitres2, h_fitres2bis, h_fitres2Chi2, h_fitres3, h_fitres3bis, h_fitres3Chi2, cppFunctionSkipper::operator, prefixME_, and DQMStore::setCurrentFolder().

178 {
179  DQMStore *theDbe = edm::Service < DQMStore > ().operator-> ();
180 
181  theDbe->setCurrentFolder (prefixME_ + "/Zmass");
182  h_fitres1 =
183  theDbe->book1D ("Gaussian mean WP80 EB-EB",
184  "Gaussian mean WP80 EB-EB", 1, 0, 1);
185  h_fitres1bis =
186  theDbe->book1D ("Gaussian sigma WP80 EB-EB",
187  "Gaussian sigma WP80 EB-EB", 1, 0, 1);
188  h_fitres1Chi2 =
189  theDbe->book1D ("Gaussian Chi2 result over NDF WP80 EB-EB",
190  "Gaussian Chi2 result over NDF WP80 EB-EB", 1, 0, 1);
191 
192  h_fitres3 =
193  theDbe->book1D ("Gaussian mean WP80 EB-EE",
194  "Gaussian mean result WP80 EB-EE", 1, 0, 1);
195  h_fitres3bis =
196  theDbe->book1D ("Gaussian sigma WP80 EB-EE",
197  "Gaussian sigma WP80 EB-EE", 1, 0, 1);
198  h_fitres3Chi2 =
199  theDbe->book1D ("Gaussian Chi2 result over NDF WP80 EB-EE",
200  "Gaussian Chi2 result over NDF WP80 EB-EE", 1, 0, 1);
201 
202  h_fitres2 =
203  theDbe->book1D ("Gaussian mean WP80 EE-EE",
204  "Gaussian mean WP80 EE-EE", 1, 0, 1);
205  h_fitres2bis =
206  theDbe->book1D ("Gaussian sigma WP80 EE-EE",
207  "Gaussian sigma WP80 EE-EE", 1, 0, 1);
208  h_fitres2Chi2 =
209  theDbe->book1D ("Gaussian Chi2 result over NDF WP80 EE-EE",
210  "Gaussian Chi2 result over NDF WP80 EE-EE", 1, 0, 1);
211 }
MonitorElement * h_fitres1Chi2
MonitorElement * h_fitres2
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:722
MonitorElement * h_fitres1
MonitorElement * h_fitres2Chi2
MonitorElement * h_fitres3Chi2
MonitorElement * h_fitres2bis
MonitorElement * h_fitres3
MonitorElement * h_fitres3bis
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:434
MonitorElement * h_fitres1bis
std::string prefixME_
void EcalZmassClient::endJob ( void  )
privatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 171 of file EcalZmassClient.cc.

172 {
173 }
void EcalZmassClient::endLuminosityBlock ( edm::LuminosityBlock const &  ,
edm::EventSetup const &   
)
privatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 811 of file EcalZmassClient.cc.

813 {
814 }
void EcalZmassClient::endRun ( edm::Run const &  ,
edm::EventSetup const &   
)
privatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 244 of file EcalZmassClient.cc.

References alignCSCRings::e, DQMStore::get(), MonitorElement::getTH1F(), h_fitres1, h_fitres1bis, h_fitres1Chi2, h_fitres2, h_fitres2bis, h_fitres2Chi2, h_fitres3, h_fitres3bis, h_fitres3Chi2, LogTrace, timingPdfMaker::mean, mygauss(), N, cppFunctionSkipper::operator, prefixME_, plotscripts::rms(), and cms::Exception::what().

245 {
246  DQMStore *theDbe = edm::Service < DQMStore > ().operator-> ();
247 
248  LogTrace ("EwkAnalyzer") << "Parameters initialization";
249 
250  MonitorElement *me1 = theDbe->get (prefixME_ + "/Zmass/Z peak - WP80 EB-EB");
251  MonitorElement *me2 = theDbe->get (prefixME_ + "/Zmass/Z peak - WP80 EE-EE");
252  MonitorElement *me3 = theDbe->get (prefixME_ + "/Zmass/Z peak - WP80 EB-EE");
253 
254 
255  if (me1 != 0)
256  {
257  TH1F *B = me1->getTH1F ();
258  TH1F *R1 = h_fitres1->getTH1F ();
259  int division = B->GetNbinsX ();
260  float massMIN = B->GetBinLowEdge (1);
261  float massMAX = B->GetBinLowEdge (division + 1);
262  //float BIN_SIZE = B->GetBinWidth(1);
263 
264  TF1 *func = new TF1 ("mygauss", mygauss, massMIN, massMAX, 3);
265  func->SetParameter (0, 1.0);
266  func->SetParName (0, "const");
267  func->SetParameter (1, 95.0);
268  func->SetParName (1, "mean");
269  func->SetParameter (2, 5.0);
270  func->SetParName (2, "sigma");
271 
272  double stats[4];
273  R1->GetStats (stats);
274  float N = 0;
275  float mean = 0;
276  float sigma = 0;
277  N = B->GetEntries ();
278 
279  try
280  {
281  if (N != 0)
282  {
283 
284  B->Fit ("mygauss", "QR");
285  mean = fabs (func->GetParameter (1));
286  sigma = fabs (func->GetParError (1));
287  }
288 
289  if (N == 0 || mean < 50 || mean > 100 || sigma <= 0 || sigma > 20)
290  {
291  N = 1;
292  mean = 0;
293  sigma = 0;
294  }
295 
296  }
297  catch (cms::Exception& e)
298  {
299  edm::LogError ("ZFitter") << "[Zfitter]: Exception when fitting..." << e.what();
300  N = 1;
301  mean = 40;
302  sigma = 0;
303  }
304 
305  stats[0] = N;
306  stats[1] = N;
307  stats[2] = mean * N;
308  stats[3] = sigma * sigma * N + mean * mean * N;
309 
310  R1->SetEntries (N);
311  R1->PutStats (stats);
312  }
313 /*******************************************************/
314  if (me1 != 0)
315  {
316  TH1F *Bbis = me1->getTH1F ();
317  TH1F *R1bis = h_fitres1bis->getTH1F ();
318  int division = Bbis->GetNbinsX ();
319  float massMIN = Bbis->GetBinLowEdge (1);
320  float massMAX = Bbis->GetBinLowEdge (division + 1);
321  //float BIN_SIZE = B->GetBinWidth(1);
322 
323  TF1 *func = new TF1 ("mygauss", mygauss, massMIN, massMAX, 3);
324  func->SetParameter (0, 1.0);
325  func->SetParName (0, "const");
326  func->SetParameter (1, 95.0);
327  func->SetParName (1, "mean");
328  func->SetParameter (2, 5.0);
329  func->SetParName (2, "sigma");
330 
331  double stats[4];
332  R1bis->GetStats (stats);
333  float N = 0;
334  float rms = 0;
335  float rmsErr = 0;
336  N = Bbis->GetEntries ();
337 
338  try
339  {
340  if (N != 0)
341  {
342 
343  Bbis->Fit ("mygauss", "QR");
344  rms = fabs (func->GetParameter (2));
345  rmsErr = fabs (func->GetParError (2));
346  }
347 
348  if (N == 0 || rms < 0 || rms > 50 || rmsErr <= 0 || rmsErr > 50)
349  {
350  N = 1;
351  rms = 0;
352  rmsErr = 0;
353  }
354 
355  }
356  catch (cms::Exception& e)
357  {
358  edm::LogError ("ZFitter") << "[Zfitter]: Exception when fitting..." << e.what();
359  N = 1;
360  rms = 40;
361  rmsErr = 0;
362  }
363 
364  stats[0] = N;
365  stats[1] = N;
366  stats[2] = rms * N;
367  stats[3] = rmsErr * rmsErr * N + rms * rms * N;
368 
369  R1bis->SetEntries (N);
370  R1bis->PutStats (stats);
371  }
372 /****************************************/
373 
374  if (me2 != 0)
375  {
376  TH1F *E = me2->getTH1F ();
377  TH1F *R2 = h_fitres2->getTH1F ();
378  int division = E->GetNbinsX ();
379  float massMIN = E->GetBinLowEdge (1);
380  float massMAX = E->GetBinLowEdge (division + 1);
381  //float BIN_SIZE = E->GetBinWidth(1);
382 
383  TF1 *func = new TF1 ("mygauss", mygauss, massMIN, massMAX, 3);
384  func->SetParameter (0, 1.0);
385  func->SetParName (0, "const");
386  func->SetParameter (1, 95.0);
387  func->SetParName (1, "mean");
388  func->SetParameter (2, 5.0);
389  func->SetParName (2, "sigma");
390 
391  double stats[4];
392  R2->GetStats (stats);
393  float N = 0;
394  float mean = 0;
395  float sigma = 0;
396  N = E->GetEntries ();
397 
398  try
399  {
400  if (N != 0)
401  {
402  E->Fit ("mygauss", "QR");
403  mean = fabs (func->GetParameter (1));
404  sigma = fabs (func->GetParError (1));
405  }
406 
407  if (N == 0 || mean < 50 || mean > 100 || sigma <= 0 || sigma > 20)
408  {
409  N = 1;
410  mean = 0;
411  sigma = 0;
412 
413  }
414 
415  }
416  catch (cms::Exception& e)
417  {
418  edm::LogError ("ZFitter") << "[Zfitter]: Exception when fitting..." << e.what();
419  N = 1;
420  mean = 40;
421  sigma = 0;
422  }
423 
424  stats[0] = N;
425  stats[1] = N;
426  stats[2] = mean * N;
427  stats[3] = sigma * sigma * N + mean * mean * N;
428 
429  R2->SetEntries (N);
430  R2->PutStats (stats);
431  }
432 /**************************************************************************/
433 
434  if (me2 != 0)
435  {
436  TH1F *Ebis = me2->getTH1F ();
437  TH1F *R2bis = h_fitres2bis->getTH1F ();
438  int division = Ebis->GetNbinsX ();
439  float massMIN = Ebis->GetBinLowEdge (1);
440  float massMAX = Ebis->GetBinLowEdge (division + 1);
441  //float BIN_SIZE = B->GetBinWidth(1);
442 
443  TF1 *func = new TF1 ("mygauss", mygauss, massMIN, massMAX, 3);
444  func->SetParameter (0, 1.0);
445  func->SetParName (0, "const");
446  func->SetParameter (1, 95.0);
447  func->SetParName (1, "mean");
448  func->SetParameter (2, 5.0);
449  func->SetParName (2, "sigma");
450 
451  double stats[4];
452  R2bis->GetStats (stats);
453  float N = 0;
454  float rms = 0;
455  float rmsErr = 0;
456  N = Ebis->GetEntries ();
457 
458  try
459  {
460  if (N != 0)
461  {
462 
463  Ebis->Fit ("mygauss", "QR");
464  rms = fabs (func->GetParameter (2));
465  rmsErr = fabs (func->GetParError (2));
466  }
467 
468  if (N == 0 || rms < 0 || rms > 50 || rmsErr <= 0 || rmsErr > 50)
469  {
470  N = 1;
471  rms = 0;
472  rmsErr = 0;
473  }
474 
475  }
476  catch (cms::Exception& e)
477  {
478  edm::LogError ("ZFitter") << "[Zfitter]: Exception when fitting..." << e.what();
479  N = 1;
480  rms = 40;
481  rmsErr = 0;
482  }
483 
484  stats[0] = N;
485  stats[1] = N;
486  stats[2] = rms * N;
487  stats[3] = rmsErr * rmsErr * N + rms * rms * N;
488 
489  R2bis->SetEntries (N);
490  R2bis->PutStats (stats);
491  }
492 /*********************************************************************************************/
493 
494  if (me3 != 0)
495  {
496  TH1F *R3 = h_fitres3->getTH1F ();
497  TH1F *M = me3->getTH1F ();
498  int division = M->GetNbinsX ();
499  float massMIN = M->GetBinLowEdge (1);
500  float massMAX = M->GetBinLowEdge (division + 1);
501  //float BIN_SIZE = M->GetBinWidth(1);
502 
503  TF1 *func = new TF1 ("mygauss", mygauss, massMIN, massMAX, 3);
504  func->SetParameter (0, 1.0);
505  func->SetParName (0, "const");
506  func->SetParameter (1, 95.0);
507  func->SetParName (1, "mean");
508  func->SetParameter (2, 5.0);
509  func->SetParName (2, "sigma");
510 
511  double stats[4];
512  R3->GetStats (stats);
513  float N = 0;
514  float mean = 0;
515  float sigma = 0;
516  N = M->GetEntries ();
517 
518 
519  try
520  {
521  if (N != 0)
522  {
523 
524  M->Fit ("mygauss", "QR");
525  mean = fabs (func->GetParameter (1));
526  sigma = fabs (func->GetParError (1));
527  }
528  if (N == 0 || mean < 50 || mean > 100 || sigma <= 0 || sigma > 20)
529  {
530  N = 1;
531  mean = 0;
532  sigma = 0;
533  }
534 
535  }
536  catch (cms::Exception& e)
537  {
538  edm::LogError ("ZFitter") << "[Zfitter]: Exception when fitting..." << e.what();
539  N = 1;
540  mean = 40;
541  sigma = 0;
542  }
543 
544  stats[0] = N;
545  stats[1] = N;
546  stats[2] = mean * N;
547  stats[3] = sigma * sigma * N + mean * mean * N;
548 
549  R3->SetEntries (N);
550  R3->PutStats (stats);
551  }
552  /********************************************************************************/
553 
554  if (me3 != 0)
555  {
556  TH1F *Mbis = me3->getTH1F ();
557  TH1F *R3bis = h_fitres3bis->getTH1F ();
558  int division = Mbis->GetNbinsX ();
559  float massMIN = Mbis->GetBinLowEdge (1);
560  float massMAX = Mbis->GetBinLowEdge (division + 1);
561  //float BIN_SIZE = B->GetBinWidth(1);
562 
563  TF1 *func = new TF1 ("mygauss", mygauss, massMIN, massMAX, 3);
564  func->SetParameter (0, 1.0);
565  func->SetParName (0, "const");
566  func->SetParameter (1, 95.0);
567  func->SetParName (1, "mean");
568  func->SetParameter (2, 5.0);
569  func->SetParName (2, "sigma");
570 
571  double stats[4];
572  R3bis->GetStats (stats);
573  float N = 0;
574  float rms = 0;
575  float rmsErr = 0;
576  N = Mbis->GetEntries ();
577 
578  try
579  {
580  if (N != 0)
581  {
582 
583  Mbis->Fit ("mygauss", "QR");
584  rms = fabs (func->GetParameter (2));
585  rmsErr = fabs (func->GetParError (2));
586  }
587 
588  if (N == 0 || rms < 0 || rms > 50 || rmsErr <= 0 || rmsErr > 50)
589  {
590  N = 1;
591  rms = 0;
592  rmsErr = 0;
593  }
594 
595  }
596  catch (cms::Exception& e)
597  {
598  edm::LogError ("ZFitter") << "[Zfitter]: Exception when fitting..." << e.what();
599  N = 1;
600  rms = 40;
601  rmsErr = 0;
602  }
603 
604  stats[0] = N;
605  stats[1] = N;
606  stats[2] = rms * N;
607  stats[3] = rmsErr * rmsErr * N + rms * rms * N;
608 
609  R3bis->SetEntries (N);
610  R3bis->PutStats (stats);
611  }
612 
613  /*Chi2 */
614 
615  if (me1 != 0)
616  {
617  TH1F *C1 = me1->getTH1F ();
618  TH1F *S1 = h_fitres1Chi2->getTH1F ();
619  int division = C1->GetNbinsX ();
620  float massMIN = C1->GetBinLowEdge (1);
621  float massMAX = C1->GetBinLowEdge (division + 1);
622  //float BIN_SIZE = B->GetBinWidth(1);
623 
624  TF1 *func = new TF1 ("mygauss", mygauss, massMIN, massMAX, 3);
625  func->SetParameter (0, 1.0);
626  func->SetParName (0, "const");
627  func->SetParameter (1, 95.0);
628  func->SetParName (1, "mean");
629  func->SetParameter (2, 5.0);
630  func->SetParName (2, "sigma");
631 
632  double stats[4];
633  S1->GetStats (stats);
634  float N = 0;
635  float Chi2 = 0;
636  float NDF = 0;
637  N = C1->GetEntries ();
638 
639  try
640  {
641  if (N != 0)
642  {
643 
644  C1->Fit ("mygauss", "QR");
645  if ((func->GetNDF () != 0))
646  {
647  Chi2 = fabs (func->GetChisquare ()) / fabs (func->GetNDF ());
648  NDF = 0.1;
649  }
650  }
651 
652  if (N == 0 || Chi2 < 0 || NDF < 0)
653  {
654  N = 1;
655  Chi2 = 0;
656  NDF = 0;
657  }
658 
659  }
660  catch (cms::Exception& e)
661  {
662  edm::LogError ("ZFitter") << "[Zfitter]: Exception when fitting..." << e.what();
663  N = 1;
664  Chi2 = 40;
665  NDF = 0;
666  }
667 
668  stats[0] = N;
669  stats[1] = N;
670  stats[2] = Chi2 * N;
671  stats[3] = NDF * NDF * N + Chi2 * Chi2 * N;
672 
673  S1->SetEntries (N);
674  S1->PutStats (stats);
675  }
676  /**********************************************/
677 
678  if (me2 != 0)
679  {
680  TH1F *C2 = me2->getTH1F ();
681  TH1F *S2 = h_fitres2Chi2->getTH1F ();
682  int division = C2->GetNbinsX ();
683  float massMIN = C2->GetBinLowEdge (1);
684  float massMAX = C2->GetBinLowEdge (division + 1);
685  //float BIN_SIZE = B->GetBinWidth(1);
686 
687  TF1 *func = new TF1 ("mygauss", mygauss, massMIN, massMAX, 3);
688  func->SetParameter (0, 1.0);
689  func->SetParName (0, "const");
690  func->SetParameter (1, 95.0);
691  func->SetParName (1, "mean");
692  func->SetParameter (2, 5.0);
693  func->SetParName (2, "sigma");
694 
695  double stats[4];
696  S2->GetStats (stats);
697  float N = 0;
698  float Chi2 = 0;
699  float NDF = 0;
700  N = C2->GetEntries ();
701 
702  try
703  {
704  if (N != 0)
705  {
706  C2->Fit ("mygauss", "QR");
707  if (func->GetNDF () != 0)
708  {
709  Chi2 = fabs (func->GetChisquare ()) / fabs (func->GetNDF ());
710  NDF = 0.1;
711  }
712  }
713 
714  if (N == 0 || Chi2 < 0 || NDF < 0)
715  {
716  N = 1;
717  Chi2 = 0;
718  NDF = 0;
719  }
720 
721  }
722  catch (cms::Exception& e)
723  {
724  edm::LogError ("ZFitter") << "[Zfitter]: Exception when fitting..." << e.what();
725  N = 1;
726  Chi2 = 40;
727  NDF = 0;
728  }
729 
730  stats[0] = N;
731  stats[1] = N;
732  stats[2] = Chi2 * N;
733  stats[3] = NDF * NDF * N + Chi2 * Chi2 * N;
734 
735  S2->SetEntries (N);
736  S2->PutStats (stats);
737  }
738  /**************************************************************************/
739  if (me3 != 0)
740  {
741  TH1F *C3 = me3->getTH1F ();
742  TH1F *S3 = h_fitres3Chi2->getTH1F ();
743  int division = C3->GetNbinsX ();
744  float massMIN = C3->GetBinLowEdge (1);
745  float massMAX = C3->GetBinLowEdge (division + 1);
746  //float BIN_SIZE = B->GetBinWidth(1);
747 
748  TF1 *func = new TF1 ("mygauss", mygauss, massMIN, massMAX, 3);
749  func->SetParameter (0, 1.0);
750  func->SetParName (0, "const");
751  func->SetParameter (1, 95.0);
752  func->SetParName (1, "mean");
753  func->SetParameter (2, 5.0);
754  func->SetParName (2, "sigma");
755 
756  double stats[4];
757  S3->GetStats (stats);
758  float N = 0;
759  float Chi2 = 0;
760  float NDF = 0;
761  N = C3->GetEntries ();
762 
763  try
764  {
765  if (N != 0)
766  {
767  C3->Fit ("mygauss", "QR");
768  if ((func->GetNDF () != 0))
769  {
770  Chi2 = fabs (func->GetChisquare ()) / fabs (func->GetNDF ());
771  NDF = 0.1;
772  }
773  }
774 
775 
776  if (N == 0 || Chi2 < 0 || NDF < 0)
777  {
778  N = 1;
779  Chi2 = 0;
780  NDF = 0;
781  }
782 
783  }
784  catch (cms::Exception& e)
785  {
786  edm::LogError ("ZFitter") << "[Zfitter]: Exception when fitting..." << e.what();
787  N = 1;
788  Chi2 = 40;
789  NDF = 0;
790  }
791 
792  stats[0] = N;
793  stats[1] = N;
794  stats[2] = Chi2 * N;
795  stats[3] = NDF * NDF * N + Chi2 * Chi2 * N;
796 
797  S3->SetEntries (N);
798  S3->PutStats (stats);
799  }
800 }
virtual char const * what() const
Definition: Exception.cc:141
MonitorElement * h_fitres1Chi2
MonitorElement * h_fitres2
MonitorElement * h_fitres1
Double_t mygauss(Double_t *x, Double_t *par)
MonitorElement * h_fitres2Chi2
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. &quot;my/long/dir/my_histo&quot;)
Definition: DQMStore.cc:1473
#define LogTrace(id)
MonitorElement * h_fitres3Chi2
MonitorElement * h_fitres2bis
#define N
Definition: blowfish.cc:9
MonitorElement * h_fitres3
MonitorElement * h_fitres3bis
TH1F * getTH1F(void) const
Definition: Chi2.h:17
MonitorElement * h_fitres1bis
std::string prefixME_
void EcalZmassClient::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 818 of file EcalZmassClient.cc.

References edm::ParameterSetDescription::setUnknown().

820 {
821  //The following says we do not know what parameters are allowed so do no validation
822  // Please change this to state exactly what you do use, even if it is no parameters
824  desc.setUnknown ();
825  descriptions.addDefault (desc);
826 }
void addDefault(ParameterSetDescription const &psetDescription)

Member Data Documentation

MonitorElement* EcalZmassClient::h_95_ee_invMass_BB
private

Definition at line 97 of file EcalZmassClient.cc.

MonitorElement* EcalZmassClient::h_95_ee_invMass_EB
private

Definition at line 93 of file EcalZmassClient.cc.

MonitorElement* EcalZmassClient::h_95_ee_invMass_EE
private

Definition at line 95 of file EcalZmassClient.cc.

MonitorElement* EcalZmassClient::h_e1_et
private

Definition at line 101 of file EcalZmassClient.cc.

MonitorElement* EcalZmassClient::h_e1_eta
private

Definition at line 105 of file EcalZmassClient.cc.

MonitorElement* EcalZmassClient::h_e1_phi
private

Definition at line 109 of file EcalZmassClient.cc.

MonitorElement* EcalZmassClient::h_e2_et
private

Definition at line 103 of file EcalZmassClient.cc.

MonitorElement* EcalZmassClient::h_e2_eta
private

Definition at line 107 of file EcalZmassClient.cc.

MonitorElement* EcalZmassClient::h_e2_phi
private

Definition at line 111 of file EcalZmassClient.cc.

MonitorElement* EcalZmassClient::h_ee_invMass
private

Definition at line 99 of file EcalZmassClient.cc.

MonitorElement* EcalZmassClient::h_ee_invMass_BB
private

Definition at line 91 of file EcalZmassClient.cc.

MonitorElement* EcalZmassClient::h_ee_invMass_EB
private

Definition at line 87 of file EcalZmassClient.cc.

MonitorElement* EcalZmassClient::h_ee_invMass_EE
private

Definition at line 89 of file EcalZmassClient.cc.

MonitorElement* EcalZmassClient::h_fitres1
private

Definition at line 113 of file EcalZmassClient.cc.

Referenced by beginRun(), and endRun().

MonitorElement* EcalZmassClient::h_fitres1bis
private

Definition at line 115 of file EcalZmassClient.cc.

Referenced by beginRun(), and endRun().

MonitorElement* EcalZmassClient::h_fitres1Chi2
private

Definition at line 117 of file EcalZmassClient.cc.

Referenced by beginRun(), and endRun().

MonitorElement* EcalZmassClient::h_fitres2
private

Definition at line 119 of file EcalZmassClient.cc.

Referenced by beginRun(), and endRun().

MonitorElement* EcalZmassClient::h_fitres2bis
private

Definition at line 121 of file EcalZmassClient.cc.

Referenced by beginRun(), and endRun().

MonitorElement* EcalZmassClient::h_fitres2Chi2
private

Definition at line 123 of file EcalZmassClient.cc.

Referenced by beginRun(), and endRun().

MonitorElement* EcalZmassClient::h_fitres3
private

Definition at line 125 of file EcalZmassClient.cc.

Referenced by beginRun(), and endRun().

MonitorElement* EcalZmassClient::h_fitres3bis
private

Definition at line 127 of file EcalZmassClient.cc.

Referenced by beginRun(), and endRun().

MonitorElement* EcalZmassClient::h_fitres3Chi2
private

Definition at line 129 of file EcalZmassClient.cc.

Referenced by beginRun(), and endRun().

std::string EcalZmassClient::prefixME_
private

Definition at line 84 of file EcalZmassClient.cc.

Referenced by beginRun(), EcalZmassClient(), and endRun().