CMS 3D CMS Logo

Public Member Functions | Private Attributes

CSCCrossGap Class Reference

#include <CSCCrossGap.h>

List of all members.

Public Member Functions

void addCluster (LocalPoint here)
void addElectrons (int nelec=1)
void addElectronToBack ()
void addEloss (float eloss)
void addStep (double step)
double beta2 () const
 CSCCrossGap (double mass, float mom, LocalVector gap)
std::vector< int > electrons () const
std::vector< float > eLossPerStep () const
double gamma () const
LocalVector gapVector () const
std::vector< LocalPointionClusters () const
float length () const
double logGamma (double mass, float momentum)
double logGamma ()
int noOfClusters () const
int noOfElectrons () const
int noOfElosses () const
int noOfSteps () const
std::vector< double > stepLengths () const
LocalVector unitVector () const
 ~CSCCrossGap ()

Private Attributes

std::vector< LocalPointclusters
std::vector< int > electronsInClusters
std::vector< float > elosses
double loggam
std::vector< double > steps
double theBeta2
double theGamma
LocalVector theGap

Detailed Description

Class used to represent one CSC gas gap crossing by a charged track.

Author:
Tim Cox

This is used by CSCCSCGasCollisions in the digitization of the CSCs. Actually this may NOT model the whole gas gap, but just the path length corresponding to a PSimHit in the gap (i.e. from the PSimHit 'entry point' to its 'exit point'). PSimHit's can have a pretty evanescent existence and I can't pretend to have a full understanding of their full range of characteristics. Yet another thing 'to be studied'.

Definition at line 22 of file CSCCrossGap.h.


Constructor & Destructor Documentation

CSCCrossGap::CSCCrossGap ( double  mass,
float  mom,
LocalVector  gap 
)

iam = particle type in PDG code. mom = momentum of particle gap = space std::vector representing the hit entry and exit

Definition at line 6 of file CSCCrossGap.cc.

References length(), logGamma(), and LogTrace.

: theBeta2(0.),
  theGamma(1.),
  loggam(0.),
  theGap(gap),
  clusters(),
  electronsInClusters(),
  steps(),
  elosses()
{
  logGamma( mass, mom);
  LogTrace("CSCCrossGap")
     << "CSCCrossGap: simhit \n"
     << "mass = " << mass << "GeV/c2, momentum = " << mom << 
       " GeV/c, gap length = " << length() << " cm \n";
}
CSCCrossGap::~CSCCrossGap ( ) [inline]

Definition at line 31 of file CSCCrossGap.h.

{};

Member Function Documentation

void CSCCrossGap::addCluster ( LocalPoint  here) [inline]

Definition at line 42 of file CSCCrossGap.h.

References clusters.

Referenced by CSCGasCollisions::ionize().

{ clusters.push_back( here ); }
void CSCCrossGap::addElectrons ( int  nelec = 1) [inline]

Definition at line 43 of file CSCCrossGap.h.

References electronsInClusters.

Referenced by CSCGasCollisions::ionize().

{ electronsInClusters.push_back( nelec ); }
void CSCCrossGap::addElectronToBack ( ) [inline]

Definition at line 44 of file CSCCrossGap.h.

References electronsInClusters.

Referenced by CSCGasCollisions::ionize().

{ ++electronsInClusters.back(); }
void CSCCrossGap::addEloss ( float  eloss) [inline]

Definition at line 47 of file CSCCrossGap.h.

References elosses.

{ elosses.push_back( eloss ); }
void CSCCrossGap::addStep ( double  step) [inline]

Definition at line 46 of file CSCCrossGap.h.

References steps.

{ steps.push_back( step ); }
double CSCCrossGap::beta2 ( ) const [inline]

Definition at line 51 of file CSCCrossGap.h.

References theBeta2.

Referenced by CSCGasCollisions::generateEnergyLoss().

{ return theBeta2; }
std::vector<int> CSCCrossGap::electrons ( ) const [inline]

Definition at line 35 of file CSCCrossGap.h.

References electronsInClusters.

Referenced by CSCGasCollisions::simulate(), and CSCGasCollisions::writeSummary().

{ return electronsInClusters; }
std::vector<float> CSCCrossGap::eLossPerStep ( ) const [inline]

Definition at line 39 of file CSCCrossGap.h.

References elosses.

Referenced by CSCGasCollisions::writeSummary().

{ return elosses; }
double CSCCrossGap::gamma ( ) const [inline]

Definition at line 52 of file CSCCrossGap.h.

References theGamma.

Referenced by CSCGasCollisions::generateEnergyLoss().

