CMS 3D CMS Logo

DTTMax.h
Go to the documentation of this file.
1 #ifndef DTTMax_H
2 #define DTTMax_H
3 
17 
18 #include <string>
19 #include <vector>
20 
21 class DTSuperLayer;
22 class DTSuperLayerId;
23 class DTTTrigBaseSync;
24 
25 namespace dttmaxenums{
28  enum SegDir {L, R};
29 }
30 
31 
32 class DTTMax {
33  public:
37 
39  DTTMax(const std::vector<DTRecHit1D> & hits, const DTSuperLayer & isl, GlobalVector dir,
40  GlobalPoint pos, const DTTTrigBaseSync& sync);
41 
43  virtual ~DTTMax();
44 
46  struct TMax{
47  TMax(float t_, TMaxCells cells_, std::string type_, SigmaFactor sigma_,
48  unsigned t0Factor_,unsigned hSubGroup_) :
49  t(t_), cells(cells_), type(type_), sigma(sigma_), t0Factor(t0Factor_), hSubGroup(hSubGroup_) {}
50 
51  float t;
52  TMaxCells cells;
53  std::string type; // LLR, LRL,...
54  SigmaFactor sigma; // factor relating the width of the Tmax distribution
55  // and the cell resolution
56  unsigned t0Factor; // "quantity" of Delta(t0) included in the tmax formula
57  unsigned hSubGroup;//different t0 hists (one hit within a given distance from the wire)
58  };
59 
60  // All information on one of the layers crossed by the segment
61  struct InfoLayer {
62  InfoLayer(const DTRecHit1D& rh_, const DTSuperLayer & isl, GlobalVector dir,
63  GlobalPoint pos, const DTTTrigBaseSync& sync);
67  float wireX;
68  float time;
69  };
70 
71  // Return the three TMax for a given cell
72  std::vector<const TMax*> getTMax(const DTWireId & idWire);
73 
74  // Return the four TMaxes of the SL
75  std::vector<const TMax*> getTMax(const DTSuperLayerId & isl);
76 
77  // Return one of the four TMaxes of the SL
78  const TMax* getTMax(TMaxCells cCase);
79 
80  // Get InfoLayer (r/w) from layer number
81  InfoLayer*& getInfoLayer(int layer) {return theInfoLayers[layer-1];}
82 
83  private:
84  DTTMax(){}; // Hide default constructor
85 
86  //debug flag
87  bool debug;
88 
89  std::vector<InfoLayer*> theInfoLayers;
90  std::vector<TMax*> theTMaxes;
91  SegDir theSegDir;
92  std::string theSegType; // LRLR, LRLL, ....
93 
94 };
95 #endif
96 
SegDir theSegDir
Definition: DTTMax.h:91
type
Definition: HCALResponse.h:21
unsigned t0Factor
Definition: DTTMax.h:56
float t
Definition: DTTMax.h:51
Definition: DTTMax.h:32
Information on each of the four TMax values in a SL.
Definition: DTTMax.h:46
dttmaxenums::TMaxCells TMaxCells
Definition: DTTMax.h:34
unsigned hSubGroup
Definition: DTTMax.h:57
DTCellSide
Which side of the DT cell.
Definition: DTEnums.h:15
DTRecHit1D rh
Definition: DTTMax.h:64
dttmaxenums::SegDir SegDir
Definition: DTTMax.h:35
DTTMax()
Definition: DTTMax.h:84
TMax(float t_, TMaxCells cells_, std::string type_, SigmaFactor sigma_, unsigned t0Factor_, unsigned hSubGroup_)
Definition: DTTMax.h:47
dttmaxenums::SigmaFactor SigmaFactor
Definition: DTTMax.h:36
DTEnums::DTCellSide lr
Definition: DTTMax.h:66
#define debug
Definition: HDRShower.cc:19
InfoLayer *& getInfoLayer(int layer)
Definition: DTTMax.h:81
std::string type
Definition: DTTMax.h:53
TMaxCells cells
Definition: DTTMax.h:52
DTWireId idWire
Definition: DTTMax.h:65
SigmaFactor sigma
Definition: DTTMax.h:54
std::vector< TMax * > theTMaxes
Definition: DTTMax.h:90
dbl *** dir
Definition: mlp_gen.cc:35
std::vector< InfoLayer * > theInfoLayers
Definition: DTTMax.h:89
std::string theSegType
Definition: DTTMax.h:92