CMS 3D CMS Logo

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

#include <RecoTracker/DeDx/plugins/DeDxHitInfoProducer.cc>

Inheritance diagram for DeDxHitInfoProducer:
edm::stream::EDProducer<>

Public Member Functions

 DeDxHitInfoProducer (const edm::ParameterSet &)
 
 ~DeDxHitInfoProducer () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Private Member Functions

void beginRun (edm::Run const &run, const edm::EventSetup &) override
 
void makeCalibrationMap (const TrackerGeometry &tkGeom)
 
void processHit (const TrackingRecHit *recHit, const float trackMomentum, const float cosine, reco::DeDxHitInfo &hitDeDxInfo, const LocalPoint &hitLocalPos)
 
void produce (edm::Event &, const edm::EventSetup &) override
 
uint64_t xorshift128p (uint64_t state[2])
 

Private Attributes

std::vector< std::vector< float > > calibGains
 
const float lowPtTracksDeDxThreshold
 
GenericTruncatedAverageDeDxEstimator lowPtTracksEstimator
 
const unsigned int lowPtTracksPrescaleFail
 
const unsigned int lowPtTracksPrescalePass
 
const std::string m_calibrationPath
 
unsigned int m_off
 
edm::ESGetToken
< TrackerGeometry,
TrackerDigiGeometryRecord
m_tkGeomToken
 
edm::EDGetTokenT
< reco::TrackCollection
m_tracksTag
 
const float maxTrackEta
 
const float MeVperADCPixel
 
const float MeVperADCStrip
 
const unsigned int minTrackHits
 
const float minTrackPt
 
const float minTrackPtPrescale
 
const bool shapetest
 
edm::ESHandle< TrackerGeometrytkGeom
 
const bool useCalibration
 
const bool usePixel
 
const bool useStrip
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
using CacheTypes = CacheContexts< T...>
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T...>
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 

Detailed Description

Description: <one line="" class="" summary>="">

Implementation: <Notes on="" implementation>="">

Definition at line 35 of file DeDxHitInfoProducer.h.

Constructor & Destructor Documentation

DeDxHitInfoProducer::DeDxHitInfoProducer ( const edm::ParameterSet iConfig)
explicit

Definition at line 26 of file DeDxHitInfoProducer.cc.

References edm::ParameterSet::getParameter(), m_tkGeomToken, m_tracksTag, usePixel, and useStrip.

27  : usePixel(iConfig.getParameter<bool>("usePixel")),
28  useStrip(iConfig.getParameter<bool>("useStrip")),
29  MeVperADCPixel(iConfig.getParameter<double>("MeVperADCPixel")),
30  MeVperADCStrip(iConfig.getParameter<double>("MeVperADCStrip")),
31  minTrackHits(iConfig.getParameter<unsigned>("minTrackHits")),
32  minTrackPt(iConfig.getParameter<double>("minTrackPt")),
33  minTrackPtPrescale(iConfig.getParameter<double>("minTrackPtPrescale")),
34  maxTrackEta(iConfig.getParameter<double>("maxTrackEta")),
35  m_calibrationPath(iConfig.getParameter<string>("calibrationPath")),
36  useCalibration(iConfig.getParameter<bool>("useCalibration")),
37  shapetest(iConfig.getParameter<bool>("shapeTest")),
38  lowPtTracksPrescalePass(iConfig.getParameter<uint32_t>("lowPtTracksPrescalePass")),
39  lowPtTracksPrescaleFail(iConfig.getParameter<uint32_t>("lowPtTracksPrescaleFail")),
40  lowPtTracksEstimator(iConfig.getParameter<edm::ParameterSet>("lowPtTracksEstimatorParameters")),
41  lowPtTracksDeDxThreshold(iConfig.getParameter<double>("lowPtTracksDeDxThreshold")) {
42  produces<reco::DeDxHitInfoCollection>();
43  produces<reco::DeDxHitInfoAss>();
44  produces<edm::ValueMap<int>>("prescale");
45 
46  m_tracksTag = consumes<reco::TrackCollection>(iConfig.getParameter<edm::InputTag>("tracks"));
47  m_tkGeomToken = esConsumes<TrackerGeometry, TrackerDigiGeometryRecord, edm::Transition::BeginRun>();
48 
49  if (!usePixel && !useStrip)
50  edm::LogError("DeDxHitsProducer") << "No Pixel Hits NOR Strip Hits will be saved. Running this module is useless";
51 }
edm::EDGetTokenT< reco::TrackCollection > m_tracksTag
GenericTruncatedAverageDeDxEstimator lowPtTracksEstimator
Log< level::Error, false > LogError
const unsigned int lowPtTracksPrescalePass
const float lowPtTracksDeDxThreshold
const std::string m_calibrationPath
const unsigned int minTrackHits
const unsigned int lowPtTracksPrescaleFail
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > m_tkGeomToken
const float minTrackPtPrescale
DeDxHitInfoProducer::~DeDxHitInfoProducer ( )
override

