CMS 3D CMS Logo

HEff4DHit Class Reference

A set of histograms for efficiency 4D RecHits. More...

#include <Validation/DTRecHits/plugins/Histograms.h>

List of all members.

Public Member Functions

void ComputeEfficiency ()
void Fill (float etaSimSegm, float phiSimSegm, float xSimSegm, float ySimSegm, float alphaSimSegm, float betaSimSegm, bool fillRecHit)
 HEff4DHit (TString name_, TFile *file)
 HEff4DHit (std::string name_)
void Write ()
 ~HEff4DHit ()

Public Attributes

TH1F * hAlphaRecHit
TH1F * hAlphaSimSegm
TH1F * hBetaRecHit
TH1F * hBetaSimSegm
TH1F * hEffVsAlpha
TH1F * hEffVsBeta
TH1F * hEffVsEta
TH1F * hEffVsPhi
TH1F * hEffVsX
TH1F * hEffVsY
TH1F * hEtaRecHit
TH1F * hEtaSimSegm
TH1F * hPhiRecHit
TH1F * hPhiSimSegm
TH1F * hXRecHit
TH1F * hXSimSegm
TH1F * hYRecHit
TH1F * hYSimSegm
TString name


Detailed Description

A set of histograms for efficiency 4D RecHits.

Definition at line 1076 of file Histograms.h.


Constructor & Destructor Documentation

HEff4DHit::HEff4DHit ( std::string  name_  )  [inline]

Definition at line 1078 of file Histograms.h.

References hAlphaRecHit, hAlphaSimSegm, hBetaRecHit, hBetaSimSegm, hEffVsAlpha, hEffVsBeta, hEffVsEta, hEffVsPhi, hEffVsX, hEffVsY, hEtaRecHit, hEtaSimSegm, hPhiRecHit, hPhiSimSegm, hXRecHit, hXSimSegm, hYRecHit, hYSimSegm, N, name, and Pi.

01078                             {
01079     TString N = name_.c_str();
01080     name=N;
01081 
01082     hEtaSimSegm     = new TH1F("4D_"+N+"_hEtaSimSegm", "Eta of SimHit segment", 100, -1.5, 1.5);
01083     hEtaRecHit      = new TH1F("4D_"+N+"_hEtaRecHit", "Eta distribution of SimHit segment with 4D RecHit",
01084                                   100, -1.5, 1.5);
01085     hEffVsEta       = 0;
01086 
01087     hPhiSimSegm     = new TH1F("4D_"+N+"_hPhiSimSegm", "Phi of SimHit segment",
01088                                   100, -TMath::Pi(),TMath::Pi());
01089     hPhiRecHit      = new TH1F("4D_"+N+"_hPhiRecHit", "Phi distribution of SimHit segment with 4D RecHit",
01090                                   100, -TMath::Pi(),TMath::Pi());
01091     hEffVsPhi       = 0;
01092 
01093 
01094     hXSimSegm       = new TH1F("4D_"+N+"_hXSimSegm", "X position in Chamber of SimHit segment (cm)",
01095                                100, -200, 200);
01096     hXRecHit        = new TH1F("4D_"+N+"_hXRecHit", "X position in Chamber of SimHit segment with 4D RecHit (cm)",
01097                                100, -200, 200);
01098     hEffVsX         = 0;
01099 
01100     hYSimSegm       = new TH1F("4D_"+N+"_hYSimSegm", "Y position in Chamber of SimHit segment (cm)",
01101                                100, -200, 200);
01102     hYRecHit        = new TH1F("4D_"+N+"_hYRecHit", "Y position in Chamber of SimHit segment with 4D RecHit (cm)",
01103                                100, -200, 200);
01104     hEffVsY         = 0;
01105 
01106     hAlphaSimSegm   = new TH1F("4D_"+N+"_hAlphaSimSegm", "Alpha of SimHit segment (rad)",
01107                                100, -1.5, 1.5);
01108     hAlphaRecHit    = new TH1F("4D_"+N+"_hAlphaRecHit", "Alpha of SimHit segment with 4D RecHit (rad)",
01109                                100, -1.5, 1.5);
01110     hEffVsAlpha     = 0;
01111 
01112     hBetaSimSegm   = new TH1F("4D_"+N+"_hBetaSimSegm", "Beta of SimHit segment (rad)",
01113                                100, -2, 2);
01114     hBetaRecHit    = new TH1F("4D_"+N+"_hBetaRecHit", "Beta of SimHit segment with 4D RecHit (rad)",
01115                                100, -2, 2);
01116     hEffVsBeta     = 0;
01117 
01118   }

