CMS 3D CMS Logo

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

#include <ClusterShapeHitFilter.h>

Classes

struct  PixelData
 

Public Types

typedef TrajectoryFilter::Record Record
 

Public Member Functions

 ClusterShapeHitFilter (const TrackerGeometry *theTracker_, const MagneticField *theMagneticField_, const SiPixelLorentzAngle *theSiPixelLorentzAngle_, const SiStripLorentzAngle *theSiStripLorentzAngle_)
 
bool getSizes (const SiPixelRecHit &recHit, const LocalVector &ldir, int &part, std::vector< std::pair< int, int > > &meas, std::pair< float, float > &predr, PixelData const *pd=0) const
 
bool getSizes (DetId detId, const SiStripCluster &cluster, const LocalVector &ldir, int &meas, float &pred) const
 
bool getSizes (const SiStripRecHit2D &recHit, const LocalVector &ldir, int &meas, float &pred) const
 
bool isCompatible (const SiPixelRecHit &recHit, const LocalVector &ldir, PixelData const *pd=0) const
 
bool isCompatible (const SiPixelRecHit &recHit, const GlobalVector &gdir, PixelData const *pd=0) const
 
bool isCompatible (DetId detId, const SiStripCluster &cluster, const LocalVector &ldir) const
 
bool isCompatible (DetId detId, const SiStripCluster &cluster, const GlobalVector &gdir) const
 
bool isCompatible (const SiStripRecHit2D &recHit, const LocalVector &ldir) const
 
bool isCompatible (const SiStripRecHit2D &recHit, const GlobalVector &gdir) const
 
 ~ClusterShapeHitFilter ()
 

Private Member Functions

 ClusterShapeHitFilter ()
 
void fillPixelData ()
 
std::pair< float, float > getCotangent (const PixelGeomDetUnit *pixelDet) const
 
float getCotangent (const StripGeomDetUnit *stripDet) const
 
std::pair< float, float > getDrift (const PixelGeomDetUnit *pixelDet) const
 
float getDrift (const StripGeomDetUnit *stripDet) const
 
const PixelDatagetpd (const SiPixelRecHit &recHit, PixelData const *pd=0) const
 
bool isNormalOriented (const GeomDetUnit *geomDet) const
 
void loadPixelLimits ()
 
void loadStripLimits ()
 

Private Attributes

std::unordered_map< unsigned
int, PixelData
pixelData
 
PixelLimits pixelLimits [PixelKeys::N+1]
 
StripLimits stripLimits [StripKeys::N+1]
 
float theAngle [6]
 
const MagneticFieldtheMagneticField
 
const SiPixelLorentzAngletheSiPixelLorentzAngle
 
const SiStripLorentzAngletheSiStripLorentzAngle
 
const TrackerGeometrytheTracker
 

Detailed Description

Definition at line 143 of file ClusterShapeHitFilter.h.

Member Typedef Documentation

Definition at line 155 of file ClusterShapeHitFilter.h.

Constructor & Destructor Documentation

ClusterShapeHitFilter::ClusterShapeHitFilter ( const TrackerGeometry theTracker_,
const MagneticField theMagneticField_,
const SiPixelLorentzAngle theSiPixelLorentzAngle_,
const SiStripLorentzAngle theSiStripLorentzAngle_ 
)

Definition at line 44 of file ClusterShapeHitFilter.cc.

48  : theTracker(theTracker_),
49  theMagneticField(theMagneticField_),
50  theSiPixelLorentzAngle(theSiPixelLorentzAngle_),
51  theSiStripLorentzAngle(theSiStripLorentzAngle_)
52 
53 {
54  // Load pixel limits
56  fillPixelData();
57 
58  // Load strip limits
60 }
const MagneticField * theMagneticField
const SiStripLorentzAngle * theSiStripLorentzAngle
const TrackerGeometry * theTracker
const SiPixelLorentzAngle * theSiPixelLorentzAngle
ClusterShapeHitFilter::~ClusterShapeHitFilter ( )

