Skip to content

Commit bca9ee7

Browse files
ddobrigkalibuild
andauthored
add delta with MC for PV position study (#1739)
* add delta with MC for PV position study * Please consider the following formatting changes Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent eed392e commit bca9ee7

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

PWGLF/Tasks/QC/straRecoStudy.cxx

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,9 @@ struct preProcessMCcollisions {
8787
float nContribsWithTOF = 0;
8888
float nContribsWithITS = 0;
8989
float covTrace = 0;
90+
float deltaXY = -999; // positive def
91+
float deltaZ = -999;
92+
float deltaT = -999;
9093
};
9194

9295
template <typename T>
@@ -107,6 +110,11 @@ struct preProcessMCcollisions {
107110
const AxisSpec axisCovariance{(int)400, 0.0f, +0.1f, ""};
108111
const AxisSpec axisCovarianceTest{(int)400, -0.05f, +0.05f, ""};
109112
const AxisSpec axisTwenty{(int)20, -0.5f, +19.5f, ""};
113+
114+
const AxisSpec axisPVResolutionXY{(int)400, 0.0f, +0.05f, ""};
115+
const AxisSpec axisPVResolutionZ{(int)400, -0.1f, +0.1f, ""};
116+
const AxisSpec axisPVResolutionT{(int)400, -50000.0f, +0.0f, ""};
117+
110118
histos.add("hNTimesCollRecoed", "hNTimesCollRecoed", kTH1F, {axisNTimesCollRecoed});
111119
histos.add("hNTimesCollWithXiRecoed", "hNTimesCollWithXiRecoed", kTH1F, {axisNTimesCollRecoed});
112120

@@ -123,6 +131,14 @@ struct preProcessMCcollisions {
123131
histos.add("h2dCovarianceTrace", "h2dCovarianceTrace", kTH2D, {axisCovariance, axisTwenty});
124132
histos.add("h2dCovarianceTraceWithXi", "h2dCovarianceTraceWithXi", kTH2D, {axisCovariance, axisTwenty});
125133

134+
// PV true error: from reco vs MC
135+
histos.add("h2dPVResolutionXY", "h2dPVResolutionXY", kTH2D, {axisPVResolutionXY, axisTwenty});
136+
histos.add("h2dPVResolutionZ", "h2dPVResolutionZ", kTH2D, {axisPVResolutionZ, axisTwenty});
137+
histos.add("h2dPVResolutionT", "h2dPVResolutionT", kTH2D, {axisPVResolutionT, axisTwenty});
138+
histos.add("h2dPVResolutionXYWithXi", "h2dPVResolutionXYWithXi", kTH2D, {axisPVResolutionXY, axisTwenty});
139+
histos.add("h2dPVResolutionZWithXi", "h2dPVResolutionZWithXi", kTH2D, {axisPVResolutionZ, axisTwenty});
140+
histos.add("h2dPVResolutionTWithXi", "h2dPVResolutionTWithXi", kTH2D, {axisPVResolutionT, axisTwenty});
141+
126142
// Helper to decipher this histogram
127143
histos.get<TH2>(HIST("h2dNContributors"))->GetYaxis()->SetBinLabel(1, "Recoed 1 time, 1st PV"); // size 1 = 0
128144
histos.get<TH2>(HIST("h2dNContributors"))->GetYaxis()->SetBinLabel(2, "Recoed 2 times, Biggest PV"); // size 2 = 1
@@ -168,6 +184,10 @@ struct preProcessMCcollisions {
168184
histos.fill(HIST("hCyyTest"), cyy); // check for bug
169185
collisionNContribs.emplace_back(collision.numContrib());
170186
collisionStatAggregator[lCollisionIndex].covTrace = TMath::Sqrt(TMath::Abs(collision.covXX()) + TMath::Abs(collision.covYY()) + TMath::Abs(collision.covZZ()));
187+
collisionStatAggregator[lCollisionIndex].deltaXY = TMath::Sqrt(TMath::Power(collision.posX() - mcCollision.posX(), 2) + TMath::Power(collision.posY() - mcCollision.posY(), 2));
188+
collisionStatAggregator[lCollisionIndex].deltaZ = collision.posZ() - mcCollision.posZ();
189+
collisionStatAggregator[lCollisionIndex].deltaT = (collision.collisionTime() - mcCollision.t()) / 1000;
190+
171191
auto groupedTracks = tracks.sliceBy(perCollision, collision.globalIndex());
172192
for (auto& track : groupedTracks) {
173193
if (track.isPVContributor()) {
@@ -198,6 +218,9 @@ struct preProcessMCcollisions {
198218
histos.fill(HIST("h2dTrackCounter"), lIndexBin + 5, collisions.size(), collisionStatAggregator[ic].nContribsWithTOF);
199219
histos.fill(HIST("h2dNContributors"), collisionNContribs[ic], lYAxisOffset + lCollisionIndex);
200220
histos.fill(HIST("h2dCovarianceTrace"), collisionStatAggregator[ic].covTrace, lYAxisOffset + lCollisionIndex);
221+
histos.fill(HIST("h2dPVResolutionXY"), collisionStatAggregator[ic].deltaXY, lYAxisOffset + lCollisionIndex);
222+
histos.fill(HIST("h2dPVResolutionZ"), collisionStatAggregator[ic].deltaZ, lYAxisOffset + lCollisionIndex);
223+
histos.fill(HIST("h2dPVResolutionT"), collisionStatAggregator[ic].deltaT, lYAxisOffset + lCollisionIndex);
201224
if (lNumberOfXi > 0) {
202225
histos.fill(HIST("h2dTrackCounterWithXi"), lIndexBin + 0, collisions.size());
203226
histos.fill(HIST("h2dTrackCounterWithXi"), lIndexBin + 1, collisions.size(), collisionNContribs[ic]);
@@ -207,6 +230,9 @@ struct preProcessMCcollisions {
207230
histos.fill(HIST("h2dTrackCounterWithXi"), lIndexBin + 5, collisions.size(), collisionStatAggregator[ic].nContribsWithTOF);
208231
histos.fill(HIST("h2dNContributorsWithXi"), collisionNContribs[ic], lYAxisOffset + lCollisionIndex);
209232
histos.fill(HIST("h2dCovarianceTraceWithXi"), collisionStatAggregator[ic].covTrace, lYAxisOffset + lCollisionIndex);
233+
histos.fill(HIST("h2dPVResolutionXYWithXi"), collisionStatAggregator[ic].deltaXY, lYAxisOffset + lCollisionIndex);
234+
histos.fill(HIST("h2dPVResolutionZWithXi"), collisionStatAggregator[ic].deltaZ, lYAxisOffset + lCollisionIndex);
235+
histos.fill(HIST("h2dPVResolutionTWithXi"), collisionStatAggregator[ic].deltaT, lYAxisOffset + lCollisionIndex);
210236
}
211237
lCollisionIndex++;
212238
}

0 commit comments

Comments
 (0)