#include <SimMuon/CSCDigitizer/src/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) | |
iam = particle type in PDG code. | |
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 | logGamma (double mass, float momentum) |
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 |
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.
00007 : theBeta2(0.), 00008 theGamma(1.), 00009 loggam(0.), 00010 theGap(gap), 00011 clusters(), 00012 electronsInClusters(), 00013 steps(), 00014 elosses() 00015 { 00016 logGamma( mass, mom); 00017 LogTrace("CSCCrossGap") 00018 << "CSCCrossGap: simhit \n" 00019 << "mass = " << mass << "GeV/c2, momentum = " << mom << 00020 " GeV/c, gap length = " << length() << " cm \n"; 00021 }
CSCCrossGap::~CSCCrossGap | ( | ) | [inline] |
void CSCCrossGap::addCluster | ( | LocalPoint | here | ) | [inline] |
Definition at line 42 of file CSCCrossGap.h.
References clusters.
Referenced by CSCGasCollisions::ionize().
00042 { clusters.push_back( here ); }
Definition at line 43 of file CSCCrossGap.h.
References electronsInClusters.
Referenced by CSCGasCollisions::ionize().
00043 { electronsInClusters.push_back( nelec ); }
void CSCCrossGap::addElectronToBack | ( | ) | [inline] |
Definition at line 44 of file CSCCrossGap.h.
References electronsInClusters.
Referenced by CSCGasCollisions::ionize().
00044 { ++electronsInClusters.back(); }
void CSCCrossGap::addEloss | ( | float | eloss | ) | [inline] |
Definition at line 47 of file CSCCrossGap.h.
References elosses.
00047 { elosses.push_back( eloss ); }
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().
00051 { 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().
00035 { return electronsInClusters; }
std::vector<float> CSCCrossGap::eLossPerStep | ( | ) | const [inline] |
Definition at line 39 of file CSCCrossGap.h.
References elosses.
Referenced by CSCGasCollisions::writeSummary().
00039 { return elosses; }
double CSCCrossGap::gamma | ( | ) | const [inline] |
Definition at line 52 of file CSCCrossGap.h.
References theGamma.
Referenced by CSCGasCollisions::generateEnergyLoss().
00052 { 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().
00033 { 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().
00050 { return loggam; }
double CSCCrossGap::logGamma | ( | double | mass, | |
float | momentum | |||
) |
Definition at line 23 of file CSCCrossGap.cc.
References funct::log(), loggam, LogTrace, max, funct::sqrt(), theBeta2, and theGamma.
Referenced by CSCGasCollisions::simulate().
00024 { 00025 theGamma = sqrt((mom/mass)*(mom/mass) + 1. ); 00026 theBeta2 = 1. - 1./(theGamma*theGamma); 00027 double betgam = sqrt(theGamma*theGamma -1.); 00028 LogTrace("CSCCrossGap") << "gamma = " << theGamma << ", beta2 = " << theBeta2 << 00029 ", beta*gamma = " << betgam; 00030 00031 // The lowest value in table (=theGammaBins[0]) is ln(1.1)=0.0953102 00032 // (Compensate later if lower) 00033 loggam = log( std::max(1.1, theGamma ) ); // F-P literal IS double by default! 00034 LogTrace("CSCCrossGap") << "logGamma = " << loggam; 00035 00036 return loggam; 00037 }
int CSCCrossGap::noOfClusters | ( | ) | const [inline] |
Definition at line 34 of file CSCCrossGap.h.
References clusters.
Referenced by CSCGasCollisions::ionize().
00034 { return clusters.size(); }
int CSCCrossGap::noOfElectrons | ( | ) | const [inline] |
Definition at line 36 of file CSCCrossGap.h.
References electronsInClusters.
Referenced by CSCGasCollisions::ionize().
00036 { 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().
00038 { return steps.size(); }
std::vector<double> CSCCrossGap::stepLengths | ( | ) | const [inline] |
Definition at line 37 of file CSCCrossGap.h.
References steps.
Referenced by CSCGasCollisions::writeSummary().
00037 { 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] |
std::vector<double> CSCCrossGap::steps [private] |
Definition at line 66 of file CSCCrossGap.h.
Referenced by addStep(), noOfSteps(), and stepLengths().
double CSCCrossGap::theBeta2 [private] |
double CSCCrossGap::theGamma [private] |
LocalVector CSCCrossGap::theGap [private] |