CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Public Attributes
HEff2DHit Class Reference

#include <Histograms.h>

Public Member Functions

void ComputeEfficiency ()
 
void Fill (float etaSimSegm, float phiSimSegm, float posSimSegm, float angleSimSegm, bool fillRecHit)
 
 HEff2DHit (std::string name_)
 
 HEff2DHit (TString name_, TFile *file)
 
void Write ()
 
 ~HEff2DHit ()
 

Public Attributes

TH1F * hAngleRecHit
 
TH1F * hAngleSimSegm
 
TH1F * hEffVsAngle
 
TH1F * hEffVsEta
 
TH1F * hEffVsPhi
 
TH1F * hEffVsPos
 
TH1F * hEtaRecHit
 
TH1F * hEtaSimSegm
 
TH1F * hPhiRecHit
 
TH1F * hPhiSimSegm
 
TH1F * hPosRecHit
 
TH1F * hPosSimSegm
 
TString name
 

Detailed Description

Definition at line 427 of file Histograms.h.

Constructor & Destructor Documentation

HEff2DHit::HEff2DHit ( std::string  name_)
inline

Definition at line 429 of file Histograms.h.

References hAngleRecHit, hAngleSimSegm, hEffVsAngle, hEffVsEta, hEffVsPhi, hEffVsPos, hEtaRecHit, hEtaSimSegm, hPhiRecHit, hPhiSimSegm, hPosRecHit, hPosSimSegm, MultiGaussianStateTransform::N, name, and Pi.

429  {
430  TString N = name_.c_str();
431  name=N;
432 
433  hEtaSimSegm = new TH1F("2D_"+N+"_hEtaSimSegm", "Eta of SimHit segment", 100, -1.5, 1.5);
434  hEtaRecHit = new TH1F("2D_"+N+"_hEtaRecHit", "Eta distribution of SimHit segment with 2D RecHit",
435  100, -1.5, 1.5);
436  hEffVsEta = 0;
437 
438  hPhiSimSegm = new TH1F("2D_"+N+"_hPhiSimSegm", "Phi of SimHit segment",
439  100, -TMath::Pi(),TMath::Pi());
440  hPhiRecHit = new TH1F("2D_"+N+"_hPhiRecHit", "Phi distribution of SimHit segment with 2D RecHit",
441  100, -TMath::Pi(),TMath::Pi());
442  hEffVsPhi = 0;
443 
444 
445  hPosSimSegm = new TH1F("2D_"+N+"_hPosSimSegm", "Position in SL of SimHit segment (cm)",
446  100, -250, 250);
447  hPosRecHit = new TH1F("2D_"+N+"_hPosRecHit", "Position in SL of SimHit segment with 2D RecHit (cm)",
448  100, -250, 250);
449  hEffVsPos = 0;
450 
451 
452  hAngleSimSegm = new TH1F("2D_"+N+"_hAngleSimSegm", "Angle of SimHit segment (rad)",
453  100, -2, 2);
454  hAngleRecHit = new TH1F("2D_"+N+"_hAngleRecHit", "Angle of SimHit segment with 2D RecHit (rad)",
455  100, -2, 2);
456  hEffVsAngle = 0;
457 
458  }
TH1F * hPhiRecHit
Definition: Histograms.h:617
const double Pi
TH1F * hPosSimSegm
Definition: Histograms.h:619
TString name
Definition: Histograms.h:626
TH1F * hEffVsPos
Definition: Histograms.h:621
TH1F * hEffVsAngle
Definition: Histograms.h:624
TH1F * hEffVsPhi
Definition: Histograms.h:618
TH1F * hAngleSimSegm
Definition: Histograms.h:622
TH1F * hEffVsEta
Definition: Histograms.h:615
TH1F * hEtaRecHit
Definition: Histograms.h:614
TH1F * hPhiSimSegm
Definition: Histograms.h:616
TH1F * hPosRecHit
Definition: Histograms.h:620
TH1F * hAngleRecHit
Definition: Histograms.h:623
TH1F * hEtaSimSegm
Definition: Histograms.h:613
HEff2DHit::HEff2DHit ( TString  name_,
TFile *  file 
)
inline

Definition at line 460 of file Histograms.h.

References hAngleRecHit, hAngleSimSegm, hEffVsAngle, hEffVsEta, hEffVsPhi, hEffVsPos, hEtaRecHit, hEtaSimSegm, hPhiRecHit, hPhiSimSegm, hPosRecHit, hPosSimSegm, and name.