HEff4DHit::HEff4DHit ( TString  name_,
TFile *  file 
) [inline]

Definition at line 1120 of file Histograms.h.

References hAlphaRecHit, hAlphaSimSegm, hBetaRecHit, hBetaSimSegm, hEffVsAlpha, hEffVsBeta, hEffVsEta, hEffVsPhi, hEffVsX, hEffVsY, hEtaRecHit, hEtaSimSegm, hPhiRecHit, hPhiSimSegm, hXRecHit, hXSimSegm, hYRecHit, hYSimSegm, and name.

01120                                         {
01121     name=name_;
01122     hEtaSimSegm = (TH1F *) file->Get("4D_"+name+"_hEtaSimSegm");
01123     hEtaRecHit = (TH1F *) file->Get("4D_"+name+"_hEtaRecHit");
01124     hEffVsEta = (TH1F *) file->Get("4D_"+name+"_hEffVsEta");
01125 
01126     hPhiSimSegm = (TH1F *) file->Get("4D_"+name+"_hPhiSimSegm");
01127     hPhiRecHit = (TH1F *) file->Get("4D_"+name+"_hPhiRecHit");
01128     hEffVsPhi = (TH1F *) file->Get("4D_"+name+"_hEffVsPhi");
01129 
01130     hXSimSegm  = (TH1F *) file->Get("4D_"+name+"_hXSimSegm");
01131     hXRecHit  = (TH1F *) file->Get("4D_"+name+"_hXRecHit");
01132     hEffVsX  = (TH1F *) file->Get("4D_"+name+"_hEffVsX");
01133 
01134     hYSimSegm  = (TH1F *) file->Get("4D_"+name+"_hYSimSegm");
01135     hYRecHit  = (TH1F *) file->Get("4D_"+name+"_hYRecHit");
01136     hEffVsY  = (TH1F *) file->Get("4D_"+name+"_hEffVsY");
01137 
01138     hAlphaSimSegm  = (TH1F *) file->Get("4D_"+name+"_hAlphaSimSegm");
01139     hAlphaRecHit  = (TH1F *) file->Get("4D_"+name+"_hAlphaRecHit");
01140     hEffVsAlpha  = (TH1F *) file->Get("4D_"+name+"_hEffVsAlpha");
01141 
01142     hBetaSimSegm  = (TH1F *) file->Get("4D_"+name+"_hBetaSimSegm");
01143     hBetaRecHit  = (TH1F *) file->Get("4D_"+name+"_hBetaRecHit");
01144     hEffVsBeta  = (TH1F *) file->Get("4D_"+name+"_hEffVsBeta");
01145   }

HEff4DHit::~HEff4DHit (  )  [inline]

Definition at line 1148 of file Histograms.h.

01148               {
01149 
01150     /*delete hEtaSimSegm;   
01151     delete hEtaRecHit;    
01152     delete hEffVsEta;     
01153     delete hPhiSimSegm;   
01154     delete hPhiRecHit;    
01155     delete hEffVsPhi;     
01156     delete hXSimSegm;     
01157     delete hXRecHit;      
01158     delete hEffVsX;       
01159     delete hYSimSegm;     
01160     delete hYRecHit;      
01161     delete hEffVsY;       
01162     delete hAlphaSimSegm; 
01163     delete hAlphaRecHit;  
01164     delete hEffVsAlpha;   
01165     delete hBetaSimSegm;  
01166     delete hBetaRecHit;   
01167     delete hEffVsBeta;*/    
01168   }


