File indexing completed on 2023-03-17 11:11:06
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #ifndef DT_SC_TRIG_UNIT_H
0012 #define DT_SC_TRIG_UNIT_H
0013
0014
0015
0016
0017 #include <vector>
0018
0019
0020
0021
0022
0023
0024
0025
0026 #include "L1TriggerConfig/DTTPGConfig/interface/DTConfigManager.h"
0027 #include "L1Trigger/DTUtilities/interface/DTTrigGeom.h"
0028 #include "L1Trigger/DTUtilities/interface/DTTrigData.h"
0029 #include "L1Trigger/DTBti/interface/DTBtiChip.h"
0030 #include "L1Trigger/DTTraco/interface/DTTracoChip.h"
0031 #include "L1Trigger/DTTriggerServerPhi/interface/DTChambPhSegm.h"
0032 #include "L1Trigger/DTTriggerServerTheta/interface/DTChambThSegm.h"
0033 #include "L1Trigger/DTUtilities/interface/DTGeomSupplier.h"
0034 #include "L1Trigger/DTBti/interface/DTBtiCard.h"
0035 #include "L1Trigger/DTTraco/interface/DTTracoCard.h"
0036 #include "L1Trigger/DTTriggerServerPhi/interface/DTTSPhi.h"
0037 #include "L1Trigger/DTTriggerServerTheta/interface/DTTSTheta.h"
0038 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0039 #include "DataFormats/GeometryVector/interface/GlobalVector.h"
0040 #include "DataFormats/GeometryVector/interface/LocalPoint.h"
0041 #include "DataFormats/GeometryVector/interface/LocalVector.h"
0042 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0043
0044 class DTChamber;
0045
0046
0047
0048
0049
0050 class DTSCTrigUnit {
0051 public:
0052
0053
0054 DTSCTrigUnit(const DTChamber* stat);
0055
0056
0057 ~DTSCTrigUnit();
0058
0059
0060 inline DTTrigGeom* geom() const { return _geom; }
0061
0062
0063 void setGeom(const DTChamber* stat) { _geom->setGeom(stat); }
0064
0065
0066 void setConfig(const DTConfigManager* conf);
0067
0068
0069 inline const DTChamber* stat() const { return _geom->stat(); }
0070
0071
0072 inline DTChamberId statId() const { return _geom->statId(); }
0073
0074
0075 inline int wheel() const { return _geom->wheel(); }
0076
0077
0078 inline int station() const { return _geom->station(); }
0079
0080
0081 inline int sector() const { return _geom->sector(); }
0082
0083
0084 inline DTBtiCard* BtiTrigs() const { return _theBTIs; }
0085
0086
0087 inline DTTracoCard* TracoTrigs() const { return _theTRACOs; }
0088
0089
0090 inline DTTSPhi* TSPhTrigs() const { return _theTSPhi; }
0091
0092
0093 inline DTTSTheta* TSThTrigs() const { return _theTSTheta; }
0094
0095
0096 DTGeomSupplier* GeomSupplier(const DTTrigData* trig) const;
0097
0098
0099 inline LocalPoint localPosition(const DTTrigData* trig) const { return GeomSupplier(trig)->localPosition(trig); }
0100
0101
0102 inline GlobalPoint CMSPosition(const DTTrigData* trig) const { return GeomSupplier(trig)->CMSPosition(trig); }
0103
0104
0105 inline LocalVector localDirection(const DTTrigData* trig) const { return GeomSupplier(trig)->localDirection(trig); }
0106
0107
0108 inline GlobalVector CMSDirection(const DTTrigData* trig) const { return GeomSupplier(trig)->CMSDirection(trig); }
0109
0110
0111 inline void print(DTTrigData* trig) const { GeomSupplier(trig)->print(trig); }
0112
0113
0114 inline void dumpGeom() const { _geom->dumpGeom(); }
0115
0116
0117 inline void dumpLUT(short int btic) const { _geom->dumpLUT(btic); }
0118
0119
0120 int nDTBtiChip() { return _theBTIs->size(); }
0121
0122
0123 int nDTTracoChip() { return _theTRACOs->size(); }
0124
0125
0126 int nPhiSegm(int step) { return _theTSPhi->nSegm(step); }
0127
0128
0129 const DTChambPhSegm* phiSegment(int step, int n) { return _theTSPhi->segment(step, n); }
0130
0131
0132 int nThetaSegm(int step) { return _theTSTheta->nSegm(step); }
0133
0134
0135 const DTChambThSegm* thetaSegment(int step, int n) { return _theTSTheta->segment(step, n); }
0136
0137 private:
0138 DTTrigGeom* _geom;
0139
0140
0141 DTBtiCard* _theBTIs;
0142 DTTracoCard* _theTRACOs;
0143 DTTSPhi* _theTSPhi;
0144 DTTSTheta* _theTSTheta;
0145 };
0146
0147 #endif