460  {
461  name=name_;
462  hEtaSimSegm = (TH1F *) file->Get("2D_"+name+"_hEtaSimSegm");
463  hEtaRecHit = (TH1F *) file->Get("2D_"+name+"_hEtaRecHit");
464  hEffVsEta = (TH1F *) file->Get("2D_"+name+"_hEffVsEta");
465 
466  hPhiSimSegm = (TH1F *) file->Get("2D_"+name+"_hPhiSimSegm");
467  hPhiRecHit = (TH1F *) file->Get("2D_"+name+"_hPhiRecHit");
468  hEffVsPhi = (TH1F *) file->Get("2D_"+name+"_hEffVsPhi");
469 
470  hPosSimSegm = (TH1F *) file->Get("2D_"+name+"_hPosSimSegm");
471  hPosRecHit = (TH1F *) file->Get("2D_"+name+"_hPosRecHit");
472  hEffVsPos = (TH1F *) file->Get("2D_"+name+"_hEffVsPos");
473 
474  hAngleSimSegm = (TH1F *) file->Get("2D_"+name+"_hAngleSimSegm");
475  hAngleRecHit = (TH1F *) file->Get("2D_"+name+"_hAngleRecHit");
476  hEffVsAngle = (TH1F *) file->Get("2D_"+name+"_hEffVsAngle");
477  }
TH1F * hPhiRecHit
Definition: Histograms.h:617
TH1F * hPosSimSegm
Definition: Histograms.h:619
TString name
Definition: Histograms.h:626
TH1F * hEffVsPos
Definition: Histograms.h:621
TH1F * hEffVsAngle
Definition: Histograms.h:624
TH1F * hEffVsPhi
Definition: Histograms.h:618
TH1F * hAngleSimSegm
Definition: Histograms.h:622
TH1F * hEffVsEta
Definition: Histograms.h:615
TH1F * hEtaRecHit
Definition: Histograms.h:614
TH1F * hPhiSimSegm
Definition: Histograms.h:616
TH1F * hPosRecHit
Definition: Histograms.h:620
TH1F * hAngleRecHit
Definition: Histograms.h:623
TH1F * hEtaSimSegm
Definition: Histograms.h:613
HEff2DHit::~HEff2DHit ( )
inline

Definition at line 480 of file Histograms.h.

480  {
481  //delete hEtaSimSegm;
482  //delete hEtaRecHit;
483  //if(hEffVsEta != 0)
484  // delete hEffVsEta;
485 
486  //delete hPhiSimSegm;
487  //delete hPhiRecHit;
488  //if(hEffVsPhi != 0)
489  // delete hEffVsPhi;
490 
491  //delete hPosSimSegm;
492  //delete hPosRecHit;
493  //if(hEffVsPos != 0)
494  // delete hEffVsPos;
495 
496  //delete hAngleSimSegm;
497  //delete hAngleRecHit;
498  //if(hEffVsAngle != 0)
499  // delete hEffVsAngle;
500  }

Member Function Documentation

void HEff2DHit::ComputeEfficiency ( )
inline

Definition at line 523 of file Histograms.h.

References newFWLiteAna::bin, error, hAngleRecHit, hAngleSimSegm, hEffVsAngle, hEffVsEta, hEffVsPhi, hEffVsPos, hEtaRecHit, hEtaSimSegm, hPhiRecHit, hPhiSimSegm, hPosRecHit, hPosSimSegm, name, and mathSSE::sqrt().

