CMS 3D CMS Logo

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

#include <MaterialAccountingStep.h>

Public Member Functions

void clear (void)
 
double energyLoss (void) const
 
const GlobalPointin (void) const
 
double length (void) const
 
 MaterialAccountingStep (void)
 
 MaterialAccountingStep (double position, double radlen, double loss, const GlobalPoint &in, const GlobalPoint &out)
 
MaterialAccountingStepoperator*= (const MaterialAccountingStep &step)
 multiply two steps, usefull to implement (co)variance More...
 
MaterialAccountingStepoperator*= (double x)
 multiply by a scalar More...
 
MaterialAccountingStepoperator+= (const MaterialAccountingStep &step)
 add a step More...
 
MaterialAccountingStepoperator-= (const MaterialAccountingStep &step)
 subtract a step More...
 
MaterialAccountingStepoperator/= (double x)
 divide by a scalar More...
 
MaterialAccountingStepoperator= (const MaterialAccountingStep &step)
 assignement operator More...
 
const GlobalPointout (void) const
 
double radiationLengths (void) const
 
std::pair< MaterialAccountingStep, MaterialAccountingStepsplit (double fraction) const
 split the step (0..1) in (0..f) + (f..1) using linear interpolation More...
 

Private Attributes

double m_energyLoss
 
GlobalPoint m_in
 
double m_length
 
GlobalPoint m_out
 
double m_radiationLengths
 

Detailed Description

Definition at line 9 of file MaterialAccountingStep.h.

Constructor & Destructor Documentation

MaterialAccountingStep::MaterialAccountingStep ( void  )
inline
MaterialAccountingStep::MaterialAccountingStep ( double  position,
double  radlen,
double  loss,
const GlobalPoint in,
const GlobalPoint out 
)
inline

Member Function Documentation

void MaterialAccountingStep::clear ( void  )
inline
double MaterialAccountingStep::energyLoss ( void  ) const
inline
const GlobalPoint& MaterialAccountingStep::in ( void  ) const
inline
double MaterialAccountingStep::length ( void  ) const
inline
MaterialAccountingStep& MaterialAccountingStep::operator*= ( const MaterialAccountingStep step)
inline

multiply two steps, usefull to implement (co)variance

Definition at line 100 of file MaterialAccountingStep.h.

References m_energyLoss, m_length, and m_radiationLengths.

100  {
101  m_length *= step.m_length;
103  m_energyLoss *= step.m_energyLoss;
104  return *this;
105  }
MaterialAccountingStep& MaterialAccountingStep::operator*= ( double  x)
inline

multiply by a scalar

Definition at line 108 of file MaterialAccountingStep.h.

References x.

108  {
109  m_length *= x;
111  m_energyLoss *= x;
112  return *this;
113  }
MaterialAccountingStep& MaterialAccountingStep::operator+= ( const MaterialAccountingStep step)
inline

add a step

Definition at line 68 of file MaterialAccountingStep.h.

References m_energyLoss, m_in, m_length, m_out, m_radiationLengths, or, and PV3DBase< T, PVType, FrameType >::perp2().

68  {
69  m_length += step.m_length;
71  m_energyLoss += step.m_energyLoss;
72 
73  // assume that perp2 is 0 only for uninitialized steps
74  if ((m_in.perp2() == 0.0) or (step.m_in.perp2() < m_in.perp2()))
75  m_in = step.m_in;
76 
77  if ((m_out.perp2() == 0.0) or (step.m_out.perp2() > m_out.perp2()))
78  m_out = step.m_out;
79 
80  return *this;
81  }
T perp2() const
Definition: PV3DBase.h:71
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
MaterialAccountingStep& MaterialAccountingStep::operator-= ( const MaterialAccountingStep step)
inline

subtract a step

Definition at line 84 of file MaterialAccountingStep.h.

References m_energyLoss, m_in, m_length, m_out, m_radiationLengths, and PV3DBase< T, PVType, FrameType >::perp2().

84  {
85  m_length -= step.m_length;
87  m_energyLoss -= step.m_energyLoss;
88 
89  // can anything more sensible be done for m_in and/or m_out ?
90  if ((step.m_in.perp2() <= m_in.perp2()) and (step.m_out.perp2() >= m_in.perp2()))
91  m_in = step.m_out;
92 
93  if ((step.m_out.perp2() >= m_out.perp2()) and (step.m_in.perp2() <= m_out.perp2()))
94  m_out = step.m_in;
95 
96  return *this;
97  }
T perp2() const
Definition: PV3DBase.h:71
MaterialAccountingStep& MaterialAccountingStep::operator/= ( double  x)
inline

divide by a scalar

Definition at line 116 of file MaterialAccountingStep.h.

References x.

116  {
117  m_length /= x;
119  m_energyLoss /= x;
120  return *this;
121  }
MaterialAccountingStep& MaterialAccountingStep::operator= ( const MaterialAccountingStep step)
inline

assignement operator

Definition at line 58 of file MaterialAccountingStep.h.

References m_energyLoss, m_in, m_length, m_out, and m_radiationLengths.

58  {
59  m_length = step.m_length;
62  m_in = step.m_in;
63  m_out = step.m_out;
64  return *this;
65  }
const GlobalPoint& MaterialAccountingStep::out ( void  ) const
inline
double MaterialAccountingStep::radiationLengths ( void  ) const
inline
std::pair<MaterialAccountingStep, MaterialAccountingStep> MaterialAccountingStep::split ( double  fraction) const
inline

split the step (0..1) in (0..f) + (f..1) using linear interpolation

Definition at line 43 of file MaterialAccountingStep.h.

References dedxEstimators_cff::fraction, MessageLogger_cfi::limit, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by TrackingMaterialAnalyser::split().

43  {
44  // no check is done to ensure that 0 <= f <= 1 !
45  GlobalPoint limit(m_in.x() * fraction + m_out.x() * (1. - fraction),
46  m_in.y() * fraction + m_out.y() * (1. - fraction),
47  m_in.z() * fraction + m_out.z() * (1. - fraction));
48 
51 
54  return std::make_pair(part1, part2);
55  }
T y() const
Definition: PV3DBase.h:63
T z() const
Definition: PV3DBase.h:64
T x() const
Definition: PV3DBase.h:62

Member Data Documentation

double MaterialAccountingStep::m_energyLoss
private
GlobalPoint MaterialAccountingStep::m_in
private

Definition at line 28 of file MaterialAccountingStep.h.

Referenced by clear(), in(), operator+=(), operator-=(), and operator=().

double MaterialAccountingStep::m_length
private

Definition at line 25 of file MaterialAccountingStep.h.

Referenced by clear(), length(), operator*=(), operator+=(), operator-=(), and operator=().

GlobalPoint MaterialAccountingStep::m_out
private

Definition at line 29 of file MaterialAccountingStep.h.

Referenced by clear(), operator+=(), operator-=(), operator=(), and out().

double MaterialAccountingStep::m_radiationLengths
private