test
CMS 3D CMS Logo

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