523  {
524 
525  hEffVsEta = (TH1F *) hEtaRecHit->Clone();
526  hEffVsEta->SetName("2D_"+name+"_hEffVsEta");
527  hEffVsEta->SetTitle("2D RecHit Efficiency as a function of Eta");
528  hEffVsEta->Divide(hEtaSimSegm);
529  // Set the error accordingly to binomial statistics
530  int nBinsEta = hEffVsEta->GetNbinsX();
531  for(int bin = 1; bin <= nBinsEta; bin++) {
532  float nSimHit = hEtaSimSegm->GetBinContent(bin);
533  float eff = hEffVsEta->GetBinContent(bin);
534  float error = 0;
535  if(nSimHit != 0) {
536  error = sqrt(eff*(1-eff)/nSimHit);
537  }
538  hEffVsEta->SetBinError(bin, error);
539  }
540 
541  hEffVsPhi = (TH1F *) hPhiRecHit->Clone();
542  hEffVsPhi->SetName("2D_"+name+"_hEffVsPhi");
543  hEffVsPhi->SetTitle("2D RecHit Efficiency as a function of Phi");
544  hEffVsPhi->Divide(hPhiSimSegm);
545  // Set the error accordingly to binomial statistics
546  int nBinsPhi = hEffVsPhi->GetNbinsX();
547  for(int bin = 1; bin <= nBinsPhi; bin++) {
548  float nSimHit = hPhiSimSegm->GetBinContent(bin);
549  float eff = hEffVsPhi->GetBinContent(bin);
550  float error = 0;
551  if(nSimHit != 0) {
552  error = sqrt(eff*(1-eff)/nSimHit);
553  }
554  hEffVsPhi->SetBinError(bin, error);
555  }
556 
557  hEffVsPos = (TH1F *) hPosRecHit->Clone();
558  hEffVsPos->SetName("2D_"+name+"_hEffVsPos");
559  hEffVsPos->SetTitle("2D RecHit Efficiency as a function of position in SL");
560  hEffVsPos->Divide(hPosSimSegm);
561  // Set the error accordingly to binomial statistics
562  int nBinsPos = hEffVsPos->GetNbinsX();
563  for(int bin = 1; bin <= nBinsPos; bin++) {
564  float nSimHit = hPosSimSegm->GetBinContent(bin);
565  float eff = hEffVsPos->GetBinContent(bin);
566  float error = 0;
567  if(nSimHit != 0) {
568  error = sqrt(eff*(1-eff)/nSimHit);
569  }
570  hEffVsPos->SetBinError(bin, error);
571  }
572 
573  hEffVsAngle = (TH1F *) hAngleRecHit->Clone();
574  hEffVsAngle->SetName("2D_"+name+"_hEffVsAngle");
575  hEffVsAngle->SetTitle("2D RecHit Efficiency as a function of angle");
576  hEffVsAngle->Divide(hAngleSimSegm);
577  // Set the error accordingly to binomial statistics
578  int nBinsAngle = hEffVsAngle->GetNbinsX();
579  for(int bin = 1; bin <= nBinsAngle; bin++) {
580  float nSimHit = hAngleSimSegm->GetBinContent(bin);
581  float eff = hEffVsAngle->GetBinContent(bin);
582  float error = 0;
583  if(nSimHit != 0) {
584  error = sqrt(eff*(1-eff)/nSimHit);
585  }
586  hEffVsAngle->SetBinError(bin, error);
587  }
588 
589  }
TH1F * hPhiRecHit
Definition: Histograms.h:617
TH1F * hPosSimSegm
Definition: Histograms.h:619
TString name
Definition: Histograms.h:626
TH1F * hEffVsPos
Definition: Histograms.h:621
TH1F * hEffVsAngle
Definition: Histograms.h:624
T sqrt(T t)
Definition: SSEVec.h:28
TH1F * hEffVsPhi
Definition: Histograms.h:618
TH1F * hAngleSimSegm
Definition: Histograms.h:622
TH1F * hEffVsEta
Definition: Histograms.h:615
TH1F * hEtaRecHit
Definition: Histograms.h:614
TH1F * hPhiSimSegm
Definition: Histograms.h:616
TH1F * hPosRecHit
Definition: Histograms.h:620
TH1F * hAngleRecHit
Definition: Histograms.h:623
TH1F * hEtaSimSegm
Definition: Histograms.h:613
void HEff2DHit::Fill ( float  etaSimSegm,
float  phiSimSegm,
float  posSimSegm,
float  angleSimSegm,
bool  fillRecHit 
)
inline

Definition at line 502 of file Histograms.h.

References hAngleRecHit, hAngleSimSegm, hEtaRecHit, hEtaSimSegm, hPhiRecHit, hPhiSimSegm, hPosRecHit, and hPosSimSegm.

Referenced by DTSegment2DQuality::analyze().

506  {
507 
508  hEtaSimSegm->Fill(etaSimSegm);
509  hPhiSimSegm->Fill(phiSimSegm);
510  hPosSimSegm->Fill(posSimSegm);
511  hAngleSimSegm->Fill(angleSimSegm);
512 
513  if(fillRecHit) {
514  hEtaRecHit->Fill(etaSimSegm);
515  hPhiRecHit->Fill(phiSimSegm);
516  hPosRecHit->Fill(posSimSegm);
517  hAngleRecHit->Fill(angleSimSegm);
518  }
519  }
TH1F * hPhiRecHit
Definition: Histograms.h:617
TH1F * hPosSimSegm
Definition: Histograms.h:619
TH1F * hAngleSimSegm
Definition: Histograms.h:622
TH1F * hEtaRecHit
Definition: Histograms.h:614
TH1F * hPhiSimSegm
Definition: Histograms.h:616
TH1F * hPosRecHit
Definition: Histograms.h:620
TH1F * hAngleRecHit
Definition: Histograms.h:623
TH1F * hEtaSimSegm
Definition: Histograms.h:613
void HEff2DHit::Write ( )
inline

