{"action":"created","issue":{"url":"https://api.github.com/repos/GRIFFINCollaboration/GRSISort/issues/569","labels_url":"https://api.github.com/repos/GRIFFINCollaboration/GRSISort/issues/569/labels{/name}","comments_url":"https://api.github.com/repos/GRIFFINCollaboration/GRSISort/issues/569/comments","events_url":"https://api.github.com/repos/GRIFFINCollaboration/GRSISort/issues/569/events","html_url":"https://github.com/GRIFFINCollaboration/GRSISort/issues/569","id":114312059,"number":569,"title":"New multiset branch","user":{"login":"VinzenzBildstein","id":7277216,"avatar_url":"https://avatars.githubusercontent.com/u/7277216?v=3","gravatar_id":"","url":"https://api.github.com/users/VinzenzBildstein","html_url":"https://github.com/VinzenzBildstein","followers_url":"https://api.github.com/users/VinzenzBildstein/followers","following_url":"https://api.github.com/users/VinzenzBildstein/following{/other_user}","gists_url":"https://api.github.com/users/VinzenzBildstein/gists{/gist_id}","starred_url":"https://api.github.com/users/VinzenzBildstein/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/VinzenzBildstein/subscriptions","organizations_url":"https://api.github.com/users/VinzenzBildstein/orgs","repos_url":"https://api.github.com/users/VinzenzBildstein/repos","events_url":"https://api.github.com/users/VinzenzBildstein/events{/privacy}","received_events_url":"https://api.github.com/users/VinzenzBildstein/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/GRIFFINCollaboration/GRSISort/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/GRIFFINCollaboration/GRSISort/labels/help%20wanted","name":"help wanted","color":"159818"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/GRIFFINCollaboration/GRSISort/milestones/2","html_url":"https://github.com/GRIFFINCollaboration/GRSISort/milestones/Time%20Ordered%20Writing","labels_url":"https://api.github.com/repos/GRIFFINCollaboration/GRSISort/milestones/2/labels","id":1006173,"number":2,"title":"Time Ordered Writing","description":"","creator":{"login":"r3dunlop","id":5428160,"avatar_url":"https://avatars.githubusercontent.com/u/5428160?v=3","gravatar_id":"","url":"https://api.github.com/users/r3dunlop","html_url":"https://github.com/r3dunlop","followers_url":"https://api.github.com/users/r3dunlop/followers","following_url":"https://api.github.com/users/r3dunlop/following{/other_user}","gists_url":"https://api.github.com/users/r3dunlop/gists{/gist_id}","starred_url":"https://api.github.com/users/r3dunlop/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/r3dunlop/subscriptions","organizations_url":"https://api.github.com/users/r3dunlop/orgs","repos_url":"https://api.github.com/users/r3dunlop/repos","events_url":"https://api.github.com/users/r3dunlop/events{/privacy}","received_events_url":"https://api.github.com/users/r3dunlop/received_events","type":"User","site_admin":false},"open_issues":4,"closed_issues":4,"state":"open","created_at":"2015-03-04T17:34:58Z","updated_at":"2015-11-04T20:02:30Z","due_on":null,"closed_at":null},"comments":24,"created_at":"2015-10-30T17:01:45Z","updated_at":"2015-11-05T02:15:00Z","closed_at":null,"body":"I've created a new multiset branch (which I accidentally merged to master, but I've reverted that).\r\nThis branch uses a std::multiset to sort GRIFFIN data instead of the TTreeIndex. I haven't had time to test it yet, and it has to be checked how it works with TIGRESS data. But in principle this should speed up the sorting because we don't read the FragmentTree randomly (which TTrees weren't made for), but in order. It also reduces the memory usage quite a bit.\r\nThis new method doesn't need the Data classes anymore, so I've taken the code from the old Data classes and the old BuildHits methods to create a new AddFragment method for each detector. In most cases this is all that's needed, but in the case of CSM, this method can only store the fragments in a transient map. This map is then used in the BuildHits to create the actual hits. All other detectors have an empty BuildHits method (because AddFragment does the job just fine), but this would be the place to add final adjustments of the hits (e.g. dropping hits which have segments w/o cores or stuff like that).\r\nAnyway, the whole thing isn't tested yet, but once everything has been tested, this will be merged back to master."},"comment":{"url":"https://api.github.com/repos/GRIFFINCollaboration/GRSISort/issues/comments/153931247","html_url":"https://github.com/GRIFFINCollaboration/GRSISort/issues/569#issuecomment-153931247","issue_url":"https://api.github.com/repos/GRIFFINCollaboration/GRSISort/issues/569","id":153931247,"user":{"login":"jhenderson88","id":10636847,"avatar_url":"https://avatars.githubusercontent.com/u/10636847?v=3","gravatar_id":"","url":"https://api.github.com/users/jhenderson88","html_url":"https://github.com/jhenderson88","followers_url":"https://api.github.com/users/jhenderson88/followers","following_url":"https://api.github.com/users/jhenderson88/following{/other_user}","gists_url":"https://api.github.com/users/jhenderson88/gists{/gist_id}","starred_url":"https://api.github.com/users/jhenderson88/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jhenderson88/subscriptions","organizations_url":"https://api.github.com/users/jhenderson88/orgs","repos_url":"https://api.github.com/users/jhenderson88/repos","events_url":"https://api.github.com/users/jhenderson88/events{/privacy}","received_events_url":"https://api.github.com/users/jhenderson88/received_events","type":"User","site_admin":false},"created_at":"2015-11-05T02:15:00Z","updated_at":"2015-11-05T02:15:00Z","body":"I tested this without the AddFragment() quickly (just to check things were working before trying the full thing) by folding these versions of Tigress class into the master class. \r\n\r\nBy and large things seem to work OK but we do lose the information on the segment numbering as a result of just calling it as a TGRSIDetectorHit. My (and I think @jsmallcombe's) preferred solution to this would be to add an additional GetSegment() function to TGRSIDetectorHit in order to extract the segments (as well as the detector number). Would there be any objection to this?"}}