CMS 3D CMS Logo

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

#include <RecoTracker/DeDxEstimatorProducer/src/DeDxEstimatorProducer.cc>

Inheritance diagram for DeDxEstimatorProducer:
edm::stream::EDProducer<> edm::stream::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Classes

class  isEqual
 
struct  stModInfo
 

Public Member Functions

 DeDxEstimatorProducer (const edm::ParameterSet &)
 
 ~DeDxEstimatorProducer ()
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
- Public Member Functions inherited from edm::stream::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducerBase ()
 
- 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
 
void modulesDependentUpon (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Private Member Functions

virtual void beginRun (edm::Run const &run, const edm::EventSetup &) override
 
int getCharge (const SiStripCluster *Cluster, int &Saturating_Strips, const uint32_t &)
 
void MakeCalibrationMap ()
 
virtual void produce (edm::Event &, const edm::EventSetup &) override
 

Private Attributes

std::string m_calibrationPath
 
BaseDeDxEstimatorm_estimator
 
edm::EDGetTokenT
< reco::TrackCollection
m_tracksTag
 
edm::EDGetTokenT
< TrajTrackAssociationCollection
m_trajTrackAssociationTag
 
unsigned int MaxNrStrips
 
double MeVperADCPixel
 
double MeVperADCStrip
 
unsigned int MinTrackHits
 
__gnu_cxx::hash_map< unsigned
int, stModInfo
*, __gnu_cxx::hash< unsigned
int >, isEqual
MODsColl
 
bool shapetest
 
bool useCalibration
 
bool usePixel
 
bool useStrip
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
typedef CacheContexts< T...> CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T...> HasAbility
 
typedef
CacheTypes::LuminosityBlockCache 
LuminosityBlockCache
 
typedef
LuminosityBlockContextT
< LuminosityBlockCache,
RunCache, GlobalCache
LuminosityBlockContext
 
typedef
CacheTypes::LuminosityBlockSummaryCache 
LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache,
GlobalCache
RunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDProducerBase
typedef EDProducerAdaptorBase ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Static Public Member Functions inherited from edm::stream::EDProducerBase
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

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

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

Definition at line 34 of file DeDxEstimatorProducer.h.

Constructor & Destructor Documentation

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

Definition at line 50 of file DeDxEstimatorProducer.cc.

References edm::ParameterSet::getParameter(), and edm::ParameterSet::getUntrackedParameter().

51 {
52 
53  produces<ValueMap<DeDxData> >();
54 
55 
56  string estimatorName = iConfig.getParameter<string>("estimator");
57  if(estimatorName == "median") m_estimator = new MedianDeDxEstimator(-2.);
58  if(estimatorName == "generic") m_estimator = new GenericAverageDeDxEstimator (iConfig.getParameter<double>("exponent"));
59  if(estimatorName == "truncated") m_estimator = new TruncatedAverageDeDxEstimator(iConfig.getParameter<double>("fraction"));
60  if(estimatorName == "unbinnedFit") m_estimator = new UnbinnedFitDeDxEstimator();
61 
62  MaxNrStrips = iConfig.getUntrackedParameter<unsigned>("maxNrStrips" , 255);
63  MinTrackHits = iConfig.getUntrackedParameter<unsigned>("MinTrackHits" , 4);
64 
65  m_tracksTag = consumes<reco::TrackCollection>(iConfig.getParameter<edm::InputTag>("tracks"));
66  m_trajTrackAssociationTag = consumes<TrajTrackAssociationCollection>(iConfig.getParameter<edm::InputTag>("trajectoryTrackAssociation"));
67 
68  usePixel = iConfig.getParameter<bool>("UsePixel");
69  useStrip = iConfig.getParameter<bool>("UseStrip");
70  MeVperADCPixel = iConfig.getParameter<double>("MeVperADCPixel");
71  MeVperADCStrip = iConfig.getParameter<double>("MeVperADCStrip");
72 
73  shapetest = iConfig.getParameter<bool>("ShapeTest");
74  useCalibration = iConfig.getParameter<bool>("UseCalibration");
75  m_calibrationPath = iConfig.getParameter<string>("calibrationPath");
76 
77  if(!usePixel && !useStrip)
78  edm::LogWarning("DeDxHitsProducer") << "Pixel Hits AND Strip Hits will not be used to estimate dEdx --> BUG, Please Update the config file";
79 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< TrajTrackAssociationCollection > m_trajTrackAssociationTag
edm::EDGetTokenT< reco::TrackCollection > m_tracksTag
BaseDeDxEstimator * m_estimator
DeDxEstimatorProducer::~DeDxEstimatorProducer ( )

Definition at line 82 of file DeDxEstimatorProducer.cc.

83 {
84  delete m_estimator;
85 }
BaseDeDxEstimator * m_estimator

Member Function Documentation

void DeDxEstimatorProducer::beginRun ( edm::Run const &  run,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Reimplemented from edm::stream::EDProducerBase.

Definition at line 88 of file DeDxEstimatorProducer.cc.

References compareJSON::const, DeDxEstimatorProducer::stModInfo::DetId, DeDxEstimatorProducer::stModInfo::Distance, DeDxEstimatorProducer::stModInfo::Gain, edm::EventSetup::get(), i, DeDxEstimatorProducer::stModInfo::Normalization, DetId::rawId(), and DeDxEstimatorProducer::stModInfo::Thickness.

89 {
90  if(MODsColl.size()!=0)return;
91 
92 
94  iSetup.get<TrackerDigiGeometryRecord>().get( tkGeom );
95 
96  auto const & Det = tkGeom->dets();
97  for(unsigned int i=0;i<Det.size();i++){
98  DetId Detid = Det[i]->geographicalId();
99 
100  auto StripDetUnit = dynamic_cast<StripGeomDetUnit const*> (Det[i]);
101  auto PixelDetUnit = dynamic_cast<PixelGeomDetUnit const*> (Det[i]);
102 
103  double Thick=-1, Dist=-1, Norma=-1;
104  if(StripDetUnit){
105  Dist = StripDetUnit->position().mag();
106  Thick = StripDetUnit->surface().bounds().thickness();
107  Norma = MeVperADCStrip/Thick;
108  }else if(PixelDetUnit){
109  Dist = PixelDetUnit->position().mag();
110  Thick = PixelDetUnit->surface().bounds().thickness();
111  Norma = MeVperADCPixel/Thick;
112  }
113 
114  stModInfo* MOD = new stModInfo;
115  MOD->DetId = Detid.rawId();
116  MOD->Thickness = Thick;
117  MOD->Distance = Dist;
118  MOD->Normalization = Norma;
119  MOD->Gain = 1;
120  MODsColl[MOD->DetId] = MOD;
121  }
122 
124 }
int i
Definition: DBlmapReader.cc:9
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
Definition: DetId.h:18
const T & get() const
Definition: EventSetup.h:55
string const
Definition: compareJSON.py:14
__gnu_cxx::hash_map< unsigned int, stModInfo *, __gnu_cxx::hash< unsigned int >, isEqual > MODsColl
int DeDxEstimatorProducer::getCharge ( const SiStripCluster Cluster,
int &  Saturating_Strips,
const uint32_t &  DetId 
)
private

Definition at line 282 of file DeDxEstimatorProducer.cc.

References SiStripCluster::amplitudes(), DeDxEstimatorProducer::stModInfo::Gain, and i.

284 {
285  //const vector<uint8_t>& Ampls = Cluster->amplitudes();
286  const vector<uint8_t>& Ampls = Cluster->amplitudes();
287  //uint32_t DetId = Cluster->geographicalId();
288 
289 // float G=1.0f;
290 
291  int toReturn = 0;
292  Saturating_Strips = 0;
293  for(unsigned int i=0;i<Ampls.size();i++){
294  int CalibratedCharge = Ampls[i];
295 
296  if(useCalibration){
297  stModInfo* MOD = MODsColl[DetId];
298 // G = MOD->Gain;
299  CalibratedCharge = (int)(CalibratedCharge / MOD->Gain );
300  if(CalibratedCharge>=1024){
301  CalibratedCharge = 255;
302  }else if(CalibratedCharge>=255){
303  CalibratedCharge = 254;
304  }
305  }
306 
307  toReturn+=CalibratedCharge;
308  if(CalibratedCharge>=254)Saturating_Strips++;
309  }
310 
311 // printf("Charge = %i --> %i (Gain=%f)\n", accumulate(Ampls.begin(), Ampls.end(), 0), toReturn, G);
312 
313 
314  return toReturn;
315 }
int i
Definition: DBlmapReader.cc:9
Definition: DetId.h:18
__gnu_cxx::hash_map< unsigned int, stModInfo *, __gnu_cxx::hash< unsigned int >, isEqual > MODsColl
const std::vector< uint8_t > & amplitudes() const
void DeDxEstimatorProducer::MakeCalibrationMap ( )
private

Definition at line 254 of file DeDxEstimatorProducer.cc.

References DeDxEstimatorProducer::stModInfo::Gain.

255 {
256  if(!useCalibration)return;
257 
258  TChain* t1 = new TChain("SiStripCalib/APVGain");
259  t1->Add(m_calibrationPath.c_str());
260 
261  unsigned int tree_DetId;
262  unsigned char tree_APVId;
263  double tree_Gain;
264 
265  t1->SetBranchAddress("DetId" ,&tree_DetId );
266  t1->SetBranchAddress("APVId" ,&tree_APVId );
267  t1->SetBranchAddress("Gain" ,&tree_Gain );
268 
269 
270 
271  for (unsigned int ientry = 0; ientry < t1->GetEntries(); ientry++) {
272  t1->GetEntry(ientry);
273  stModInfo* MOD = MODsColl[tree_DetId];
274  MOD->Gain = tree_Gain;
275  }
276 
277  delete t1;
278 
279 }
__gnu_cxx::hash_map< unsigned int, stModInfo *, __gnu_cxx::hash< unsigned int >, isEqual > MODsColl
void DeDxEstimatorProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Implements edm::stream::EDProducerBase.

Definition at line 128 of file DeDxEstimatorProducer.cc.

References funct::abs(), DeDxTools::RawHits::angleCosine, edm::AssociationMap< Tag >::begin(), DeDxTools::RawHits::charge, DeDxDiscriminatorTools::charge(), edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::TrackCollection, unsigned short > >::const_iterator, DeDxTools::RawHits::detId, DeDxEstimatorProducer::stModInfo::Distance, edm::AssociationMap< Tag >::end(), edm::helper::Filler< Map >::fill(), edm::Event::getByToken(), DeDxTools::GetCluster(), i, edm::helper::Filler< Map >::insert(), TrajectoryStateOnSurface::isValid(), j, edm::Ref< C, T, F >::key(), TrajectoryStateOnSurface::localDirection(), PV3DBase< T, PVType, FrameType >::mag(), n, DeDxEstimatorProducer::stModInfo::Normalization, DeDxTools::RawHits::NSaturating, edm::Handle< T >::product(), edm::Event::put(), DeDxTools::shapeSelection(), edm::AssociationMap< Tag >::size(), python.multivaluedict::sort(), DeDxEstimatorProducer::stModInfo::Thickness, DeDxTools::RawHits::trajectoryMeasurement, and PV3DBase< T, PVType, FrameType >::z().

129 {
130  auto_ptr<ValueMap<DeDxData> > trackDeDxEstimateAssociation(new ValueMap<DeDxData> );
131  ValueMap<DeDxData>::Filler filler(*trackDeDxEstimateAssociation);
132 
133  Handle<TrajTrackAssociationCollection> trajTrackAssociationHandle;
134  iEvent.getByToken(m_trajTrackAssociationTag, trajTrackAssociationHandle);
135  const TrajTrackAssociationCollection & TrajToTrackMap = *trajTrackAssociationHandle.product();
136 
137  edm::Handle<reco::TrackCollection> trackCollectionHandle;
138  iEvent.getByToken(m_tracksTag,trackCollectionHandle);
139 
140  size_t n = TrajToTrackMap.size();
141  std::vector<DeDxData> dedxEstimate(n);
142 
143  //assume trajectory collection size is equal to track collection size and that order is kept
144  int j=0;
145  for(TrajTrackAssociationCollection::const_iterator cit=TrajToTrackMap.begin(); cit!=TrajToTrackMap.end(); cit++,j++){
146 
147  const edm::Ref<std::vector<Trajectory> > traj = cit->key;
148  const reco::TrackRef track = cit->val;
149 
150  DeDxHitCollection dedxHits;
151  vector<DeDxTools::RawHits> hits;
152 // DeDxTools::trajectoryRawHits(traj, hits, usePixel, useStrip);
153 
154  const vector<TrajectoryMeasurement> & measurements = traj->measurements();
155  for(vector<TrajectoryMeasurement>::const_iterator it = measurements.begin(); it!=measurements.end(); it++){
156  TrajectoryStateOnSurface trajState=it->updatedState();
157  if( !trajState.isValid()) continue;
158 
159  const TrackingRecHit * recHit=(*it->recHit()).hit();
160  LocalVector trackDirection = trajState.localDirection();
161  double cosine = trackDirection.z()/trackDirection.mag();
162 
163  if(const SiStripMatchedRecHit2D* matchedHit=dynamic_cast<const SiStripMatchedRecHit2D*>(recHit)){
164  if(!useStrip) continue;
165  DeDxTools::RawHits mono,stereo;
166  mono.trajectoryMeasurement = &(*it);
167  stereo.trajectoryMeasurement = &(*it);
168  mono.angleCosine = cosine;
169  stereo.angleCosine = cosine;
170 
171  mono.charge = getCharge(DeDxTools::GetCluster(matchedHit->monoHit()),mono.NSaturating,matchedHit->monoId());
172  stereo.charge = getCharge(DeDxTools::GetCluster(matchedHit->stereoHit()),stereo.NSaturating,matchedHit->stereoId());
173 
174  mono.detId= matchedHit->monoId();
175  stereo.detId= matchedHit->stereoId();
176 
177  if(shapetest && !(DeDxTools::shapeSelection((DeDxTools::GetCluster(matchedHit->stereoHit()))->amplitudes()))) hits.push_back(stereo);
178  if(shapetest && !(DeDxTools::shapeSelection((DeDxTools::GetCluster(matchedHit-> monoHit()))->amplitudes()))) hits.push_back(mono);
179  }else if(const ProjectedSiStripRecHit2D* projectedHit=dynamic_cast<const ProjectedSiStripRecHit2D*>(recHit)) {
180  if(!useStrip) continue;
181  DeDxTools::RawHits mono;
182 
183  mono.trajectoryMeasurement = &(*it);
184  mono.angleCosine = cosine;
185  mono.charge = getCharge(DeDxTools::GetCluster(projectedHit->originalHit()),mono.NSaturating,projectedHit->originalId());
186  mono.detId= projectedHit->originalId();
187  if(shapetest && !(DeDxTools::shapeSelection((DeDxTools::GetCluster(projectedHit->originalHit()))->amplitudes()))) continue;
188  hits.push_back(mono);
189  }else if(const SiStripRecHit2D* singleHit=dynamic_cast<const SiStripRecHit2D*>(recHit)){
190  if(!useStrip) continue;
191  DeDxTools::RawHits mono;
192 
193  mono.trajectoryMeasurement = &(*it);
194  mono.angleCosine = cosine;
195  mono.charge = getCharge(DeDxTools::GetCluster(singleHit),mono.NSaturating,singleHit->geographicalId());
196  mono.detId= singleHit->geographicalId();
197  if(shapetest && !(DeDxTools::shapeSelection((DeDxTools::GetCluster(singleHit))->amplitudes()))) continue;
198  hits.push_back(mono);
199  }else if(const SiStripRecHit1D* single1DHit=dynamic_cast<const SiStripRecHit1D*>(recHit)){
200  if(!useStrip) continue;
201  DeDxTools::RawHits mono;
202 
203  mono.trajectoryMeasurement = &(*it);
204  mono.angleCosine = cosine;
205  mono.charge = getCharge(DeDxTools::GetCluster(single1DHit),mono.NSaturating,single1DHit->geographicalId());
206  mono.detId= single1DHit->geographicalId();
207  if(shapetest && !(DeDxTools::shapeSelection((DeDxTools::GetCluster(single1DHit))->amplitudes()))) continue;
208  hits.push_back(mono);
209  }else if(const SiPixelRecHit* pixelHit=dynamic_cast<const SiPixelRecHit*>(recHit)){
210  if(!usePixel) continue;
211 
212  DeDxTools::RawHits pixel;
213 
214  pixel.trajectoryMeasurement = &(*it);
215  pixel.angleCosine = cosine;
216  pixel.charge = pixelHit->cluster()->charge();
217  pixel.NSaturating=-1;
218  pixel.detId= pixelHit->geographicalId();
219  hits.push_back(pixel);
220  }
221  }
223 
224  int NClusterSaturating = 0;
225  for(size_t i=0; i < hits.size(); i++)
226  {
227  stModInfo* MOD = MODsColl[hits[i].detId];
228  float pathLen = MOD->Thickness/std::abs(hits[i].angleCosine);
229  float charge = MOD->Normalization*hits[i].charge*std::abs(hits[i].angleCosine);
230  dedxHits.push_back( DeDxHit( charge, MOD->Distance, pathLen, hits[i].detId) );
231 
232  if(hits[i].NSaturating>0)NClusterSaturating++;
233  }
234 
235  sort(dedxHits.begin(),dedxHits.end(),less<DeDxHit>());
236  std::pair<float,float> val_and_error = m_estimator->dedx(dedxHits);
237 
238  //WARNING: Since the dEdX Error is not properly computed for the moment
239  //It was decided to store the number of saturating cluster in that dataformat
240  val_and_error.second = NClusterSaturating;
241 
242  dedxEstimate[j] = DeDxData(val_and_error.first, val_and_error.second, dedxHits.size() );
243  }
244  filler.insert(trackCollectionHandle, dedxEstimate.begin(), dedxEstimate.end());
245 
246  // really fill the association map
247  filler.fill();
248  // put into the event
249  iEvent.put(trackDeDxEstimateAssociation);
250 }
int i
Definition: DBlmapReader.cc:9
edm::EDGetTokenT< TrajTrackAssociationCollection > m_trajTrackAssociationTag
const SiStripCluster * GetCluster(const TrackerSingleRecHit *hit)
Definition: DeDxTools.h:27
const_iterator end() const
last iterator over the map (read only)
edm::EDGetTokenT< reco::TrackCollection > m_tracksTag
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:434
LocalVector localDirection() const
std::vector< DeDxHit > DeDxHitCollection
Definition: DeDxHit.h:49
double charge(const std::vector< uint8_t > &Ampls)
T mag() const
Definition: PV3DBase.h:67
double angleCosine
Definition: DeDxTools.h:21
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:116
T z() const
Definition: PV3DBase.h:64
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
int j
Definition: DBlmapReader.cc:9
BaseDeDxEstimator * m_estimator
virtual std::pair< float, float > dedx(const reco::DeDxHitCollection &Hits)=0
bool shapeSelection(const std::vector< uint8_t > &ampls)
Definition: DeDxTools.cc:133
size_type size() const
map size
const TrajectoryMeasurement * trajectoryMeasurement
Definition: DeDxTools.h:23
key_type key() const
Accessor for product key.
Definition: Ref.h:266
T const * product() const
Definition: Handle.h:81
__gnu_cxx::hash_map< unsigned int, stModInfo *, __gnu_cxx::hash< unsigned int >, isEqual > MODsColl
const_iterator begin() const
first iterator over the map (read only)
Pixel Reconstructed Hit.
int getCharge(const SiStripCluster *Cluster, int &Saturating_Strips, const uint32_t &)

Member Data Documentation

std::string DeDxEstimatorProducer::m_calibrationPath
private

Definition at line 64 of file DeDxEstimatorProducer.h.

BaseDeDxEstimator* DeDxEstimatorProducer::m_estimator
private

Definition at line 51 of file DeDxEstimatorProducer.h.

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

Definition at line 54 of file DeDxEstimatorProducer.h.

edm::EDGetTokenT<TrajTrackAssociationCollection> DeDxEstimatorProducer::m_trajTrackAssociationTag
private

Definition at line 53 of file DeDxEstimatorProducer.h.

unsigned int DeDxEstimatorProducer::MaxNrStrips
private

Definition at line 61 of file DeDxEstimatorProducer.h.

double DeDxEstimatorProducer::MeVperADCPixel
private

Definition at line 58 of file DeDxEstimatorProducer.h.

double DeDxEstimatorProducer::MeVperADCStrip
private

Definition at line 59 of file DeDxEstimatorProducer.h.

unsigned int DeDxEstimatorProducer::MinTrackHits
private

Definition at line 62 of file DeDxEstimatorProducer.h.

__gnu_cxx::hash_map<unsigned int, stModInfo*, __gnu_cxx::hash<unsigned int>, isEqual > DeDxEstimatorProducer::MODsColl
private

Definition at line 76 of file DeDxEstimatorProducer.h.

bool DeDxEstimatorProducer::shapetest
private

Definition at line 66 of file DeDxEstimatorProducer.h.

bool DeDxEstimatorProducer::useCalibration
private

Definition at line 65 of file DeDxEstimatorProducer.h.

bool DeDxEstimatorProducer::usePixel
private

Definition at line 56 of file DeDxEstimatorProducer.h.

bool DeDxEstimatorProducer::useStrip
private

Definition at line 57 of file DeDxEstimatorProducer.h.