|
ATLAS Offline Software
|
#include <PixelChargeInterpolationHistograms.h>
|
| PixelChargeInterpolationHistograms (const std::string &tag, const PixelChargeInterpolationParameters &model) |
|
virtual | ~PixelChargeInterpolationHistograms () |
|
| PixelChargeInterpolationHistograms (const PixelChargeInterpolationHistograms &)=delete |
|
PixelChargeInterpolationHistograms & | operator= (const PixelChargeInterpolationHistograms &)=delete |
|
int | Fill (int DetType, double GeVTrkPt, double TrkEta, double DeltaCol, double reseta, double OmegaEta, double alpha, double DeltaRow, double resphi, double OmegaPhi) |
|
PixelChargeInterpolationParameters * | Analyze (std::ofstream &logfile) |
|
int | Write () |
|
int | Read () |
|
|
bool | Fit (TProfile *swap, double *value, double *error) |
|
◆ Indexes
◆ PixelChargeInterpolationHistograms() [1/2]
Definition at line 30 of file PixelChargeInterpolationHistograms.cxx.
41 std::vector<float> *
layers = getLayersBins();
42 std::vector<float> etabins =
model.getEtaBins();
44 std::vector<float> clustersizeEta =
model.getClusterSizeYBins();
45 std::vector<float> clustersizePhi =
model.getClusterSizeXBins();
47 unsigned int Neta = etabins.size()-1;
48 unsigned int Nphi =
phibins.size()-1;
49 unsigned int NCSeta = clustersizeEta.size()-1;
50 unsigned int NCSphi = clustersizePhi.size()-1;
52 unsigned int ntotbins = Nphi + NCSphi + Neta + NCSeta + 4;
54 std::vector<float>
bins;
55 bins.reserve(ntotbins);
56 for (
unsigned int i=0;
i<clustersizePhi.size();
i++) {
57 bins.push_back(clustersizePhi[
i]);
59 for (
unsigned int i=0;
i<clustersizeEta.size();
i++) {
60 bins.push_back(clustersizeEta[
i]);
62 for (
unsigned int i=0;
i<etabins.size();
i++) {
63 bins.push_back(etabins[
i]);
65 for (
unsigned int i=0;
i<
phibins.size();
i++) {
75 "#eta residual vs charge sharing", 30, 0., 1.);
77 TH2F *THmodel =
new TH2F((
"etaResVsOmegaH"+
tag).c_str(),
78 "#eta residual vs charge sharing",
79 50, 0., 1.,50,-1000,1000);
81 std::vector<std::string> binsnames(3);
82 std::vector<std::vector <float> > binsvectors(3);
98 Profmodel->SetName((
"phiResVsOmega"+
tag).c_str());
99 Profmodel->SetTitle(
"#phi residual vs charge sharing");
101 TH2F *THmodel1 =
new TH2F((
"phiResVsOmegaH"+
tag).c_str(),
102 "#phi residual vs charge balancing",
103 50, 0., 1.,50,-200,200);
◆ ~PixelChargeInterpolationHistograms()
PixelCalib::PixelChargeInterpolationHistograms::~PixelChargeInterpolationHistograms |
( |
| ) |
|
|
virtual |
◆ PixelChargeInterpolationHistograms() [2/2]
◆ Analyze()
Definition at line 232 of file PixelChargeInterpolationHistograms.cxx.
235 logfile <<
"Fitting!" << std::endl;
238 TCanvas *
c1 =
new TCanvas();
239 c1->UseCurrentStyle();
247 swap->UseCurrentStyle();
253 <<
" --> Failing fit!" << std::endl;
263 if(
swap->GetEntries() < 100)
continue;
264 std::string
name = std::string(
swap->GetName()) + std::string(
".pdf");
267 swap1->UseCurrentStyle();
268 swap1->SetMarkerSize(0.2);
269 swap1->GetXaxis()->SetTitle(
"Charge sharing");
270 swap1->GetYaxis()->SetTitle(
"Cluster center residuals (#mum)");
271 swap1->GetYaxis()->SetTitleOffset(1.2);
272 swap1->GetXaxis()->SetTitleOffset(1.25);
275 std::string
name1 = std::string(swap1->GetName()) + std::string(
".pdf");
284 swap->UseCurrentStyle();
290 <<
" --> Failing fit!" << std::endl;
300 if(
swap->GetEntries() < 100)
continue;
301 std::string
name = std::string(
swap->GetName()) + std::string(
".pdf");
304 swap1->UseCurrentStyle();
305 swap1->SetMarkerSize(0.2);
306 swap1->GetXaxis()->SetTitle(
"Charge sharing");
307 swap1->GetYaxis()->SetTitle(
"Residuals from center of the cluster (#mum)");
308 swap1->GetYaxis()->SetTitleOffset(1.2);
309 swap1->GetXaxis()->SetTitleOffset(1.25);
312 std::string
name1 = std::string(swap1->GetName()) + std::string(
".pdf");
◆ Fill()
int PixelCalib::PixelChargeInterpolationHistograms::Fill |
( |
int |
DetType, |
|
|
double |
GeVTrkPt, |
|
|
double |
TrkEta, |
|
|
double |
DeltaCol, |
|
|
double |
reseta, |
|
|
double |
OmegaEta, |
|
|
double |
alpha, |
|
|
double |
DeltaRow, |
|
|
double |
resphi, |
|
|
double |
OmegaPhi |
|
) |
| |
Definition at line 150 of file PixelChargeInterpolationHistograms.cxx.
155 std::vector<double> Pars(3);
156 if(GeVTrkPt == 0)
return -1;
167 if(OmegaEta > 0.1 && OmegaEta < 0.9){
182 if(OmegaPhi > 0.1 && OmegaPhi < 0.9){
◆ Fit()
bool PixelCalib::PixelChargeInterpolationHistograms::Fit |
( |
TProfile * |
swap, |
|
|
double * |
value, |
|
|
double * |
error |
|
) |
| |
|
private |
Definition at line 327 of file PixelChargeInterpolationHistograms.cxx.
330 if(
swap->GetEntries() > 100){
331 TF1 *fitfunc =
new TF1(
"fitfunc",
"[1] * x + [0]",0.15,0.85);
332 fitfunc->SetParameter(0,0);
333 fitfunc->SetParameter(1,0);
335 if(
swap->Fit(
"fitfunc",
"QR") == 0 && fitfunc->GetProb() > 0.005){
336 *
value = - fitfunc->GetParameter(1);
337 *
error = fitfunc->GetParError(1);
342 swap->GetXaxis()->SetTitle(
"Charge sharing");
343 swap->GetYaxis()->SetTitle(
"Residuals from the center of the cluster (#mum)");
344 swap->GetYaxis()->SetTitleOffset(1.2);
345 swap->GetXaxis()->SetTitleOffset(1.25);
348 std::ostringstream FitString;
349 FitString.flags(std::ios::fixed);
350 FitString.precision(2);
351 FitString <<
"slope: " << *
value <<
" #pm " << *
error <<
" #mum";
361 std::cout <<
swap->GetTitle() <<
" " <<
swap->Fit(
"fitfunc",
"QR") <<
" " << fitfunc->GetProb() << std::endl;
◆ operator=()
◆ Read()
int PixelCalib::PixelChargeInterpolationHistograms::Read |
( |
| ) |
|
◆ Write()
int PixelCalib::PixelChargeInterpolationHistograms::Write |
( |
| ) |
|
◆ m_etaH
MultiHisto<TH2F>* PixelCalib::PixelChargeInterpolationHistograms::m_etaH |
|
private |
◆ m_etaProfile
MultiHisto<TProfile>* PixelCalib::PixelChargeInterpolationHistograms::m_etaProfile |
|
private |
◆ m_OmegaEtah
MultiHisto<TH1F>* PixelCalib::PixelChargeInterpolationHistograms::m_OmegaEtah |
|
private |
◆ m_OmegaEtah_model
TH1F* PixelCalib::PixelChargeInterpolationHistograms::m_OmegaEtah_model |
|
private |
◆ m_OmegaPhih
MultiHisto<TH1F>* PixelCalib::PixelChargeInterpolationHistograms::m_OmegaPhih |
|
private |
◆ m_OmegaPhih_model
TH1F* PixelCalib::PixelChargeInterpolationHistograms::m_OmegaPhih_model |
|
private |
◆ m_parameters
◆ m_phiH
MultiHisto<TH2F>* PixelCalib::PixelChargeInterpolationHistograms::m_phiH |
|
private |
◆ m_phiProfile
MultiHisto<TProfile>* PixelCalib::PixelChargeInterpolationHistograms::m_phiProfile |
|
private |
◆ m_tag
std::string PixelCalib::PixelChargeInterpolationHistograms::m_tag |
|
private |
The documentation for this class was generated from the following files:
MultiHisto< TH2F > * m_etaH
int Write(const char *name=0, Int_t option=0, Int_t bufsize=0) const
int setDeltaY(int ieta, int iclustersize, int ilayer, float value)
int Fill(double xvar, double yvar, const std::vector< double > &pars)
MultiHisto< TH2F > * m_phiH
ht * GetHisto(int globalindex)
unsigned int GetNhistos() const
std::vector< int > GetDivisionsIndexes(int globalindex) const
MultiHisto< TH1F > * m_OmegaPhih
def TH2F(name, title, nxbins, bins_par2, bins_par3, bins_par4, bins_par5=None, bins_par6=None, path='', **kwargs)
MultiHisto< TH1F > * m_OmegaEtah
def TProfile(*args, **kwargs)
void DrawTitleLatex(const char *chartitle, float x, float y, int color=1, float textsize=0.04)
MultiHisto< TProfile > * m_etaProfile
void setVersion(int version)
void DrawATLASLabel(float x, float y, bool pre=false, float textsize=0.05)
PixelChargeInterpolationParameters * m_parameters
int setErrDeltaY(int ieta, int iclustersize, int ilayer, float value)
MultiHisto< TProfile > * m_phiProfile
int setDeltaX(int iangle, int iclustersize, int ilayer, float value)
void setParameters(const int ncsx, const int ncsy, const int neta, const int nalpha, int offset, std::vector< float > constants)
def TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
bool Fit(TProfile *swap, double *value, double *error)
int FillFromFile(TDirectory *histodir=0)
virtual const char * GetName() const
int setErrDeltaX(int iangle, int iclustersize, int ilayer, float value)