Skip to content

Commit b495fc6

Browse files
peressounkoperessounko
andauthored
[PWGEM] Apply calibration to cell energy (#8660)
Co-authored-by: peressounko <Dmitri.Peresunko@cern.ch>
1 parent 4b25ae7 commit b495fc6

File tree

1 file changed

+35
-12
lines changed

1 file changed

+35
-12
lines changed

PWGEM/Tasks/phosCellQA.cxx

Lines changed: 35 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,12 @@
1414
#include <map>
1515
#include <memory>
1616
#include <vector>
17+
#include <string>
1718

19+
#include "CCDB/BasicCCDBManager.h"
1820
#include "Common/DataModel/EventSelection.h"
1921
#include "DataFormatsPHOS/Cell.h"
22+
#include "DataFormatsPHOS/CalibParams.h"
2023
#include "Framework/ConfigParamSpec.h"
2124
#include "Framework/runDataProcessing.h"
2225
#include "Framework/AnalysisTask.h"
@@ -43,13 +46,17 @@ using namespace o2::framework;
4346
using namespace o2::framework::expressions;
4447

4548
struct phosCellQA {
46-
ConfigurableAxis amplitudeAxisLarge{"amplitude", {1000, 0., 100.}, "Amplutude (GeV)"};
49+
50+
Service<o2::ccdb::BasicCCDBManager> ccdb;
51+
52+
ConfigurableAxis amplitudeAxisLarge{"amplitude", {1000, 0., 10.}, "Amplutude (GeV)"};
4753
ConfigurableAxis timeAxisLarge{"celltime", {1000, -1500.e-9, 3500.e-9}, "cell time (ns)"};
4854
Configurable<int> mEvSelTrig{"mEvSelTrig", kTVXinPHOS, "Select events with this trigger"};
49-
Configurable<double> mMinCellAmplitude{"minCellAmplitude", 0., "Minimum cell amplitude for histograms."};
55+
Configurable<double> mMinCellAmplitude{"minCellAmplitude", 0.5, "Minimum cell energy for histograms (GeV)"};
5056
Configurable<double> mMinCellTimeMain{"minCellTimeMain", -50, "Min. cell time of main bunch selection"};
5157
Configurable<double> mMaxCellTimeMain{"maxCellTimeMain", 100, "Max. cell time of main bunch selection"};
5258
Configurable<int> mVetoBCID{"vetoBCID", -1, "BC ID to be excluded"};
59+
Configurable<std::string> mCalibPath{"calibPath", "PHS/Calib/CalibParams", "path to Calibration snapshot"};
5360

5461
o2::framework::HistogramRegistry mHistManager{"phosCallQAHistograms"};
5562

@@ -91,6 +98,15 @@ struct phosCellQA {
9198
void process(o2::aod::Calos const& cells, BCsWithBcSels const& bcs)
9299
{
93100
LOG(debug) << "Processing next event";
101+
102+
int64_t timestamp = 0;
103+
if (bcs.begin() != bcs.end()) {
104+
timestamp = bcs.begin().timestamp(); // timestamp for CCDB object retrieval
105+
} else {
106+
return;
107+
}
108+
const o2::phos::CalibParams* calibParams = ccdb->getForTimeStamp<o2::phos::CalibParams>(mCalibPath, timestamp);
109+
94110
for (const auto& bc : bcs) {
95111
o2::InteractionRecord eventIR;
96112
eventIR.setFromLong(bc.globalBC());
@@ -110,45 +126,52 @@ struct phosCellQA {
110126
if (mVetoBCID >= 0 && cellIR.bc == mVetoBCID)
111127
continue;
112128
mHistManager.fill(HIST("cellBCSelected"), cellIR.bc);
113-
// mHistManager.fill(HIST("cellAmplitude"), cell.amplitude(), cell.cellNumber());
114129

115130
if (!cell.bc_as<BCsWithBcSels>().alias_bit(mEvSelTrig))
116131
continue;
117132

118-
if (cell.amplitude() < mMinCellAmplitude)
133+
bool isHighGain = cell.cellType();
134+
double energy = calibParams->getGain(cell.cellNumber()) * cell.amplitude();
135+
// if (isHighGain) {
136+
// energy = calibParams->getGain(cell.cellNumber()) * cell.amplitude();
137+
// } else {
138+
// energy = calibParams->getGain(cell.cellNumber()) * cell.amplitude() * calibParams->getHGLGRatio(cell.cellNumber());
139+
// }
140+
141+
if (energy < mMinCellAmplitude)
119142
continue;
120143
char relid[3];
121144
o2::phos::Geometry::absToRelNumbering(cell.cellNumber(), relid);
122145
if (relid[0] == 1) {
123146
mHistManager.fill(HIST("cellOccM1"), relid[1] - 0.5, relid[2] - 0.5);
124-
mHistManager.fill(HIST("cellAmpM1"), relid[1] - 0.5, relid[2] - 0.5, cell.amplitude());
147+
mHistManager.fill(HIST("cellAmpM1"), relid[1] - 0.5, relid[2] - 0.5, energy);
125148
mHistManager.fill(HIST("cellTimeM1"), relid[1] - 0.5, relid[2] - 0.5, cell.time());
126149
if (cell.time() > mMinCellTimeMain && cell.time() < mMaxCellTimeMain) {
127-
mHistManager.fill(HIST("cellAmpTimeM1"), cell.time(), cell.amplitude());
150+
mHistManager.fill(HIST("cellAmpTimeM1"), cell.time(), energy);
128151
}
129152
}
130153
if (relid[0] == 2) {
131154
mHistManager.fill(HIST("cellOccM2"), relid[1] - 0.5, relid[2] - 0.5);
132-
mHistManager.fill(HIST("cellAmpM2"), relid[1] - 0.5, relid[2] - 0.5, cell.amplitude());
155+
mHistManager.fill(HIST("cellAmpM2"), relid[1] - 0.5, relid[2] - 0.5, energy);
133156
mHistManager.fill(HIST("cellTimeM2"), relid[1] - 0.5, relid[2] - 0.5, cell.time());
134157
if (cell.time() > mMinCellTimeMain && cell.time() < mMaxCellTimeMain) {
135-
mHistManager.fill(HIST("cellAmpTimeM2"), cell.time(), cell.amplitude());
158+
mHistManager.fill(HIST("cellAmpTimeM2"), cell.time(), energy);
136159
}
137160
}
138161
if (relid[0] == 3) {
139162
mHistManager.fill(HIST("cellOccM3"), relid[1] - 0.5, relid[2] - 0.5);
140-
mHistManager.fill(HIST("cellAmpM3"), relid[1] - 0.5, relid[2] - 0.5, cell.amplitude());
163+
mHistManager.fill(HIST("cellAmpM3"), relid[1] - 0.5, relid[2] - 0.5, energy);
141164
mHistManager.fill(HIST("cellTimeM3"), relid[1] - 0.5, relid[2] - 0.5, cell.time());
142165
if (cell.time() > mMinCellTimeMain && cell.time() < mMaxCellTimeMain) {
143-
mHistManager.fill(HIST("cellAmpTimeM3"), cell.time(), cell.amplitude());
166+
mHistManager.fill(HIST("cellAmpTimeM3"), cell.time(), energy);
144167
}
145168
}
146169
if (relid[0] == 4) {
147170
mHistManager.fill(HIST("cellOccM4"), relid[1] - 0.5, relid[2] - 0.5);
148-
mHistManager.fill(HIST("cellAmpM4"), relid[1] - 0.5, relid[2] - 0.5, cell.amplitude());
171+
mHistManager.fill(HIST("cellAmpM4"), relid[1] - 0.5, relid[2] - 0.5, energy);
149172
mHistManager.fill(HIST("cellTimeM4"), relid[1] - 0.5, relid[2] - 0.5, cell.time());
150173
if (cell.time() > mMinCellTimeMain && cell.time() < mMaxCellTimeMain) {
151-
mHistManager.fill(HIST("cellAmpTimeM4"), cell.time(), cell.amplitude());
174+
mHistManager.fill(HIST("cellAmpTimeM4"), cell.time(), energy);
152175
}
153176
}
154177
}

0 commit comments

Comments
 (0)