Definition at line 63 of file ClusterShapeHitFilter.cc.

64 {
65 }
ClusterShapeHitFilter::ClusterShapeHitFilter ( )
inlineprivate

Definition at line 202 of file ClusterShapeHitFilter.h.

202 {}

Member Function Documentation

void ClusterShapeHitFilter::fillPixelData ( )
private

Definition at line 138 of file ClusterShapeHitFilter.cc.

References ClusterShapeHitFilter::PixelData::cotangent, ClusterShapeHitFilter::PixelData::det, ClusterShapeHitFilter::PixelData::drift, GeomDet::geographicalId(), and ClusterShapeHitFilter::PixelData::part.

138  {
139 
140  //barrel
141  for (auto det : theTracker->detsPXB()) {
142  // better not to fail..
143  const PixelGeomDetUnit * pixelDet =
144  dynamic_cast<const PixelGeomDetUnit*>(det);
145  assert(pixelDet);
146  PixelData & pd = pixelData[pixelDet->geographicalId()];
147  pd.det = pixelDet;
148  pd.part=0;
149  pd.cotangent=getCotangent(pixelDet);
150  pd.drift=getDrift(pixelDet);
151  }
152 
153  //endcap
154  for (auto det : theTracker->detsPXF()) {
155  // better not to fail..
156  const PixelGeomDetUnit * pixelDet =
157  dynamic_cast<const PixelGeomDetUnit*>(det);
158  assert(pixelDet);
159  PixelData & pd = pixelData[pixelDet->geographicalId()];
160  pd.det = pixelDet;
161  pd.part=1;
162  pd.cotangent=getCotangent(pixelDet);
163  pd.drift=getDrift(pixelDet);
164  }
165 
166 }
std::unordered_map< unsigned int, PixelData > pixelData
const TrackerGeometry * theTracker
std::pair< float, float > getCotangent(const PixelGeomDetUnit *pixelDet) const
const DetContainer & detsPXB() const
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:72
std::pair< float, float > getDrift(const PixelGeomDetUnit *pixelDet) const
const DetContainer & detsPXF() const
pair< float, float > ClusterShapeHitFilter::getCotangent ( const PixelGeomDetUnit pixelDet) const
private

Definition at line 171 of file ClusterShapeHitFilter.cc.

References BoundSurface::bounds(), PixelTopology::pitch(), PixelGeomDetUnit::specificTopology(), GeomDet::surface(), and Bounds::thickness().

172 {
173  pair<float,float> cotangent;
174 
175  cotangent.first = pixelDet->surface().bounds().thickness() /
176  pixelDet->specificTopology().pitch().first;
177  cotangent.second = pixelDet->surface().bounds().thickness() /
178  pixelDet->specificTopology().pitch().second;
179 
180  return cotangent;
181 }
virtual float thickness() const =0
virtual std::pair< float, float > pitch() const =0
const Bounds & bounds() const
Definition: BoundSurface.h:89
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
const BoundPlane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:35
float ClusterShapeHitFilter::getCotangent ( const StripGeomDetUnit stripDet) const
private

Definition at line 185 of file ClusterShapeHitFilter.cc.

References BoundSurface::bounds(), StripTopology::localPitch(), StripGeomDetUnit::specificTopology(), GeomDet::surface(), and Bounds::thickness().

186 {
187  // FIXME may be problematic in case of RadialStriptolopgy
188  return stripDet->surface().bounds().thickness() /
189  stripDet->specificTopology().localPitch(LocalPoint(0,0,0));
190 }
virtual const StripTopology & specificTopology() const
Returns a reference to the strip proxy topology.
virtual float thickness() const =0
virtual float localPitch(const LocalPoint &) const =0
const Bounds & bounds() const
Definition: BoundSurface.h:89
const BoundPlane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:35
Local3DPoint LocalPoint
Definition: LocalPoint.h:11
pair< float, float > ClusterShapeHitFilter::getDrift ( const PixelGeomDetUnit pixelDet) const
private

