{"action":"closed","number":86,"pull_request":{"url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/pulls/86","id":51449611,"html_url":"https://github.com/sPHENIX-Collaboration/coresoftware/pull/86","diff_url":"https://github.com/sPHENIX-Collaboration/coresoftware/pull/86.diff","patch_url":"https://github.com/sPHENIX-Collaboration/coresoftware/pull/86.patch","issue_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/issues/86","number":86,"state":"closed","locked":false,"title":"Storage Revision for PHG4TruthInfoContainer","user":{"login":"mccumbermike","id":12105552,"avatar_url":"https://avatars.githubusercontent.com/u/12105552?v=3","gravatar_id":"","url":"https://api.github.com/users/mccumbermike","html_url":"https://github.com/mccumbermike","followers_url":"https://api.github.com/users/mccumbermike/followers","following_url":"https://api.github.com/users/mccumbermike/following{/other_user}","gists_url":"https://api.github.com/users/mccumbermike/gists{/gist_id}","starred_url":"https://api.github.com/users/mccumbermike/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mccumbermike/subscriptions","organizations_url":"https://api.github.com/users/mccumbermike/orgs","repos_url":"https://api.github.com/users/mccumbermike/repos","events_url":"https://api.github.com/users/mccumbermike/events{/privacy}","received_events_url":"https://api.github.com/users/mccumbermike/received_events","type":"User","site_admin":false},"body":"We should discuss this in a simulation meeting prior to merge, so I'm submitting this now for early review.\r\n\r\nI've completed and tested the revision of the truth info container in this branch. The new code contains a single storage map for particles and a single storage map for vertexes (no more comparisons between primary copies needed---there can be only one). Primaries and secondaries are segregated to positive and negative key identifiers respectively. Thus the primary ids in the first round of G4 processing are not modified, preserving look up to the generator level. We can add a barcode based lookup in another round of revision to do that even better. There is a new set of range functions for iterating over the primaries and secondaries independently which have been used to replace parts of the core library where the deprecated primary map was returned. Additional runs of G4 append either to the top of the map for primaries or the bottom for secondaries. Primary vertexes can be identified by the sign of the id, something not possible previously without searching through the particle list. Information about primary ancestry is now passed down during processing instead of a tree-spanning trace at the end of the event, so the module should also consume less CPU now. Other revisions were made to pass the embed flag integer value all the way through the simulation and into the output. I envision this as a way to test the fidelity of multiple vertex algorithms (each pythia event gets a different embed flag), but there are lots of things that tool could be utilized to do. This merge as currently coded will break backwards DST compatibility---no versioning has been implemented on this object and the interface is still evolving anyway.\r\n\r\nThe evaluator chews happily on the new format as no assumptions on trackid values were made in the initial design. The new code doesn't interfere with the proper evaluation of the data as demonstrated here:\r\n\r\n![crosscheck](https://cloud.githubusercontent.com/assets/12105552/11320323/91109a36-9052-11e5-88d1-0e78c83bce9c.png)\r\n\r\nI haven't yet optimized the evaluation for the new format, but that will be a next step. That goal will alleviate some of the issue in the TPC evaluation where we were spending >50% of CPU trying to decide if two particle pointers were in fact the same particle under the different maps. Some of the speed issue might partially resolve already since this version of the truth info will send that code down the faster side of the evaluation, but the plan is to update the evaluator to strip those if-statements.\r\n\r\nOne big interface change is the removal of the GetPrimaryMap() function. Users should instead use the GetPrimaryParticleRange() which will result in the same basic functionality. I also rename the *Hit* methods to *Particle* methods to reflect the actual container contents as this was really very confusing when I first started using this object in the evaluation.\r\n\r\nJin, I've tried this code in an embedded event and I see it appending correctly, but if it is easy for you to try it out with a DST created with the branch in a real-world scenario, that would give me more confidence this revision is working as expected.","created_at":"2015-11-21T20:33:19Z","updated_at":"2015-11-25T14:31:02Z","closed_at":"2015-11-25T14:31:02Z","merged_at":"2015-11-25T14:31:02Z","merge_commit_sha":"0ab8887dbceb02153324522821d265aaa264c76a","assignee":{"login":"blackcathj","id":7947083,"avatar_url":"https://avatars.githubusercontent.com/u/7947083?v=3","gravatar_id":"","url":"https://api.github.com/users/blackcathj","html_url":"https://github.com/blackcathj","followers_url":"https://api.github.com/users/blackcathj/followers","following_url":"https://api.github.com/users/blackcathj/following{/other_user}","gists_url":"https://api.github.com/users/blackcathj/gists{/gist_id}","starred_url":"https://api.github.com/users/blackcathj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blackcathj/subscriptions","organizations_url":"https://api.github.com/users/blackcathj/orgs","repos_url":"https://api.github.com/users/blackcathj/repos","events_url":"https://api.github.com/users/blackcathj/events{/privacy}","received_events_url":"https://api.github.com/users/blackcathj/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/pulls/86/commits","review_comments_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/pulls/86/comments","review_comment_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/pulls/comments{/number}","comments_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/issues/86/comments","statuses_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/statuses/772a16f68ce092f9e4be980de4cdda925e6db88b","head":{"label":"mccumbermike:truthinfo_revision","ref":"truthinfo_revision","sha":"772a16f68ce092f9e4be980de4cdda925e6db88b","user":{"login":"mccumbermike","id":12105552,"avatar_url":"https://avatars.githubusercontent.com/u/12105552?v=3","gravatar_id":"","url":"https://api.github.com/users/mccumbermike","html_url":"https://github.com/mccumbermike","followers_url":"https://api.github.com/users/mccumbermike/followers","following_url":"https://api.github.com/users/mccumbermike/following{/other_user}","gists_url":"https://api.github.com/users/mccumbermike/gists{/gist_id}","starred_url":"https://api.github.com/users/mccumbermike/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mccumbermike/subscriptions","organizations_url":"https://api.github.com/users/mccumbermike/orgs","repos_url":"https://api.github.com/users/mccumbermike/repos","events_url":"https://api.github.com/users/mccumbermike/events{/privacy}","received_events_url":"https://api.github.com/users/mccumbermike/received_events","type":"User","site_admin":false},"repo":{"id":41013413,"name":"coresoftware","full_name":"mccumbermike/coresoftware","owner":{"login":"mccumbermike","id":12105552,"avatar_url":"https://avatars.githubusercontent.com/u/12105552?v=3","gravatar_id":"","url":"https://api.github.com/users/mccumbermike","html_url":"https://github.com/mccumbermike","followers_url":"https://api.github.com/users/mccumbermike/followers","following_url":"https://api.github.com/users/mccumbermike/following{/other_user}","gists_url":"https://api.github.com/users/mccumbermike/gists{/gist_id}","starred_url":"https://api.github.com/users/mccumbermike/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mccumbermike/subscriptions","organizations_url":"https://api.github.com/users/mccumbermike/orgs","repos_url":"https://api.github.com/users/mccumbermike/repos","events_url":"https://api.github.com/users/mccumbermike/events{/privacy}","received_events_url":"https://api.github.com/users/mccumbermike/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mccumbermike/coresoftware","description":"Our big core software repository","fork":true,"url":"https://api.github.com/repos/mccumbermike/coresoftware","forks_url":"https://api.github.com/repos/mccumbermike/coresoftware/forks","keys_url":"https://api.github.com/repos/mccumbermike/coresoftware/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mccumbermike/coresoftware/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mccumbermike/coresoftware/teams","hooks_url":"https://api.github.com/repos/mccumbermike/coresoftware/hooks","issue_events_url":"https://api.github.com/repos/mccumbermike/coresoftware/issues/events{/number}","events_url":"https://api.github.com/repos/mccumbermike/coresoftware/events","assignees_url":"https://api.github.com/repos/mccumbermike/coresoftware/assignees{/user}","branches_url":"https://api.github.com/repos/mccumbermike/coresoftware/branches{/branch}","tags_url":"https://api.github.com/repos/mccumbermike/coresoftware/tags","blobs_url":"https://api.github.com/repos/mccumbermike/coresoftware/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mccumbermike/coresoftware/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mccumbermike/coresoftware/git/refs{/sha}","trees_url":"https://api.github.com/repos/mccumbermike/coresoftware/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mccumbermike/coresoftware/statuses/{sha}","languages_url":"https://api.github.com/repos/mccumbermike/coresoftware/languages","stargazers_url":"https://api.github.com/repos/mccumbermike/coresoftware/stargazers","contributors_url":"https://api.github.com/repos/mccumbermike/coresoftware/contributors","subscribers_url":"https://api.github.com/repos/mccumbermike/coresoftware/subscribers","subscription_url":"https://api.github.com/repos/mccumbermike/coresoftware/subscription","commits_url":"https://api.github.com/repos/mccumbermike/coresoftware/commits{/sha}","git_commits_url":"https://api.github.com/repos/mccumbermike/coresoftware/git/commits{/sha}","comments_url":"https://api.github.com/repos/mccumbermike/coresoftware/comments{/number}","issue_comment_url":"https://api.github.com/repos/mccumbermike/coresoftware/issues/comments{/number}","contents_url":"https://api.github.com/repos/mccumbermike/coresoftware/contents/{+path}","compare_url":"https://api.github.com/repos/mccumbermike/coresoftware/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mccumbermike/coresoftware/merges","archive_url":"https://api.github.com/repos/mccumbermike/coresoftware/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mccumbermike/coresoftware/downloads","issues_url":"https://api.github.com/repos/mccumbermike/coresoftware/issues{/number}","pulls_url":"https://api.github.com/repos/mccumbermike/coresoftware/pulls{/number}","milestones_url":"https://api.github.com/repos/mccumbermike/coresoftware/milestones{/number}","notifications_url":"https://api.github.com/repos/mccumbermike/coresoftware/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mccumbermike/coresoftware/labels{/name}","releases_url":"https://api.github.com/repos/mccumbermike/coresoftware/releases{/id}","created_at":"2015-08-19T04:33:04Z","updated_at":"2015-08-19T04:33:07Z","pushed_at":"2015-11-23T22:33:25Z","git_url":"git://github.com/mccumbermike/coresoftware.git","ssh_url":"git@github.com:mccumbermike/coresoftware.git","clone_url":"https://github.com/mccumbermike/coresoftware.git","svn_url":"https://github.com/mccumbermike/coresoftware","homepage":null,"size":3363,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"sPHENIX-Collaboration:master","ref":"master","sha":"6c4a10eddde3b0baa76d844f42957cff298b5a68","user":{"login":"sPHENIX-Collaboration","id":12069843,"avatar_url":"https://avatars.githubusercontent.com/u/12069843?v=3","gravatar_id":"","url":"https://api.github.com/users/sPHENIX-Collaboration","html_url":"https://github.com/sPHENIX-Collaboration","followers_url":"https://api.github.com/users/sPHENIX-Collaboration/followers","following_url":"https://api.github.com/users/sPHENIX-Collaboration/following{/other_user}","gists_url":"https://api.github.com/users/sPHENIX-Collaboration/gists{/gist_id}","starred_url":"https://api.github.com/users/sPHENIX-Collaboration/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sPHENIX-Collaboration/subscriptions","organizations_url":"https://api.github.com/users/sPHENIX-Collaboration/orgs","repos_url":"https://api.github.com/users/sPHENIX-Collaboration/repos","events_url":"https://api.github.com/users/sPHENIX-Collaboration/events{/privacy}","received_events_url":"https://api.github.com/users/sPHENIX-Collaboration/received_events","type":"Organization","site_admin":false},"repo":{"id":34742432,"name":"coresoftware","full_name":"sPHENIX-Collaboration/coresoftware","owner":{"login":"sPHENIX-Collaboration","id":12069843,"avatar_url":"https://avatars.githubusercontent.com/u/12069843?v=3","gravatar_id":"","url":"https://api.github.com/users/sPHENIX-Collaboration","html_url":"https://github.com/sPHENIX-Collaboration","followers_url":"https://api.github.com/users/sPHENIX-Collaboration/followers","following_url":"https://api.github.com/users/sPHENIX-Collaboration/following{/other_user}","gists_url":"https://api.github.com/users/sPHENIX-Collaboration/gists{/gist_id}","starred_url":"https://api.github.com/users/sPHENIX-Collaboration/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sPHENIX-Collaboration/subscriptions","organizations_url":"https://api.github.com/users/sPHENIX-Collaboration/orgs","repos_url":"https://api.github.com/users/sPHENIX-Collaboration/repos","events_url":"https://api.github.com/users/sPHENIX-Collaboration/events{/privacy}","received_events_url":"https://api.github.com/users/sPHENIX-Collaboration/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/sPHENIX-Collaboration/coresoftware","description":"Our big core software repository","fork":false,"url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware","forks_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/forks","keys_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/teams","hooks_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/hooks","issue_events_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/issues/events{/number}","events_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/events","assignees_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/assignees{/user}","branches_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/branches{/branch}","tags_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/tags","blobs_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/git/refs{/sha}","trees_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/statuses/{sha}","languages_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/languages","stargazers_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/stargazers","contributors_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/contributors","subscribers_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/subscribers","subscription_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/subscription","commits_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/commits{/sha}","git_commits_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/git/commits{/sha}","comments_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/comments{/number}","issue_comment_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/issues/comments{/number}","contents_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/contents/{+path}","compare_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/merges","archive_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/downloads","issues_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/issues{/number}","pulls_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/pulls{/number}","milestones_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/milestones{/number}","notifications_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/labels{/name}","releases_url":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/releases{/id}","created_at":"2015-04-28T16:29:55Z","updated_at":"2015-09-22T14:48:05Z","pushed_at":"2015-11-25T14:31:02Z","git_url":"git://github.com/sPHENIX-Collaboration/coresoftware.git","ssh_url":"git@github.com:sPHENIX-Collaboration/coresoftware.git","clone_url":"https://github.com/sPHENIX-Collaboration/coresoftware.git","svn_url":"https://github.com/sPHENIX-Collaboration/coresoftware","homepage":"https://wiki.bnl.gov/sPHENIX/index.php/Main_Page","size":3623,"stargazers_count":4,"watchers_count":4,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":11,"mirror_url":null,"open_issues_count":0,"forks":11,"open_issues":0,"watchers":4,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/pulls/86"},"html":{"href":"https://github.com/sPHENIX-Collaboration/coresoftware/pull/86"},"issue":{"href":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/issues/86"},"comments":{"href":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/issues/86/comments"},"review_comments":{"href":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/pulls/86/comments"},"review_comment":{"href":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/pulls/86/commits"},"statuses":{"href":"https://api.github.com/repos/sPHENIX-Collaboration/coresoftware/statuses/772a16f68ce092f9e4be980de4cdda925e6db88b"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"mccumbermike","id":12105552,"avatar_url":"https://avatars.githubusercontent.com/u/12105552?v=3","gravatar_id":"","url":"https://api.github.com/users/mccumbermike","html_url":"https://github.com/mccumbermike","followers_url":"https://api.github.com/users/mccumbermike/followers","following_url":"https://api.github.com/users/mccumbermike/following{/other_user}","gists_url":"https://api.github.com/users/mccumbermike/gists{/gist_id}","starred_url":"https://api.github.com/users/mccumbermike/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mccumbermike/subscriptions","organizations_url":"https://api.github.com/users/mccumbermike/orgs","repos_url":"https://api.github.com/users/mccumbermike/repos","events_url":"https://api.github.com/users/mccumbermike/events{/privacy}","received_events_url":"https://api.github.com/users/mccumbermike/received_events","type":"User","site_admin":false},"comments":3,"review_comments":0,"commits":30,"additions":725,"deletions":906,"changed_files":49}}