CMS 3D CMS Logo

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