CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
HcalHitReconstructor Class Reference

#include <HcalHitReconstructor.h>

Inheritance diagram for HcalHitReconstructor:
edm::EDProducer edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

virtual void beginRun (edm::Run const &r, edm::EventSetup const &es) overridefinal
 
virtual void endRun (edm::Run const &r, edm::EventSetup const &es) overridefinal
 
 HcalHitReconstructor (const edm::ParameterSet &ps)
 
virtual void produce (edm::Event &e, const edm::EventSetup &c)
 
virtual ~HcalHitReconstructor ()
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Private Attributes

bool correctTiming_
 
DetId::Detector det_
 
bool digiTimeFromDB_
 
bool dropZSmarkedPassed_
 
int firstAuxTS_
 
int firstSample_
 
HBHEStatusBitSetterhbheFlagSetter_
 
HBHETimeProfileStatusBitSetterhbheHSCPFlagSetter_
 
HBHEPulseShapeFlagSetterhbhePulseShapeFlagSetter_
 
HBHETimingShapedFlagSetterhbheTimingShapedFlagSetter_
 
HcalHFStatusBitFromDigishfdigibit_
 
const HcalFlagHFDigiTimeParamsHFDigiTimeParams
 
HcalHF_PETalgorithmhfPET_
 
HcalHF_S9S1algorithmhfS8S1_
 
HcalHF_S9S1algorithmhfS9S1_
 
HFTimingTrustFlagHFTimingTrustFlagSetter_
 
edm::InputTag inputLabel_
 
HcalRecoParamsparamTS
 
HcalSimpleRecAlgo reco_
 
bool recoParamsFromDB_
 
int samplesToAdd_
 
HcalADCSaturationFlagsaturationFlagSetter_
 
bool setHSCPFlags_
 
bool setNoiseFlags_
 
bool setPulseShapeFlags_
 
bool setSaturationFlags_
 
bool setTimingTrustFlags_
 
int subdet_
 
HcalOtherSubdetector subdetOther_
 
HcalTopologytheTopology
 
edm::EDGetTokenT
< HcalCalibDigiCollection
tok_calib_
 
edm::EDGetTokenT
< HBHEDigiCollection
tok_hbhe_
 
edm::EDGetTokenT
< HFDigiCollection
tok_hf_
 
edm::EDGetTokenT
< HODigiCollection
tok_ho_
 
bool tsFromDB_
 
bool useLeakCorrection_
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Author
J. Temple & E. Yazgan Based on HcalSimpleReconstructor.h by J. Mans

Definition at line 42 of file HcalHitReconstructor.h.

Constructor & Destructor Documentation

HcalHitReconstructor::HcalHitReconstructor ( const edm::ParameterSet ps)
explicit

Definition at line 21 of file HcalHitReconstructor.cc.

References DetId::Calo, gather_cfg::cout, det_, digiTimeFromDB_, edm::ParameterSet::getParameter(), hbheFlagSetter_, hbheHSCPFlagSetter_, hbhePulseShapeFlagSetter_, hbheTimingShapedFlagSetter_, HcalBarrel, HcalCalibration, HcalForward, HcalOther, HcalOuter, hfdigibit_, hfPET_, hfS8S1_, hfS9S1_, HFTimingTrustFlagSetter_, inputLabel_, recoParamsFromDB_, saturationFlagSetter_, setHSCPFlags_, setNoiseFlags_, setPulseShapeFlags_, setSaturationFlags_, setTimingTrustFlags_, AlCaHLTBitMon_QueryRunRegistry::string, subdet_, HcalZDCDetId::SubdetectorId, subdetOther_, tok_calib_, tok_hbhe_, tok_hf_, and tok_ho_.