Definition at line 53 of file DeDxHitInfoProducer.cc.

53 {}

Member Function Documentation

void DeDxHitInfoProducer::beginRun ( edm::Run const &  run,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 56 of file DeDxHitInfoProducer.cc.

References calibGains, edm::EventSetup::getHandle(), m_calibrationPath, m_off, m_tkGeomToken, DeDxTools::makeCalibrationMap(), GeomDetEnumerators::PixelBarrel, tkGeom, and useCalibration.

56  {
57  tkGeom = iSetup.getHandle(m_tkGeomToken);
58  if (useCalibration && calibGains.empty()) {
59  m_off = tkGeom->offsetDU(GeomDetEnumerators::PixelBarrel); //index start at the first pixel
60 
62  }
63 }
void makeCalibrationMap(const std::string &m_calibrationPath, const TrackerGeometry &tkGeom, std::vector< std::vector< float >> &calibGains, const unsigned int &m_off)
std::vector< std::vector< float > > calibGains
const std::string m_calibrationPath
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > m_tkGeomToken
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:151
edm::ESHandle< TrackerGeometry > tkGeom
void DeDxHitInfoProducer::makeCalibrationMap ( const TrackerGeometry tkGeom)
private
void DeDxHitInfoProducer::processHit ( const TrackingRecHit recHit,
const float  trackMomentum,
const float  cosine,
reco::DeDxHitInfo hitDeDxInfo,
const LocalPoint hitLocalPos 
)
private

Definition at line 161 of file DeDxHitInfoProducer.cc.

References funct::abs(), reco::DeDxHitInfo::addHit(), calibGains, runTheMatrix::const, TrackerSingleRecHit::detUnit(), TrackingRecHit::detUnit(), validate-o2o-wbm::f, TrackingRecHit::geographicalId(), DeDxTools::getCharge(), m_off, SiStripPI::max, SiStripMatchedRecHit2D::monoHit(), SiStripMatchedRecHit2D::stereoHit(), TrackerSingleRecHit::stripCluster(), tkGeom, usePixel, and useStrip.

Referenced by produce().

165  {
166  auto const& thit = static_cast<BaseTrackerRecHit const&>(*recHit);
167  if (!thit.isValid())
168  return;
169 
170  float cosineAbs = std::max(0.00000001f, std::abs(cosine)); //make sure cosine is not 0
171 
172  auto const& clus = thit.firstClusterRef();
173  if (!clus.isValid())
174  return;
175 
176  if (clus.isPixel()) {
177  if (!usePixel)
178  return;
179 
180  const auto* detUnit = recHit->detUnit();
181  if (detUnit == nullptr)
182  detUnit = tkGeom->idToDet(thit.geographicalId());
183  float pathLen = detUnit->surface().bounds().thickness() / cosineAbs;
184  float chargeAbs = clus.pixelCluster().charge();
185  hitDeDxInfo.addHit(chargeAbs, pathLen, thit.geographicalId(), hitLocalPos, clus.pixelCluster());
186  } else if (clus.isStrip() && !thit.isMatched()) {
187  if (!useStrip)
188  return;
189 
190  const auto* detUnit = recHit->detUnit();
191  if (detUnit == nullptr)
192  detUnit = tkGeom->idToDet(thit.geographicalId());
193  int NSaturating = 0;
194  float pathLen = detUnit->surface().bounds().thickness() / cosineAbs;
195  float chargeAbs = DeDxTools::getCharge(&(clus.stripCluster()), NSaturating, *detUnit, calibGains, m_off);
196  hitDeDxInfo.addHit(chargeAbs, pathLen, thit.geographicalId(), hitLocalPos, clus.stripCluster());
197  } else if (clus.isStrip() && thit.isMatched()) {
198  if (!useStrip)
199  return;
200  const SiStripMatchedRecHit2D* matchedHit = dynamic_cast<const SiStripMatchedRecHit2D*>(recHit);
201  if (!matchedHit)
202  return;
203 
204  const auto* detUnitM = matchedHit->monoHit().detUnit();
205  if (detUnitM == nullptr)
206  detUnitM = tkGeom->idToDet(matchedHit->monoHit().geographicalId());
207  int NSaturating = 0;
208  float pathLen = detUnitM->surface().bounds().thickness() / cosineAbs;
209  float chargeAbs =
210  DeDxTools::getCharge(&(matchedHit->monoHit().stripCluster()), NSaturating, *detUnitM, calibGains, m_off);
211  hitDeDxInfo.addHit(chargeAbs, pathLen, thit.geographicalId(), hitLocalPos, matchedHit->monoHit().stripCluster());
212 
213  const auto* detUnitS = matchedHit->stereoHit().detUnit();
214  if (detUnitS == nullptr)
215  detUnitS = tkGeom->idToDet(matchedHit->stereoHit().geographicalId());
216  NSaturating = 0;
217  pathLen = detUnitS->surface().bounds().thickness() / cosineAbs;
218  chargeAbs =
219  DeDxTools::getCharge(&(matchedHit->stereoHit().stripCluster()), NSaturating, *detUnitS, calibGains, m_off);
220  hitDeDxInfo.addHit(chargeAbs, pathLen, thit.geographicalId(), hitLocalPos, matchedHit->stereoHit().stripCluster());
221  }
222 }
const GeomDetUnit * detUnit() const override
std::vector< std::vector< float > > calibGains
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
void addHit(const float charge, const float pathlength, const DetId &detId, const LocalPoint &pos, const SiStripCluster &stripCluster)
Definition: DeDxHitInfo.h:89
int getCharge(const SiStripCluster *cluster, int &nSatStrip, const GeomDetUnit &detUnit, const std::vector< std::vector< float >> &calibGains, const unsigned int &m_off)
SiStripRecHit2D stereoHit() const
SiStripCluster const & stripCluster() const
SiStripRecHit2D monoHit() const
virtual const GeomDetUnit * detUnit() const
DetId geographicalId() const
edm::ESHandle< TrackerGeometry > tkGeom
void DeDxHitInfoProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 65 of file DeDxHitInfoProducer.cc.

References funct::abs(), reco::DeDxHitInfo::charge(), GenericTruncatedAverageDeDxEstimator::dedx(), reco::DeDxHitInfo::detId(), reco::TrackBase::eta(), edm::EventID::event(), reco::Track::extra(), edm::Event::getByToken(), h, hcalSimParameters_cfi::hb, mps_fire::i, edm::EventBase::id(), dqmdumpme::indices, trackerHitRTTI::isFromDet(), dqmiolumiharvest::j, lowPtTracksDeDxThreshold, lowPtTracksEstimator, lowPtTracksPrescaleFail, lowPtTracksPrescalePass, edm::EventID::luminosityBlock(), m_tracksTag, maxTrackEta, MeVperADCPixel, MeVperADCStrip, minTrackHits, minTrackPt, minTrackPtPrescale, eostools::move(), dqmiodumpmetadata::n, reco::TrackBase::numberOfValidHits(), reco::TrackBase::p(), reco::DeDxHitInfo::pathlength(), makeHLTPrescaleTable::prescales, processHit(), edm::Handle< T >::product(), reco::TrackBase::pt(), edm::Event::put(), reco::Track::recHitsBegin(), reco::Track::recHitsSize(), DeDxTools::shapeSelection(), shapetest, reco::DeDxHitInfo::size(), reco::DeDxHitInfo::stripCluster(), DetId::subdetId(), HLT_FULL_cff::track, HLT_FULL_cff::trackCollection, and xorshift128p().

65  {
66  edm::Handle<reco::TrackCollection> trackCollectionHandle;
67  iEvent.getByToken(m_tracksTag, trackCollectionHandle);
68  const TrackCollection& trackCollection(*trackCollectionHandle.product());
69 
70  // creates the output collection
71  auto resultdedxHitColl = std::make_unique<reco::DeDxHitInfoCollection>();
72 
73  std::vector<int> indices;
74  std::vector<int> prescales;
75  uint64_t state[2] = {iEvent.id().event(), iEvent.id().luminosityBlock()};
76  for (unsigned int j = 0; j < trackCollection.size(); j++) {
78 
79  //track selection
80  bool passPt = (track.pt() >= minTrackPt), passLowDeDx = false, passHighDeDx = false, pass = passPt;
81  if (!pass && (track.pt() >= minTrackPtPrescale)) {
82  if (lowPtTracksPrescalePass > 0) {
83  passHighDeDx = ((xorshift128p(state) % lowPtTracksPrescalePass) == 0);
84  }
85  if (lowPtTracksPrescaleFail > 0) {
86  passLowDeDx = ((xorshift128p(state) % lowPtTracksPrescaleFail) == 0);
87  }
88  pass = passHighDeDx || passLowDeDx;
89  }
90  if (!pass || std::abs(track.eta()) > maxTrackEta || track.numberOfValidHits() < minTrackHits) {
91  indices.push_back(-1);
92  continue;
93  }
94 
95  reco::DeDxHitInfo hitDeDxInfo;
96  auto const& trajParams = track.extra()->trajParams();
97  auto hb = track.recHitsBegin();
98  for (unsigned int h = 0; h < track.recHitsSize(); h++) {
99  auto recHit = *(hb + h);
100  if (!trackerHitRTTI::isFromDet(*recHit))
101  continue;
102 
103  auto trackDirection = trajParams[h].direction();
104  float cosine = trackDirection.z() / trackDirection.mag();
105 
106  processHit(recHit, track.p(), cosine, hitDeDxInfo, trajParams[h].position());
107  }
108 
109  if (!passPt) {
110  std::vector<DeDxHit> hits;
111  hits.reserve(hitDeDxInfo.size());
112  for (unsigned int i = 0, n = hitDeDxInfo.size(); i < n; ++i) {
113  if (hitDeDxInfo.detId(i).subdetId() <= 2) {
114  hits.push_back(DeDxHit(hitDeDxInfo.charge(i) / hitDeDxInfo.pathlength(i) * MeVperADCPixel, 0, 0, 0));
115  } else {
116  if (shapetest && !DeDxTools::shapeSelection(*hitDeDxInfo.stripCluster(i)))
117  continue;
118  hits.push_back(DeDxHit(hitDeDxInfo.charge(i) / hitDeDxInfo.pathlength(i) * MeVperADCStrip, 0, 0, 0));
119  }
120  }
121  std::sort(hits.begin(), hits.end(), std::less<DeDxHit>());
123  if (passLowDeDx) {
124  prescales.push_back(lowPtTracksPrescaleFail);
125  } else {
126  indices.push_back(-1);
127  continue;
128  }
129  } else {
130  if (passHighDeDx) {
131  prescales.push_back(lowPtTracksPrescalePass);
132  } else {
133  indices.push_back(-1);
134  continue;
135  }
136  }
137  } else {
138  prescales.push_back(1);
139  }
140  indices.push_back(resultdedxHitColl->size());
141  resultdedxHitColl->push_back(hitDeDxInfo);
142  }
144 
145  edm::OrphanHandle<reco::DeDxHitInfoCollection> dedxHitCollHandle = iEvent.put(std::move(resultdedxHitColl));
146 
147  //create map passing the handle to the matched collection
148  auto dedxMatch = std::make_unique<reco::DeDxHitInfoAss>(dedxHitCollHandle);
149  reco::DeDxHitInfoAss::Filler filler(*dedxMatch);
150  filler.insert(trackCollectionHandle, indices.begin(), indices.end());
151  filler.fill();
152  iEvent.put(std::move(dedxMatch));
153 
154  auto dedxPrescale = std::make_unique<edm::ValueMap<int>>();
155  edm::ValueMap<int>::Filler pfiller(*dedxPrescale);
156  pfiller.insert(dedxHitCollHandle, prescales.begin(), prescales.end());
157  pfiller.fill();
158  iEvent.put(std::move(dedxPrescale), "prescale");
159 }
double p() const
momentum vector magnitude
Definition: TrackBase.h:631
EventNumber_t event() const
Definition: EventID.h:40
edm::EDGetTokenT< reco::TrackCollection > m_tracksTag
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:133
const TrackExtraRef & extra() const
reference to &quot;extra&quot; object
Definition: Track.h:139
bool isFromDet(TrackingRecHit const &hit)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
size_t recHitsSize() const
Get number of RecHits. (Warning, this includes invalid hits, which are not physical hits)...
Definition: Track.h:97
GenericTruncatedAverageDeDxEstimator lowPtTracksEstimator
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
LuminosityBlockNumber_t luminosityBlock() const
Definition: EventID.h:39
const unsigned int lowPtTracksPrescalePass
const float lowPtTracksDeDxThreshold
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:652
bool shapeSelection(const SiStripCluster &ampls)
Definition: DeDxTools.cc:12
void processHit(const TrackingRecHit *recHit, const float trackMomentum, const float cosine, reco::DeDxHitInfo &hitDeDxInfo, const LocalPoint &hitLocalPos)
double pt() const
track transverse momentum
Definition: TrackBase.h:637
def move
Definition: eostools.py:511
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
unsigned short numberOfValidHits() const
number of valid hits found
Definition: TrackBase.h:798
const unsigned int minTrackHits
trackingRecHit_iterator recHitsBegin() const
Iterator to first hit on the track.
Definition: Track.h:88
const unsigned int lowPtTracksPrescaleFail
uint64_t xorshift128p(uint64_t state[2])
tuple trackCollection
T const * product() const
Definition: Handle.h:70
unsigned long long uint64_t
Definition: Time.h:13
edm::EventID id() const
Definition: EventBase.h:59
std::pair< float, float > dedx(const reco::DeDxHitCollection &Hits) override
list indices
Definition: dqmdumpme.py:50
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
const float minTrackPtPrescale
uint64_t DeDxHitInfoProducer::xorshift128p ( uint64_t  state[2])
inlineprivate

