WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Commit 89b72b3

Browse files
authored
Merge pull request #593 from sungbinoh/feature/sungbino_likepid_into_cafmaker
Feature/sungbino likepid into cafmaker
2 parents 833248e + 4309dfe commit 89b72b3

File tree

4 files changed

+59
-0
lines changed

4 files changed

+59
-0
lines changed

sbncode/CAFMaker/CAFMakerParams.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,12 @@ namespace caf
255255
"pandoraPid"
256256
};
257257

258+
Atom<string> TrackLikePidLabel {
259+
Name("TrackLikePidLabel"),
260+
Comment("Base label of track likelihood particle-id producer."),
261+
"pandoraLikePid"
262+
};
263+
258264
Atom<string> TrackScatterClosestApproachLabel {
259265
Name("TrackScatterClosestApproachLabel"),
260266
Comment("Base label of track track scatter closestapproach producer."),

sbncode/CAFMaker/CAFMaker_module.cc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2179,6 +2179,10 @@ void CAFMaker::produce(art::Event& evt) noexcept {
21792179
FindManyPStrict<anab::ParticleID>(slcTracks, evt,
21802180
fParams.TrackChi2PidLabel() + slice_tag_suff);
21812181

2182+
art::FindManyP<anab::ParticleID> fmLikePID =
2183+
FindManyPStrict<anab::ParticleID>(slcTracks, evt,
2184+
fParams.TrackLikePidLabel() + slice_tag_suff);
2185+
21822186
art::FindManyP<sbn::ScatterClosestApproach> fmScatterClosestApproach =
21832187
FindManyPStrict<sbn::ScatterClosestApproach>(slcTracks, evt,
21842188
fParams.TrackScatterClosestApproachLabel() + slice_tag_suff);
@@ -2470,6 +2474,9 @@ void CAFMaker::produce(art::Event& evt) noexcept {
24702474
if (fmChi2PID.isValid()) {
24712475
FillTrackChi2PID(fmChi2PID.at(iPart), trk);
24722476
}
2477+
if (fmLikePID.isValid()) {
2478+
FillTrackLikePID(fmLikePID.at(iPart), trk);
2479+
}
24732480
if (fmScatterClosestApproach.isValid() && fmScatterClosestApproach.at(iPart).size()==1) {
24742481
FillTrackScatterClosestApproach(fmScatterClosestApproach.at(iPart).front(), trk);
24752482
}

sbncode/CAFMaker/FillReco.cxx

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -951,6 +951,48 @@ namespace caf
951951
}
952952
}
953953

954+
void FillPlaneLikePID(const anab::ParticleID &particle_id, caf::SRTrkLikelihoodPID &srlikepid) {
955+
956+
// Loop over algorithm scores and extract the ones we want.
957+
// Get the ndof from any likelihood pid algorithm
958+
srlikepid.setDefault();
959+
960+
std::vector<anab::sParticleIDAlgScores> const& AlgScoresVec = particle_id.ParticleIDAlgScores();
961+
for (anab::sParticleIDAlgScores const& AlgScore: AlgScoresVec){
962+
if (AlgScore.fAlgName == "Likelihood"){
963+
switch (std::abs(AlgScore.fAssumedPdg)) {
964+
case 13: // lambda_mu
965+
srlikepid.lambda_muon = AlgScore.fValue;
966+
srlikepid.pid_ndof = AlgScore.fNdf;
967+
break;
968+
case 211: // lambda_pi
969+
srlikepid.lambda_pion = AlgScore.fValue;
970+
srlikepid.pid_ndof = AlgScore.fNdf;
971+
break;
972+
case 2212: // lambda_pr
973+
srlikepid.lambda_proton = AlgScore.fValue;
974+
srlikepid.pid_ndof = AlgScore.fNdf;
975+
break;
976+
}
977+
}
978+
}
979+
}
980+
981+
void FillTrackLikePID(const std::vector<art::Ptr<anab::ParticleID>>& particleIDs,
982+
caf::SRTrack& srtrack,
983+
bool allowEmpty)
984+
{
985+
// get the particle ID's
986+
for (art::Ptr<anab::ParticleID> const& pidPtr: particleIDs) {
987+
const anab::ParticleID &particle_id = *pidPtr;
988+
if (particle_id.PlaneID()) {
989+
unsigned plane_id = particle_id.PlaneID().Plane;
990+
assert(plane_id < 3);
991+
FillPlaneLikePID(particle_id, srtrack.likepid[plane_id]);
992+
}
993+
}
994+
}
995+
954996
void FillTrackPlaneCalo(const anab::Calorimetry &calo,
955997
const std::vector<art::Ptr<recob::Hit>> &hits,
956998
bool fill_calo_points, float fillhit_rrstart, float fillhit_rrend,

sbncode/CAFMaker/FillReco.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,10 @@ namespace caf
228228
void FillTrackChi2PID(const std::vector<art::Ptr<anab::ParticleID>> particleIDs,
229229
caf::SRTrack& srtrack,
230230
bool allowEmpty = false);
231+
void FillPlaneLikePID(const anab::ParticleID &particle_id, caf::SRTrkLikelihoodPID &srlikepid);
232+
void FillTrackLikePID(const std::vector<art::Ptr<anab::ParticleID>>& particleIDs,
233+
caf::SRTrack& srtrack,
234+
bool allowEmpty = false);
231235

232236
void FillTrackPlaneCalo(const anab::Calorimetry &calo,
233237
const std::vector<art::Ptr<recob::Hit>> &hits,

0 commit comments

Comments
 (0)