Skip to content

Commit a92fa67

Browse files
Nuclei signals + Nuclei tables + Nuclei cuts + minimal muon cuts
1 parent 1b283a3 commit a92fa67

File tree

4 files changed

+28
-37
lines changed

4 files changed

+28
-37
lines changed

PWGDQ/Core/CutsLibrary.cxx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2910,6 +2910,11 @@ AnalysisCompositeCut* o2::aod::dqcuts::GetCompositeCut(const char* cutName)
29102910
return cut;
29112911
}
29122912

2913+
if (!nameStr.compare("muonMinimalCuts")) {
2914+
cut->AddCut(GetAnalysisCut("muonMinimalCuts"));
2915+
return cut;
2916+
}
2917+
29132918
if (!nameStr.compare("muonQualityCuts")) {
29142919
cut->AddCut(GetAnalysisCut("muonQualityCuts"));
29152920
return cut;
@@ -5982,6 +5987,14 @@ AnalysisCut* o2::aod::dqcuts::GetAnalysisCut(const char* cutName)
59825987
return cut;
59835988
}
59845989

5990+
if (!nameStr.compare("muonMinimalCuts")) {
5991+
cut->AddCut(VarManager::kEta, -4.0, -2.5);
5992+
cut->AddCut(VarManager::kMuonRAtAbsorberEnd, 17.6, 89.5);
5993+
cut->AddCut(VarManager::kMuonPDca, 0.0, 594.0, false, VarManager::kMuonRAtAbsorberEnd, 17.6, 26.5);
5994+
cut->AddCut(VarManager::kMuonPDca, 0.0, 324.0, false, VarManager::kMuonRAtAbsorberEnd, 26.5, 89.5);
5995+
return cut;
5996+
}
5997+
59855998
if (!nameStr.compare("muonQualityCuts")) {
59865999
cut->AddCut(VarManager::kEta, -4.0, -2.5);
59876000
cut->AddCut(VarManager::kMuonRAtAbsorberEnd, 17.6, 89.5);

PWGDQ/Core/MCSignalLibrary.cxx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,11 @@ MCSignal* o2::aod::dqmcsignals::GetMCSignal(const char* name)
126126
signal = new MCSignal(name, "Inclusive jpsi", {prong}, {-1});
127127
return signal;
128128
}
129+
if (!nameStr.compare("Helium3")) {
130+
MCProng prong(1, {1000020030}, {true}, {false}, {0}, {0}, {false});
131+
signal = new MCSignal(name, "Helium3", {prong}, {-1});
132+
return signal;
133+
}
129134
if (!nameStr.compare("Helium3Primary")) {
130135
MCProng prong(1, {1000020030}, {true}, {false}, {0}, {0}, {false});
131136
prong.SetSourceBit(0, MCProng::kPhysicalPrimary);

PWGDQ/DataModel/ReducedInfoTables.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -905,7 +905,7 @@ DECLARE_SOA_COLUMN(Pt, pt, float); //!
905905
DECLARE_SOA_COLUMN(Eta, eta, float); //!
906906
DECLARE_SOA_COLUMN(Phi, phi, float); //!
907907
DECLARE_SOA_COLUMN(Sign, sign, int); //!
908-
DECLARE_SOA_COLUMN(McDecision, mcDecision, uint32_t); //!
908+
DECLARE_SOA_COLUMN(McDecision, mcDecision, uint16_t); //!
909909
} // namespace fwdpid
910910

