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

HBHE M2-parameters: chi2, energy, pedSigma in M2 #16600

Merged
merged 6 commits into from Nov 21, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
8 changes: 8 additions & 0 deletions HLTrigger/Configuration/python/customizeHLTforCMSSW.py
Expand Up @@ -69,6 +69,13 @@ def customiseFor15499(process):
producer.noiseHPD = cms.double(1.0)
producer.noiseSiPM = cms.double(2.)
return process

def customiseFor16569(process):
for mod in ['hltHbhereco','hltHbherecoMethod2L1EGSeeded','hltHbherecoMethod2L1EGUnseeded','hltHfreco','hltHoreco']:
if hasattr(process,mod):
getattr(process,mod).ts4chi2 = cms.vdouble(15.,5000.)
return process

#
# CMSSW version specific customizations
def customizeHLTforCMSSW(process, menuType="GRun"):
Expand All @@ -82,6 +89,7 @@ def customizeHLTforCMSSW(process, menuType="GRun"):
process = customiseFor14833(process)
process = customiseFor15440(process)
process = customiseFor15499(process)
process = customiseFor16569(process)
# process = customiseFor12718(process)
pass

Expand Down
4 changes: 2 additions & 2 deletions RecoLocalCalo/HcalRecAlgos/interface/HcalSimpleRecAlgo.h
Expand Up @@ -85,12 +85,12 @@ class HcalSimpleRecAlgo {
}

void setpuCorrParams(bool iPedestalConstraint, bool iTimeConstraint,bool iAddPulseJitter,bool iApplyTimeSlew,
double iTS4Min, std::vector<double> iTS4Max, double iPulseJitter,
double iTS4Min, const std::vector<double> & iTS4Max, double iPulseJitter,
double iTimeMean,double iTimeSig,double iTimeSigSiPM,
double iPedMean,double iPedSig, double iPedSigSiPM,
double iNoise,double iNoiseSiPM,
double iTMin, double iTMax,
double its4Chi2, int iFitTimes);
const std::vector<double> & its4Chi2, int iFitTimes);
void setMeth3Params(bool iApplyTimeSlew, float iPedSubThreshold, int iTimeSlewParsType, std::vector<double> iTimeSlewPars, double irespCorrM3);

private:
Expand Down
Expand Up @@ -108,13 +108,13 @@ class PulseShapeFitOOTPileupCorrection
float& chi2) const;

void setPUParams(bool iPedestalConstraint, bool iTimeConstraint,bool iAddPulseJitter,bool iApplyTimeSlew,
double iTS4Min, std::vector<double> iTS4Max,
double iTS4Min, const std::vector<double> & iTS4Max,
double iPulseJitter,
double iTimeMean, double iTimeSigHPD, double iTimeSigSiPM,
double iPedMean, double iPedSigHPD, double iPedSigSiPM,
double iNoiseHPD, double iNoiseSiPM,
double iTMin, double iTMax,
double its4Chi2, HcalTimeSlew::BiasSetting slewFlavor, int iFitTimes);
const std::vector<double> & its4Chi2, HcalTimeSlew::BiasSetting slewFlavor, int iFitTimes);

void setChi2Term( bool isHPD );

Expand All @@ -139,7 +139,8 @@ class PulseShapeFitOOTPileupCorrection
ROOT::Math::Functor *tpfunctor_;
int TSMin_;
int TSMax_;
double ts4Chi2_;
mutable double ts4Chi2_;
std::vector<double> vts4Chi2_;
bool pedestalConstraint_;
bool timeConstraint_;
bool addPulseJitter_;
Expand Down
4 changes: 2 additions & 2 deletions RecoLocalCalo/HcalRecAlgos/src/HcalSimpleRecAlgo.cc
Expand Up @@ -51,13 +51,13 @@ void HcalSimpleRecAlgo::setRecoParams(bool correctForTimeslew, bool correctForPu
}