Definition at line 591 of file Histograms.h.

References hAngleRecHit, hAngleSimSegm, hEffVsAngle, hEffVsEta, hEffVsPhi, hEffVsPos, hEtaRecHit, hEtaSimSegm, hPhiRecHit, hPhiSimSegm, hPosRecHit, and hPosSimSegm.

591  {
592  hEtaSimSegm->Write();
593  hEtaRecHit->Write();
594  if(hEffVsEta != 0)
595  hEffVsEta->Write();
596  hPhiSimSegm->Write();
597  hPhiRecHit->Write();
598  if(hEffVsPhi != 0)
599  hEffVsPhi->Write();
600  hPosSimSegm->Write();
601  hPosRecHit->Write();
602  if(hEffVsPos != 0)
603  hEffVsPos->Write();
604  hAngleSimSegm->Write();
605  hAngleRecHit->Write();
606  if(hEffVsAngle != 0)
607  hEffVsAngle->Write();
608 
609  }
TH1F * hPhiRecHit
Definition: Histograms.h:617
TH1F * hPosSimSegm
Definition: Histograms.h:619
TH1F * hEffVsPos
Definition: Histograms.h:621
TH1F * hEffVsAngle
Definition: Histograms.h:624
TH1F * hEffVsPhi
Definition: Histograms.h:618
TH1F * hAngleSimSegm
Definition: Histograms.h:622
TH1F * hEffVsEta
Definition: Histograms.h:615
TH1F * hEtaRecHit
Definition: Histograms.h:614
TH1F * hPhiSimSegm
Definition: Histograms.h:616
TH1F * hPosRecHit
Definition: Histograms.h:620
TH1F * hAngleRecHit
Definition: Histograms.h:623
TH1F * hEtaSimSegm
Definition: Histograms.h:613

Member Data Documentation

TH1F* HEff2DHit::hAngleRecHit

Definition at line 623 of file Histograms.h.

Referenced by ComputeEfficiency(), Fill(), HEff2DHit(), and Write().

TH1F* HEff2DHit::hAngleSimSegm

Definition at line 622 of file Histograms.h.

Referenced by ComputeEfficiency(), Fill(), HEff2DHit(), and Write().

TH1F* HEff2DHit::hEffVsAngle

Definition at line 624 of file Histograms.h.

Referenced by ComputeEfficiency(), HEff2DHit(), and Write().

TH1F* HEff2DHit::hEffVsEta

Definition at line 615 of file Histograms.h.

Referenced by ComputeEfficiency(), HEff2DHit(), and Write().

TH1F* HEff2DHit::hEffVsPhi

Definition at line 618 of file Histograms.h.

Referenced by ComputeEfficiency(), HEff2DHit(), and Write().

TH1F* HEff2DHit::hEffVsPos

Definition at line 621 of file Histograms.h.

Referenced by ComputeEfficiency(), HEff2DHit(), and Write().

TH1F* HEff2DHit::hEtaRecHit

Definition at line 614 of file Histograms.h.

Referenced by ComputeEfficiency(), Fill(), HEff2DHit(), and Write().

TH1F* HEff2DHit::hEtaSimSegm

Definition at line 613 of file Histograms.h.

Referenced by ComputeEfficiency(), Fill(), HEff2DHit(), and Write().

TH1F* HEff2DHit::hPhiRecHit

Definition at line 617 of file Histograms.h.

Referenced by ComputeEfficiency(), Fill(), HEff2DHit(), and Write().

TH1F* HEff2DHit::hPhiSimSegm

Definition at line 616 of file Histograms.h.

Referenced by ComputeEfficiency(), Fill(), HEff2DHit(), and Write().

TH1F* HEff2DHit::hPosRecHit

Definition at line 620 of file Histograms.h.

Referenced by ComputeEfficiency(), Fill(), HEff2DHit(), and Write().

TH1F* HEff2DHit::hPosSimSegm

Definition at line 619 of file Histograms.h.

Referenced by ComputeEfficiency(), Fill(), HEff2DHit(), and Write().

TString HEff2DHit::name