21  :
22  reco_(conf.getParameter<bool>("correctForTimeslew"),
23  conf.getParameter<bool>("correctForPhaseContainment"),
24  conf.getParameter<double>("correctionPhaseNS")),
26  inputLabel_(conf.getParameter<edm::InputTag>("digiLabel")),
27  correctTiming_(conf.getParameter<bool>("correctTiming")),
28  setNoiseFlags_(conf.getParameter<bool>("setNoiseFlags")),
29  setHSCPFlags_(conf.getParameter<bool>("setHSCPFlags")),
30  setSaturationFlags_(conf.getParameter<bool>("setSaturationFlags")),
31  setTimingTrustFlags_(conf.getParameter<bool>("setTimingTrustFlags")),
32  setPulseShapeFlags_(conf.getParameter<bool>("setPulseShapeFlags")),
33  dropZSmarkedPassed_(conf.getParameter<bool>("dropZSmarkedPassed")),
34  firstAuxTS_(conf.getParameter<int>("firstAuxTS")),
35  firstSample_(conf.getParameter<int>("firstSample")),
36  samplesToAdd_(conf.getParameter<int>("samplesToAdd")),
37  tsFromDB_(conf.getParameter<bool>("tsFromDB")),
38  useLeakCorrection_( conf.getParameter<bool>("useLeakCorrection")),
39  paramTS(0),
40  theTopology(0)
41 {
42 
43  // register for data access
44  tok_hbhe_ = consumes<HBHEDigiCollection>(inputLabel_);
45  tok_ho_ = consumes<HODigiCollection>(inputLabel_);
46  tok_hf_ = consumes<HFDigiCollection>(inputLabel_);
47  tok_calib_ = consumes<HcalCalibDigiCollection>(inputLabel_);
48 
49  std::string subd=conf.getParameter<std::string>("Subdetector");
50  //Set all FlagSetters to 0
51  /* Important to do this! Otherwise, if the setters are turned off,
52  the "if (XSetter_) delete XSetter_;" commands can crash
53  */
54 
55  recoParamsFromDB_ = conf.getParameter<bool>("recoParamsFromDB");
56  // recoParamsFromDB_ = false ; // trun off for now.
57 
58  // std::cout<<" HcalHitReconstructor recoParamsFromDB_ "<<recoParamsFromDB_<<std::endl;
59 
60  hbheFlagSetter_ = 0;
64  hfdigibit_ = 0;
65 
66  hfS9S1_ = 0;
67  hfS8S1_ = 0;
68  hfPET_ = 0;
71  digiTimeFromDB_ = false; // only need for HF
72 
74  {
75  const edm::ParameterSet& pssat = conf.getParameter<edm::ParameterSet>("saturationParameters");
76  saturationFlagSetter_ = new HcalADCSaturationFlag(pssat.getParameter<int>("maxADCvalue"));
77  }
78 
79  if (!strcasecmp(subd.c_str(),"HBHE")) {
81  bool timingShapedCutsFlags = conf.getParameter<bool>("setTimingShapedCutsFlags");
82  if (timingShapedCutsFlags)
83  {
84  const edm::ParameterSet& psTshaped = conf.getParameter<edm::ParameterSet>("timingshapedcutsParameters");
85  hbheTimingShapedFlagSetter_ = new HBHETimingShapedFlagSetter(psTshaped.getParameter<std::vector<double> >("tfilterEnvelope"),
86  psTshaped.getParameter<bool>("ignorelowest"),
87  psTshaped.getParameter<bool>("ignorehighest"),
88  psTshaped.getParameter<double>("win_offset"),
89  psTshaped.getParameter<double>("win_gain"));
90  }
91 
92  if (setNoiseFlags_)
93  {
94  const edm::ParameterSet& psdigi =conf.getParameter<edm::ParameterSet>("flagParameters");
95  hbheFlagSetter_=new HBHEStatusBitSetter(psdigi.getParameter<double>("nominalPedestal"),
96  psdigi.getParameter<double>("hitEnergyMinimum"),
97  psdigi.getParameter<int>("hitMultiplicityThreshold"),
98  psdigi.getParameter<std::vector<edm::ParameterSet> >("pulseShapeParameterSets")
99  );
100  } // if (setNoiseFlags_)
101  if (setHSCPFlags_)
102  {
103  const edm::ParameterSet& psHSCP = conf.getParameter<edm::ParameterSet>("hscpParameters");
105  psHSCP.getParameter<double>("r1Max"),
106  psHSCP.getParameter<double>("r2Min"),
107  psHSCP.getParameter<double>("r2Max"),
108  psHSCP.getParameter<double>("fracLeaderMin"),
109  psHSCP.getParameter<double>("fracLeaderMax"),
110  psHSCP.getParameter<double>("slopeMin"),
111  psHSCP.getParameter<double>("slopeMax"),
112  psHSCP.getParameter<double>("outerMin"),
113  psHSCP.getParameter<double>("outerMax"),
114  psHSCP.getParameter<double>("TimingEnergyThreshold"));
115  } // if (setHSCPFlags_)
117  {
118  const edm::ParameterSet &psPulseShape = conf.getParameter<edm::ParameterSet>("pulseShapeParameters");
120  psPulseShape.getParameter<double>("MinimumChargeThreshold"),
121  psPulseShape.getParameter<double>("TS4TS5ChargeThreshold"),
122  psPulseShape.getParameter<unsigned int>("TrianglePeakTS"),
123  psPulseShape.getParameter<std::vector<double> >("LinearThreshold"),
124  psPulseShape.getParameter<std::vector<double> >("LinearCut"),
125  psPulseShape.getParameter<std::vector<double> >("RMS8MaxThreshold"),
126  psPulseShape.getParameter<std::vector<double> >("RMS8MaxCut"),
127  psPulseShape.getParameter<std::vector<double> >("LeftSlopeThreshold"),
128  psPulseShape.getParameter<std::vector<double> >("LeftSlopeCut"),
129  psPulseShape.getParameter<std::vector<double> >("RightSlopeThreshold"),
130  psPulseShape.getParameter<std::vector<double> >("RightSlopeCut"),
131  psPulseShape.getParameter<std::vector<double> >("RightSlopeSmallThreshold"),
132  psPulseShape.getParameter<std::vector<double> >("RightSlopeSmallCut"),
133  psPulseShape.getParameter<std::vector<double> >("TS4TS5LowerThreshold"),
134  psPulseShape.getParameter<std::vector<double> >("TS4TS5LowerCut"),
135  psPulseShape.getParameter<std::vector<double> >("TS4TS5UpperThreshold"),
136  psPulseShape.getParameter<std::vector<double> >("TS4TS5UpperCut"),
137  psPulseShape.getParameter<bool>("UseDualFit"),
138  psPulseShape.getParameter<bool>("TriangleIgnoreSlow"));
139  } // if (setPulseShapeFlags_)
140 
141  produces<HBHERecHitCollection>();
142  } else if (!strcasecmp(subd.c_str(),"HO")) {
144  produces<HORecHitCollection>();
145  } else if (!strcasecmp(subd.c_str(),"HF")) {
147  digiTimeFromDB_=conf.getParameter<bool>("digiTimeFromDB");
148 
149  if (setTimingTrustFlags_) {
150 
151  const edm::ParameterSet& pstrust = conf.getParameter<edm::ParameterSet>("hfTimingTrustParameters");
152  HFTimingTrustFlagSetter_=new HFTimingTrustFlag(pstrust.getParameter<int>("hfTimingTrustLevel1"),
153  pstrust.getParameter<int>("hfTimingTrustLevel2"));
154  }
155 
156  if (setNoiseFlags_)
157  {
158  const edm::ParameterSet& psdigi =conf.getParameter<edm::ParameterSet>("digistat");
159  const edm::ParameterSet& psTimeWin =conf.getParameter<edm::ParameterSet>("HFInWindowStat");
160  hfdigibit_=new HcalHFStatusBitFromDigis(psdigi,psTimeWin);
161 
162  const edm::ParameterSet& psS9S1 = conf.getParameter<edm::ParameterSet>("S9S1stat");
163  hfS9S1_ = new HcalHF_S9S1algorithm(psS9S1.getParameter<std::vector<double> >("short_optimumSlope"),
164  psS9S1.getParameter<std::vector<double> >("shortEnergyParams"),
165  psS9S1.getParameter<std::vector<double> >("shortETParams"),
166  psS9S1.getParameter<std::vector<double> >("long_optimumSlope"),
167  psS9S1.getParameter<std::vector<double> >("longEnergyParams"),
168  psS9S1.getParameter<std::vector<double> >("longETParams"),
169  psS9S1.getParameter<int>("HcalAcceptSeverityLevel"),
170  psS9S1.getParameter<bool>("isS8S1")
171  );
172 
173  const edm::ParameterSet& psS8S1 = conf.getParameter<edm::ParameterSet>("S8S1stat");
174  hfS8S1_ = new HcalHF_S9S1algorithm(psS8S1.getParameter<std::vector<double> >("short_optimumSlope"),
175  psS8S1.getParameter<std::vector<double> >("shortEnergyParams"),
176  psS8S1.getParameter<std::vector<double> >("shortETParams"),
177  psS8S1.getParameter<std::vector<double> >("long_optimumSlope"),
178  psS8S1.getParameter<std::vector<double> >("longEnergyParams"),
179  psS8S1.getParameter<std::vector<double> >("longETParams"),
180  psS8S1.getParameter<int>("HcalAcceptSeverityLevel"),
181  psS8S1.getParameter<bool>("isS8S1")
182  );
183 
184  const edm::ParameterSet& psPET = conf.getParameter<edm::ParameterSet>("PETstat");
185  hfPET_ = new HcalHF_PETalgorithm(psPET.getParameter<std::vector<double> >("short_R"),
186  psPET.getParameter<std::vector<double> >("shortEnergyParams"),
187  psPET.getParameter<std::vector<double> >("shortETParams"),
188  psPET.getParameter<std::vector<double> >("long_R"),
189  psPET.getParameter<std::vector<double> >("longEnergyParams"),
190  psPET.getParameter<std::vector<double> >("longETParams"),
191  psPET.getParameter<int>("HcalAcceptSeverityLevel"),
192  psPET.getParameter<std::vector<double> >("short_R_29"),
193  psPET.getParameter<std::vector<double> >("long_R_29")
194  );
195  }
196  produces<HFRecHitCollection>();
197  } else if (!strcasecmp(subd.c_str(),"ZDC")) {
200  produces<ZDCRecHitCollection>();
201  } else if (!strcasecmp(subd.c_str(),"CALIB")) {
204  produces<HcalCalibRecHitCollection>();
205  } else {
206  std::cout << "HcalHitReconstructor is not associated with a specific subdetector!" << std::endl;
207  }
208 
209 }
T getParameter(std::string const &) const
HcalRecoParams * paramTS
edm::EDGetTokenT< HBHEDigiCollection > tok_hbhe_
HcalADCSaturationFlag * saturationFlagSetter_
edm::EDGetTokenT< HcalCalibDigiCollection > tok_calib_
HcalHFStatusBitFromDigis * hfdigibit_
edm::EDGetTokenT< HODigiCollection > tok_ho_
tuple conf
Definition: dbtoconf.py:185
HcalHF_PETalgorithm * hfPET_
HcalHF_S9S1algorithm * hfS9S1_
HBHEPulseShapeFlagSetter * hbhePulseShapeFlagSetter_
static const int SubdetectorId
Definition: HcalZDCDetId.h:20
HBHEStatusBitSetter * hbheFlagSetter_
HBHETimeProfileStatusBitSetter * hbheHSCPFlagSetter_
HBHETimingShapedFlagSetter * hbheTimingShapedFlagSetter_
HcalHF_S9S1algorithm * hfS8S1_
HcalOtherSubdetector subdetOther_
tuple cout
Definition: gather_cfg.py:121
HFTimingTrustFlag * HFTimingTrustFlagSetter_
edm::EDGetTokenT< HFDigiCollection > tok_hf_
HcalSimpleRecAlgo reco_
HcalHitReconstructor::~HcalHitReconstructor ( )
virtual