Definition at line 194 of file ClusterShapeHitFilter.cc.

References dir, GeomDet::geographicalId(), GloballyPositioned< T >::position(), DetId::rawId(), GeomDet::surface(), toLocal(), PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::y().

195 {
196  LocalVector lBfield =
197  (pixelDet->surface()).toLocal(
199  pixelDet->surface().position()));
200 
201  double theTanLorentzAnglePerTesla =
203  pixelDet->geographicalId().rawId());
204 
205  pair<float,float> dir;
206  dir.first = - theTanLorentzAnglePerTesla * lBfield.y();
207  dir.second = theTanLorentzAnglePerTesla * lBfield.x();
208 
209  return dir;
210 }
const MagneticField * theMagneticField
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
T y() const
Definition: PV3DBase.h:62
LocalVector toLocal(const reco::Track::Vector &v, const Surface &s)
uint32_t rawId() const
get the raw id
Definition: DetId.h:45
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:72
const SiPixelLorentzAngle * theSiPixelLorentzAngle
const BoundPlane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:35
float getLorentzAngle(const uint32_t &) const
dbl *** dir
Definition: mlp_gen.cc:35
T x() const
Definition: PV3DBase.h:61
const PositionType & position() const
float ClusterShapeHitFilter::getDrift ( const StripGeomDetUnit stripDet) const
private

Definition at line 213 of file ClusterShapeHitFilter.cc.

References dir, GeomDet::geographicalId(), GloballyPositioned< T >::position(), DetId::rawId(), GeomDet::surface(), toLocal(), and PV3DBase< T, PVType, FrameType >::y().

215 {
216  LocalVector lBfield =
217  (stripDet->surface()).toLocal(
219  stripDet->surface().position()));
220 
221  double theTanLorentzAnglePerTesla =
223  stripDet->geographicalId().rawId());
224 
225  float dir = theTanLorentzAnglePerTesla * lBfield.y();
226 
227  return dir;
228 }
const MagneticField * theMagneticField
const SiStripLorentzAngle * theSiStripLorentzAngle
const float & getLorentzAngle(const uint32_t &) const
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
T y() const
Definition: PV3DBase.h:62
LocalVector toLocal(const reco::Track::Vector &v, const Surface &s)
uint32_t rawId() const
get the raw id
Definition: DetId.h:45
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:72
const BoundPlane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:35
dbl *** dir
Definition: mlp_gen.cc:35
const PositionType & position() const
const PixelData& ClusterShapeHitFilter::getpd ( const SiPixelRecHit recHit,
PixelData const *  pd = 0 
) const
inlineprivate

Definition at line 204 of file ClusterShapeHitFilter.h.

References TrackingRecHit::geographicalId(), AlCaHLTBitMon_ParallelJobs::p, and pixelData.

204  {
205  if (pd) return *pd;
206  // Get detector
207  DetId id = recHit.geographicalId();
208  auto p = pixelData.find(id);
209  return (*p).second;
210  }
std::unordered_map< unsigned int, PixelData > pixelData
Definition: DetId.h:20
DetId geographicalId() const
bool ClusterShapeHitFilter::getSizes ( const SiPixelRecHit recHit,
const LocalVector ldir,
int &  part,
std::vector< std::pair< int, int > > &  meas,
std::pair< float, float > &  predr,
PixelData const *  pd = 0 
) const

Definition at line 252 of file ClusterShapeHitFilter.cc.

References ClusterShapeHitFilter::PixelData::cotangent, data, ClusterShapeHitFilter::PixelData::det, ClusterShape::determineShape(), shallow::drift(), ClusterShapeHitFilter::PixelData::drift, ClusterData::isComplete, ClusterData::isStraight, ClusterShapeHitFilter::PixelData::part, alignCSCRings::s, ClusterData::size, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by getSizes().