Definition at line 79 of file DeDxHitInfoProducer.h.

References x, and y.

Referenced by produce().

79  {
80  uint64_t x = state[0];
81  uint64_t const y = state[1];
82  state[0] = y;
83  x ^= x << 23; // a
84  state[1] = x ^ y ^ (x >> 17) ^ (y >> 26); // b, c
85  return state[1] + y;
86  }
unsigned long long uint64_t
Definition: Time.h:13

Member Data Documentation

std::vector<std::vector<float> > DeDxHitInfoProducer::calibGains
private

Definition at line 73 of file DeDxHitInfoProducer.h.

Referenced by beginRun(), and processHit().

const float DeDxHitInfoProducer::lowPtTracksDeDxThreshold
private

Definition at line 71 of file DeDxHitInfoProducer.h.

Referenced by produce().

GenericTruncatedAverageDeDxEstimator DeDxHitInfoProducer::lowPtTracksEstimator
private

Definition at line 70 of file DeDxHitInfoProducer.h.

Referenced by produce().

const unsigned int DeDxHitInfoProducer::lowPtTracksPrescaleFail
private

Definition at line 69 of file DeDxHitInfoProducer.h.

Referenced by produce().

const unsigned int DeDxHitInfoProducer::lowPtTracksPrescalePass
private

