-
Notifications
You must be signed in to change notification settings - Fork 4.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixes for HCAL premixing #16057
Fixes for HCAL premixing #16057
Conversation
A new Pull Request was created by @kpedro88 (Kevin Pedro) for CMSSW_8_1_X. It involves the following packages: Configuration/StandardSequences @civanch, @cvuosalo, @mdhildreth, @cmsbuild, @franzoni, @slava77, @davidlange6 can you please review it and eventually sign? Thanks. cms-bot commands are list here #13028 |
@cmsbuild please test |
The tests are being triggered in jenkins. |
@slava77 @cvuosalo @civanch @mdhildreth please sign |
+1 |
@@ -394,13 +396,13 @@ class UHTRpacker{ | |||
return header; | |||
} | |||
|
|||
uhtrData* newUHTR( int uhtrIndex , int orn = 0 , int bcn = 0 , uint64_t evt = 0 ){ | |||
uhtrData* newUHTR( int uhtrIndex , int ps = 0, bool specialSimPremixBit = false, int orn = 0 , int bcn = 0 , uint64_t evt = 0 ){ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see that all use cases have the second argument specified.
This looks like a good reason to remove the default value.
@slava77 any more code review? |
@@ -508,7 +516,7 @@ class UHTRpacker{ | |||
HcalElectronicsId eid(readoutMap->lookup(detid)); | |||
// loop over words in dataframe | |||
for(edm::DataFrame::iterator dfi=qiedf.begin() ; dfi!=qiedf.end(); ++dfi){ | |||
if( dfi >= qiedf.end()-QIE11DataFrame::FLAG_WORDS ){ | |||
if( dfi >= qiedf.end() ){ //include flag word |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see changes in the HcalNoise plots. Is this the place in this PR that drives the changes?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This just packs the flag word from the sim digi so it can be unpacked later. The flag word is only set when running premixing, so it should not cause any changes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is the reason for the change in unmapped digis.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is only called for QIE11, though, and the unmapped digis are all QIE8.
a new difference popped up in testing of the last changes: HcalUnpackerReport for hcalDigis has a different size of unmappedDigis The new test is done with a new GT: Which part of the packer/unpacker changed in this PR leads to this change in the unmappedDigis set? |
~ "The morning is wiser than the evening". Concerning unpapped digis (why do we have any in 2017dev workflow at all once we use consistent 2017dev emap?), Hongxuan @lihux25 may want to comment as the new packer developer ? |
Concerning maxZeros change when N_presamples are fixed - Halil @dertexaner Frankly, I don't see a simple ("linear") relation between wrong N_presamples in new MC packer and maxZeros (based on checking each ADC count in Digis). But there might be some (impact). |
signoff of this PR is pending explanations in observed changes
|
RechitR45 and HPD noise filters rely on HBHE eraw (M0), so any change in M0 is likely to affect these filters as well. |
@dertexaner thanks for the info. According to @igv4321 the presample info is used for method 0 (I think), so seems to be a plausible explanation. I will try to check the eraw values explicitly to see if this is reflected. (They're currently not tracked in validation/DQM, which should probably change...) I'll also try to figure out what's up with the unmapped digis; a change there seems very odd. |
Updates:
|
On 10/7/16 8:39 PM, Kevin Pedro wrote:
Great. This is an obvious improvement then.
|
Just dumping the unmapped raw IDs (dumping for 2K events from my pion sample):
... based on finalizeHeadTail method, it looks like these are padding headers 0xD07F (looks like this is recognized as flavor 5, channel 3 fiber 31). |
@slava77 ah, I was not considering the padding size. You are probably right; including the QIE11 flag word would change the overall size of the raw data stream. |
+1
|
@mdhildreth @civanch please sign again |
@slava77 and @kpedro88 thanks for catching the unmapped IDs. We do need padding headers when the word is not 64 bit for QIE8. After talking to Jeremey, he suggested a better way to assign this kind of header. I do plan to have a followup update once this PR is merged. You are also right that the unmapped headers have no physical impact for now (would be better after following Jeremey's suggest in a later PR). |
+1 |
@davidlange6 can this be considered for pre13? |
The first two commits in this PR fix regressions that were unknowingly introduced before pre12 (which prevent premixing from running at all):
The second two commits fix known issues specifically for QIE11 premixing:
3) Packing and unpacking QIE11 flag word (used for premixing error bits)
4) Disabling SiPM dark current noise during premixing step 1
The following plots compare the QIE11 ADC distribution with standard mixing (blue) vs. premixing (red).
After commits 1,2:
After commits 1,2,3: (better agreement at high ADC where error bits are used)
After commits 1,2,3,4: (better agreement at low ADC where single pe noise was previously duplicated)
attn: @jmmans, @lihux25, @mdhildreth