255 {
256  // Get detector
257  const PixelData & pd = getpd(recHit,ipd);
258 
259  // Get shape information
261  ClusterShape theClusterShape;
262  theClusterShape.determineShape(*pd.det, recHit, data);
263  bool usable = (data.isStraight && data.isComplete);
264 
265  // Usable?
266  //if(usable)
267  {
268  part = pd.part;
269 
270  // Predicted size
271  pred.first = ldir.x() / ldir.z();
272  pred.second = ldir.y() / ldir.z();
273 
274  if(data.size.front().second < 0)
275  pred.second = - pred.second;
276 
277  meas.reserve(data.size.size());
278  for(vector<pair<int,int> >::const_iterator s = data.size.begin();
279  s!= data.size.end(); s++)
280  {
281  meas.push_back(*s);
282 
283  if(data.size.front().second < 0)
284  meas.back().second = - meas.back().second;
285  }
286 
287  // Take out drift
288  std::pair<float,float> const & drift = pd.drift;
289  pred.first += drift.first;
290  pred.second += drift.second;
291 
292  // Apply cotangent
293  std::pair<float,float> const & cotangent = pd.cotangent;
294  pred.first *= cotangent.first;
295  pred.second *= cotangent.second;
296  }
297 
298  // Usable?
299  return usable;
300 }
std::vector< std::pair< int, int > > size
Definition: ClusterData.h:11
const PixelData & getpd(const SiPixelRecHit &recHit, PixelData const *pd=0) const
LocalVector drift(const StripGeomDetUnit *, const MagneticField &, const SiStripLorentzAngle &)
Definition: ShallowTools.cc:39
T y() const
Definition: PV3DBase.h:62
void determineShape(const PixelGeomDetUnit &pixelDet, const SiPixelRecHit &recHit, ClusterData &data)
Definition: ClusterShape.cc:97
bool isComplete
Definition: ClusterData.h:10
T z() const
Definition: PV3DBase.h:63
part
Definition: HCALResponse.h:21
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
T x() const
Definition: PV3DBase.h:61
bool isStraight
Definition: ClusterData.h:10
bool ClusterShapeHitFilter::getSizes ( DetId  detId,
const SiStripCluster cluster,
const LocalVector ldir,
int &  meas,
float &  pred 
) const

Definition at line 345 of file ClusterShapeHitFilter.cc.

References SiStripCluster::amplitudes(), shallow::drift(), SiStripCluster::firstStrip(), StripTopology::nstrips(), StripGeomDetUnit::specificTopology(), PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::z().

347 {
348  // Get detector
349  const StripGeomDetUnit* stripDet =
350  dynamic_cast<const StripGeomDetUnit*> (theTracker->idToDet(id));
351 
352  // Measured width
353  meas = cluster.amplitudes().size();
354 
355  // Usable?
356  int fs = cluster.firstStrip();
357  int ns = stripDet->specificTopology().nstrips();
358  // bool usable = (fs > 1 && fs + meas - 1 < ns);
359  bool usable = (fs >= 1 && fs + meas - 1 <= ns);
360 
361  // Usable?
362  //if(usable)
363  {
364  // Predicted width
365  pred = ldir.x() / ldir.z();
366 
367  // Take out drift
368  float drift = getDrift(stripDet);
369  pred += drift;
370 
371  // Apply cotangent
372  pred *= getCotangent(stripDet);
373  }
374 
375  return usable;
376 }
virtual int nstrips() const =0
LocalVector drift(const StripGeomDetUnit *, const MagneticField &, const SiStripLorentzAngle &)
Definition: ShallowTools.cc:39
uint16_t firstStrip() const
virtual const StripTopology & specificTopology() const
Returns a reference to the strip proxy topology.
const TrackerGeometry * theTracker
std::pair< float, float > getCotangent(const PixelGeomDetUnit *pixelDet) const
T z() const
Definition: PV3DBase.h:63
virtual const GeomDet * idToDet(DetId) const
std::pair< float, float > getDrift(const PixelGeomDetUnit *pixelDet) const
T x() const
Definition: PV3DBase.h:61
const std::vector< uint8_t > & amplitudes() const
bool ClusterShapeHitFilter::getSizes ( const SiStripRecHit2D recHit,
const LocalVector ldir,
int &  meas,
float &  pred 
) const
inline