{ return theGamma; }
LocalVector CSCCrossGap::gapVector ( ) const [inline]

Definition at line 53 of file CSCCrossGap.h.

References theGap.

{ return theGap; }
std::vector<LocalPoint> CSCCrossGap::ionClusters ( ) const [inline]

Definition at line 33 of file CSCCrossGap.h.

References clusters.

Referenced by CSCGasCollisions::simulate(), and CSCGasCollisions::writeSummary().

{ return clusters; }
float CSCCrossGap::length ( void  ) const [inline]

Definition at line 55 of file CSCCrossGap.h.

References PV3DBase< T, PVType, FrameType >::mag(), and theGap.

Referenced by CSCCrossGap(), and CSCGasCollisions::simulate().

{ return theGap.mag(); }
double CSCCrossGap::logGamma ( ) [inline]

Definition at line 50 of file CSCCrossGap.h.

References loggam.

Referenced by CSCCrossGap().

{ return loggam; }
double CSCCrossGap::logGamma ( double  mass,
float  momentum 
)

Definition at line 23 of file CSCCrossGap.cc.

References funct::log(), loggam, LogTrace, max(), mathSSE::sqrt(), theBeta2, and theGamma.

Referenced by CSCGasCollisions::simulate().

{
  theGamma = sqrt((mom/mass)*(mom/mass) + 1. );
  theBeta2 = 1. - 1./(theGamma*theGamma);
  double betgam = sqrt(theGamma*theGamma -1.);
  LogTrace("CSCCrossGap") << "gamma = " << theGamma << ", beta2 = " << theBeta2 <<
    ", beta*gamma = " << betgam;

  // The lowest value in table (=theGammaBins[0]) is ln(1.1)=0.0953102
  // (Compensate later if lower)
  loggam = log( std::max(1.1, theGamma ) ); // F-P literal IS double by default!
  LogTrace("CSCCrossGap") << "logGamma = " << loggam;

  return loggam;
}
int CSCCrossGap::noOfClusters ( ) const [inline]

Definition at line 34 of file CSCCrossGap.h.

References clusters.

Referenced by CSCGasCollisions::ionize().

{ return clusters.size(); }
int CSCCrossGap::noOfElectrons ( ) const [inline]

Definition at line 36 of file CSCCrossGap.h.

References electronsInClusters.

Referenced by CSCGasCollisions::ionize().

{ return electronsInClusters.size(); }
int CSCCrossGap::noOfElosses ( ) const [inline]

Definition at line 40 of file CSCCrossGap.h.

References elosses.

{ return elosses.size(); }
int CSCCrossGap::noOfSteps ( ) const [inline]

Definition at line 38 of file CSCCrossGap.h.

References steps.

Referenced by CSCGasCollisions::writeSummary().

{ return steps.size(); }
std::vector<double> CSCCrossGap::stepLengths ( ) const [inline]

Definition at line 37 of file CSCCrossGap.h.

References steps.

Referenced by CSCGasCollisions::writeSummary().

{ return steps; }
LocalVector CSCCrossGap::unitVector ( ) const [inline]

Definition at line 54 of file CSCCrossGap.h.

References theGap, and Vector3DBase< T, FrameTag >::unit().

Referenced by CSCGasCollisions::ionize(), and CSCGasCollisions::simulate().

{ return theGap.unit(); }

Member Data Documentation

std::vector<LocalPoint> CSCCrossGap::clusters [private]

Definition at line 64 of file CSCCrossGap.h.

Referenced by addCluster(), ionClusters(), and noOfClusters().

std::vector<int> CSCCrossGap::electronsInClusters [private]

Definition at line 65 of file CSCCrossGap.h.

Referenced by addElectrons(), addElectronToBack(), electrons(), and noOfElectrons().

std::vector<float> CSCCrossGap::elosses [private]

Definition at line 67 of file CSCCrossGap.h.

Referenced by addEloss(), eLossPerStep(), and noOfElosses().

double CSCCrossGap::loggam [private]

Definition at line 61 of file CSCCrossGap.h.

Referenced by logGamma().

std::vector<double> CSCCrossGap::steps [private]

Definition at line 66 of file CSCCrossGap.h.

Referenced by addStep(), noOfSteps(), and stepLengths().

double CSCCrossGap::theBeta2 [private]

Definition at line 59 of file CSCCrossGap.h.

Referenced by beta2(), and logGamma().

double CSCCrossGap::theGamma [private]

Definition at line 60 of file CSCCrossGap.h.

Referenced by gamma(), and logGamma().

Definition at line 62 of file CSCCrossGap.h.

Referenced by gapVector(), length(), and unitVector().