Project

General

Profile

Bug #17898

Cannot get hit-track association in file produced with v06_26_01_07 using develop branch

Added by Tingjun Yang about 2 years ago. Updated almost 2 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Target version:
Start date:
10/12/2017
Due date:
% Done:

100%

Estimated time:
Spent time:
Scope:
Internal
Experiment:
MicroBooNE
SSI Package:
art
Duration:

Description

Dear experts,

I am having trouble getting hit-track association from file produced with uboonecode v06_26_01_07 using develop branch. I have attached an event display fcl file and to see the problem one can do the following:

setup uboonecode v06_52_00 -q e14:prof
lar -c evd_ub_data_truncated.fcl /pnfs/uboone/data/uboone/reconstructed/prod_v06_26_01_07/reco_extunbiased_data_mcc8/reco2/00/00/63/00/PhysicsRun-2016_5_14_2_11_27-0006300-00189_20160514T211953_ext_unbiased_20160514T222937_merged_20160516T000302_reco1_20160516T042526_reco2_20171005T204451_reco1_20171006T013340_reco2.root

This will give a segmentation fault.

There is no problem running the same command using uboonecode v06_26_01_07.

Here are some hints from Tracy:
Conjecture on my part… there were some changes to the handling of associations for some high level objects to include extra information in the actual association. If I understand the code correctly, to recover associations stored with this extra info one has to use the correct form for recovering them. I have not kept up completely but I think Giuseppe has updates to fit track output which make use of these and these may only be on the develop branch? Not in the production code?

Thanks,
Tingjun

evd_ub_data_truncated.fcl (2.29 KB) evd_ub_data_truncated.fcl Tingjun Yang, 10/12/2017 11:49 PM
PrintTrackHitAssns.C (1.55 KB) PrintTrackHitAssns.C gallery macro printing track/hit associations Gianluca Petrillo, 10/17/2017 03:01 PM

History

#2 Updated by Lynn Garren almost 2 years ago

  • Status changed from New to Assigned
  • Assignee set to Gianluca Petrillo

#3 Updated by Gianluca Petrillo almost 2 years ago

I apologise for the ignorance... I have run the specified command with LArSoft v06_53_00 and I do not observe a segmentation fault. I observe a window with some display, as expected.
Which further steps do I need to take to trigger the track/hit request and therefore the crash?

#4 Updated by Gianluca Petrillo almost 2 years ago

  • Category set to Event Display
  • % Done changed from 0 to 10
  • Occurs In v06_53_00 added

#5 Updated by Tingjun Yang almost 2 years ago

Hi Gianluca,

Did you download the fcl file attached in this ticket (and remove .txt extension)?

Tingjun

#6 Updated by Gianluca Petrillo almost 2 years ago

Of course not! Why should I download the file that you wrote in the instructions to download?? Ehm.

Ok, now I can reproduce the issue. Sorry about that...

#7 Updated by Gianluca Petrillo almost 2 years ago

I am puzzled... so I am bouncing this to art.
I attach a gallery macro that prints the associations Tingjun is trying to read, and the result of a art::FindMany query.

Instructions to reproduce:
  1. make sure the ROOT file specified by Tingjun is available
  2. download the attached ROOT test macro PrintTrackHitAssn.C
  3. run
    source /cvmfs/fermilab.opensciencegrid.org/products/larsoft/setup # or /products/setup on woof.fnal.gov
    setup larsoftobj v1_26_00 -q e14:prof
    root.exe -q -b -l 'PrintTrackHitAssns.C("PhysicsRun-2016_5_14_2_11_27-0006300-00189_20160514T211953_ext_unbiased_20160514T222937_merged_20160516T000302_reco1_20160516T042526_reco2_20171005T204451_reco1_20171006T013340_reco2.root", "pandoraNuPMA")'
    

    This will print about 16k associations between product ID 5:216 and 5:141. The last line should show:
    Track 0 is associated to 1356 hits.

    Repeating the same exercise with larsoftobj v1_27_00 (art 2.8 instead of 2.7) shows for the track a product hash 0, and the last line complains:
    Track 0 is associated to 1356 hits but FindMany finds 0.

    With a different data product (pandoraCosmic) the hits have a "reasonable" product hash (1386406277), but the tracks (a different data product) still show 0.

Tingjun may want to detail the history of how that input file was processed: the time stamps suggest a mix of LArSoft and art versions.

#8 Updated by Gianluca Petrillo almost 2 years ago

  • Status changed from Assigned to Accepted
  • Assignee deleted (Gianluca Petrillo)

#9 Updated by Lynn Garren almost 2 years ago

  • Project changed from LArSoft to cet-is
  • Category deleted (Event Display)

