Skip to content

Commit e0122d3

Browse files
[DGP] AOTTrack - Add De PID to qaEfficiency (#4632)
1 parent 942c59a commit e0122d3

File tree

1 file changed

+107
-10
lines changed

1 file changed

+107
-10
lines changed

DPG/Tasks/AOTTrack/qaEfficiency.cxx

Lines changed: 107 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
#include "Common/DataModel/EventSelection.h"
2828
#include "Common/Core/TrackSelectionDefaults.h"
2929
#include "Common/DataModel/TrackSelectionTables.h"
30+
#include "PWGLF/DataModel/LFParticleIdentification.h"
3031

3132
// ROOT includes
3233
#include "TPDGCode.h"
@@ -1578,7 +1579,7 @@ struct QaEfficiency {
15781579
if constexpr (doFillHisto) {
15791580
histos.fill(countingHisto, trkCutIdxPassedDcaZMax);
15801581
}
1581-
if (std::abs(track.passedDCAz()) < minDcaZ) {
1582+
if (std::abs(track.dcaZ()) < minDcaZ) {
15821583
return false;
15831584
}
15841585
if constexpr (doFillHisto) {
@@ -1635,30 +1636,33 @@ struct QaEfficiency {
16351636
histos.fill(countingHisto, trkCutIdxPassedTOFPartial);
16361637
}
16371638
}
1638-
1639+
bool isTrackSelectedAfteAll = false;
16391640
switch (globalTrackSelection) {
16401641
case 0:
1641-
return true;
1642+
isTrackSelectedAfteAll = true;
16421643
case 1:
1643-
return track.isGlobalTrack();
1644+
isTrackSelectedAfteAll = track.isGlobalTrack();
16441645
case 2:
1645-
return track.isGlobalTrackWoPtEta();
1646+
isTrackSelectedAfteAll = track.isGlobalTrackWoPtEta();
16461647
case 3:
1647-
return track.isGlobalTrackWoDCA();
1648+
isTrackSelectedAfteAll = track.isGlobalTrackWoDCA();
16481649
case 4:
1649-
return track.isQualityTrack();
1650+
isTrackSelectedAfteAll = track.isQualityTrack();
16501651
case 5:
1651-
return track.isInAcceptanceTrack();
1652+
isTrackSelectedAfteAll = track.isInAcceptanceTrack();
16521653
case 6:
1653-
return customTrackCuts.IsSelected(track);
1654+
isTrackSelectedAfteAll = customTrackCuts.IsSelected(track);
16541655
default:
16551656
LOG(fatal) << "Can't interpret track asked selection " << globalTrackSelection;
16561657
}
1658+
if (!isTrackSelectedAfteAll) {
1659+
return false;
1660+
}
16571661
if constexpr (doFillHisto) {
16581662
histos.fill(countingHisto, trkCutIdxPassedGlobal);
16591663
}
16601664

1661-
return false;
1665+
return true;
16621666
}
16631667

16641668
// MC process
@@ -1909,6 +1913,99 @@ struct QaEfficiency {
19091913
}
19101914
PROCESS_SWITCH(QaEfficiency, processData, "process data", true);
19111915

1916+
void processDataWithPID(o2::soa::Join<o2::aod::Collisions, o2::aod::EvSels>::iterator const& collision,
1917+
o2::soa::Join<TrackCandidates, o2::aod::pidTPCLfFullDe> const& tracks)
1918+
{
1919+
1920+
if (!isCollisionSelected<false>(collision)) {
1921+
return;
1922+
}
1923+
1924+
for (const auto& track : tracks) {
1925+
if (!isTrackSelected<false>(track, HIST("Data/trackSelection"))) {
1926+
continue;
1927+
}
1928+
if (abs(track.tpcNSigmaDe()) > 3.f) {
1929+
continue;
1930+
}
1931+
histos.fill(HIST("Data/trackLength"), track.length());
1932+
1933+
if (passedITS) {
1934+
if (track.sign() > 0) {
1935+
histos.fill(HIST("Data/pos/pt/its"), track.pt());
1936+
histos.fill(HIST("Data/pos/eta/its"), track.eta());
1937+
histos.fill(HIST("Data/pos/phi/its"), track.phi());
1938+
histos.fill(HIST("Data/pos/etaphi/its"), track.eta(), track.phi());
1939+
} else {
1940+
histos.fill(HIST("Data/neg/pt/its"), track.pt());
1941+
histos.fill(HIST("Data/neg/eta/its"), track.eta());
1942+
histos.fill(HIST("Data/neg/phi/its"), track.phi());
1943+
histos.fill(HIST("Data/neg/etaphi/its"), track.eta(), track.phi());
1944+
}
1945+
}
1946+
1947+
if (passedTPC) {
1948+
if (track.sign() > 0) {
1949+
histos.fill(HIST("Data/pos/pt/tpc"), track.pt());
1950+
histos.fill(HIST("Data/pos/eta/tpc"), track.eta());
1951+
histos.fill(HIST("Data/pos/phi/tpc"), track.phi());
1952+
histos.fill(HIST("Data/pos/etaphi/tpc"), track.eta(), track.phi());
1953+
} else {
1954+
histos.fill(HIST("Data/neg/pt/tpc"), track.pt());
1955+
histos.fill(HIST("Data/neg/eta/tpc"), track.eta());
1956+
histos.fill(HIST("Data/neg/phi/tpc"), track.phi());
1957+
histos.fill(HIST("Data/neg/etaphi/tpc"), track.eta(), track.phi());
1958+
}
1959+
}
1960+
1961+
if (passedITS && passedTPC) {
1962+
if (track.sign() > 0) {
1963+
histos.fill(HIST("Data/pos/pt/its_tpc"), track.pt());
1964+
histos.fill(HIST("Data/pos/eta/its_tpc"), track.eta());
1965+
histos.fill(HIST("Data/pos/phi/its_tpc"), track.phi());
1966+
histos.fill(HIST("Data/pos/etaphi/its_tpc"), track.eta(), track.phi());
1967+
} else {
1968+
histos.fill(HIST("Data/neg/pt/its_tpc"), track.pt());
1969+
histos.fill(HIST("Data/neg/eta/its_tpc"), track.eta());
1970+
histos.fill(HIST("Data/neg/phi/its_tpc"), track.phi());
1971+
histos.fill(HIST("Data/neg/etaphi/its_tpc"), track.eta(), track.phi());
1972+
}
1973+
}
1974+
1975+
if (passedITS && passedTPC && passedTOF) {
1976+
if (track.sign() > 0) {
1977+
histos.fill(HIST("Data/pos/pt/its_tpc_tof"), track.pt());
1978+
histos.fill(HIST("Data/pos/eta/its_tpc_tof"), track.eta());
1979+
histos.fill(HIST("Data/pos/phi/its_tpc_tof"), track.phi());
1980+
histos.fill(HIST("Data/pos/etaphi/its_tpc_tof"), track.eta(), track.phi());
1981+
} else {
1982+
histos.fill(HIST("Data/neg/pt/its_tpc_tof"), track.pt());
1983+
histos.fill(HIST("Data/neg/eta/its_tpc_tof"), track.eta());
1984+
histos.fill(HIST("Data/neg/phi/its_tpc_tof"), track.phi());
1985+
histos.fill(HIST("Data/neg/etaphi/its_tpc_tof"), track.eta(), track.phi());
1986+
}
1987+
}
1988+
1989+
if (makeEff) {
1990+
if (passedITS) {
1991+
effITSTPCMatchingVsPt->Fill(passedTPC, track.pt());
1992+
}
1993+
if (passedTPC) {
1994+
effTPCITSMatchingVsPt->Fill(passedITS, track.pt());
1995+
}
1996+
if (passedITS && passedTPC) {
1997+
effTPCTOFMatchingVsPt->Fill(passedTOF, track.pt());
1998+
effTPCTOFMatchingVsP->Fill(passedTOF, track.p());
1999+
effTPCTOFMatchingVsEta->Fill(passedTOF, track.eta());
2000+
effTPCTOFMatchingVsPhi->Fill(passedTOF, track.phi());
2001+
effTPCTOFMatchingVsPtVsEta->Fill(passedTOF, track.pt(), track.eta());
2002+
effTPCTOFMatchingVsPtVsPhi->Fill(passedTOF, track.pt(), track.phi());
2003+
}
2004+
}
2005+
}
2006+
}
2007+
PROCESS_SWITCH(QaEfficiency, processDataWithPID, "process data with PID", false);
2008+
19122009
void processHmpid(o2::soa::Join<o2::aod::Collisions, o2::aod::EvSels>::iterator const& collision,
19132010
TrackCandidates const& tracks,
19142011
o2::aod::HMPIDs const& hmpids)

0 commit comments

Comments
 (0)