Definition at line 211 of file HcalHitReconstructor.cc.

References hbheFlagSetter_, hbheHSCPFlagSetter_, hbhePulseShapeFlagSetter_, hfdigibit_, hfPET_, hfS9S1_, paramTS, and theTopology.

211  {
212  if (hbheFlagSetter_) delete hbheFlagSetter_;
213  if (hfdigibit_) delete hfdigibit_;
216  if (hfS9S1_) delete hfS9S1_;
217  if (hfPET_) delete hfPET_;
218  if (theTopology) delete theTopology;
219  if (paramTS) delete paramTS;
220 }
HcalRecoParams * paramTS
HcalHFStatusBitFromDigis * hfdigibit_
HcalHF_PETalgorithm * hfPET_
HcalHF_S9S1algorithm * hfS9S1_
HBHEPulseShapeFlagSetter * hbhePulseShapeFlagSetter_
HBHEStatusBitSetter * hbheFlagSetter_
HBHETimeProfileStatusBitSetter * hbheHSCPFlagSetter_

Member Function Documentation

void HcalHitReconstructor::beginRun ( edm::Run const &  r,
edm::EventSetup const &  es 
)
finaloverridevirtual

Reimplemented from edm::EDProducer.

Definition at line 222 of file HcalHitReconstructor.cc.

References HcalSimpleRecAlgo::beginRun(), digiTimeFromDB_, edm::EventSetup::get(), HFDigiTimeParams, AlCaHLTBitMon_ParallelJobs::p, paramTS, edm::ESHandle< class >::product(), reco_, recoParamsFromDB_, HcalCondObjectContainerBase::setTopo(), theTopology, and tsFromDB_.

222  {
223 
224  if ( tsFromDB_== true || recoParamsFromDB_ == true )
225  {
227  es.get<HcalRecoParamsRcd>().get(p);
228  paramTS = new HcalRecoParams(*p.product());
229 
231  es.get<IdealGeometryRecord>().get(htopo);
232  theTopology=new HcalTopology(*htopo);
234 
235 
236 
237  // std::cout<<" skdump in HcalHitReconstructor::beginRun dupm RecoParams "<<std::endl;
238  // std::ofstream skfile("skdumpRecoParamsNewFormat.txt");
239  // HcalDbASCIIIO::dumpObject(skfile, (*paramTS) );
240  }
241 
242  if (digiTimeFromDB_==true)
243  {
245  es.get<HcalFlagHFDigiTimeParamsRcd>().get(p);
247 
248  if (theTopology==0) {
250  es.get<IdealGeometryRecord>().get(htopo);
251  theTopology=new HcalTopology(*htopo);
252  }
254 
255  }
256  reco_.beginRun(es);
257 }
HcalRecoParams * paramTS
void beginRun(edm::EventSetup const &es)
void setTopo(const HcalTopology *topo) const
T const * product() const
Definition: ESHandle.h:62
const HcalFlagHFDigiTimeParams * HFDigiTimeParams
HcalSimpleRecAlgo reco_
void HcalHitReconstructor::endRun ( edm::Run const &  r,
edm::EventSetup const &  es 
)
finaloverridevirtual

Reimplemented from edm::EDProducer.

Definition at line 259 of file HcalHitReconstructor.cc.

References digiTimeFromDB_, HcalSimpleRecAlgo::endRun(), paramTS, reco_, and tsFromDB_.

259  {
260  if (tsFromDB_==true)
261  {
262  delete paramTS; paramTS=0;
263  }
264  if (digiTimeFromDB_==true)
265  {
266  //DL delete HFDigiTimeParams; HFDigiTimeParams = 0;
267  }
268  reco_.endRun();
269 }
HcalRecoParams * paramTS
HcalSimpleRecAlgo reco_
void HcalHitReconstructor::produce ( edm::Event e,
const edm::EventSetup c 
)
virtual

Implements edm::EDProducer.

Definition at line 271 of file HcalHitReconstructor.cc.

