CMS 3D CMS Logo

EcalUncalibRecHitWorkerRatio.cc
Go to the documentation of this file.
2 
7 
11 
14 
17  EBtimeFitParameters_ = ps.getParameter<std::vector<double>>("EBtimeFitParameters");
18  EEtimeFitParameters_ = ps.getParameter<std::vector<double>>("EEtimeFitParameters");
19 
20  EBamplitudeFitParameters_ = ps.getParameter<std::vector<double>>("EBamplitudeFitParameters");
21  EEamplitudeFitParameters_ = ps.getParameter<std::vector<double>>("EEamplitudeFitParameters");
22 
23  EBtimeFitLimits_.first = ps.getParameter<double>("EBtimeFitLimits_Lower");
24  EBtimeFitLimits_.second = ps.getParameter<double>("EBtimeFitLimits_Upper");
25 
26  EEtimeFitLimits_.first = ps.getParameter<double>("EEtimeFitLimits_Lower");
27  EEtimeFitLimits_.second = ps.getParameter<double>("EEtimeFitLimits_Upper");
28 
29  EBtimeConstantTerm_ = ps.getParameter<double>("EBtimeConstantTerm");
30  EEtimeConstantTerm_ = ps.getParameter<double>("EEtimeConstantTerm");
31 }
32 
34  // which of the samples need be used
36 
39 }
40 
44  DetId detid(itdg->id());
45 
46  const EcalSampleMask* sampleMask_ = sampleMaskHand_.product();
47 
48  const EcalPedestals::Item* aped = nullptr;
49  const EcalMGPAGainRatio* aGain = nullptr;
50 
51  if (detid.subdetId() == EcalEndcap) {
52  unsigned int hashedIndex = EEDetId(detid).hashedIndex();
53  aped = &peds->endcap(hashedIndex);
54  aGain = &gains->endcap(hashedIndex);
55  } else {
56  unsigned int hashedIndex = EBDetId(detid).hashedIndex();
57  aped = &peds->barrel(hashedIndex);
58  aGain = &gains->barrel(hashedIndex);
59  }
60 
61  pedVec[0] = aped->mean_x12;
62  pedVec[1] = aped->mean_x6;
63  pedVec[2] = aped->mean_x1;
64  pedRMSVec[0] = aped->rms_x12;
65  pedRMSVec[1] = aped->rms_x6;
66  pedRMSVec[2] = aped->rms_x1;
67  gainRatios[0] = 1.;
68  gainRatios[1] = aGain->gain12Over6();
69  gainRatios[2] = aGain->gain6Over1() * aGain->gain12Over6();
70 
71  float clockToNsConstant = 25.;
72  EcalUncalibratedRecHit uncalibRecHit;
73 
74  if (detid.subdetId() == EcalEndcap) {
75  uncalibRecHit = uncalibMaker_endcap_.makeRecHit(*itdg,
76  *sampleMask_,
77  pedVec,
78  pedRMSVec,
79  gainRatios,
82  EEtimeFitLimits_); //GF pass mask here
83 
85  uncalibRecHit.setAmplitude(crh.amplitudeMax);
86  uncalibRecHit.setJitter(crh.timeMax - 5);
87  uncalibRecHit.setJitterError(
88  std::sqrt(pow(crh.timeError, 2) + std::pow(EEtimeConstantTerm_, 2) / std::pow(clockToNsConstant, 2)));
89 
90  } else {
91  bool gainSwitch = uncalibMaker_barrel_.fixMGPAslew(*itdg);
92 
93  uncalibRecHit = uncalibMaker_barrel_.makeRecHit(*itdg,
94  *sampleMask_,
95  pedVec,
96  pedRMSVec,
97  gainRatios,
100  EBtimeFitLimits_); //GF pass mask here
101 
103 
104  uncalibRecHit.setAmplitude(crh.amplitudeMax);
105  if (gainSwitch) {
106  // introduce additional 1ns shift
107  uncalibRecHit.setJitter(crh.timeMax - 5 - 0.04);
108  } else {
109  uncalibRecHit.setJitter(crh.timeMax - 5);
110  }
111  uncalibRecHit.setJitterError(
112  std::sqrt(pow(crh.timeError, 2) + std::pow(EBtimeConstantTerm_, 2) / std::pow(clockToNsConstant, 2)));
113  }
114  result.push_back(uncalibRecHit);
115 
116  return true;
117 }
118 
121  std::vector<double> dSet1 = {-2.390548, 3.553628, -17.62341, 67.67538, -133.213, 140.7432, -75.41106, 16.20277};
122  std::vector<double> dSet2 = {-2.015452, 3.130702, -12.3473, 41.88921, -82.83944, 91.01147, -50.35761, 11.05621};
123 
124  psd.addNode(edm::ParameterDescription<double>("EEtimeFitLimits_Upper", 1.4, true) and
125  edm::ParameterDescription<double>("EEtimeConstantTerm", 0.18, true) and
126  edm::ParameterDescription<double>("EBtimeFitLimits_Lower", 0.2, true) and
127  edm::ParameterDescription<double>("EBtimeConstantTerm", 0.26, true) and
128  edm::ParameterDescription<double>("EEtimeFitLimits_Lower", 0.2, true) and
129  edm::ParameterDescription<std::vector<double>>("EEtimeFitParameters", dSet1, true) and
130  edm::ParameterDescription<std::vector<double>>("EEamplitudeFitParameters", {1.89, 1.4}, true) and
131  edm::ParameterDescription<double>("EBtimeFitLimits_Upper", 1.4, true) and
132  edm::ParameterDescription<std::vector<double>>("EBamplitudeFitParameters", {1.138, 1.652}, true) and
133  edm::ParameterDescription<std::vector<double>>("EBtimeFitParameters", dSet2, true));
134 
135  return psd;
136 }
137 
144  "EcalUncalibRecHitWorkerRatio");
ConfigurationDescriptions.h
EBDetId::hashedIndex
int hashedIndex() const
get a compact index for arrays
Definition: EBDetId.h:82
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
EcalUncalibRecHitFillDescriptionWorkerFactory.h
MessageLogger.h
EcalPedestal::mean_x6
float mean_x6
Definition: EcalPedestals.h:21
edm::DataFrameContainer::const_iterator
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
Definition: DataFrameContainer.h:61
EcalUncalibRecHitWorkerRatio::pedVec
double pedVec[3]
Definition: EcalUncalibRecHitWorkerRatio.h:45
EcalUncalibRecHitWorkerRatio::sampleMaskHand_
edm::ESHandle< EcalSampleMask > sampleMaskHand_
Definition: EcalUncalibRecHitWorkerRatio.h:40
EBDetId
Definition: EBDetId.h:17
EcalSampleMask
Definition: EcalSampleMask.h:16
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
edm::SortedCollection
Definition: SortedCollection.h:49
EcalUncalibRecHitWorkerRatio::EBtimeConstantTerm_
double EBtimeConstantTerm_
Definition: EcalUncalibRecHitWorkerRatio.h:58
EcalUncalibRecHitRatioMethodAlgo::getCalculatedRecHit
CalculatedRecHit getCalculatedRecHit()
Definition: EcalUncalibRecHitRatioMethodAlgo.h:75
EcalUncalibRecHitWorkerRatio::uncalibMaker_endcap_
EcalUncalibRecHitRatioMethodAlgo< EEDataFrame > uncalibMaker_endcap_
Definition: EcalUncalibRecHitWorkerRatio.h:62
EcalUncalibRecHitWorkerRatio::run
bool run(const edm::Event &evt, const EcalDigiCollection::const_iterator &digi, EcalUncalibratedRecHitCollection &result) override
Definition: EcalUncalibRecHitWorkerRatio.cc:41
EcalUncalibRecHitWorkerRatio::EEtimeConstantTerm_
double EEtimeConstantTerm_
Definition: EcalUncalibRecHitWorkerRatio.h:59
EcalPedestal::mean_x1
float mean_x1
Definition: EcalPedestals.h:23
DetId
Definition: DetId.h:17
EcalUncalibRecHitWorkerRatio::EEtimeFitLimits_
std::pair< double, double > EEtimeFitLimits_
Definition: EcalUncalibRecHitWorkerRatio.h:56
MakerMacros.h
EcalUncalibRecHitWorkerRatio::EBamplitudeFitParameters_
std::vector< double > EBamplitudeFitParameters_
Definition: EcalUncalibRecHitWorkerRatio.h:52
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
EcalUncalibRecHitWorkerRatio::gainRatios
double gainRatios[3]
Definition: EcalUncalibRecHitWorkerRatio.h:47
EcalPedestal::mean_x12
float mean_x12
Definition: EcalPedestals.h:19
EcalUncalibRecHitWorkerRatio::EEtimeFitParameters_
std::vector< double > EEtimeFitParameters_
Definition: EcalUncalibRecHitWorkerRatio.h:50
EcalUncalibRecHitWorkerRatio::peds
edm::ESHandle< EcalPedestals > peds
Definition: EcalUncalibRecHitWorkerRatio.h:42
EcalSampleMaskRcd
Definition: EcalSampleMaskRcd.h:5
EcalUncalibRecHitWorkerRatio::set
void set(const edm::EventSetup &es) override
Definition: EcalUncalibRecHitWorkerRatio.cc:33
EcalUncalibRecHitWorkerRatio::EBtimeFitLimits_
std::pair< double, double > EBtimeFitLimits_
Definition: EcalUncalibRecHitWorkerRatio.h:55
EcalUncalibRecHitWorkerRunOneDigiBase
Definition: EcalUncalibRecHitWorkerRunOneDigiBase.h:10
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
EcalPedestal::rms_x12
float rms_x12
Definition: EcalPedestals.h:20
EcalUncalibRecHitWorkerRatio::EEamplitudeFitParameters_
std::vector< double > EEamplitudeFitParameters_
Definition: EcalUncalibRecHitWorkerRatio.h:53
ParameterSetDescription.h
DEFINE_EDM_PLUGIN
#define DEFINE_EDM_PLUGIN(factory, type, name)
Definition: PluginFactory.h:124
EcalUncalibratedRecHit::setJitter
void setJitter(float jitter)
Definition: EcalUncalibratedRecHit.h:43
EcalUncalibRecHitWorkerRatio
Definition: EcalUncalibRecHitWorkerRatio.h:25
EcalMGPAGainRatio::gain12Over6
float gain12Over6() const
Definition: EcalMGPAGainRatio.h:19
EEDetId
Definition: EEDetId.h:14
EcalGainRatiosRcd
Definition: EcalGainRatiosRcd.h:5
EcalUncalibRecHitRatioMethodAlgo
Definition: EcalUncalibRecHitRatioMethodAlgo.h:32
EcalEndcap
Definition: EcalSubdetector.h:10
EcalSampleMaskRcd.h
EcalUncalibratedRecHit::setAmplitude
void setAmplitude(float amplitude)
Definition: EcalUncalibratedRecHit.h:40
edm::ParameterSet
Definition: ParameterSet.h:36
EcalUncalibRecHitWorkerRatio::EBtimeFitParameters_
std::vector< double > EBtimeFitParameters_
Definition: EcalUncalibRecHitWorkerRatio.h:49
EcalUncalibRecHitWorkerRatio.h
Event.h
EcalUncalibRecHitWorkerRatio::pedRMSVec
double pedRMSVec[3]
Definition: EcalUncalibRecHitWorkerRatio.h:46
edmplugin::PluginFactory
Definition: PluginFactory.h:34
EEDetId::hashedIndex
int hashedIndex() const
Definition: EEDetId.h:183
EcalUncalibRecHitWorkerRatio::EcalUncalibRecHitWorkerRatio
EcalUncalibRecHitWorkerRatio()
Definition: EcalUncalibRecHitWorkerRatio.h:28
EcalPedestal::rms_x1
float rms_x1
Definition: EcalPedestals.h:24
edm::EventSetup
Definition: EventSetup.h:57
edm::ParameterSetDescription::addNode
ParameterDescriptionNode * addNode(ParameterDescriptionNode const &node)
Definition: ParameterSetDescription.cc:41
EcalGainRatiosRcd.h
HltBtagPostValidation_cff.c
c
Definition: HltBtagPostValidation_cff.py:31
get
#define get
EcalUncalibRecHitWorkerRatio::gains
edm::ESHandle< EcalGainRatios > gains
Definition: EcalUncalibRecHitWorkerRatio.h:43
EcalUncalibratedRecHit
Definition: EcalUncalibratedRecHit.h:8
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
EcalUncalibRecHitWorkerFactory.h
EcalUncalibratedRecHit::setJitterError
void setJitterError(float jitterErr)
Definition: EcalUncalibratedRecHit.cc:45
EcalUncalibRecHitWorkerRatio::uncalibMaker_barrel_
EcalUncalibRecHitRatioMethodAlgo< EBDataFrame > uncalibMaker_barrel_
Definition: EcalUncalibRecHitWorkerRatio.h:61
EcalMGPAGainRatio::gain6Over1
float gain6Over1() const
Definition: EcalMGPAGainRatio.h:20
EcalPedestal
Definition: EcalPedestals.h:8
EventSetup.h
EcalUncalibRecHitRatioMethodAlgo::fixMGPAslew
bool fixMGPAslew(const C &dataFrame)
Definition: EcalUncalibRecHitRatioMethodAlgo.h:179
EcalPedestalsRcd.h
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:30
mps_fire.result
result
Definition: mps_fire.py:303
EcalUncalibRecHitWorkerRatio::getAlgoDescription
edm::ParameterSetDescription getAlgoDescription() override
Definition: EcalUncalibRecHitWorkerRatio.cc:119
ParameterSet.h
EcalPedestalsRcd
Definition: EcalPedestalsRcd.h:5
EcalUncalibRecHitRatioMethodAlgo::makeRecHit
EcalUncalibratedRecHit makeRecHit(const C &dataFrame, const EcalSampleMask &sampleMask, const double *pedestals, const double *pedestalRMSes, const double *gainRatios, std::vector< double > &timeFitParameters, std::vector< double > &amplitudeFitParameters, std::pair< double, double > &timeFitLimits)
Definition: EcalUncalibRecHitRatioMethodAlgo.h:584
edm::Event
Definition: Event.h:73
ecalpyutils::hashedIndex
int hashedIndex(int ieta, int iphi)
Definition: EcalPyUtils.cc:38
edm::ParameterDescription
Definition: ParameterDescription.h:110
edm::ConsumesCollector
Definition: ConsumesCollector.h:39
EcalPedestal::rms_x6
float rms_x6
Definition: EcalPedestals.h:22
EcalMGPAGainRatio
Definition: EcalMGPAGainRatio.h:13