Member Function Documentation

void HEff4DHit::ComputeEfficiency (  )  [inline]

Definition at line 1197 of file Histograms.h.

References error, hAlphaRecHit, hAlphaSimSegm, hBetaRecHit, hBetaSimSegm, hEffVsAlpha, hEffVsBeta, hEffVsEta, hEffVsPhi, hEffVsX, hEffVsY, hEtaRecHit, hEtaSimSegm, hPhiRecHit, hPhiSimSegm, hXRecHit, hXSimSegm, hYRecHit, hYSimSegm, name, and funct::sqrt().

Referenced by DTSegment4DQuality::endJob().

01197                            {
01198 
01199     hEffVsEta = (TH1F *) hEtaRecHit->Clone();
01200     hEffVsEta->SetName("4D_"+name+"_hEffVsEta");
01201     hEffVsEta->SetTitle("4D RecHit Efficiency as a function of Eta");
01202     hEffVsEta->Divide(hEtaSimSegm);
01203     // Set the error accordingly to binomial statistics
01204     int nBinsEta = hEffVsEta->GetNbinsX();
01205     for(int bin = 1; bin <=  nBinsEta; bin++) {
01206       float nSimHit = hEtaSimSegm->GetBinContent(bin);
01207       float eff = hEffVsEta->GetBinContent(bin);
01208       float error = 0;
01209       if(nSimHit != 0) {
01210         error = sqrt(eff*(1-eff)/nSimHit);
01211       }
01212       hEffVsEta->SetBinError(bin, error);
01213     }
01214 
01215     hEffVsPhi = (TH1F *) hPhiRecHit->Clone();
01216     hEffVsPhi->SetName("4D_"+name+"_hEffVsPhi");
01217     hEffVsPhi->SetTitle("4D RecHit Efficiency as a function of Phi");
01218     hEffVsPhi->Divide(hPhiSimSegm);
01219     // Set the error accordingly to binomial statistics
01220     int nBinsPhi = hEffVsPhi->GetNbinsX();
01221     for(int bin = 1; bin <=  nBinsPhi; bin++) {
01222       float nSimHit = hPhiSimSegm->GetBinContent(bin);
01223       float eff = hEffVsPhi->GetBinContent(bin);
01224       float error = 0;
01225       if(nSimHit != 0) {
01226         error = sqrt(eff*(1-eff)/nSimHit);
01227       }
01228       hEffVsPhi->SetBinError(bin, error);
01229     }
01230 
01231     hEffVsX = (TH1F *) hXRecHit->Clone();
01232     hEffVsX->SetName("4D_"+name+"_hEffVsX");
01233     hEffVsX->SetTitle("4D RecHit Efficiency as a function of x position in Chamber");
01234     hEffVsX->Divide(hXSimSegm);
01235     // Set the error accordingly to binomial statistics
01236     int nBinsX = hEffVsX->GetNbinsX();
01237     for(int bin = 1; bin <=  nBinsX; bin++) {
01238       float nSimHit = hXSimSegm->GetBinContent(bin);
01239       float eff = hEffVsX->GetBinContent(bin);
01240       float error = 0;
01241       if(nSimHit != 0) {
01242         error = sqrt(eff*(1-eff)/nSimHit);
01243       }
01244       hEffVsX->SetBinError(bin, error);
01245     }
01246 
01247 
01248     hEffVsY = (TH1F *) hYRecHit->Clone();
01249     hEffVsY->SetName("4D_"+name+"_hEffVsY");
01250     hEffVsY->SetTitle("4D RecHit Efficiency as a function of y position in Chamber");
01251     hEffVsY->Divide(hYSimSegm);
01252     // Set the error accordingly to binomial statistics
01253     int nBinsY = hEffVsY->GetNbinsX();
01254     for(int bin = 1; bin <=  nBinsY; bin++) {
01255       float nSimHit = hYSimSegm->GetBinContent(bin);
01256       float eff = hEffVsY->GetBinContent(bin);
01257       float error = 0;
01258       if(nSimHit != 0) {
01259         error = sqrt(eff*(1-eff)/nSimHit);
01260       }
01261       hEffVsY->SetBinError(bin, error);
01262     }
01263 
01264     hEffVsAlpha = (TH1F *) hAlphaRecHit->Clone();
01265     hEffVsAlpha->SetName("4D_"+name+"_hEffVsAlpha");
01266     hEffVsAlpha->SetTitle("4D RecHit Efficiency as a function of alpha");
01267     hEffVsAlpha->Divide(hAlphaSimSegm);
01268     // Set the error accordingly to binomial statistics
01269     int nBinsAlpha = hEffVsAlpha->GetNbinsX();
01270     for(int bin = 1; bin <=  nBinsAlpha; bin++) {
01271       float nSimHit = hAlphaSimSegm->GetBinContent(bin);
01272       float eff = hEffVsAlpha->GetBinContent(bin);
01273       float error = 0;
01274       if(nSimHit != 0) {
01275         error = sqrt(eff*(1-eff)/nSimHit);
01276       }
01277       hEffVsAlpha->SetBinError(bin, error);
01278     }
01279 
01280 
01281     hEffVsBeta = (TH1F *) hBetaRecHit->Clone();
01282     hEffVsBeta->SetName("4D_"+name+"_hEffVsBeta");
01283     hEffVsBeta->SetTitle("4D RecHit Efficiency as a function of beta");
01284     hEffVsBeta->Divide(hBetaSimSegm);
01285     // Set the error accordingly to binomial statistics
01286     int nBinsBeta = hEffVsBeta->GetNbinsX();
01287     for(int bin = 1; bin <=  nBinsBeta; bin++) {
01288       float nSimHit = hBetaSimSegm->GetBinContent(bin);
01289       float eff = hEffVsBeta->GetBinContent(bin);
01290       float error = 0;
01291       if(nSimHit != 0) {
01292         error = sqrt(eff*(1-eff)/nSimHit);
01293       }
01294       hEffVsBeta->SetBinError(bin, error);
01295     }
01296   }