References funct::abs(), HBHEStatusBitSetter::Clear(), HcalTimingCorrector::Correct(), HcalRecoParam::correctForPhaseContainment(), HcalRecoParam::correctForTimeslew(), HcalRecoParam::correctionPhaseNS(), HcalRecoParam::correctTiming(), correctTiming_, det_, digiTimeFromDB_, HcalSeverityLevelComputer::dropChannel(), dropZSmarkedPassed_, HBHETimeProfileStatusBitSetter::EnergyThreshold(), first, HcalRecoParam::firstAuxTS(), firstAuxTS_, HcalRecoParam::firstSample(), firstSample_, edm::EventSetup::get(), edm::Event::getByToken(), HcalChannelStatus::getValue(), HcalCondObjectContainer< Item >::getValues(), hbheFlagSetter_, hbheHSCPFlagSetter_, hbhePulseShapeFlagSetter_, HBHETimeProfileStatusBitSetter::hbheSetTimeFlagsFromDigi(), hbheTimingShapedFlagSetter_, DetId::Hcal, HcalBarrel, HcalCalibration, HcalEndcap, HcalForward, HcalOther, HcalOuter, hfdigibit_, HcalFlagHFDigiTimeParam::HFdigiflagCoefficients(), HcalFlagHFDigiTimeParam::HFdigiflagExpectedPeak(), HcalFlagHFDigiTimeParam::HFdigiflagFirstSample(), HcalFlagHFDigiTimeParam::HFdigiflagMinEThreshold(), HcalFlagHFDigiTimeParam::HFdigiflagSamplesToAdd(), HFDigiTimeParams, hfPET_, hfS8S1_, hfS9S1_, HcalHFStatusBitFromDigis::hfSetFlagFromDigi(), HcalHF_PETalgorithm::HFSetFlagFromPET(), HcalHF_S9S1algorithm::HFSetFlagFromS9S1(), HFTimingTrustFlagSetter_, i, edm::EventBase::isRealData(), j, gen::k, AlCaHLTBitMon_ParallelJobs::p, paramTS, HcalRecoParam::pileupCleaningID(), HcalCaloFlagLabels::PresampleADC, edm::ESHandle< class >::product(), edm::Event::put(), DetId::rawId(), reco_, HcalSimpleRecAlgo::reconstruct(), recoParamsFromDB_, HcalHFStatusBitFromDigis::resetParamsFromDB(), edm::Event::run(), HcalRecoParam::samplesToAdd(), samplesToAdd_, saturationFlagSetter_, HBHEStatusBitSetter::SetFlagsFromDigi(), HBHEStatusBitSetter::SetFlagsFromRecHits(), HcalSimpleRecAlgo::setForData(), HFTimingTrustFlag::setHFTimingTrustFlag(), setHSCPFlags_, HcalSimpleRecAlgo::setLeakCorrection(), setNoiseFlags_, HBHEPulseShapeFlagSetter::SetPulseShapeFlags(), setPulseShapeFlags_, HcalSimpleRecAlgo::setRecoParams(), HcalADCSaturationFlag::setSaturationFlag(), setSaturationFlags_, HBHETimingShapedFlagSetter::SetTimingShapedFlags(), setTimingTrustFlags_, HcalCondObjectContainerBase::setTopo(), subdet_, subdetOther_, tok_calib_, tok_hbhe_, tok_hf_, tok_ho_, HcalCondObjectContainerBase::topo(), tsFromDB_, HcalRecoParam::useLeakCorrection(), and useLeakCorrection_.

