#include <CSCCrossGap.h>
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< LocalPoint > | ionClusters () 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< LocalPoint > | clusters |
std::vector< int > | electronsInClusters |
std::vector< float > | elosses |
double | loggam |
std::vector< double > | steps |
double | theBeta2 |
double | theGamma |
LocalVector | theGap |
Class used to represent one CSC gas gap crossing by a charged track.
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.
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.
CSCCrossGap::~CSCCrossGap | ( | ) | [inline] |
Definition at line 31 of file CSCCrossGap.h.
{};
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] |
void CSCCrossGap::addStep | ( | double | step | ) | [inline] |
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] |
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().
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] |
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().
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().
LocalVector CSCCrossGap::theGap [private] |
Definition at line 62 of file CSCCrossGap.h.
Referenced by gapVector(), length(), and unitVector().