#10 Updated by Tingjun Yang almost 2 years ago

The file was produced by uboonecode v06_26_01_07. Here is the list of products.

art               v2_05_00        -f Linux64bit+2.6-2.12  -q e10:nu:prof     -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft
awscli            v1_7_15         -f Linux64bit+2.6-2.12                     -z /cvmfs/fermilab.opensciencegrid.org/products/common/db
boost             v1_61_0         -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
canvas            v1_05_01        -f Linux64bit+2.6-2.12  -q e10:nu:prof     -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
cetlib            v1_21_00        -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
cetpkgsupport     v1_13_00        -f NULL                                    -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
cigetcert         v1_16_1         -f Linux64bit+2.6-2.12                     -z /cvmfs/fermilab.opensciencegrid.org/products/common/db
cigetcertlibs     v1_1            -f Linux64bit+2.6-2.12                     -z /cvmfs/fermilab.opensciencegrid.org/products/common/db
clhep             v2_3_3_2        -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
cpn               v1.7            -f NULL                                    -z /cvmfs/fermilab.opensciencegrid.org/products/common/db
cppunit           v1_12_1d        -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
cry               v1_7f           -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
eigen             v3_2_9a         -f NULL                                    -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
fftw              v3_3_4          -f Linux64bit+2.6-2.12  -q prof            -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
fhiclcpp          v4_02_00        -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
g4abla            v3_0            -f NULL                                    -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
g4emlow           v6_41           -f NULL                                    -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
g4neutron         v4_5            -f NULL                                    -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
g4neutronxs       v1_4            -f NULL                                    -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
g4nucleonxs       v1_1            -f NULL                                    -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
g4nuclide         v1_0            -f NULL                                    -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
g4photon          v3_1            -f NULL                                    -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
g4pii             v1_3            -f NULL                                    -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
g4radiative       v4_2            -f NULL                                    -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
g4surface         v1_0            -f NULL                                    -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
gcc               v4_9_3a         -f Linux64bit+2.6-2.12                     -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
geant4            v4_10_1_p03d    -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
genie             v2_12_2         -f Linux64bit+2.6-2.12  -q e10:prof:r6     -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
genie_xsec        v2_12_0         -f NULL                 -q DefaultPlusMECWithNC -z /cvmfs/uboone.opensciencegrid.org/products       
git               v2_13_3         -f Linux64bit+2.6-2.12                     -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
gitflow           v1_11_0         -f NULL                                    -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
gsl               v2_1            -f Linux64bit+2.6-2.12  -q prof            -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
ifbeam            v2_0_1          -f Linux64bit+2.6-2.12  -q e10:p2711:prof  -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
ifdhc             v2_0_1          -f Linux64bit+2.6-2.12  -q e10:p2711:prof  -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
ifdhc_config      v2_1_0          -f NULL                                    -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
ifdh_art          v2_00_02        -f Linux64bit+2.6-2.12  -q e10:nu:prof:s43 -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
jobsub_client     v1_2_4_1        -f NULL                                    -z /cvmfs/fermilab.opensciencegrid.org/products/common/db
jsoncpp           v1_7_2          -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
larana            v06_03_18_05    -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
larbatch          v01_32_04       -f NULL                                    -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
larcore           v06_05_03_01    -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
larcoreobj        v1_06_02_01     -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
lardata           v06_14_04_02    -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
lardataobj        v1_11_00_02     -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
lareventdisplay   v06_02_14_05    -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
larevt            v06_07_09_03    -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
larexamples       v06_01_15_03    -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
larpandora        v06_08_00_05    -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
larpandoracontent  v03_07_02_04    -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft 
larreco           v06_20_00_05    -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
larsim            v06_13_01_03    -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
larsoft           v06_26_01_05    -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
larsoft_data      v1_01_01        -f NULL                                    -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
larwirecell       v06_00_13_05    -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
lhapdf            v5_9_1e         -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
libwda            v2_22_2         -f Linux64bit+2.6-2.12                     -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
libxml2           v2_9_3          -f Linux64bit+2.6-2.12  -q prof            -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
log4cpp           v1_1_1e         -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
marley            v0_9_5a         -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
messagefacility   v1_18_00        -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
mrb               v1_12_00        -f NULL                                    -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
mysql_client      v5_5_48a        -f Linux64bit+2.6-2.12  -q e10             -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
nucondb           v2_0_1          -f Linux64bit+2.6-2.12  -q e10:p2711:prof  -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
nusimdata         v1_06_01        -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
nutools           v2_10_00        -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
pandora           v03_00_00       -f Linux64bit+2.6-2.12  -q e10:nu:prof     -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
pdfsets           v5_9_1b         -f NULL                                    -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
postgresql        v9_3_12         -f Linux64bit+2.6-2.12  -q p2711           -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft  
pycurl            v7_16_4         -f Linux64bit+2.6-2.12                     -z /cvmfs/fermilab.opensciencegrid.org/products/common/db
pythia            v6_4_28e        -f Linux64bit+2.6-2.12  -q gcc493a:prof    -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft
python            v2_7_11         -f Linux64bit+2.6-2.12                     -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft
range             v3_0_0          -f NULL                                    -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft
root              v6_06_08        -f Linux64bit+2.6-2.12  -q e10:nu:prof     -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft
sam_web_client    v2_0            -f NULL                                    -z /cvmfs/fermilab.opensciencegrid.org/products/common/db
setpath           v1_11           -f NULL                                    -z /cvmfs/fermilab.opensciencegrid.org/products/common/db
sqlite            v3_12_02_00     -f Linux64bit+2.6-2.12                     -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft
swtrigger         v02_02_03       -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/uboone.opensciencegrid.org/products
tbb               v4_4_3a         -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft
uboonecode        v06_26_01_07    -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/uboone.opensciencegrid.org/products
uboonedaq_datatypes  v6_19_01_e10    -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/uboone.opensciencegrid.org/products
uboonedata        v01_17_00_02    -f NULL                                    -z /cvmfs/uboone.opensciencegrid.org/products
uboone_photon_propagation  v01_00_00       -f NULL                                    -z /cvmfs/uboone.opensciencegrid.org/products
ubutil            v06_26_01_07    -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/uboone.opensciencegrid.org/products
ups               v5_2_0          -f Linux64bit+2.6-2.12                     -z /cvmfs/uboone.opensciencegrid.org/products
wirecell          v0_5_2          -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft
xerces_c          v3_1_3          -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft
xrootd            v3_3_4e         -f Linux64bit+2.6-2.12  -q e10:prof        -z /cvmfs/fermilab.opensciencegrid.org/products/larsoft