Definition at line 69 of file DeDxHitInfoProducer.h.

Referenced by produce().

const std::string DeDxHitInfoProducer::m_calibrationPath
private

Definition at line 65 of file DeDxHitInfoProducer.h.

Referenced by beginRun().

unsigned int DeDxHitInfoProducer::m_off
private

Definition at line 74 of file DeDxHitInfoProducer.h.

Referenced by beginRun(), and processHit().

edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> DeDxHitInfoProducer::m_tkGeomToken
private

Definition at line 77 of file DeDxHitInfoProducer.h.

Referenced by beginRun(), and DeDxHitInfoProducer().

edm::EDGetTokenT<reco::TrackCollection> DeDxHitInfoProducer::m_tracksTag
private

Definition at line 53 of file DeDxHitInfoProducer.h.

Referenced by DeDxHitInfoProducer(), and produce().

const float DeDxHitInfoProducer::maxTrackEta
private

Definition at line 63 of file DeDxHitInfoProducer.h.

Referenced by produce().

const float DeDxHitInfoProducer::MeVperADCPixel
private

Definition at line 57 of file DeDxHitInfoProducer.h.

Referenced by produce().

const float DeDxHitInfoProducer::MeVperADCStrip
private

Definition at line 58 of file DeDxHitInfoProducer.h.

