Print

Print


you forgot to put in the part where it tests if the TimeCorrEcalHits exists
in the lcio file, and uses it instead of EcalCalHits if the former exists.
I just made that change in my local copy.

  if(event->getCollection("TimeCorrEcalHits") != NULL)

  hits = (IMPL::LCCollectionVec*) event->getCollection("TimeCorrEcalHits");

  else

  hits = (IMPL::LCCollectionVec*) event->getCollection(hits_collection_name
);


After making this change, the DST i generated looks good now.  2 cluster
time difference looks like what i expect it to be, so this is good.

On Wed, Sep 21, 2016 at 9:31 PM, Nathan Baltzell <[log in to unmask]> wrote:

> I expect we'll definitely be reverting A to keep collection name unchanged.
> But still a useful test of B.
>
> -Nathan
>
>
> On Sep 21, 2016, at 9:14 PM, Maurik Holtrop <[log in to unmask]>
> wrote:
>
> > Hello Sebouh, all,
> >
> > Could you please try the updated version of hps-dst on the
> hps-dst_Issue44 branch on GitHub?
> >
> > (i.e. in your source directory: git pull; git checkout hps-dst_Issue44;
> then rebuild the dst-maker )
> >
> > That version should:
> >
> > A) Test to see of the TimeCorrEcalHits exist in the lcio file. If it
> does, use it, if it does not, fall back to EcalCalHits.
> > B) Use an std::pair<int,int> for the map key, with the first int the id0
> of the hit and the second int 10*getTime(). This should uniquely identify
> any hit.
> >
> > Please let me know if you still see any issue with that version.
> >
> > Tomorrow in the software meeting we will discuss if we are going to keep
> the “TimeCorrEcalHits” collection, but either way, I think the version I
> just put up should work.
> >
> > Best,
> >       Maurik
> >
> >
> >> On Sep 21, 2016, at 3:26 PM, Maurik Holtrop <[log in to unmask]>
> wrote:
> >>
> >> Yes. 1) They “should” be there. 2) If you want to check anything
> regarding ECAL you need all the hits, 3) The previous scheme would write
> shared hits twice.
> >> I am the one who needed this, as I was checking the clustering, looking
> for photons.
> >>
> >> Furthermore, the 2016 recon was changed. The new recon changed the name
> of the corrected Ecal hits to “TimeCorrEcalHits", so if you now want to
> analyze that data, whether with the DST or directly, you need to use this
> new name. I don’t think that is a good idea, I think it is confusing. I
> agree with Nathan that we should revert to the old name, “EcalCalHits”.
> >>
> >> Best,
> >>      Maurik
> >>
> >>
> >>
> >>> On Sep 21, 2016, at 3:08 PM, Omar Moreno <[log in to unmask]> wrote:
> >>>
> >>> Maurik, was there a reason that you decided to add all Ecal hits in an
> event to the DST?  Did someone request it or did you just feel like they
> needed to be in there?  The reason I ask is because if everyone is OK with
> just having hits associated with clusters, then we can just revert the code
> to what I originally had and just apply a fix for the repeated hits.  This
> can be easily done using a single map, without the need of using Cell
> ID's.  The original version of the code worked with both the 2015 and 2016
> recon so there will be no need to make changes to the LCIO recon.
> >>>
> >>> On Wed, Sep 21, 2016 at 11:43 AM, Maurik Holtrop <
> [log in to unmask]> wrote:
> >>> Hello Sebouh,
> >>>
> >>> Thank you for looking further into this. It is very useful debugging
> too.
> >>>
> >>> Unfortunately, I don’t think it is quite so simple as using the other
> collection. The Engrun2015 data does not have the TimeCorrEcalHits
> collection at all, it only has EcalCalHits. So if you switch the collection
> that is being used to TimeCorrEcalHits, you now break the older passes and
> all the 2015 data.
> >>>
> >>> Perhaps it is better for us to fix the Java code so that it does not
> introduce yet another collection of Ecal hits?
> >>> ​ ​
> >>>
> >>> Also, I thought that the CellID0 identified a hit uniquely, but as you
> point out, that was a misunderstanding. The SVT code uses a similar scheme
> to build the map to the hits.  I should look into that part of the code as
> well. Instead of using two maps, with a second “overflow” map, it would be
> better design to use a single map where each hit has a unique
> identification. I can look into what would work best. Perhaps some
> combination of the id0 and the time.
> >>>
> >>> ​When I wrote the SVT code, I made distributions to make sure things
> worked as expected.  ​ ​Please don't touch that code ... ​
> >>>
> >>> So please wait with a commit until we can figure out what is the best
> path forward.
> >>>
> >>> Best,
> >>>     Maurik
> >>>
> >>>> On Sep 21, 2016, at 2:16 PM, Sebouh Paul <[log in to unmask]>
> wrote:
> >>>>
> >>>> Two things I've found
> >>>> 1)  The collection name of the Ecal hits with corrections on the hit
> times is "TimeCorrEcalHits".   "EcalCalHits" does not have these
> corrections (see EcalTimeCorrectionDriver.java , which is the driver that
> makes these corrections)
> >>>> 2)  8.7% of the hits are duplicates (second hits) on the same
> crystal, so sometimes using the map<int, EcalHit*> will give us the wrong
> hit.
> >>>>
> >>>> The attached file contains corrections for both of those two
> problems.  Maurik and Omar, do I have your permission to check these
> changes into the git repository?
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> On Wed, Sep 21, 2016 at 10:07 AM, Nathan Baltzell <[log in to unmask]>
> wrote:
> >>>> Hi Maurik,
> >>>>
> >>>> Well, I think we probably should instead change recon (probably only
> steering files
> >>>> are necessary) so the corrected hit collection name is back to what
> it used to be,
> >>>> instead of changing the dst-maker.  People (and the dst-maker
> previously) usually
> >>>> get to the hits via the clusters, so no one noticed a problem, but
> changing a
> >>>> collection's name is asking for trouble ...
> >>>>
> >>>> -Nathan
> >>>>
> >>>>
> >>>> On Sep 21, 2016, at 10:01, Maurik Holtrop <[log in to unmask]>
> wrote:
> >>>>
> >>>> > Hello Nathan, Sebouh, DST users,
> >>>> >
> >>>> > My bad. I apologize for incorrectly linking the ECAL hits from the
> DST to the EcalCalHits collection, which contrary to my understanding,
> seems to not contain the corrected hits. I will fix this problem as soon as
> I have figured out where the corrected hits are stored.
> >>>> >
> >>>> > I do think that the DST needs to contain the full collection of
> hits and not only the hits used by clusters, and certainly it should not
> store the same hit twice. Some some change in the DST is needed from the
> early behavior.
> >>>> >
> >>>> > I would appreciate it if someone could please point me to the
> documentation or the code that does the Ecal hit corrections, so I can
> figure out what it does and where it stores the output. See my email from
> yesterday about “CopyClusterCollectionDriver”.
> >>>> >
> >>>> > Thanks,
> >>>> >       Maurik
> >>>> >
> >>>> >
> >>>> >> On Sep 21, 2016, at 6:28 AM, Nathan Baltzell <[log in to unmask]>
> wrote:
> >>>> >>
> >>>> >> Hi All,
> >>>> >>
> >>>> >> It looks like at least 2 things happened that are contributing to
> what
> >>>> >> Sebouh sees:
> >>>> >>
> >>>> >> 1. Prior to the release 3-9 used for 2016 pass0, ecal recon was
> modified
> >>>> >> to have a separate driver do hit time corrections (a first step in
> the
> >>>> >> suggested code cleanup from a while a ago).  It makes a hit
> collection
> >>>> >> with a *new* name used by clustering.
> >>>> >>
> >>>> >> 2. Something was late changed in how dst-maker reads ecal hits.
> >>>> >>
> >>>> >> Somehow, after #1 but before #2 dsts were still ok.  Seems #1, for
> backward
> >>>> >> compatibility, should be changed to output hit collection of same
> name as
> >>>> >> before, or modify the input hit collection in-place.
> >>>> >>
> >>>> >> -Nathan
> >>>> >>
> >>>> >>
> >>>> >>
> >>>> >>
> >>>> >> On Sep 20, 2016, at 4:09 PM, Maurik Holtrop <
> [log in to unmask]> wrote:
> >>>> >>
> >>>> >>> Hello ECAL folks,
> >>>> >>>
> >>>> >>> I am mightily confused about our Ecal collections in LCIO.
> Without reading a ton of code, could someone please help me sort some
> things out here?
> >>>> >>>
> >>>> >>> According to the Confluence page:
> >>>> >>>
> >>>> >>> EcalClustersCorr    Cluster CopyClusterCollectionDriver
> >>>> >>> reconstructed ECal clusters with corrected energies
> >>>> >>>
> >>>> >>> This is very confusing. The driver “CopyClusterCollectionDriver”
> is supposed to just copy a collection, not also make corrections to the
> timing and energy, and indeed, it doesn’t seem to, so then EcalClustersCorr
> and EcalClusters are identical, or not? If they are the same, why? If not
> the same, how?
> >>>> >>>
> >>>> >>> I just confirmed that the hits that written in the
> “EcalClustersCorr” collection are NOT the same as those in EcalCalHits,
> when these hits have the same ID. So that puzzles me. Where are those hits
> changed? What collection are the corrected hits in?
> >>>> >>>
> >>>> >>> The “ReconClusterer” (nicely commented and quite readable code,
> thank you) that made the EcalClusters collection uses the EcalCalHits and
> does not appear to make any corrections to them. Am I wrong?
> >>>> >>>
> >>>> >>> Any help here would be appreciated. We can update the Confluence
> page with the answers.
> >>>> >>>
> >>>> >>> Best,
> >>>> >>>     Maurik
> >>>> >>>
> >>>> >>>
> >>>> >>>> On Sep 20, 2016, at 2:54 PM, Maurik Holtrop <
> [log in to unmask]> wrote:
> >>>> >>>>
> >>>> >>>> Hello Omar and Sebouh,
> >>>> >>>>
> >>>> >>>> I will look into the issue of the hits timing, and directly
> compare the various collections we have in LCIO. Give me a little time
> though.
> >>>> >>>>
> >>>> >>>> In the LCIO files, I can find the EcalReadoutHit (sounds like it
> is “raw” hit from Ecal) and hte EcalCalHit. According to the driver
> “EcalRawConverterDriver” the EcalCalHit is the output (and EcalReadoutHit
> the input), so it seems to me that is the one to use. Also, on Confluence:
> >>>> >>>>
> >>>> >>>> EcalCalHits        CalorimeterHit  EcalRawConverterDriver
> calibrated ECal Hits
> >>>> >>>>
> >>>> >>>> Documentation is pretty sparse though, so correct me if I am
> wrong and need to use a different collection. I find the large number of
> collection more than a little confusing at times.
> >>>> >>>>
> >>>> >>>> Best,
> >>>> >>>>    Maurik
> >>>> >>>>
> >>>> >>>>
> >>>> >>>>
> >>>> >>>>> On Sep 20, 2016, at 1:51 PM, Omar Moreno <[log in to unmask]>
> wrote:
> >>>> >>>>>
> >>>> >>>>>
> >>>> >>>>> ​Originally, as Maurik said, the DST maker only wrote Ecal hits
> associated with a corrected Ecal cluster (i.e.
> cluster->getCalorimeterHits();)  With Maurik's changes, all Ecal hits
> written to the DST now come from the collection "EcalCalHits".  The cluster
> time comes from the seed hit of the cluster so if there was a correction
> applied to the seed that wasn't propagated to the original EcalCalHits
> collection, then this might be the issue.  This might be the reason why I
> didn't write all of the Ecal hits to the DST maker to begin with but I
> don't remember.
> >>>> >>>>>
> >>>> >>>>> Maurik,  did you look at distributions of Ecal clusters
> variables before and after your changes in order to make sure that there
> wasn't any changes?  If not, then we should revert all of your changes and
> do these checks.
> >>>> >>>>>
> >>>> >>>>>
> >>>> >>>>> On Sep 20, 2016 9:59 AM, "Sebouh Paul" <[log in to unmask]>
> wrote:
> >>>> >>>>> To get technical, I did not look at the recon LCIO files
> directly, but rather generated DQM from them.  And the DQM did not look
> different between the two files.  Now what Nathan had suggested was that
> possibly the DST maker is reading the hits from a different collection than
> it was reading from before, for instance uncallibrated hits instead of
> callibrated hits?
> >>>> >>>>>
> >>>> >>>>> On Tue, Sep 20, 2016 at 11:21 AM, Omar Moreno <
> [log in to unmask]> wrote:
> >>>> >>>>> Just to make sure, this behavior isn't observed looking at the
> recon LCIO files correct?
> >>>> >>>>>
> >>>> >>>>>
> >>>> >>>>> On Sep 20, 2016 7:59 AM, "Sebouh Paul" <[log in to unmask]>
> wrote:
> >>>> >>>>> Without pulse fitting, or the mode7 emulation, all of the hit
> times would be at times that are multiples of 4 ns, corresponding to the
> time of the first sample crossing the threshold.  However, we use a pulse
> fitting algorithm, which improves our resolution on timing for the hit, as
> well as time-walk corrections.  If a fit fails the pulse fitting and the
> mode-7 emulation, then we use the time of the first sample that crosses the
> threshold.   In the "bad files" we see a lot of low energy hits with
> multiples of 4ns times, which probably failed both these two methods of
> time reconstruction.
> >>>> >>>>>
> >>>> >>>>> There is also another thing in here I forgot to mention:  there
> is also a shift in the timing window of when multiple hits are, between the
> "bad" files and the "good" files. What i mean is, you'll see a peak in hit
> time, corresponding to the trigger window.  This peak is shifted between
> files generated using the old version of the  DST and the new version.
> >>>> >>>>>
> >>>> >>>>> On Tue, Sep 20, 2016 at 10:47 AM, Maurik Holtrop <
> [log in to unmask]> wrote:
> >>>> >>>>> Hello Sebouh,
> >>>> >>>>>
> >>>> >>>>> There was a bug in the DST maker where it would only write ECAL
> hits that were part of a cluster, and if a hit appeared in two clusters, it
> would write that hit twice. This is not the correct behavior. I fixed this
> in Issue44 (https://github.com/JeffersonLab/hps-dst/issues/44) and then
> merged to master.
> >>>> >>>>>
> >>>> >>>>> So, #1, is because now the unrelated and out of time hits are
> also in the DST.
> >>>> >>>>> I don’t think this explains #2.
> >>>> >>>>> #3 Since the FADC samples at 250Mhz, I would expect all ECAL
> hit times to be at multiples of 4ns, but perhaps I am missing something?
> >>>> >>>>>
> >>>> >>>>> Best,
> >>>> >>>>>   Maurik
> >>>> >>>>>
> >>>> >>>>>> On Sep 20, 2016, at 9:37 AM, Sebouh Paul <
> [log in to unmask]> wrote:
> >>>> >>>>>>
> >>>> >>>>>> Has anyone made modifications to the DST maker since pass0
> began in June 6? Nathan ran recon and DST maker on some files at the
> beginning of August, and there are some problems with the DST files
> produced:
> >>>> >>>>>>
> >>>> >>>>>> 1)  1.5x more ecal hits per event than in DST files generated
> in pass0.
> >>>> >>>>>> 2)  two cluster time difference has a much larger sigma than
> usual.
> >>>> >>>>>> 3)  many ecal hits have hit times that are exact multiples of
> 4 ns.
> >>>> >>>>>>
> >>>> >>>>>> I ran DQM on the corresponding LCIO files, and saw none of
> these effects, so the problem must be in the DST maker.
> >>>> >>>>>>
> >>>> >>>>>> thanks.
> >>>> >>>>>>
> >>>> >>>>>> Use REPLY-ALL to reply to list
> >>>> >>>>>>
> >>>> >>>>>> To unsubscribe from the HPS-SOFTWARE list, click the following
> link:
> >>>> >>>>>> https://listserv.slac.stanford.edu/cgi-bin/wa?
> SUBED1=HPS-SOFTWARE&A=1
> >>>> >>>>>>
> >>>> >>>>>
> >>>> >>>>>
> >>>> >>>>> Use REPLY-ALL to reply to list
> >>>> >>>>>
> >>>> >>>>> To unsubscribe from the HPS-SOFTWARE list, click the following
> link:
> >>>> >>>>> https://listserv.slac.stanford.edu/cgi-bin/wa?
> SUBED1=HPS-SOFTWARE&A=1
> >>>> >>>>>
> >>>> >>>>>
> >>>> >>>>>
> >>>> >>>>> Use REPLY-ALL to reply to list
> >>>> >>>>>
> >>>> >>>>> To unsubscribe from the HPS-SOFTWARE list, click the following
> link:
> >>>> >>>>> https://listserv.slac.stanford.edu/cgi-bin/wa?
> SUBED1=HPS-SOFTWARE&A=1
> >>>> >>>>>
> >>>> >>>>>
> >>>> >>>>
> >>>> >>>
> >>>> >>>
> >>>> >>> Use REPLY-ALL to reply to list
> >>>> >>>
> >>>> >>> To unsubscribe from the HPS-SOFTWARE list, click the following
> link:
> >>>> >>> https://listserv.slac.stanford.edu/cgi-bin/wa?
> SUBED1=HPS-SOFTWARE&A=1
> >>>>
> >>>>
> >>>> <EcalDataWriter.cxx>
> >>>
> >>>
> >>> Use REPLY-ALL to reply to list
> >>>
> >>> To unsubscribe from the HPS-SOFTWARE list, click the following link:
> >>> https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=HPS-SOFTWARE&A=1
> >>>
> >>>
> >>
> >>
> >> Use REPLY-ALL to reply to list
> >>
> >> To unsubscribe from the HPS-SOFTWARE list, click the following link:
> >> https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=HPS-SOFTWARE&A=1
> >>
> >
> >
> > Use REPLY-ALL to reply to list
> >
> > To unsubscribe from the HPS-SOFTWARE list, click the following link:
> > https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=HPS-SOFTWARE&A=1
> >
>
>

########################################################################
Use REPLY-ALL to reply to list

To unsubscribe from the HPS-SOFTWARE list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=HPS-SOFTWARE&A=1