272 {
273 
274  // get conditions
276  eventSetup.get<IdealGeometryRecord>().get(topo);
277 
278 
279  edm::ESHandle<HcalDbService> conditions;
280  eventSetup.get<HcalDbRecord>().get(conditions);
281  // HACK related to HB- corrections
282  if(e.isRealData()) reco_.setForData(e.run());
284 
286  eventSetup.get<HcalChannelQualityRcd>().get(p);
287  //DLHcalChannelQuality* myqual = new HcalChannelQuality(*p.product());
288  const HcalChannelQuality* myqual = p.product();
289  if (!myqual->topo()) myqual->setTopo(topo.product());
290 
291 
293  eventSetup.get<HcalSeverityLevelComputerRcd>().get(mycomputer);
294  const HcalSeverityLevelComputer* mySeverity = mycomputer.product();
295 
296  if (det_==DetId::Hcal) {
297 
298  // HBHE -------------------------------------------------------------------
301 
302  e.getByToken(tok_hbhe_,digi);
303 
304  // create empty output
305  std::auto_ptr<HBHERecHitCollection> rec(new HBHERecHitCollection);
306  rec->reserve(digi->size());
307  // run the algorithm
310  std::vector<HBHEDataFrame> HBDigis;
311  std::vector<int> RecHitIndex;
312 
313  // Vote on majority TS0 CapId
314  int favorite_capid = 0;
315  if (correctTiming_) {
316  long capid_votes[4] = {0,0,0,0};
317  for (i=digi->begin(); i!=digi->end(); i++) {
318  capid_votes[(*i)[0].capid()]++;
319  }
320  for (int k = 0; k < 4; k++)
321  if (capid_votes[k] > capid_votes[favorite_capid])
322  favorite_capid = k;
323  }
324 
325  for (i=digi->begin(); i!=digi->end(); i++) {
326  HcalDetId cell = i->id();
327  DetId detcell=(DetId)cell;
328 
330  const HcalRecoParam* param_ts = paramTS->getValues(detcell.rawId());
331  if(tsFromDB_) {
332  firstSample_ = param_ts->firstSample();
333  samplesToAdd_ = param_ts->samplesToAdd();
334  }
335  if(recoParamsFromDB_) {
336  bool correctForTimeslew=param_ts->correctForTimeslew();
337  bool correctForPhaseContainment= param_ts->correctForPhaseContainment();
338  float phaseNS=param_ts->correctionPhaseNS();
340  correctTiming_ = param_ts->correctTiming();
341  firstAuxTS_ = param_ts->firstAuxTS();
342  int pileupCleaningID = param_ts->pileupCleaningID();
343 
344  /*
345  int sub = cell.subdet();
346  int depth = cell.depth();
347  int inteta = cell.ieta();
348  int intphi = cell.iphi();
349 
350  std::cout << "HcalHitReconstructor::produce cell:"
351  << " sub, ieta, iphi, depth = "
352  << sub << " " << inteta << " " << intphi
353  << " " << depth << std::endl
354  << " first, toadd = " << firstSample_ << ", "
355  << samplesToAdd_ << std::endl
356  << " correctForTimeslew " << correctForTimeslew
357  << std::endl
358  << " correctForPhaseContainment "
359  << correctForPhaseContainment << std::endl
360  << " phaseNS " << phaseNS << std::endl
361  << " useLeakCorrection " << useLeakCorrection_
362  << std::endl
363  << " correctTiming " << correctTiming_ << std::endl
364  << " firstAuxTS " << firstAuxTS_ << std::endl
365  << " pileupCleaningID " << pileupCleaningID
366  << std::endl;
367  */
368 
369  reco_.setRecoParams(correctForTimeslew,correctForPhaseContainment,useLeakCorrection_,pileupCleaningID,phaseNS);
370  }
371  }
372 
373  int first = firstSample_;
374  int toadd = samplesToAdd_;
375 
376  // check on cells to be ignored and dropped: (rof,20.Feb.09)
377  const HcalChannelStatus* mydigistatus=myqual->getValues(detcell.rawId());
378  if (mySeverity->dropChannel(mydigistatus->getValue() ) ) continue;
380  if (i->zsMarkAndPass()) continue;
381 
382  const HcalCalibrations& calibrations=conditions->getHcalCalibrations(cell);
383  const HcalQIECoder* channelCoder = conditions->getHcalCoder (cell);
384  const HcalQIEShape* shape = conditions->getHcalShape (channelCoder);
385  HcalCoderDb coder (*channelCoder, *shape);
386 
387  rec->push_back(reco_.reconstruct(*i,first,toadd,coder,calibrations));
388 
389  // Set auxiliary flag
390  int auxflag=0;
391  int fTS = firstAuxTS_;
392  if (fTS<0) fTS=0; // silly protection against time slice <0
393  for (int xx=fTS; xx<fTS+4 && xx<i->size();++xx)
394  auxflag+=(i->sample(xx).adc())<<(7*(xx-fTS)); // store the time slices in the first 28 bits of aux, a set of 4 7-bit adc values
395  // bits 28 and 29 are reserved for capid of the first time slice saved in aux
396  auxflag+=((i->sample(fTS).capid())<<28);
397  (rec->back()).setAux(auxflag);
398 
399  (rec->back()).setFlags(0); // this sets all flag bits to 0
400  // Set presample flag
401  if (fTS>0)
402  (rec->back()).setFlagField((i->sample(fTS-1).adc()), HcalCaloFlagLabels::PresampleADC,7);
403 
406  if (setNoiseFlags_)
407  hbheFlagSetter_->SetFlagsFromDigi(&(*topo),rec->back(),*i,coder,calibrations,first,toadd);
408  if (setPulseShapeFlags_ == true)
409  hbhePulseShapeFlagSetter_->SetPulseShapeFlags(rec->back(), *i, coder, calibrations);
412  if (correctTiming_)
413  HcalTimingCorrector::Correct(rec->back(), *i, favorite_capid);
414  if (setHSCPFlags_ && i->id().ietaAbs()<16)
415  {
416  double DigiEnergy=0;
417  for(int j=0; j!=i->size(); DigiEnergy += i->sample(j++).nominal_fC());
418  if(DigiEnergy > hbheHSCPFlagSetter_->EnergyThreshold())
419  {
420  HBDigis.push_back(*i);
421  RecHitIndex.push_back(rec->size()-1);
422  }
423 
424  } // if (set HSCPFlags_ && |ieta|<16)
425  } // loop over HBHE digis
426 
427 
429  if (setHSCPFlags_) hbheHSCPFlagSetter_->hbheSetTimeFlagsFromDigi(rec.get(), HBDigis, RecHitIndex);
430  // return result
431  e.put(rec);
432 
433  // HO ------------------------------------------------------------------
434  } else if (subdet_==HcalOuter) {
436  e.getByToken(tok_ho_,digi);
437 
438  // create empty output
439  std::auto_ptr<HORecHitCollection> rec(new HORecHitCollection);
440  rec->reserve(digi->size());
441  // run the algorithm
443 
444  // Vote on majority TS0 CapId
445  int favorite_capid = 0;
446  if (correctTiming_) {
447  long capid_votes[4] = {0,0,0,0};
448  for (i=digi->begin(); i!=digi->end(); i++) {
449  capid_votes[(*i)[0].capid()]++;
450  }
451  for (int k = 0; k < 4; k++)
452  if (capid_votes[k] > capid_votes[favorite_capid])
453  favorite_capid = k;
454  }
455 
456  for (i=digi->begin(); i!=digi->end(); i++) {
457  HcalDetId cell = i->id();
458  DetId detcell=(DetId)cell;
459  // firstSample & samplesToAdd
461  const HcalRecoParam* param_ts = paramTS->getValues(detcell.rawId());
462  if(tsFromDB_) {
463  firstSample_ = param_ts->firstSample();
464  samplesToAdd_ = param_ts->samplesToAdd();
465  }
466  if(recoParamsFromDB_) {
467  bool correctForTimeslew=param_ts->correctForTimeslew();
468  bool correctForPhaseContainment= param_ts->correctForPhaseContainment();
469  float phaseNS=param_ts->correctionPhaseNS();
471  correctTiming_ = param_ts->correctTiming();
472  firstAuxTS_ = param_ts->firstAuxTS();
473  int pileupCleaningID = param_ts->pileupCleaningID();
474  reco_.setRecoParams(correctForTimeslew,correctForPhaseContainment,useLeakCorrection_,pileupCleaningID,phaseNS);
475  }
476  }
477 
478  int first = firstSample_;
479  int toadd = samplesToAdd_;
480 
481  // check on cells to be ignored and dropped: (rof,20.Feb.09)
482  const HcalChannelStatus* mydigistatus=myqual->getValues(detcell.rawId());
483  if (mySeverity->dropChannel(mydigistatus->getValue() ) ) continue;
485  if (i->zsMarkAndPass()) continue;
486 
487  const HcalCalibrations& calibrations=conditions->getHcalCalibrations(cell);
488  const HcalQIECoder* channelCoder = conditions->getHcalCoder (cell);
489  const HcalQIEShape* shape = conditions->getHcalShape (channelCoder);
490  HcalCoderDb coder (*channelCoder, *shape);
491 
492  rec->push_back(reco_.reconstruct(*i,first,toadd,coder,calibrations));
493 
494  // Set auxiliary flag
495  int auxflag=0;
496  int fTS = firstAuxTS_;
497  if (fTS<0) fTS=0; //silly protection against negative time slice values
498  for (int xx=fTS; xx<fTS+4 && xx<i->size();++xx)
499  auxflag+=(i->sample(xx).adc())<<(7*(xx-fTS)); // store the time slices in the first 28 bits of aux, a set of 4 7-bit adc values
500  // bits 28 and 29 are reserved for capid of the first time slice saved in aux
501  auxflag+=((i->sample(fTS).capid())<<28);
502  (rec->back()).setAux(auxflag);
503 
504  (rec->back()).setFlags(0);
505  // Fill Presample ADC flag
506  if (fTS>0)
507  (rec->back()).setFlagField((i->sample(fTS-1).adc()), HcalCaloFlagLabels::PresampleADC,7);
508 
511  if (correctTiming_)
512  HcalTimingCorrector::Correct(rec->back(), *i, favorite_capid);
513  }
514  // return result
515  e.put(rec);
516 
517  // HF -------------------------------------------------------------------
518  } else if (subdet_==HcalForward) {
520  e.getByToken(tok_hf_,digi);
521 
522 
524  // create empty output
525  std::auto_ptr<HFRecHitCollection> rec(new HFRecHitCollection);
526  rec->reserve(digi->size());
527  // run the algorithm
529 
530  // Vote on majority TS0 CapId
531  int favorite_capid = 0;
532  if (correctTiming_) {
533  long capid_votes[4] = {0,0,0,0};
534  for (i=digi->begin(); i!=digi->end(); i++) {
535  capid_votes[(*i)[0].capid()]++;
536  }
537  for (int k = 0; k < 4; k++)
538  if (capid_votes[k] > capid_votes[favorite_capid])
539  favorite_capid = k;
540  }
541 
542  for (i=digi->begin(); i!=digi->end(); i++) {
543  HcalDetId cell = i->id();
544  DetId detcell=(DetId)cell;
545 
547  const HcalRecoParam* param_ts = paramTS->getValues(detcell.rawId());
548  if(tsFromDB_) {
549  firstSample_ = param_ts->firstSample();
550  samplesToAdd_ = param_ts->samplesToAdd();
551  }
552  if(recoParamsFromDB_) {
553  bool correctForTimeslew=param_ts->correctForTimeslew();
554  bool correctForPhaseContainment= param_ts->correctForPhaseContainment();
555  float phaseNS=param_ts->correctionPhaseNS();
557  correctTiming_ = param_ts->correctTiming();
558  firstAuxTS_ = param_ts->firstAuxTS();
559  int pileupCleaningID = param_ts->pileupCleaningID();
560  reco_.setRecoParams(correctForTimeslew,correctForPhaseContainment,useLeakCorrection_,pileupCleaningID,phaseNS);
561  }
562  }
563 
564  int first = firstSample_;
565  int toadd = samplesToAdd_;
566 
567  // check on cells to be ignored and dropped: (rof,20.Feb.09)
568  const HcalChannelStatus* mydigistatus=myqual->getValues(detcell.rawId());
569  if (mySeverity->dropChannel(mydigistatus->getValue() ) ) continue;
571  if (i->zsMarkAndPass()) continue;
572 
573  const HcalCalibrations& calibrations=conditions->getHcalCalibrations(cell);
574  const HcalQIECoder* channelCoder = conditions->getHcalCoder (cell);
575  const HcalQIEShape* shape = conditions->getHcalShape (channelCoder);
576  HcalCoderDb coder (*channelCoder, *shape);
577 
578  // Set HFDigiTime flag values from digiTimeFromDB_
579  if (digiTimeFromDB_==true && hfdigibit_!=0)
580  {
581  const HcalFlagHFDigiTimeParam* hfDTparam = HFDigiTimeParams->getValues(detcell.rawId());
583  hfDTparam->HFdigiflagSamplesToAdd(),
584  hfDTparam->HFdigiflagExpectedPeak(),
585  hfDTparam->HFdigiflagMinEThreshold(),
586  hfDTparam->HFdigiflagCoefficients()
587  );
588  }
589 
590  //std::cout << "TOADDHF " << toadd << " " << first << " " << std::endl;
591  rec->push_back(reco_.reconstruct(*i,first,toadd,coder,calibrations));
592 
593  // Set auxiliary flag
594  int auxflag=0;
595  int fTS = firstAuxTS_;
596  if (fTS<0) fTS=0; // silly protection against negative time slice values
597  for (int xx=fTS; xx<fTS+4 && xx<i->size();++xx)
598  auxflag+=(i->sample(xx).adc())<<(7*(xx-fTS)); // store the time slices in the first 28 bits of aux, a set of 4 7-bit adc values
599  // bits 28 and 29 are reserved for capid of the first time slice saved in aux
600  auxflag+=((i->sample(fTS).capid())<<28);
601  (rec->back()).setAux(auxflag);
602 
603  // Clear flags
604  (rec->back()).setFlags(0);
605 
606  // Fill Presample ADC flag
607  if (fTS>0)
608  (rec->back()).setFlagField((i->sample(fTS-1).adc()), HcalCaloFlagLabels::PresampleADC,7);
609 
610  // This calls the code for setting the HF noise bit determined from digi shape
611  if (setNoiseFlags_)
612  hfdigibit_->hfSetFlagFromDigi(rec->back(),*i,coder,calibrations);
617  if (correctTiming_)
618  HcalTimingCorrector::Correct(rec->back(), *i, favorite_capid);
619  } // for (i=digi->begin(); i!=digi->end(); i++) -- loop on all HF digis
620 
621  // The following flags require the full set of rechits
622  // These need to be set consecutively, so an energy check should be the first
623  // test performed on these hits (to minimize the loop time)
624  if (setNoiseFlags_)
625  {
626  // Step 1: Set PET flag (short fibers of |ieta|==29)
627  // Neighbor/partner channels that are flagged by Pulse Shape algorithm (HFDigiTime)
628  // won't be considered in these calculations
629  for (HFRecHitCollection::iterator i = rec->begin();i!=rec->end();++i)
630  {
631  int depth=i->id().depth();
632  int ieta=i->id().ieta();
633  // Short fibers and all channels at |ieta|=29 use PET settings in Algo 3
634  if (depth==2 || abs(ieta)==29 )
635  hfPET_->HFSetFlagFromPET(*i,*rec,myqual,mySeverity);
636  }
637 
638  // Step 2: Set S8S1 flag (short fibers or |ieta|==29)
639  for (HFRecHitCollection::iterator i = rec->begin();i!=rec->end();++i)
640  {
641  int depth=i->id().depth();
642  int ieta=i->id().ieta();
643  // Short fibers and all channels at |ieta|=29 use PET settings in Algo 3
644  if (depth==2 || abs(ieta)==29 )
645  hfS8S1_->HFSetFlagFromS9S1(*i,*rec,myqual,mySeverity);
646  }
647 
648  // Set 3: Set S9S1 flag (long fibers)
649  for (HFRecHitCollection::iterator i = rec->begin();i!=rec->end();++i)
650  {
651  int depth=i->id().depth();
652  int ieta=i->id().ieta();
653  // Short fibers and all channels at |ieta|=29 use PET settings in Algo 3
654  if (depth==1 && abs(ieta)!=29 )
655  hfS9S1_->HFSetFlagFromS9S1(*i,*rec,myqual, mySeverity);
656  }
657  }
658 
659  // return result
660  e.put(rec);
661  } else if (subdet_==HcalOther && subdetOther_==HcalCalibration) {
663  e.getByToken(tok_calib_,digi);
664 
665  // create empty output
666  std::auto_ptr<HcalCalibRecHitCollection> rec(new HcalCalibRecHitCollection);
667  rec->reserve(digi->size());
668  // run the algorithm
669  int first = firstSample_;
670  int toadd = samplesToAdd_;
671 
673  for (i=digi->begin(); i!=digi->end(); i++) {
674  HcalCalibDetId cell = i->id();
675  // HcalDetId cellh = i->id();
676  DetId detcell=(DetId)cell;
677  // check on cells to be ignored and dropped: (rof,20.Feb.09)
678  const HcalChannelStatus* mydigistatus=myqual->getValues(detcell.rawId());
679  if (mySeverity->dropChannel(mydigistatus->getValue() ) ) continue;
681  if (i->zsMarkAndPass()) continue;
682 
683  const HcalCalibrations& calibrations=conditions->getHcalCalibrations(cell);
684  const HcalQIECoder* channelCoder = conditions->getHcalCoder (cell);
685  const HcalQIEShape* shape = conditions->getHcalShape (channelCoder);
686  HcalCoderDb coder (*channelCoder, *shape);
687 
688  // firstSample & samplesToAdd
689  if(tsFromDB_) {
690  const HcalRecoParam* param_ts = paramTS->getValues(detcell.rawId());
691  first = param_ts->firstSample();
692  toadd = param_ts->samplesToAdd();
693  }
694  rec->push_back(reco_.reconstruct(*i,first,toadd,coder,calibrations));
695 
696  /*
697  // Flag setting not available for calibration rechits
698  // Set auxiliary flag
699  int auxflag=0;
700  int fTS = firstAuxTS_;
701  for (int xx=fTS; xx<fTS+4 && xx<i->size();++xx)
702  auxflag+=(i->sample(xx).adc())<<(7*(xx-fTS)); // store the time slices in the first 28 bits of aux, a set of 4 7-bit adc values
703  // bits 28 and 29 are reserved for capid of the first time slice saved in aux
704  auxflag+=((i->sample(fTS).capid())<<28);
705  (rec->back()).setAux(auxflag);
706 
707  (rec->back()).setFlags(0); // Not yet implemented for HcalCalibRecHit
708  */
709  }
710  // return result
711  e.put(rec);
712  }
713  }
714  //DL delete myqual;
715 } // void HcalHitReconstructor::produce(...)
unsigned int firstSample() const
Definition: HcalRecoParam.h:30
int i
Definition: DBlmapReader.cc:9
void HFSetFlagFromS9S1(HFRecHit &hf, HFRecHitCollection &rec, const HcalChannelQuality *myqual, const HcalSeverityLevelComputer *mySeverity)
HcalRecoParams * paramTS
HBHERecHit reconstruct(const HBHEDataFrame &digi, int first, int toadd, const HcalCoder &coder, const HcalCalibrations &calibs) const
edm::EDGetTokenT< HBHEDigiCollection > tok_hbhe_
void setHFTimingTrustFlag(HFRecHit &rechit, const HFDataFrame &digi)
unsigned int pileupCleaningID() const
Definition: HcalRecoParam.h:42
HcalADCSaturationFlag * saturationFlagSetter_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:434
uint32_t HFdigiflagSamplesToAdd() const
bool correctForPhaseContainment() const
Definition: HcalRecoParam.h:27
void hfSetFlagFromDigi(HFRecHit &hf, const HFDataFrame &digi, const HcalCoder &coder, const HcalCalibrations &calib)
std::vector< HBHEDataFrame >::const_iterator const_iterator
void setTopo(const HcalTopology *topo) const
const Item * getValues(DetId fId, bool throwOnFail=true) const
void resetParamsFromDB(int firstSample, int samplesToAdd, int expectedPeak, double minthreshold, const std::vector< double > &coef)
bool isRealData() const
Definition: EventBase.h:60
void HFSetFlagFromPET(HFRecHit &hf, HFRecHitCollection &rec, const HcalChannelQuality *myqual, const HcalSeverityLevelComputer *mySeverity)
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:116
bool correctForTimeslew() const
Definition: HcalRecoParam.h:36
edm::EDGetTokenT< HcalCalibDigiCollection > tok_calib_
bool correctTiming() const
Definition: HcalRecoParam.h:38
RunNumber_t run() const
Definition: Event.h:88
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
HcalHFStatusBitFromDigis * hfdigibit_
int j
Definition: DBlmapReader.cc:9
bool dropChannel(const uint32_t &mystatus) const
uint32_t HFdigiflagExpectedPeak() const
void hbheSetTimeFlagsFromDigi(HBHERecHitCollection *, const std::vector< HBHEDataFrame > &, const std::vector< int > &)
void setSaturationFlag(HBHERecHit &rechit, const HBHEDataFrame &digi)
unsigned int samplesToAdd() const
Definition: HcalRecoParam.h:31
bool first
Definition: L1TdeRCT.cc:79
edm::EDGetTokenT< HODigiCollection > tok_ho_
float correctionPhaseNS() const
Definition: HcalRecoParam.h:29
std::vector< HFRecHit >::iterator iterator
int k[5][pyjets_maxn]
std::vector< double > HFdigiflagCoefficients() const
HcalHF_PETalgorithm * hfPET_
Definition: DetId.h:18
HcalHF_S9S1algorithm * hfS9S1_
HBHEPulseShapeFlagSetter * hbhePulseShapeFlagSetter_
void setRecoParams(bool correctForTimeslew, bool correctForPulse, bool setLeakCorrection, int pileupCleaningID, float phaseNS)
void SetTimingShapedFlags(HBHERecHit &hbhe)
uint32_t HFdigiflagFirstSample() const
void setForData(int runnum)
T const * product() const
Definition: ESHandle.h:62
HBHEStatusBitSetter * hbheFlagSetter_
HBHETimeProfileStatusBitSetter * hbheHSCPFlagSetter_
HBHETimingShapedFlagSetter * hbheTimingShapedFlagSetter_
HcalHF_S9S1algorithm * hfS8S1_
void SetFlagsFromRecHits(const HcalTopology *topo, HBHERecHitCollection &rec)
HcalOtherSubdetector subdetOther_
static void Correct(HBHERecHit &rechit, const HBHEDataFrame &digi, int favorite_capid)
void SetPulseShapeFlags(HBHERecHit &hbhe, const HBHEDataFrame &digi, const HcalCoder &coder, const HcalCalibrations &calib)
unsigned int firstAuxTS() const
Definition: HcalRecoParam.h:39
HFTimingTrustFlag * HFTimingTrustFlagSetter_
uint32_t getValue() const
void SetFlagsFromDigi(const HcalTopology *topo, HBHERecHit &hbhe, const HBHEDataFrame &digi, const HcalCoder &coder, const HcalCalibrations &calib, int firstSample=3, int samplesToAdd=4)
edm::EDGetTokenT< HFDigiCollection > tok_hf_
const HcalFlagHFDigiTimeParams * HFDigiTimeParams
const HcalTopology * topo() const
HcalSimpleRecAlgo reco_
double HFdigiflagMinEThreshold() const
bool useLeakCorrection() const
Definition: HcalRecoParam.h:34