void HcalSimpleRecAlgo::setpuCorrParams(bool iPedestalConstraint, bool iTimeConstraint,bool iAddPulseJitter,
bool iApplyTimeSlew,double iTS4Min, std::vector<double> iTS4Max,
bool iApplyTimeSlew,double iTS4Min, const std::vector<double> & iTS4Max,
double iPulseJitter,
double iTimeMean, double iTimeSig, double iTimeSigSiPM,
double iPedMean, double iPedSig, double iPedSigSiPM,
double iNoise, double iNoiseSiPM,
double iTMin,double iTMax,
double its4Chi2, int iFitTimes) {
const std::vector<double> & its4Chi2, int iFitTimes) {
if( iPedestalConstraint ) assert ( iPedSig );
if( iTimeConstraint ) assert( iTimeSig );
psFitOOTpuCorr_->setPUParams(iPedestalConstraint,iTimeConstraint,iAddPulseJitter,iApplyTimeSlew,
Expand Down
17 changes: 11 additions & 6 deletions RecoLocalCalo/HcalRecAlgos/src/PulseShapeFitOOTPileupCorrection.cc
Expand Up @@ -209,7 +209,7 @@ namespace FitterFuncs{

PulseShapeFitOOTPileupCorrection::PulseShapeFitOOTPileupCorrection() : cntsetPulseShape(0),
psfPtr_(nullptr), spfunctor_(nullptr), dpfunctor_(nullptr), tpfunctor_(nullptr),
TSMin_(0), TSMax_(0), ts4Chi2_(0), pedestalConstraint_(0),
TSMin_(0), TSMax_(0), vts4Chi2_(0), pedestalConstraint_(0),
timeConstraint_(0), addPulseJitter_(0), applyTimeSlew_(0),
ts4Min_(0), vts4Max_(0), pulseJitter_(0), timeMean_(0), timeSig_(0), pedMean_(0), pedSig_(0),
noise_(0) {
Expand Down Expand Up @@ -241,17 +241,18 @@ void PulseShapeFitOOTPileupCorrection::setChi2Term( bool isHPD ) {


void PulseShapeFitOOTPileupCorrection::setPUParams(bool iPedestalConstraint, bool iTimeConstraint,bool iAddPulseJitter,
bool iApplyTimeSlew,double iTS4Min, std::vector<double> iTS4Max,
bool iApplyTimeSlew,double iTS4Min, const std::vector<double> & iTS4Max,
double iPulseJitter,double iTimeMean,double iTimeSigHPD,double iTimeSigSiPM,
double iPedMean, double iPedSigHPD, double iPedSigSiPM,
double iNoiseHPD,double iNoiseSiPM,
double iTMin,double iTMax,
double its4Chi2,
const std::vector<double> & its4Chi2,
HcalTimeSlew::BiasSetting slewFlavor, int iFitTimes) {

TSMin_ = iTMin;
TSMax_ = iTMax;
ts4Chi2_ = its4Chi2;
// ts4Chi2_ = its4Chi2;
vts4Chi2_ = its4Chi2;
pedestalConstraint_ = iPedestalConstraint;
timeConstraint_ = iTimeConstraint;
addPulseJitter_ = iAddPulseJitter;
Expand Down Expand Up @@ -338,6 +339,7 @@ void PulseShapeFitOOTPileupCorrection::apply(const CaloSamples & cs,
}

ts4Max_=vts4Max_[0]; // HB and HE are identical for Run2
ts4Chi2_=vts4Chi2_[0]; // HB and HE are identical for Run2

std::vector<float> fitParsVec;

Expand Down Expand Up @@ -563,8 +565,11 @@ void PulseShapeFitOOTPileupCorrection::phase1Apply(const HBHEChannelInfo& channe
}
}

if(!channelData.hasTimeInfo()) ts4Max_=vts4Max_[0];
if(channelData.hasTimeInfo()) ts4Max_=vts4Max_[1];
if(channelData.hasTimeInfo()) {
ts4Max_=vts4Max_[1]; ts4Chi2_=vts4Chi2_[1];
} else {
ts4Max_=vts4Max_[0]; ts4Chi2_=vts4Chi2_[0];
}

std::vector<float> fitParsVec;
if(tstrig >= ts4Min_ && tsTOTen > 0.) { //Two sigma from 0
Expand Down
Expand Up @@ -30,7 +30,7 @@ parseHBHEMethod2Description(const edm::ParameterSet& conf)
const double iNoiseSiPM = conf.getParameter<double>("noiseSiPM");
const double iTMin = conf.getParameter<double>("timeMin");
const double iTMax = conf.getParameter<double>("timeMax");
const double its4Chi2 = conf.getParameter<double>("ts4chi2");
const std::vector<double> its4Chi2 = conf.getParameter<std::vector<double>>("ts4chi2");
const int iFitTimes = conf.getParameter<int> ("fitTimes");

if (iPedestalConstraint) assert(iPedSigHPD);
Expand Down
Expand Up @@ -8,21 +8,21 @@
applyPulseJitter = cms.bool(False),
applyTimeSlew = cms.bool(True), #units
ts4Min = cms.double(0.), #fC
ts4Max = cms.vdouble(100.,70000.), #fC # this is roughly 20 GeV
ts4Max = cms.vdouble(100.,45000.), #fC # this is roughly 20 GeV
pulseJitter = cms.double(1.), #GeV/bin
###
meanTime = cms.double(0.), #ns
timeSigmaHPD = cms.double(5.), #ns
timeSigmaSiPM = cms.double(2.5), #ns
meanPed = cms.double(0.), #GeV
pedSigmaHPD = cms.double(0.5), #GeV
pedSigmaSiPM = cms.double(0.00043), #GeV # this correspond roughtly to 1.5 fC for a gain of 3500
pedSigmaSiPM = cms.double(0.00065), #GeV # this correspond roughtly to 1.5 fC for a gain of 2276
noiseHPD = cms.double(1), #fC
noiseSiPM = cms.double(1), #fC
###
timeMin = cms.double(-12.5),#ns
timeMax = cms.double(12.5), #ns
ts4chi2 = cms.double(15.), #chi2 for triple pulse # placeholder for siPM
ts4chi2 = cms.vdouble(15.,15.), #chi2 for triple pulse
fitTimes = cms.int32(1) # -1 means no constraint on number of fits per channel

)
2 changes: 1 addition & 1 deletion RecoLocalCalo/HcalRecProducers/src/HcalHitReconstructor.cc
Expand Up @@ -273,7 +273,7 @@ HcalHitReconstructor::HcalHitReconstructor(edm::ParameterSet const& conf):
conf.getParameter<double>("noiseSiPM"),
conf.getParameter<double>("timeMin"),
conf.getParameter<double>("timeMax"),
conf.getParameter<double>("ts4chi2"),
conf.getParameter<std::vector<double>>("ts4chi2"),
conf.getParameter<int> ("fitTimes")
);
}
Expand Down