Referenced by produce().

const unsigned int DeDxHitInfoProducer::minTrackHits
private

Definition at line 60 of file DeDxHitInfoProducer.h.

Referenced by produce().

const float DeDxHitInfoProducer::minTrackPt
private

Definition at line 61 of file DeDxHitInfoProducer.h.

Referenced by produce().

const float DeDxHitInfoProducer::minTrackPtPrescale
private

Definition at line 62 of file DeDxHitInfoProducer.h.

Referenced by produce().

const bool DeDxHitInfoProducer::shapetest
private

Definition at line 67 of file DeDxHitInfoProducer.h.

Referenced by produce().

edm::ESHandle<TrackerGeometry> DeDxHitInfoProducer::tkGeom
private

Definition at line 76 of file DeDxHitInfoProducer.h.

Referenced by beginRun(), and processHit().

const bool DeDxHitInfoProducer::useCalibration
private

Definition at line 66 of file DeDxHitInfoProducer.h.

Referenced by beginRun().

const bool DeDxHitInfoProducer::usePixel
private

Definition at line 55 of file DeDxHitInfoProducer.h.

Referenced by DeDxHitInfoProducer(), and processHit().

const bool DeDxHitInfoProducer::useStrip
private

Definition at line 56 of file DeDxHitInfoProducer.h.

Referenced by DeDxHitInfoProducer(), and processHit().