void HEff4DHit::Fill ( float  etaSimSegm,
float  phiSimSegm,
float  xSimSegm,
float  ySimSegm,
float  alphaSimSegm,
float  betaSimSegm,
bool  fillRecHit 
) [inline]

Definition at line 1170 of file Histograms.h.

References hAlphaRecHit, hAlphaSimSegm, hBetaRecHit, hBetaSimSegm, hEtaRecHit, hEtaSimSegm, hPhiRecHit, hPhiSimSegm, hXRecHit, hXSimSegm, hYRecHit, and hYSimSegm.

Referenced by DTSegment4DQuality::analyze().

01176                              {
01177 
01178     hEtaSimSegm->Fill(etaSimSegm);
01179     hPhiSimSegm->Fill(phiSimSegm);
01180     hXSimSegm->Fill(xSimSegm);
01181     hYSimSegm->Fill(ySimSegm);
01182     hAlphaSimSegm->Fill(alphaSimSegm);
01183     hBetaSimSegm->Fill(betaSimSegm);
01184 
01185     if(fillRecHit) {
01186       hEtaRecHit->Fill(etaSimSegm);  
01187       hPhiRecHit->Fill(phiSimSegm);
01188       hXRecHit->Fill(xSimSegm);
01189       hYRecHit->Fill(ySimSegm);
01190       hAlphaRecHit->Fill(alphaSimSegm);
01191       hBetaRecHit->Fill(betaSimSegm);
01192     }
01193   }