Definition at line 180 of file ClusterShapeHitFilter.h.

References TrackingRecHit::geographicalId(), getSizes(), and TrackerSingleRecHit::stripCluster().

181  {
182  return getSizes(recHit.geographicalId(), recHit.stripCluster(), ldir, meas, pred);
183  }
SiStripCluster const & stripCluster() const
bool getSizes(const SiPixelRecHit &recHit, const LocalVector &ldir, int &part, std::vector< std::pair< int, int > > &meas, std::pair< float, float > &predr, PixelData const *pd=0) const
DetId geographicalId() const
bool ClusterShapeHitFilter::isCompatible ( const SiPixelRecHit recHit,
const LocalVector ldir,
PixelData const *  pd = 0 
) const

Definition at line 303 of file ClusterShapeHitFilter.cc.

References PixelKeys::isValid(), combine::key, and m.

Referenced by isCompatible().

305 {
306  // Get detector
307  const PixelData & pd = getpd(recHit,ipd);
308 
309  int part;
310  vector<pair<int,int> > meas;
311  pair<float,float> pred;
312 
313  if(getSizes(recHit, ldir, part,meas, pred,&pd))
314  {
315  for(vector<pair<int,int> >::const_iterator m = meas.begin();
316  m!= meas.end(); m++)
317  {
318  PixelKeys key(part, (*m).first, (*m).second);
319  if (!key.isValid()) return true; // FIXME original logic
320  if (pixelLimits[key].isInside(pred)) return true;
321  }
322  // none of the choices worked
323  return false;
324  }
325  // not usable
326  return true;
327 }
const PixelData & getpd(const SiPixelRecHit &recHit, PixelData const *pd=0) const
PixelLimits pixelLimits[PixelKeys::N+1]
part
Definition: HCALResponse.h:21
list key
Definition: combine.py:13
bool getSizes(const SiPixelRecHit &recHit, const LocalVector &ldir, int &part, std::vector< std::pair< int, int > > &meas, std::pair< float, float > &predr, PixelData const *pd=0) const
bool ClusterShapeHitFilter::isCompatible ( const SiPixelRecHit recHit,
const GlobalVector gdir,
PixelData const *  pd = 0 
) const

Definition at line 330 of file ClusterShapeHitFilter.cc.

References ClusterShapeHitFilter::PixelData::det, and GeomDet::toLocal().

332 {
333  // Get detector
334  const PixelData & pd = getpd(recHit,ipd);
335 
336  LocalVector ldir =pd.det->toLocal(gdir);
337 
338  return isCompatible(recHit, ldir,&pd);
339 }
const PixelData & getpd(const SiPixelRecHit &recHit, PixelData const *pd=0) const
bool isCompatible(const SiPixelRecHit &recHit, const LocalVector &ldir, PixelData const *pd=0) const
bool ClusterShapeHitFilter::isCompatible ( DetId  detId,
const SiStripCluster cluster,
const LocalVector ldir 
) const

Definition at line 381 of file ClusterShapeHitFilter.cc.

References StripKeys::isValid(), and combine::key.