Member Data Documentation

bool HcalHitReconstructor::correctTiming_
private

Definition at line 71 of file HcalHitReconstructor.h.

Referenced by produce().

DetId::Detector HcalHitReconstructor::det_
private

Definition at line 62 of file HcalHitReconstructor.h.

Referenced by HcalHitReconstructor(), and produce().

bool HcalHitReconstructor::digiTimeFromDB_
private

Definition at line 86 of file HcalHitReconstructor.h.

Referenced by beginRun(), endRun(), HcalHitReconstructor(), and produce().

bool HcalHitReconstructor::dropZSmarkedPassed_
private

Definition at line 77 of file HcalHitReconstructor.h.

Referenced by produce().

int HcalHitReconstructor::firstAuxTS_
private

Definition at line 79 of file HcalHitReconstructor.h.

Referenced by produce().

int HcalHitReconstructor::firstSample_
private

Definition at line 82 of file HcalHitReconstructor.h.

Referenced by produce().

HBHEStatusBitSetter* HcalHitReconstructor::hbheFlagSetter_
private

Definition at line 53 of file HcalHitReconstructor.h.

Referenced by HcalHitReconstructor(), produce(), and ~HcalHitReconstructor().

HBHETimeProfileStatusBitSetter* HcalHitReconstructor::hbheHSCPFlagSetter_
private