#11 Updated by Kyle Knoepfel almost 2 years ago

  • Status changed from Accepted to Assigned
  • Assignee set to Kyle Knoepfel

At the moment, I am seeing no errors in art. I am not saying there isn't a problem in art, but I haven't come across it yet.

Regarding the segmentation violation, that is not an art error, but that is because of an inappropriate access to the first element of an empty container at lareventdisplay/EventDisplay/RecoBaseDrawer.cxx:1298:

double wirePitch = geo->WirePitch(hits[0]->View());

The hits vector is empty, so there is a segmentation violation whenever hits[0] is called.

The question now is why is hits empty? So hits is the result of:

art::InputTag const which = recoOpt->fTrackLabels[imod];
art::View<recob::Track> track;
this->GetTracks(evt, which, track);
if(track.vals().size() < 1) continue;

art::FindMany<recob::Hit> fmh(track, evt, which);
for (size_t t = 0; t < track.vals().size(); ++t) {
  std::vector<const recob::Hit*> hits = fmh.at(t);
}

Now going to investigate what is present in the file. Stay tuned.

#12 Updated by Gianluca Petrillo almost 2 years ago

Yes, that error has been corrected already in a feature branch.
That list is empty because of an upstream failure of art::FindMany to associate recob::Hit to the tracks.
Consider taking a look at the simplified gallery example, that as far as I can tell exposes the same behaviour.

#13 Updated by Kyle Knoepfel almost 2 years ago

Thank you for the suggestion to use gallery--indeed, it is much easier to debug.

The problem is understood. The behavior you are observing results from a mistaken assumption used in the schema evolution when reading old ProductID. The solution is fairly straightforward, but it will require a new release of art--there will likely be an art 2.08 bug-fix release. Is this satisfactory?

#14 Updated by Tingjun Yang almost 2 years ago

Thanks Kyle for fixing the problem. A art 2.08 bug-fix release sounds great.
Kyle Knoepfel wrote:

Thank you for the suggestion to use gallery--indeed, it is much easier to debug.

The problem is understood. The behavior you are observing results from a mistaken assumption used in the schema evolution when reading old ProductID. The solution is fairly straightforward, but it will require a new release of art--there will likely be an art 2.08 bug-fix release. Is this satisfactory?

#15 Updated by Kyle Knoepfel almost 2 years ago

  • Project changed from cet-is to canvas
  • Status changed from Assigned to Resolved
  • % Done changed from 10 to 100
  • Scope set to Internal
  • SSI Package art added

Implemented with commit canvas:8e0abd48.

#16 Updated by Kyle Knoepfel almost 2 years ago

  • Status changed from Resolved to Closed
  • Target version set to 2.08.04


Also available in: Atom PDF