382 {
383  int meas;
384  float pred;
385 
386  if(getSizes(detId, cluster, ldir, meas, pred))
387  {
388  StripKeys key(meas);
389  if (key.isValid())
390  return stripLimits[key].isInside(pred);
391  }
392 
393  // Not usable or no limits
394  return true;
395 }
StripLimits stripLimits[StripKeys::N+1]
list key
Definition: combine.py:13
bool getSizes(const SiPixelRecHit &recHit, const LocalVector &ldir, int &part, std::vector< std::pair< int, int > > &meas, std::pair< float, float > &predr, PixelData const *pd=0) const
bool ClusterShapeHitFilter::isCompatible ( DetId  detId,
const SiStripCluster cluster,
const GlobalVector gdir 
) const

Definition at line 400 of file ClusterShapeHitFilter.cc.

401 {
402  LocalVector ldir = theTracker->idToDet(detId)->toLocal(gdir);
403  return isCompatible(detId, cluster, ldir);
404 }
bool isCompatible(const SiPixelRecHit &recHit, const LocalVector &ldir, PixelData const *pd=0) const
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
Definition: GeomDet.h:62
const TrackerGeometry * theTracker
virtual const GeomDet * idToDet(DetId) const
bool ClusterShapeHitFilter::isCompatible ( const SiStripRecHit2D recHit,
const LocalVector ldir 
) const
inline

Definition at line 190 of file ClusterShapeHitFilter.h.

References TrackingRecHit::geographicalId(), isCompatible(), and TrackerSingleRecHit::stripCluster().

191  {
192  return isCompatible(recHit.geographicalId(), recHit.stripCluster(), ldir);
193  }
bool isCompatible(const SiPixelRecHit &recHit, const LocalVector &ldir, PixelData const *pd=0) const
SiStripCluster const & stripCluster() const
DetId geographicalId() const
bool ClusterShapeHitFilter::isCompatible ( const SiStripRecHit2D recHit,
const GlobalVector gdir 
) const
inline

Definition at line 194 of file ClusterShapeHitFilter.h.

References TrackingRecHit::geographicalId(), isCompatible(), and TrackerSingleRecHit::stripCluster().

195  {
196  return isCompatible(recHit.geographicalId(), recHit.stripCluster(), gdir);
197  }
bool isCompatible(const SiPixelRecHit &recHit, const LocalVector &ldir, PixelData const *pd=0) const
SiStripCluster const & stripCluster() const
DetId geographicalId() const
bool ClusterShapeHitFilter::isNormalOriented ( const GeomDetUnit geomDet) const
private

Definition at line 232 of file ClusterShapeHitFilter.cc.

References GeomDetType::isBarrel(), PV3DBase< T, PVType, FrameType >::perp(), pos, makeMuonMisalignmentScenario::rot, GeomDet::toGlobal(), GeomDetUnit::type(), and PV3DBase< T, PVType, FrameType >::z().

233 {
234  if(geomDet->type().isBarrel())
235  { // barrel
236  float perp0 = geomDet->toGlobal( Local3DPoint(0.,0.,0.) ).perp();
237  float perp1 = geomDet->toGlobal( Local3DPoint(0.,0.,1.) ).perp();
238  return (perp1 > perp0);
239  }
240  else
241  { // endcap
242  float rot = geomDet->toGlobal( LocalVector (0.,0.,1.) ).z();
243  float pos = geomDet->toGlobal( Local3DPoint(0.,0.,0.) ).z();
244  return (rot * pos > 0);
245  }
246 }
bool isBarrel() const
Definition: GeomDetType.cc:13
T perp() const
Definition: PV3DBase.h:71
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Definition: GeomDet.h:47
T z() const
Definition: PV3DBase.h:63
virtual const GeomDetType & type() const =0
Point3DBase< float, LocalTag > Local3DPoint
Definition: LocalPoint.h:9
void ClusterShapeHitFilter::loadPixelLimits ( )
private

Definition at line 68 of file ClusterShapeHitFilter.cc.

References b, f, edm::FileInPath::fullPath(), gen::k, combine::key, and LogTrace.