void HEff4DHit::Write (  )  [inline]

Definition at line 1298 of file Histograms.h.

References hAlphaRecHit, hAlphaSimSegm, hBetaRecHit, hBetaSimSegm, hEffVsAlpha, hEffVsBeta, hEffVsEta, hEffVsPhi, hEffVsX, hEffVsY, hEtaRecHit, hEtaSimSegm, hPhiRecHit, hPhiSimSegm, hXRecHit, hXSimSegm, hYRecHit, and hYSimSegm.

Referenced by DTSegment4DQuality::endJob().

01298                {
01299     hEtaSimSegm->Write();   
01300     hEtaRecHit->Write();
01301     if(hEffVsEta != 0)
01302       hEffVsEta->Write();     
01303     hPhiSimSegm->Write();   
01304     hPhiRecHit->Write();    
01305     if(hEffVsPhi != 0)
01306       hEffVsPhi->Write();     
01307     hXSimSegm->Write();     
01308     hXRecHit->Write();      
01309     if(hEffVsX != 0)
01310       hEffVsX->Write();       
01311     hYSimSegm->Write();     
01312     hYRecHit->Write();      
01313     if(hEffVsY != 0)
01314       hEffVsY->Write();       
01315     hAlphaSimSegm->Write(); 
01316     hAlphaRecHit->Write();  
01317     if(hEffVsAlpha != 0)
01318       hEffVsAlpha->Write();   
01319     hBetaSimSegm->Write();  
01320     hBetaRecHit->Write();   
01321     if(hEffVsBeta != 0)
01322       hEffVsBeta->Write();    
01323 
01324   }


Member Data Documentation

TH1F* HEff4DHit::hAlphaRecHit

Definition at line 1340 of file Histograms.h.

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

TH1F* HEff4DHit::hAlphaSimSegm

Definition at line 1339 of file Histograms.h.

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

TH1F* HEff4DHit::hBetaRecHit

Definition at line 1343 of file Histograms.h.

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

TH1F* HEff4DHit::hBetaSimSegm

Definition at line 1342 of file Histograms.h.

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

TH1F* HEff4DHit::hEffVsAlpha

Definition at line 1341 of file Histograms.h.

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

TH1F* HEff4DHit::hEffVsBeta

Definition at line 1344 of file Histograms.h.

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

TH1F* HEff4DHit::hEffVsEta

Definition at line 1329 of file Histograms.h.

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

TH1F* HEff4DHit::hEffVsPhi

Definition at line 1332 of file Histograms.h.

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

TH1F* HEff4DHit::hEffVsX

Definition at line 1335 of file Histograms.h.

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

TH1F* HEff4DHit::hEffVsY

Definition at line 1338 of file Histograms.h.

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

TH1F* HEff4DHit::hEtaRecHit

Definition at line 1328 of file Histograms.h.

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

TH1F* HEff4DHit::hEtaSimSegm

Definition at line 1327 of file Histograms.h.

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

TH1F* HEff4DHit::hPhiRecHit

Definition at line 1331 of file Histograms.h.

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

TH1F* HEff4DHit::hPhiSimSegm

Definition at line 1330 of file Histograms.h.

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

TH1F* HEff4DHit::hXRecHit

Definition at line 1334 of file Histograms.h.

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

TH1F* HEff4DHit::hXSimSegm

Definition at line 1333 of file Histograms.h.

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

TH1F* HEff4DHit::hYRecHit

Definition at line 1337 of file Histograms.h.

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

TH1F* HEff4DHit::hYSimSegm

Definition at line 1336 of file Histograms.h.

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

TString HEff4DHit::name

Definition at line 1346 of file Histograms.h.

Referenced by ComputeEfficiency(), and HEff4DHit().


The documentation for this class was generated from the following file:
Generated on Tue Jun 9 18:24:09 2009 for CMSSW by  doxygen 1.5.4