ATLAS Offline Software
Loading...
Searching...
No Matches
PixelCalib::PixelChargeInterpolationCalibration Class Reference

#include <PixelChargeInterpolationCalibration.h>

Collaboration diagram for PixelCalib::PixelChargeInterpolationCalibration:

Public Member Functions

 PixelChargeInterpolationCalibration (const std::string &tag, PixelChargeInterpolationParameters &parametersModel)
virtual ~PixelChargeInterpolationCalibration ()
void Fill (int DetType, double GeVTrkPt, double alpha, double DeltaRow, double digresphi, double resphi, double OmegaPhi, double TrkEta, double DeltaCol, double digreseta, double reseta, double OmegaEta)
void Read (TDirectory *readdir=0)
void Write (TDirectory *writedir=0)
int Analyze (const std::string &output, std::vector< std::string > &reference_names)

Private Member Functions

 PixelChargeInterpolationCalibration (const PixelChargeInterpolationCalibration &)
PixelChargeInterpolationCalibrationoperator= (const PixelChargeInterpolationCalibration &)

Private Attributes

PixelChargeInterpolationHistogramsm_DigitalCalibration {}
PixelChargeInterpolationHistogramsm_AnalogCalibration {}
PixelChargeInterpolationPlotm_plots {}

Detailed Description

Definition at line 20 of file PixelChargeInterpolationCalibration.h.

Constructor & Destructor Documentation

◆ PixelChargeInterpolationCalibration() [1/2]

PixelCalib::PixelChargeInterpolationCalibration::PixelChargeInterpolationCalibration ( const std::string & tag,
PixelChargeInterpolationParameters & parametersModel )

Definition at line 20 of file PixelChargeInterpolationCalibration.cxx.

21 :
24 m_plots(0){
25
26 m_DigitalCalibration = new PixelChargeInterpolationHistograms(tag,model);
27 m_AnalogCalibration = new PixelChargeInterpolationHistograms("analog_" + tag,model);
28
29}

◆ ~PixelChargeInterpolationCalibration()

PixelCalib::PixelChargeInterpolationCalibration::~PixelChargeInterpolationCalibration ( )
virtual

Definition at line 33 of file PixelChargeInterpolationCalibration.cxx.

33 {
34
37 delete m_plots; m_plots = 0;
38
39}

◆ PixelChargeInterpolationCalibration() [2/2]

PixelCalib::PixelChargeInterpolationCalibration::PixelChargeInterpolationCalibration ( const PixelChargeInterpolationCalibration & )
private

Member Function Documentation

◆ Analyze()

int PixelCalib::PixelChargeInterpolationCalibration::Analyze ( const std::string & output,
std::vector< std::string > & reference_names )

Definition at line 102 of file PixelChargeInterpolationCalibration.cxx.

103 {
104
105 PixelChargeInterpolationParameters *DigitalParameters = 0;
106 PixelChargeInterpolationParameters *AnalogParameters = 0;
107
108 std::ofstream logfile;
109 logfile.open((output + ".log").c_str());
110 logfile << "Log file for the pixel calibration fits." << std::endl;
111
112 DigitalParameters = m_DigitalCalibration->Analyze(logfile);
113 AnalogParameters = m_AnalogCalibration->Analyze(logfile);
114
115 logfile.close();
116
117 std::string name = "PixelChargeInterpolationData-" + output;
118 size_t pos = output.find("PixelOfflineReco");
119 if(pos != std::string::npos){
120 name = "PixelChargeInterpolationData"
121 + output.substr(pos+16,std::string::npos);
122 }
123 DigitalParameters->Print(name);
124 name = "Analog-" + name;
125 AnalogParameters->Print(name);
126
127 m_plots = new PixelChargeInterpolationPlot(*DigitalParameters);
128 m_plots->AddReference(*AnalogParameters,
129 std::string("Fit on analog residual (should give 0)").c_str(),3,std::string("P"));
130 for(unsigned int i = 0 ; i < reference_names.size() ; i++ ){
131 std::ifstream fin((reference_names[i]).c_str());
132 if(!fin.fail()){
133 fin.close();
134 PixelChargeInterpolationParameters *RefParameters =
135 new PixelChargeInterpolationParameters();
136 RefParameters->Load(reference_names[i]);
137 int color = 4+i;
138 if(color == 5) color = 1;
139 m_plots->AddReference(*RefParameters,reference_names[i],color,std::string("P"));
140 delete RefParameters;
141 }
142 }
143 m_plots->Plot(output);
144
145
146 return 0;
147}
output
Definition merge.py:16