911911
DECLARE_SOA_TABLE(FwdPidsAll, "AOD", "RTFWDPIDALL", //!

PWGDQ/Tasks/taskFwdTrackPid.cxx

Lines changed: 9 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -139,13 +139,11 @@ struct taskFwdTrackPid {
139139
template <bool TMatchedOnly, uint32_t TEventFillMap, uint32_t TTrackFillMap, typename TEvent, typename Muons, typename MftTracks>
140140
void runFwdTrackPid(TEvent const& event, Muons const& muons, MftTracks const& mftTracks)
141141
{
142-
uint32_t mcDecision = 0;
143-
144142
fwdPidAllList.reserve(1);
145143
for (const auto& muon : muons) {
146144
if (muon.has_matchMFTTrack() && muon.trackType() == 0 && TMath::Abs(muon.fwdDcaX()) < fConfigMaxDCA && TMath::Abs(muon.fwdDcaY()) < fConfigMaxDCA) {
147145
auto mftTrack = muon.template matchMFTTrack_as<MyMftTracks>();
148-
fwdPidAllList(muon.trackType(), event.posX(), event.posY(), event.posZ(), event.numContrib(), muon.pt(), muon.eta(), muon.phi(), muon.sign(), mftTrack.mftClusterSizesAndTrackFlags(), muon.fwdDcaX(), muon.fwdDcaY(), muon.chi2MatchMCHMID(), muon.chi2MatchMCHMFT(), mcDecision);
146+
fwdPidAllList(muon.trackType(), event.posX(), event.posY(), event.posZ(), event.numContrib(), muon.pt(), muon.eta(), muon.phi(), muon.sign(), mftTrack.mftClusterSizesAndTrackFlags(), muon.fwdDcaX(), muon.fwdDcaY(), muon.chi2MatchMCHMID(), muon.chi2MatchMCHMFT(), 0);
149147
}
150148
}
151149
if constexpr (TMatchedOnly == false) {
@@ -157,7 +155,7 @@ struct taskFwdTrackPid {
157155
continue;
158156
}
159157
}
160-
fwdPidAllList(4, event.posX(), event.posY(), event.posZ(), event.numContrib(), mftTrack.pt(), mftTrack.eta(), mftTrack.phi(), mftTrack.sign(), mftTrack.mftClusterSizesAndTrackFlags(), mftTrack.fwdDcaX(), mftTrack.fwdDcaY(), -999, -999, mcDecision);
158+
fwdPidAllList(4, event.posX(), event.posY(), event.posZ(), event.numContrib(), mftTrack.pt(), mftTrack.eta(), mftTrack.phi(), mftTrack.sign(), mftTrack.mftClusterSizesAndTrackFlags(), mftTrack.fwdDcaX(), mftTrack.fwdDcaY(), -999, -999, 0);
161159
}
162160
}
163161
}
@@ -169,31 +167,16 @@ struct taskFwdTrackPid {
169167
{
170168
fwdPidAllList.reserve(1);
171169
for (const auto& muon : muons) {
172-
uint32_t mcDecision = 0;
173-
int isig = 0;
174-
for (auto sig = fRecMCSignals.begin(); sig != fRecMCSignals.end(); sig++, isig++) {
175-
if ((*sig).CheckSignal(false, muon.reducedMCTrack())) {
176-
mcDecision |= (uint32_t(1) << isig);
177-
}
178-
}
179-
180170
if (muon.has_matchMFTTrack() && muon.trackType() == 0 && TMath::Abs(muon.fwdDcaX()) < fConfigMaxDCA && TMath::Abs(muon.fwdDcaY()) < fConfigMaxDCA) {
181171
auto mftTrack = muon.template matchMFTTrack_as<MyMftTracksMC>();
182-
fwdPidAllList(muon.trackType(), event.posX(), event.posY(), event.posZ(), event.numContrib(), muon.pt(), muon.eta(), muon.phi(), muon.sign(), mftTrack.mftClusterSizesAndTrackFlags(), muon.fwdDcaX(), muon.fwdDcaY(), muon.chi2MatchMCHMID(), muon.chi2MatchMCHMFT(), mcDecision);
172+
fwdPidAllList(muon.trackType(), event.posX(), event.posY(), event.posZ(), event.numContrib(), muon.pt(), muon.eta(), muon.phi(), muon.sign(), mftTrack.mftClusterSizesAndTrackFlags(), muon.fwdDcaX(), muon.fwdDcaY(), muon.chi2MatchMCHMID(), muon.chi2MatchMCHMFT(), muon.mcReducedFlags());
183173
}
184174
}
185175

186176
if constexpr (TMatchedOnly == false) {
187177
for (const auto& mftTrack : mftTracks) {
188-
uint32_t mcDecision = 0;
189-
int isig = 0;
190-
for (auto sig = fRecMCSignals.begin(); sig != fRecMCSignals.end(); sig++, isig++) {
191-
if ((*sig).CheckSignal(false, mftTrack.reducedMCTrack())) {
192-
mcDecision |= (uint32_t(1) << isig);
193-
}
194-
}
195178
if (TMath::Abs(mftTrack.fwdDcaX()) < fConfigMaxDCA && TMath::Abs(mftTrack.fwdDcaY()) < fConfigMaxDCA) {
196-
fwdPidAllList(4, event.posX(), event.posY(), event.posZ(), event.numContrib(), mftTrack.pt(), mftTrack.eta(), mftTrack.phi(), mftTrack.sign(), mftTrack.mftClusterSizesAndTrackFlags(), mftTrack.fwdDcaX(), mftTrack.fwdDcaY(), -999, -999, mcDecision);
179+
fwdPidAllList(4, event.posX(), event.posY(), event.posZ(), event.numContrib(), mftTrack.pt(), mftTrack.eta(), mftTrack.phi(), mftTrack.sign(), mftTrack.mftClusterSizesAndTrackFlags(), mftTrack.fwdDcaX(), mftTrack.fwdDcaY(), -999, -999, mftTrack.mcReducedFlags());
197180
}
198181
}
199182
}
@@ -206,19 +189,10 @@ struct taskFwdTrackPid {
206189
for (auto& mctrack : groupedMCTracks) {
207190
VarManager::FillTrackMC(groupedMCTracks, mctrack);
208191

209-
for (auto& sig : fGenMCSignals) {
210-
if (sig.GetNProngs() != 1) { // NOTE: 1-prong signals required
211-
continue;
212-
}
213-
bool checked = false;
214-
if constexpr (soa::is_soa_filtered_v<TTracksMC>) {
215-
auto mctrack_raw = groupedMCTracks.rawIteratorAt(mctrack.globalIndex());
216-
checked = sig.CheckSignal(false, mctrack_raw);
217-
} else {
218-
checked = sig.CheckSignal(false, mctrack);
219-
}
220-
if (checked) {
221-
fHistMan->FillHistClass(Form("MCTruthGen_%s", sig.GetName()), VarManager::fgValues);
192+
int isig = 0;
193+
for (auto sig = fGenMCSignals.begin(); sig != fGenMCSignals.end(); sig++, isig++) {
194+
if (mctrack.mcReducedFlags() & (static_cast<uint16_t>(1) << isig)) {
195+
fHistMan->FillHistClass(Form("MCTruthGen_%s", sig->GetName()), VarManager::fgValues);
222196
}
223197
}
224198
}
@@ -287,8 +261,7 @@ void DefineHistograms(HistogramManager* histMan, TString histClasses)
287261
if (classStr.Contains("MCTruthGen")) {
288262
dqhistograms::DefineHistograms(histMan, objArray->At(iclass)->GetName(), "mctruth");
289263
histMan->AddHistogram(objArray->At(iclass)->GetName(), "Pt_Rapidity", "MC generator p_{T}, y distribution", false, 120, 0.0, 30.0, VarManager::kMCPt, 150, 2.5, 4.0, VarManager::kMCY);
290-
histMan->AddHistogram(objArray->At(iclass)->GetName(), "Eta", "MC generator #eta distribution", false, 200, 2.5, 4.0, VarManager::kMCEta);
291-
// histMan->AddHistogram(objArray->At(iclass)->GetName(), "Rapidity", "MC generator y distribution", false, 150, 2.5, 4.0, VarManager::kMCY);
264+
histMan->AddHistogram(objArray->At(iclass)->GetName(), "Eta", "MC generator #eta distribution", false, 200, -5.0, 5.0, VarManager::kMCEta);
292265
histMan->AddHistogram(objArray->At(iclass)->GetName(), "Phi", "MC generator #varphi distribution", false, 50, 0.0, 2. * TMath::Pi(), VarManager::kMCPhi);
293266
}
294267

0 commit comments

Comments
 (0)