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
std::vector< double > stepLengths() const
Definition: CSCCrossGap.h:36
int noOfSteps() const
Definition: CSCCrossGap.h:37
int noOfClusters() const
Definition: CSCCrossGap.h:33
void addEloss(float eloss)
Definition: CSCCrossGap.h:46
std::vector< float > elosses
Definition: CSCCrossGap.h:65
int noOfElosses() const
Definition: CSCCrossGap.h:39
void addElectronToBack()
Definition: CSCCrossGap.h:43
double beta2() const
Definition: CSCCrossGap.h:50
std::vector< int > electronsInClusters
Definition: CSCCrossGap.h:63
LocalVector gapVector() const
Definition: CSCCrossGap.h:52
std::vector< float > eLossPerStep() const
Definition: CSCCrossGap.h:38
T mag() const
Definition: PV3DBase.h:64
double gamma() const
Definition: CSCCrossGap.h:51
double loggam
Definition: CSCCrossGap.h:59
LocalVector theGap
Definition: CSCCrossGap.h:60
std::vector< int > electrons() const
Definition: CSCCrossGap.h:34
std::vector< LocalPoint > ionClusters() const
Definition: CSCCrossGap.h:32
std::vector< double > steps
Definition: CSCCrossGap.h:64
int noOfElectrons() const
Definition: CSCCrossGap.h:35
std::vector< LocalPoint > clusters
Definition: CSCCrossGap.h:62
double theBeta2
Definition: CSCCrossGap.h:57
void addStep(double step)
Definition: CSCCrossGap.h:45
double theGamma
Definition: CSCCrossGap.h:58
step
Definition: StallMonitor.cc:98
Vector3DBase unit() const
Definition: Vector3DBase.h:54
void addCluster(LocalPoint here)
Definition: CSCCrossGap.h:41
double logGamma()
Definition: CSCCrossGap.h:49
CSCCrossGap(double mass, float mom, LocalVector gap)
Definition: CSCCrossGap.cc:6
LocalVector unitVector() const
Definition: CSCCrossGap.h:53
float length() const
Definition: CSCCrossGap.h:54
void addElectrons(int nelec=1)
Definition: CSCCrossGap.h:42