◆ Fill()

void PixelCalib::PixelChargeInterpolationCalibration::Fill ( int DetType,
double GeVTrkPt,
double alpha,
double DeltaRow,
double digresphi,
double resphi,
double OmegaPhi,
double TrkEta,
double DeltaCol,
double digreseta,
double reseta,
double OmegaEta )

Definition at line 75 of file PixelChargeInterpolationCalibration.cxx.

79 {
80
81 // hack to uniform constants for all layers and for all disks
82 int modifier = 0;
83 int totlayers = 3;
84 if(DetType == 0) totlayers = 1;
85 else if(DetType < 4) modifier = 1;
86 else modifier = 4;
87 // fill with the same values for the relevant layers
88 for(int iLayer = 0; iLayer < totlayers; iLayer++){
89 DetType = iLayer + modifier;
90 m_DigitalCalibration->Fill(DetType, GeVTrkPt,
91 TrkEta, DeltaCol, digreseta, OmegaEta,
92 alpha, DeltaRow, digresphi, OmegaPhi);
93 m_AnalogCalibration->Fill(DetType, GeVTrkPt,
94 TrkEta, DeltaCol, reseta, OmegaEta,
95 alpha, DeltaRow, resphi, OmegaPhi);
96 }
97
98}

◆ operator=()

PixelChargeInterpolationCalibration & PixelCalib::PixelChargeInterpolationCalibration::operator= ( const PixelChargeInterpolationCalibration & )
private

◆ Read()

void PixelCalib::PixelChargeInterpolationCalibration::Read ( TDirectory * readdir = 0)

Definition at line 43 of file PixelChargeInterpolationCalibration.cxx.

43 {
44
45 TDirectory *current = gDirectory;
46 TDirectory *globaldir = gDirectory;
47 if(histofile != 0) globaldir = histofile;
48
49 globaldir->cd("ChargeInterpolation");
51 m_AnalogCalibration->Read();
52
53 current->cd();
54}

◆ Write()

void PixelCalib::PixelChargeInterpolationCalibration::Write ( TDirectory * writedir = 0)

Definition at line 58 of file PixelChargeInterpolationCalibration.cxx.

58 {
59
60 TDirectory *current = gDirectory;
61 TDirectory *globaldir = gDirectory;
62 if(writedir != 0) globaldir = writedir;
63
64 globaldir->mkdir("ChargeInterpolation")->cd();
65 m_DigitalCalibration->Write();
66 m_AnalogCalibration->Write();
67 m_plots->Write();
68
69 current->cd();
70
71}

Member Data Documentation

◆ m_AnalogCalibration

PixelChargeInterpolationHistograms* PixelCalib::PixelChargeInterpolationCalibration::m_AnalogCalibration {}
private

Definition at line 43 of file PixelChargeInterpolationCalibration.h.

43{};

◆ m_DigitalCalibration

PixelChargeInterpolationHistograms* PixelCalib::PixelChargeInterpolationCalibration::m_DigitalCalibration {}
private

Definition at line 42 of file PixelChargeInterpolationCalibration.h.

42{};

◆ m_plots

PixelChargeInterpolationPlot* PixelCalib::PixelChargeInterpolationCalibration::m_plots {}
private

Definition at line 44 of file PixelChargeInterpolationCalibration.h.

44{};

The documentation for this class was generated from the following files: