CMS 3D CMS Logo

CSCCrossGap.h
Go to the documentation of this file.
1 #ifndef MU_END_CROSS_GAP_H
2 #define MU_END_CROSS_GAP_H
3 
20 #include <vector>
21 
22 class CSCCrossGap {
23 public:
29  CSCCrossGap(double mass, float mom, LocalVector gap);
31 
32  std::vector<LocalPoint> ionClusters() const { return clusters; }
33  int noOfClusters() const { return clusters.size(); }
34  std::vector<int> electrons() const { return electronsInClusters; }
35  int noOfElectrons() const { return electronsInClusters.size(); }
36  std::vector<double> stepLengths() const { return steps; }
37  int noOfSteps() const { return steps.size(); }
38  std::vector<float> eLossPerStep() const { return elosses; }
39  int noOfElosses() const { return elosses.size(); }
40 
41  void addCluster(LocalPoint here) { clusters.push_back(here); }
42  void addElectrons(int nelec = 1) { electronsInClusters.push_back(nelec); }
44 
45  void addStep(double step) { steps.push_back(step); }
46  void addEloss(float eloss) { elosses.push_back(eloss); }
47 
48  double logGamma(double mass, float momentum);
49  double logGamma() { return loggam; }
50  double beta2() const { return theBeta2; }
51  double gamma() const { return theGamma; }
52  LocalVector gapVector() const { return theGap; }
53  LocalVector unitVector() const { return theGap.unit(); }
54  float length() const { return theGap.mag(); }
55 
56 private:
57  double theBeta2; // Lorentz beta^2
58  double theGamma; // Lorentz gamma
59  double loggam;
61 
62  std::vector<LocalPoint> clusters;
63  std::vector<int> electronsInClusters;
64  std::vector<double> steps;
65  std::vector<float> elosses;
66 };
67 
68 #endif
Vector3DBase< float, LocalTag >
CSCCrossGap::unitVector
LocalVector unitVector() const
Definition: CSCCrossGap.h:53
CSCCrossGap::noOfClusters
int noOfClusters() const
Definition: CSCCrossGap.h:33
CSCCrossGap::stepLengths
std::vector< double > stepLengths() const
Definition: CSCCrossGap.h:36
step
step
Definition: StallMonitor.cc:94
CSCCrossGap::addEloss
void addEloss(float eloss)
Definition: CSCCrossGap.h:46
CSCCrossGap::addElectrons
void addElectrons(int nelec=1)
Definition: CSCCrossGap.h:42
CSCCrossGap::addElectronToBack
void addElectronToBack()
Definition: CSCCrossGap.h:43
CSCCrossGap::elosses
std::vector< float > elosses
Definition: CSCCrossGap.h:65
CSCCrossGap::noOfSteps
int noOfSteps() const
Definition: CSCCrossGap.h:37
CSCCrossGap
Definition: CSCCrossGap.h:22
CSCCrossGap::gapVector
LocalVector gapVector() const
Definition: CSCCrossGap.h:52
Vector3DBase::unit
Vector3DBase unit() const
Definition: Vector3DBase.h:54
CSCCrossGap::gamma
double gamma() const
Definition: CSCCrossGap.h:51
CSCCrossGap::eLossPerStep
std::vector< float > eLossPerStep() const
Definition: CSCCrossGap.h:38
HLT_2018_cff.gap
gap
Definition: HLT_2018_cff.py:7186
CSCCrossGap::noOfElosses
int noOfElosses() const
Definition: CSCCrossGap.h:39
Point3DBase< float, LocalTag >
CSCCrossGap::beta2
double beta2() const
Definition: CSCCrossGap.h:50
CSCCrossGap::electronsInClusters
std::vector< int > electronsInClusters
Definition: CSCCrossGap.h:63
CSCCrossGap::steps
std::vector< double > steps
Definition: CSCCrossGap.h:64
CSCCrossGap::loggam
double loggam
Definition: CSCCrossGap.h:59
CSCCrossGap::theGap
LocalVector theGap
Definition: CSCCrossGap.h:60
CSCCrossGap::ionClusters
std::vector< LocalPoint > ionClusters() const
Definition: CSCCrossGap.h:32
PV3DBase::mag
T mag() const
Definition: PV3DBase.h:64
CSCCrossGap::addCluster
void addCluster(LocalPoint here)
Definition: CSCCrossGap.h:41
CSCCrossGap::theBeta2
double theBeta2
Definition: CSCCrossGap.h:57
LocalPoint.h
CSCCrossGap::theGamma
double theGamma
Definition: CSCCrossGap.h:58
CSCCrossGap::noOfElectrons
int noOfElectrons() const
Definition: CSCCrossGap.h:35
EgHLTOffHistBins_cfi.mass
mass
Definition: EgHLTOffHistBins_cfi.py:34
CSCCrossGap::clusters
std::vector< LocalPoint > clusters
Definition: CSCCrossGap.h:62
CSCCrossGap::electrons
std::vector< int > electrons() const
Definition: CSCCrossGap.h:34
CSCCrossGap::length
float length() const
Definition: CSCCrossGap.h:54
CSCCrossGap::logGamma
double logGamma()
Definition: CSCCrossGap.h:49
CSCCrossGap::CSCCrossGap
CSCCrossGap(double mass, float mom, LocalVector gap)
Definition: CSCCrossGap.cc:6
LocalVector.h
CSCCrossGap::~CSCCrossGap
~CSCCrossGap()
Definition: CSCCrossGap.h:30
CSCCrossGap::addStep
void addStep(double step)
Definition: CSCCrossGap.h:45