69 {
71  fileInPath("RecoPixelVertexing/PixelLowPtUtilities/data/pixelShape.par");
72  ifstream inFile(fileInPath.fullPath().c_str());
73 
74 
75  while(inFile.eof() == false)
76  {
77  int part,dx,dy;
78 
79  inFile >> part; // 0or 1
80  inFile >> dx; // 0 to 10
81  inFile >> dy; // 0 to 15 ...
82 
83  const PixelKeys key(part,dx,dy);
84  auto & pl = pixelLimits[key];
85 
86  for(int b = 0; b<2 ; b++) // branch
87  for(int d = 0; d<2 ; d++) // direction
88  for(int k = 0; k<2 ; k++) // lower and upper
89  inFile >> pl.data[b][d][k];
90 
91 
92  double f;
93  int d;
94 
95  inFile >> f; // density
96  inFile >> d; // points
97  inFile >> f; // density
98  inFile >> d; // points
99  }
100 
101  inFile.close();
102 
103  LogTrace("MinBiasTracking|ClusterShapeHitFilter")
104  << " [ClusterShapeHitFilter] pixel-cluster-shape filter loaded";
105  }
PixelLimits pixelLimits[PixelKeys::N+1]
double f[11][100]
#define LogTrace(id)
int k[5][pyjets_maxn]
part
Definition: HCALResponse.h:21
double b
Definition: hdecay.h:120
float data[2][2][2]
list key
Definition: combine.py:13
void ClusterShapeHitFilter::loadStripLimits ( )
private

Definition at line 108 of file ClusterShapeHitFilter.cc.

References b, edm::FileInPath::fullPath(), gen::k, combine::key, and LogTrace.

109 {
110  // Load strip
112  fileInPath("RecoPixelVertexing/PixelLowPtUtilities/data/stripShape.par");
113  ifstream inFile(fileInPath.fullPath().c_str());
114 
115 
116  while(inFile.eof() == false)
117  {
118  int dx;
119  inFile >> dx;
120 
121  StripKeys key(dx);
122  auto & sl = stripLimits[key];
123 
124  for(int b = 0; b<2 ; b++) // branch
125  for(int k = 0; k<2 ; k++) // lower and upper
126  inFile >> sl.data[b][k];
127 
128  }
129 
130  inFile.close();
131 
132  LogTrace("MinBiasTracking|ClusterShapeHitFilter")
133  << " [ClusterShapeHitFilter] strip-cluster-width filter loaded";
134 }
StripLimits stripLimits[StripKeys::N+1]
#define LogTrace(id)
int k[5][pyjets_maxn]
double b
Definition: hdecay.h:120
list key
Definition: combine.py:13

Member Data Documentation

std::unordered_map<unsigned int, PixelData> ClusterShapeHitFilter::pixelData
private

Definition at line 230 of file ClusterShapeHitFilter.h.

Referenced by getpd().

PixelLimits ClusterShapeHitFilter::pixelLimits[PixelKeys::N+1]
private

Definition at line 232 of file ClusterShapeHitFilter.h.

StripLimits ClusterShapeHitFilter::stripLimits[StripKeys::N+1]
private

Definition at line 234 of file ClusterShapeHitFilter.h.

float ClusterShapeHitFilter::theAngle[6]
private

Definition at line 236 of file ClusterShapeHitFilter.h.

const MagneticField* ClusterShapeHitFilter::theMagneticField
private

Definition at line 225 of file ClusterShapeHitFilter.h.

const SiPixelLorentzAngle* ClusterShapeHitFilter::theSiPixelLorentzAngle
private

Definition at line 227 of file ClusterShapeHitFilter.h.

const SiStripLorentzAngle* ClusterShapeHitFilter::theSiStripLorentzAngle
private

Definition at line 228 of file ClusterShapeHitFilter.h.

const TrackerGeometry* ClusterShapeHitFilter::theTracker
private

Definition at line 224 of file ClusterShapeHitFilter.h.