Skip to content
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

Merged
merged 47 commits into from
Mar 17, 2021
Merged
Changes from 1 commit
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
7ba20c8
Rebasing kucc for 11_3
nminafra Feb 12, 2021
38506d2
Simplified inclusion of kucc
nminafra Feb 12, 2021
a93f1a2
Implemented thomreis suggestions iteration 1
nminafra Feb 13, 2021
c0bdba3
scram build code-format
nminafra Feb 13, 2021
a7b115f
kansasMethodCC renamed as crossCorrelationMethod
nminafra Feb 15, 2021
857a61c
added comment for magic constants from EcalUncalibRecHitTimeWeightsAl…
nminafra Feb 15, 2021
4d1c340
kansasMethodCC renamed as crossCorrelationMethod complete
nminafra Feb 17, 2021
13690d6
Second round of thomreis comments
nminafra Feb 17, 2021
465da15
Code cleanup and small performance optimization (EcalUncalibRecHitTim…
nminafra Feb 17, 2021
514e38d
Added parameters in python files
nminafra Feb 17, 2021
d183be0
Added parameters to ParameterSetDescription
nminafra Feb 17, 2021
a74b1fc
Adding test file dedicated to CC method
nminafra Feb 17, 2021
75833b8
working test file
nminafra Feb 17, 2021
21901ad
LogWarning to LogInfo when too many CC iterations
nminafra Feb 19, 2021
3be47f2
slightly more efficient
nminafra Feb 19, 2021
a916b16
Cleanup
nminafra Feb 19, 2021
1e4a5df
Cleanup of test
nminafra Feb 19, 2021
252a9e4
code-checks and code-format
nminafra Feb 19, 2021
45c5972
Further cleanup
nminafra Feb 19, 2021
ad7d742
Fixeing clang warnings
nminafra Mar 10, 2021
ba9e43b
Removing destructor
nminafra Mar 12, 2021
0179ab0
Passing float by value
nminafra Mar 12, 2021
e770087
Constexpr
nminafra Mar 12, 2021
4904d82
More efficient access to vector elements
nminafra Mar 12, 2021
ddf38c2
C++ style cast
nminafra Mar 12, 2021
f5743f8
Using range loop
nminafra Mar 12, 2021
5d248d8
Efficiency improvement
nminafra Mar 12, 2021
c7f9e7d
Efficiency improvement
nminafra Mar 12, 2021
062cc95
Efficiency improvement
nminafra Mar 13, 2021
81c6ce9
const added
nminafra Mar 13, 2021
b81a2a7
const added
nminafra Mar 13, 2021
421fe2f
Const added
nminafra Mar 13, 2021
6af8364
rule 2.12
nminafra Mar 13, 2021
03a441f
Avoid repeated computation inside the loop
nminafra Mar 13, 2021
d29bd1b
rule 2.12
nminafra Mar 13, 2021
f21df41
Constexpr
nminafra Mar 13, 2021
4f60d30
Efficiency improvement
nminafra Mar 13, 2021
3d10143
Reordered public/private
nminafra Mar 13, 2021
ad0c604
Using fac,facM1orP2,facP1
nminafra Mar 13, 2021
44df65f
Using fac,facM1orP2,facP1
nminafra Mar 13, 2021
21cd746
Cleaner test file
nminafra Mar 13, 2021
cf995bc
Using unique_ptr for EcalUncalibRecHitTimingCCAlgo
nminafra Mar 13, 2021
3f74b66
Using single precision float
nminafra Mar 13, 2021
cb78d71
Removed log
nminafra Mar 13, 2021
8442f0b
code-format
nminafra Mar 13, 2021
e47da18
Minor fixes
nminafra Mar 16, 2021
e10760c
errOnTime fix
nminafra Mar 16, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Reordered public/private
  • Loading branch information
nminafra committed Mar 13, 2021
commit 3d101431c2ed9f5ec995e823ab12f1b77224ae93
Original file line number Diff line number Diff line change
@@ -16,30 +16,30 @@
#include "RecoLocalCalo/EcalRecAlgos/interface/EigenMatrixTypes.h"

class EcalUncalibRecHitTimingCCAlgo {
const float startTime_;
const float stopTime_;
const float targetTimePrecision_;

static constexpr int TIME_WHEN_NOT_CONVERGING = 100;
static constexpr int MAX_NUM_OF_ITERATIONS = 30;
static constexpr int MIN_NUM_OF_ITERATIONS = 2;
static constexpr float GLOBAL_TIME_SHIFT = 100;

public:
EcalUncalibRecHitTimingCCAlgo(const float startTime = -5,
const float stopTime = 5,
const float targetTimePrecision = 0.001);
double computeTimeCC(const EcalDataFrame& dataFrame,
const std::vector<double>& amplitudes,
const EcalPedestals::Item* aped,
const EcalMGPAGainRatio* aGain,
const FullSampleVector& fullpulse,
EcalUncalibratedRecHit& uncalibRecHit,
float& errOnTime) const;

private:
FullSampleVector interpolatePulse(const FullSampleVector& fullpulse, const float t = 0) const;
float computeCC(const std::vector<double>& samples, const FullSampleVector& sigmalTemplate, const float t) const;
public:
EcalUncalibRecHitTimingCCAlgo(const float startTime = -5,
const float stopTime = 5,
const float targetTimePrecision = 0.001);
double computeTimeCC(const EcalDataFrame& dataFrame,
const std::vector<double>& amplitudes,
const EcalPedestals::Item* aped,
const EcalMGPAGainRatio* aGain,
const FullSampleVector& fullpulse,
EcalUncalibratedRecHit& uncalibRecHit,
float& errOnTime) const;

private:
const float startTime_;
const float stopTime_;
const float targetTimePrecision_;

static constexpr int TIME_WHEN_NOT_CONVERGING = 100;
static constexpr int MAX_NUM_OF_ITERATIONS = 30;
static constexpr int MIN_NUM_OF_ITERATIONS = 2;
static constexpr float GLOBAL_TIME_SHIFT = 100;

FullSampleVector interpolatePulse(const FullSampleVector& fullpulse, const float t = 0) const;
float computeCC(const std::vector<double>& samples, const FullSampleVector& sigmalTemplate, const float t) const;
};

#endif