-
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
Cross-correlation algorithm for the ECAL timing reconstruction #33119
Conversation
…ingCCAlgo obj created once)
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-33119/21462
|
A new Pull Request was created by @nminafra (Nicola Minafra) for master. It involves the following packages: RecoLocalCalo/EcalRecAlgos @perrotta, @jpata, @cmsbuild, @slava77 can you please review it and eventually sign? Thanks. cms-bot commands are listed here |
@cmsbuild please test |
double computeTimeCC(const EcalDataFrame& dataFrame, | ||
const std::vector<double>& amplitudes, | ||
const EcalPedestals::Item* aped, | ||
const EcalMGPAGainRatio* aGain, | ||
const FullSampleVector& fullpulse, | ||
EcalUncalibratedRecHit& uncalibRecHit, | ||
float& errOnTime); | ||
float errOnTime) const; |
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.
float errOnTime) const; | |
float& errOnTime) const; |
I noticed only now thanks to the static analyzer https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-74f75c/13543/llvm-analysis/report-9ba007.html#EndPath.
if (counter < MIN_NUM_OF_ITERATIONS || counter > MAX_NUM_OF_ITERATIONS - 1) { | ||
tM = TIME_WHEN_NOT_CONVERGING * ecalPh1::Samp_Period; | ||
//Negative error means that there was a problem with the CC | ||
errOnTime = -targetTimePrecision_ / ecalPh1::Samp_Period; |
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.
BTW, I do not see a value assigned to errOnTime
for normal conditions.
Is it intentional?
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-33119/21609
|
@cmsbuild please test |
+1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-74f75c/13556/summary.html Comparison SummarySummary:
|
+1
|
This pull request is fully signed and it will be integrated in one of the next master IBs (tests are also fine). This pull request will now be reviewed by the release team before it's merged. @silviodonato, @dpiparo, @qliphy (and backports should be raised in the release meeting by the corresponding L2) |
+1 |
Thanks everyone and thanks @slava77 for all the improvements to the code. Best regards, |
This PR introduces a new algorithm for the timing reconstruction of ECAL. It looks for the maximum cross-correlation between the acquired pulse and a template with different time shifts.
This method uses the same pulse template ad the energy reconstruction, hence it doesn't need any parameter.
Also, Out-Of-Time (OOT) Pileup is mitigated by removing the OOT amplitudes using the result of the multi-fit algorithm.
The performance was discussed in various DPG meetings.
Some references with more details are available:
ECAL general meeting:
https://indico.cern.ch/event/1002949/contributions/4211423/attachments/2182555/3687212/ECALtiming_2021_2_2.pdf
Performance on Monte Carlo:
https://indico.cern.ch/event/966023/contributions/4135611/attachments/2163562/3652215/ecaldpg_121620.pdf
Description of the algorithm (called KUCC here) and performance on data:
https://indico.cern.ch/event/953451/contributions/4026342/attachments/2108199/3545710/ecaldpg_gentime.pdf
Notes for this PR:
this PR is including the code into the main repository, but the default Timing reco method will remain unchanged. It is, of course, possible to enable this method changing the "timingMethod" variable.
Example of test file:
RecoLocalCalo/EcalRecProducers/test/testEcalUncalibRechitProducerWithCC_cfg.py
@thomreis @jking79 @crogan