CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
TrajAnnealing Class Reference

#include <TrajAnnealing.h>

Public Member Functions

float getAnnealing () const
 
Trajectory const & getTraj () const
 
 TrajAnnealing ()
 
 TrajAnnealing (const Trajectory &, float)
 
std::vector< float > const & weights () const
 
std::vector< float > & weights ()
 

Private Member Functions

std::pair< float, std::vector< float > > getAnnealingWeight (const TrackingRecHit &aRecHit) const
 

Private Attributes

float annealing_ =0
 
TrackingRecHit::RecHitContainer theHits_
 
std::vector< float > theWeights
 
Trajectory traj_
 

Detailed Description

This class allow to save all the traj info for each annealing cycle suitable for algorithm like DAF (not used in default options)

Definition at line 13 of file TrajAnnealing.h.

Constructor & Destructor Documentation

TrajAnnealing::TrajAnnealing ( )
inline

Definition at line 16 of file TrajAnnealing.h.

16 {}
TrajAnnealing::TrajAnnealing ( const Trajectory traj,
float  ann 
)

Definition at line 6 of file TrajAnnealing.cc.

References alongMomentum, annealing_, makeMuonMisalignmentScenario::components, Trajectory::direction(), Trajectory::measurements(), SiTrackerMultiRecHit::recHits(), theHits_, theWeights, traj_, and SiTrackerMultiRecHit::weight().

6  {
7  traj_ = traj;
8  annealing_ = ann;
9 
10  const Trajectory::DataContainer& measurements = traj_.measurements();
11  if( measurements.size() > 2 ){
12  Trajectory::DataContainer::const_iterator ibegin,iend;
13  int increment(0);
14  if( traj.direction() == alongMomentum ){
15  ibegin = measurements.begin() + 1;
16  iend = measurements.end() - 1;
17  increment = 1;
18  } else {
19  ibegin = measurements.end() - 2;
20  iend = measurements.begin();
21  increment = -1;
22  }
23 
24  for( Trajectory::DataContainer::const_iterator imeas = ibegin; imeas != iend; imeas += increment ){
25 
26  theHits_.push_back(imeas->recHit());
27  if (imeas->recHit()->isValid()){
28  SiTrackerMultiRecHit const & mHit = dynamic_cast<SiTrackerMultiRecHit const &>(*imeas->recHit());
29  std::vector<const TrackingRecHit*> components = mHit.recHits();
30  int iComp = 0;
31  for(std::vector<const TrackingRecHit*>::const_iterator iter = components.begin();
32  iter != components.end(); iter++, iComp++){
33  theWeights.push_back(mHit.weight(iComp));
34  }
35  }
36  }
37 
38  }
39 
40 }
Trajectory traj_
Definition: TrajAnnealing.h:28
std::vector< const TrackingRecHit * > recHits() const override
Access to component RecHits (if any)
float weight(unsigned int i) const
PropagationDirection const & direction() const
Definition: Trajectory.cc:140
std::vector< float > theWeights
Definition: TrajAnnealing.h:30
DataContainer const & measurements() const
Definition: Trajectory.h:196
std::vector< TrajectoryMeasurement > DataContainer
Definition: Trajectory.h:44
TrackingRecHit::RecHitContainer theHits_
Definition: TrajAnnealing.h:31

Member Function Documentation

float TrajAnnealing::getAnnealing ( ) const
inline

Definition at line 19 of file TrajAnnealing.h.

References annealing_.

19 { return annealing_; }
std::pair< float, std::vector< float > > TrajAnnealing::getAnnealingWeight ( const TrackingRecHit aRecHit) const
private

Definition at line 42 of file TrajAnnealing.cc.

References SiTrackerMultiRecHit::getAnnealingFactor(), TrackingRecHit::isValid(), and SiTrackerMultiRecHit::weights().

42  {
43 
44  if (!aRecHit.isValid()) {
45  std::vector<float> dumpyVec = {0.0};
46  return make_pair(0.0,dumpyVec);
47  }
48 
49  SiTrackerMultiRecHit const & mHit = dynamic_cast<SiTrackerMultiRecHit const &>(aRecHit);
50  return make_pair(mHit.getAnnealingFactor(), mHit.weights());
51 
52 }
virtual double getAnnealingFactor() const
std::vector< float > const & weights() const
bool isValid() const
Trajectory const& TrajAnnealing::getTraj ( ) const
inline

Definition at line 20 of file TrajAnnealing.h.

References traj_.

20 { return traj_; }
Trajectory traj_
Definition: TrajAnnealing.h:28
std::vector<float> const& TrajAnnealing::weights ( ) const
inline

Definition at line 23 of file TrajAnnealing.h.

References theWeights.

23 {return theWeights;}
std::vector< float > theWeights
Definition: TrajAnnealing.h:30
std::vector<float>& TrajAnnealing::weights ( )
inline

Definition at line 24 of file TrajAnnealing.h.

References theWeights.

24 {return theWeights;}
std::vector< float > theWeights
Definition: TrajAnnealing.h:30

Member Data Documentation

float TrajAnnealing::annealing_ =0
private

Definition at line 29 of file TrajAnnealing.h.

Referenced by getAnnealing(), and TrajAnnealing().

TrackingRecHit::RecHitContainer TrajAnnealing::theHits_
private

Definition at line 31 of file TrajAnnealing.h.

Referenced by TrajAnnealing().

std::vector<float> TrajAnnealing::theWeights
private

Definition at line 30 of file TrajAnnealing.h.

Referenced by TrajAnnealing(), and weights().

Trajectory TrajAnnealing::traj_
private

Definition at line 28 of file TrajAnnealing.h.

Referenced by getTraj(), and TrajAnnealing().