Definition at line 54 of file HcalHitReconstructor.h.

Referenced by HcalHitReconstructor(), produce(), and ~HcalHitReconstructor().

HBHEPulseShapeFlagSetter* HcalHitReconstructor::hbhePulseShapeFlagSetter_
private

Definition at line 56 of file HcalHitReconstructor.h.

Referenced by HcalHitReconstructor(), produce(), and ~HcalHitReconstructor().

HBHETimingShapedFlagSetter* HcalHitReconstructor::hbheTimingShapedFlagSetter_
private

Definition at line 55 of file HcalHitReconstructor.h.

Referenced by HcalHitReconstructor(), and produce().

HcalHFStatusBitFromDigis* HcalHitReconstructor::hfdigibit_
private

Definition at line 57 of file HcalHitReconstructor.h.

Referenced by HcalHitReconstructor(), produce(), and ~HcalHitReconstructor().

const HcalFlagHFDigiTimeParams* HcalHitReconstructor::HFDigiTimeParams
private

Definition at line 93 of file HcalHitReconstructor.h.

Referenced by beginRun(), and produce().

HcalHF_PETalgorithm* HcalHitReconstructor::hfPET_
private

Definition at line 60 of file HcalHitReconstructor.h.

Referenced by HcalHitReconstructor(), produce(), and ~HcalHitReconstructor().

