CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
TrajSeedMatcher::SeedWithInfo Class Reference

#include <TrajSeedMatcher.h>

Public Member Functions

DetId detId (size_t hitNr) const
 
float dPhiNeg (size_t hitNr) const
 
float dPhiPos (size_t hitNr) const
 
float dRZNeg (size_t hitNr) const
 
float dRZPos (size_t hitNr) const
 
const std::vector< MatchInfo > & matches () const
 
size_t nrMatchedHits () const
 
int nrValidLayers () const
 
const TrajectorySeedseed () const
 
 SeedWithInfo (const TrajectorySeed &seed, const std::vector< HitInfo > &posCharge, const std::vector< HitInfo > &negCharge, int nrValidLayers)
 
 ~SeedWithInfo ()=default
 

Private Member Functions

float getVal (size_t hitNr, float MatchInfo::*val) const
 

Private Attributes

std::vector< MatchInfomatchInfo_
 
int nrValidLayers_
 
const TrajectorySeedseed_
 

Detailed Description

Definition at line 118 of file TrajSeedMatcher.h.

Constructor & Destructor Documentation

TrajSeedMatcher::SeedWithInfo::SeedWithInfo ( const TrajectorySeed seed,
const std::vector< HitInfo > &  posCharge,
const std::vector< HitInfo > &  negCharge,
int  nrValidLayers 
)

Definition at line 353 of file TrajSeedMatcher.cc.

References detId(), dPhiNeg(), dPhiPos(), dRZNeg(), dRZPos(), Exception, matchInfo_, hpstanc_transforms::max, and DetId::rawId().

Referenced by TrajSeedMatcher::HitInfo::HitInfo().

356  :
358 {
359  size_t nrHitsMax = std::max(posCharge.size(),negCharge.size());
360  for(size_t hitNr=0;hitNr<nrHitsMax;hitNr++){
361  DetId detIdPos = hitNr<posCharge.size() ? posCharge[hitNr].detId() : DetId(0);
362  float dRZPos = hitNr<posCharge.size() ? posCharge[hitNr].dRZ() : std::numeric_limits<float>::max();
363  float dPhiPos = hitNr<posCharge.size() ? posCharge[hitNr].dPhi() : std::numeric_limits<float>::max();
364 
365  DetId detIdNeg = hitNr<negCharge.size() ? negCharge[hitNr].detId() : DetId(0);
366  float dRZNeg = hitNr<negCharge.size() ? negCharge[hitNr].dRZ() : std::numeric_limits<float>::max();
367  float dPhiNeg = hitNr<negCharge.size() ? negCharge[hitNr].dPhi() : std::numeric_limits<float>::max();
368 
369  if(detIdPos!=detIdNeg && (detIdPos.rawId()!=0 && detIdNeg.rawId()!=0)){
370  cms::Exception("LogicError")<<" error in "<<__FILE__<<", "<<__LINE__<<" hits to be combined have different detIDs, this should not be possible and nothing good will come of it";
371  }
372  DetId detId = detIdPos.rawId()!=0 ? detIdPos : detIdNeg;
373  matchInfo_.push_back(MatchInfo(detId,dRZPos,dRZNeg,dPhiPos,dPhiNeg));
374  }
375 }
DetId detId(size_t hitNr) const
float dRZPos(size_t hitNr) const
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
std::vector< MatchInfo > matchInfo_
float dPhiPos(size_t hitNr) const
Definition: DetId.h:18
float dRZNeg(size_t hitNr) const
const TrajectorySeed & seed_
float dPhiNeg(size_t hitNr) const
TrajSeedMatcher::SeedWithInfo::~SeedWithInfo ( )
default

Member Function Documentation

DetId TrajSeedMatcher::SeedWithInfo::detId ( size_t  hitNr) const
inline

Definition at line 131 of file TrajSeedMatcher.h.

Referenced by SeedWithInfo().

131 {return hitNr<matchInfo_.size() ? matchInfo_[hitNr].detId : DetId(0);}
std::vector< MatchInfo > matchInfo_
Definition: DetId.h:18
float TrajSeedMatcher::SeedWithInfo::dPhiNeg ( size_t  hitNr) const
inline

Definition at line 130 of file TrajSeedMatcher.h.

Referenced by SeedWithInfo().

130 {return getVal(hitNr,&MatchInfo::dPhiNeg);}
float getVal(size_t hitNr, float MatchInfo::*val) const
float TrajSeedMatcher::SeedWithInfo::dPhiPos ( size_t  hitNr) const
inline

Definition at line 129 of file TrajSeedMatcher.h.

Referenced by SeedWithInfo().

129 {return getVal(hitNr,&MatchInfo::dPhiPos);}
float getVal(size_t hitNr, float MatchInfo::*val) const
float TrajSeedMatcher::SeedWithInfo::dRZNeg ( size_t  hitNr) const
inline

Definition at line 128 of file TrajSeedMatcher.h.

Referenced by SeedWithInfo().

128 {return getVal(hitNr,&MatchInfo::dRZNeg);}
float getVal(size_t hitNr, float MatchInfo::*val) const
float TrajSeedMatcher::SeedWithInfo::dRZPos ( size_t  hitNr) const
inline

Definition at line 127 of file TrajSeedMatcher.h.

Referenced by SeedWithInfo().

127 {return getVal(hitNr,&MatchInfo::dRZPos);}
float getVal(size_t hitNr, float MatchInfo::*val) const
float TrajSeedMatcher::SeedWithInfo::getVal ( size_t  hitNr,
float MatchInfo::*  val 
) const
inlineprivate

Definition at line 136 of file TrajSeedMatcher.h.

References hpstanc_transforms::max.

136  {
137  return hitNr<matchInfo_.size() ? matchInfo_[hitNr].*val : std::numeric_limits<float>::max();
138  }
std::vector< MatchInfo > matchInfo_
const std::vector<MatchInfo>& TrajSeedMatcher::SeedWithInfo::matches ( ) const
inline

Definition at line 133 of file TrajSeedMatcher.h.

133 {return matchInfo_;}
std::vector< MatchInfo > matchInfo_
size_t TrajSeedMatcher::SeedWithInfo::nrMatchedHits ( ) const
inline

Definition at line 132 of file TrajSeedMatcher.h.

132 {return matchInfo_.size();}
std::vector< MatchInfo > matchInfo_
int TrajSeedMatcher::SeedWithInfo::nrValidLayers ( ) const
inline

Definition at line 134 of file TrajSeedMatcher.h.

const TrajectorySeed& TrajSeedMatcher::SeedWithInfo::seed ( ) const
inline

Definition at line 126 of file TrajSeedMatcher.h.

126 {return seed_;}
const TrajectorySeed & seed_

Member Data Documentation

std::vector<MatchInfo> TrajSeedMatcher::SeedWithInfo::matchInfo_
private

Definition at line 142 of file TrajSeedMatcher.h.

Referenced by SeedWithInfo().

int TrajSeedMatcher::SeedWithInfo::nrValidLayers_
private

Definition at line 143 of file TrajSeedMatcher.h.

const TrajectorySeed& TrajSeedMatcher::SeedWithInfo::seed_
private

Definition at line 141 of file TrajSeedMatcher.h.