HcalHF_S9S1algorithm* HcalHitReconstructor::hfS8S1_
private

Definition at line 59 of file HcalHitReconstructor.h.

Referenced by HcalHitReconstructor(), and produce().

HcalHF_S9S1algorithm* HcalHitReconstructor::hfS9S1_
private

Definition at line 58 of file HcalHitReconstructor.h.

Referenced by HcalHitReconstructor(), produce(), and ~HcalHitReconstructor().

HFTimingTrustFlag* HcalHitReconstructor::HFTimingTrustFlagSetter_
private

Definition at line 52 of file HcalHitReconstructor.h.

Referenced by HcalHitReconstructor(), and produce().

edm::InputTag HcalHitReconstructor::inputLabel_
private

Definition at line 65 of file HcalHitReconstructor.h.

Referenced by HcalHitReconstructor().

HcalRecoParams* HcalHitReconstructor::paramTS
private

Definition at line 92 of file HcalHitReconstructor.h.

Referenced by beginRun(), endRun(), produce(), and ~HcalHitReconstructor().

HcalSimpleRecAlgo HcalHitReconstructor::reco_
private

Definition at line 50 of file HcalHitReconstructor.h.

Referenced by beginRun(), endRun(), and produce().

bool HcalHitReconstructor::recoParamsFromDB_
private

Definition at line 85 of file HcalHitReconstructor.h.

Referenced by beginRun(), HcalHitReconstructor(), and produce().

int HcalHitReconstructor::samplesToAdd_
private

Definition at line 83 of file HcalHitReconstructor.h.

Referenced by produce().

HcalADCSaturationFlag* HcalHitReconstructor::saturationFlagSetter_
private

Definition at line 51 of file HcalHitReconstructor.h.

Referenced by HcalHitReconstructor(), and produce().

bool HcalHitReconstructor::setHSCPFlags_
private

Definition at line 73 of file HcalHitReconstructor.h.

Referenced by HcalHitReconstructor(), and produce().

bool HcalHitReconstructor::setNoiseFlags_
private

Definition at line 72 of file HcalHitReconstructor.h.

Referenced by HcalHitReconstructor(), and produce().

bool HcalHitReconstructor::setPulseShapeFlags_
private

Definition at line 76 of file HcalHitReconstructor.h.

Referenced by HcalHitReconstructor(), and produce().

bool HcalHitReconstructor::setSaturationFlags_
private

Definition at line 74 of file HcalHitReconstructor.h.

Referenced by HcalHitReconstructor(), and produce().

bool HcalHitReconstructor::setTimingTrustFlags_
private

Definition at line 75 of file HcalHitReconstructor.h.

Referenced by HcalHitReconstructor(), and produce().

int HcalHitReconstructor::subdet_
private

Definition at line 63 of file HcalHitReconstructor.h.

Referenced by HcalHitReconstructor(), and produce().

HcalOtherSubdetector HcalHitReconstructor::subdetOther_
private

Definition at line 64 of file HcalHitReconstructor.h.

Referenced by HcalHitReconstructor(), and produce().

HcalTopology* HcalHitReconstructor::theTopology
private

Definition at line 95 of file HcalHitReconstructor.h.

Referenced by beginRun(), and ~HcalHitReconstructor().

edm::EDGetTokenT<HcalCalibDigiCollection> HcalHitReconstructor::tok_calib_
private

Definition at line 69 of file HcalHitReconstructor.h.

Referenced by HcalHitReconstructor(), and produce().

edm::EDGetTokenT<HBHEDigiCollection> HcalHitReconstructor::tok_hbhe_
private

Definition at line 66 of file HcalHitReconstructor.h.

Referenced by HcalHitReconstructor(), and produce().

edm::EDGetTokenT<HFDigiCollection> HcalHitReconstructor::tok_hf_
private

Definition at line 68 of file HcalHitReconstructor.h.

Referenced by HcalHitReconstructor(), and produce().

edm::EDGetTokenT<HODigiCollection> HcalHitReconstructor::tok_ho_
private

Definition at line 67 of file HcalHitReconstructor.h.

Referenced by HcalHitReconstructor(), and produce().

bool HcalHitReconstructor::tsFromDB_
private

Definition at line 84 of file HcalHitReconstructor.h.

Referenced by beginRun(), endRun(), and produce().

bool HcalHitReconstructor::useLeakCorrection_
private

Definition at line 90 of file HcalHitReconstructor.h.

Referenced by produce().