CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DTSectColl.h
Go to the documentation of this file.
1 //-------------------------------------------------
2 //
12 //--------------------------------------------------
13 #ifndef DT_SECT_COLL_H
14 #define DT_SECT_COLL_H
15 
16 //------------------------------------
17 // Collaborating Class Declarations --
18 //------------------------------------
19 class DTTracoTrigData;
20 class DTSectCollCand;
21 class DTConfigSectColl;
22 class DTTrigGeom;
23 class DTChambPhSegm;
24 class DTChambThSegm;
25 class DTSectCollSegm;
26 class DTSC;
27 class DTTSPhi;
28 class DTTSTheta;
30 
31 //----------------------
32 // Base Class Headers --
33 //----------------------
42 
43 //---------------
44 // C++ Headers --
45 //---------------
46 #include <vector>
47 
48 // ---------------------
49 // -- Class Interface --
50 // ---------------------
51 
52 typedef std::vector<DTSectCollPhSegm> DTSectCollPhVector;
53 typedef std::vector<DTSectCollThSegm> DTSectCollThVector;
56 
57 class DTSectColl : public DTSCPhCache, public DTSCThCache {
58 
59  public:
60 
62  //DTSectColl(edm::ParameterSet& sc_pset);
64 
66  ~DTSectColl();
67 
69  void setConfig(const DTConfigManager *conf);
70 
72  inline DTTSPhi* getTSPhi(int istat) const { return _tsphi[istat-1]; }
73 
75  inline DTTSTheta* getTSTheta(int istat) const { return _tstheta[istat-1]; }
76 
78  inline DTConfigSectColl* config() const { return _config; }
79 
80  // non-const methods
81 
82 /* //! Add a TSM candidate to the Sect Coll, ifs is first/second track flag */
83 /* void addCandPh(DTSectCollPhCand* cand); */
84 
85 /* //! Add a TS Theta candidate to the Sect Coll, ifs is first/second track flag */
86 /* void addCandTh(DTSectCollThCand* cand); */
87 
88 /* //! Set a flag to skip sort2 */
89 /* void ignoreSecondTrack() { _ignoreSecondTrack=1; } */
90 
92  void localClear();
93 
95  void loadSectColl();
96 
98  void addTSPhi(int step, const DTChambPhSegm* tsmsegm, int ifs, int istat);
99 
101  void addTSTheta(int step, const DTChambThSegm* tsmsegm, int istat);
102 
104  void addTU(DTSCTrigUnit* tru);
105 
107  DTSC* getDTSC(int step, int istat) const;
108 
110  void runSectColl();
111 
113  DTSectCollPhCand* getDTSectCollPhCand(int ifs, unsigned n) const;
114 
116  DTSectCollThCand* getDTSectCollThCand(unsigned n) const;
117 
118  // const methods
119 
121  DTSectCollPhCand* getTrackPh(int n) const ;
122 
124  DTSectCollThCand* getTrackTh(int n) const ;
125 
127  unsigned nCandPh(int ifs) const;
128 
130  unsigned nCandTh() const;
131 
133  int nSegmPh(int step);
134 
136  int nSegmTh(int step);
137 
139  inline int nTracksPh() const { return _outcand_ph.size(); }
140 
142  inline int nTracksTh() const { return _outcand_th.size(); }
143 
145  const DTSectCollPhSegm* SectCollPhSegment(int step, unsigned n);
146 
149 
151  std::vector<DTSectCollPhSegm>::const_iterator beginPh() { return DTSCPhCache::_cache.begin(); }
152 
154  int sizePh() { return DTSCPhCache::_cache.size(); }
155 
157  std::vector<DTSectCollPhSegm>::const_iterator endPh() { return DTSCPhCache::_cache.end(); }
158 
160  std::vector<DTSectCollThSegm>::const_iterator beginTh() { return DTSCThCache::_cache.begin(); }
161 
163  int sizeTh() { return DTSCThCache::_cache.size(); }
164 
166  std::vector<DTSectCollThSegm>::const_iterator endTh() { return DTSCThCache::_cache.end(); }
167 
169  // LocalPoint LocalPosition(const DTTrigData*) const;
170 
172  // LocalVector LocalDirection(const DTTrigData*) const;
173 
176 
178  virtual void reconstruct() { loadSectColl(); runSectColl(); }
179 
182 
183  private:
184 
185  // Configuration
187 
188  // SC Id
190 
193 
194  // SM: new sector collector
196 
197  // input data Phi
198  std::vector<DTSectCollPhCand*> _incand_ph[2];
199 
200  // output data Phi
201  std::vector<DTSectCollPhCand*> _outcand_ph;
202 
203  // input data Theta
204  std::vector<DTSectCollThCand*> _incand_th;
205 
206  // output data Theta
207  std::vector<DTSectCollThCand*> _outcand_th;
208 
209 };
210 #endif
virtual void reconstruct()
Load Trigger Units triggers and run Sector Collector algorithm.
Definition: DTSectColl.h:178
int sizePh()
Return Phi cache size.
Definition: DTSectColl.h:154
int nTracksPh() const
Return the number of output Phi tracks.
Definition: DTSectColl.h:139
my_collection _cache
Definition: DTCache.h:58
DTSectCollThCand * getDTSectCollThCand(unsigned n) const
Get a Candidate for Sector Collector.
Definition: DTSectColl.cc:419
std::vector< DTSectCollPhSegm >::const_iterator endPh()
Return iterator to the end of Phi cache.
Definition: DTSectColl.h:157
list step
Definition: launcher.py:15
DTSectCollId _sectcollid
Definition: DTSectColl.h:189
DTSectCollThCand * getTrackTh(int n) const
Return the requested Theta track.
Definition: DTSectColl.cc:448
DTSectCollId SectCollId()
Return the Sector Collector Id.
Definition: DTSectColl.h:181
std::vector< DTSectCollThCand * > _incand_th
Definition: DTSectColl.h:204
Definition: DTSC.h:43
static const int NSTEPF
Definition: DTConfig.h:36
std::vector< DTSectCollThCand * > _outcand_th
Definition: DTSectColl.h:207
int sizeTh()
Return Theta cache size.
Definition: DTSectColl.h:163
int nSegmTh(int step)
Return number of DTSectCollTheta segments (SC step)
Definition: DTSectColl.cc:497
std::vector< DTSectCollPhCand * > _outcand_ph
Definition: DTSectColl.h:201
unsigned nCandTh() const
Return the number of Theta input tracks.
Definition: DTSectColl.cc:476
void addTSPhi(int step, const DTChambPhSegm *tsmsegm, int ifs, int istat)
Add a TSM candidate (step is TSM step not SC one)
Definition: DTSectColl.cc:230
DTSC * _tsc[DTConfigSectColl::NSTEPL-DTConfigSectColl::NSTEPF+1][DTConfigSectColl::NDTSC]
Definition: DTSectColl.h:195
DTTSTheta * _tstheta[DTConfigSectColl::NTSTSC]
Definition: DTSectColl.h:192
DTConfigSectColl * config() const
Configuration.
Definition: DTSectColl.h:78
unsigned nCandPh(int ifs) const
Return the number of Phi input tracks (first/second)
Definition: DTSectColl.cc:463
void loadSectColl()
Load a Sector Collector.
Definition: DTSectColl.cc:188
std::vector< DTSectCollThSegm > DTSectCollThVector
Definition: DTSectColl.h:53
int nSegmPh(int step)
Return number of DTSectCollPhi segments (SC step)
Definition: DTSectColl.cc:483
static const int NTSPSC
void addTSTheta(int step, const DTChambThSegm *tsmsegm, int istat)
Add a TS Theta candidate (step is TSTheta step not sc one)
Definition: DTSectColl.cc:274
DTCache< DTSectCollPhSegm, DTSectCollPhVector > DTSCPhCache
Definition: DTSectColl.h:54
DTTSPhi * _tsphi[DTConfigSectColl::NTSPSC]
Definition: DTSectColl.h:191
static const int NSTEPL
Constants: first and last step to start trigger finding.
Definition: DTConfig.h:36
int nTracksTh() const
Return the number of output Theta tracks.
Definition: DTSectColl.h:142
static const int NDTSC
Constant: maximum number of Sector Collector sorting Chip in input to Sector Collector.
tuple conf
Definition: dbtoconf.py:185
~DTSectColl()
Destructor.
Definition: DTSectColl.cc:66
DTSectCollPhCand * getTrackPh(int n) const
Return the requested Phi track.
Definition: DTSectColl.cc:434
void addTU(DTSCTrigUnit *tru)
Add a Trigger Unit to the Sector Collector.
Definition: DTSectColl.cc:128
std::vector< DTSectCollThSegm >::const_iterator beginTh()
Return iterator to the begni of Theta cache.
Definition: DTSectColl.h:160
std::vector< DTSectCollPhSegm > DTSectCollPhVector
Definition: DTSectColl.h:29
const DTSectCollThSegm * SectCollThSegment(int step)
Return requested Sector Collector Theta Segment.
Definition: DTSectColl.cc:526
DTCache< DTSectCollThSegm, DTSectCollThVector > DTSCThCache
Definition: DTSectColl.h:55
std::vector< DTSectCollThSegm >::const_iterator endTh()
Return iterator to the end of Theta cache.
Definition: DTSectColl.h:166
DTSC * getDTSC(int step, int istat) const
Get a Sector Collector (step is TS one)
Definition: DTSectColl.cc:319
void clearCache()
Local position in chamber of a trigger-data object.
Definition: DTSectColl.h:175
void runSectColl()
Run Sector Collector.
Definition: DTSectColl.cc:339
DTSectColl(DTSectCollId id)
Constructor.
Definition: DTSectColl.cc:48
DTConfigSectColl * _config
Definition: DTSectColl.h:186
std::vector< DTSectCollPhCand * > _incand_ph[2]
Definition: DTSectColl.h:198
void setConfig(const DTConfigManager *conf)
Set configuration.
Definition: DTSectColl.cc:114
std::vector< DTSectCollPhSegm >::const_iterator beginPh()
Return iterator to the beghin of Phi cache.
Definition: DTSectColl.h:151
const DTSectCollPhSegm * SectCollPhSegment(int step, unsigned n)
Return requested Sector Collector Phi Segment 1st/2nd.
Definition: DTSectColl.cc:512
void localClear()
Local Clear.
Definition: DTSectColl.cc:84
DTSectCollPhCand * getDTSectCollPhCand(int ifs, unsigned n) const
Get a Phi Candidate for Sector Collector.
Definition: DTSectColl.cc:400
void clearCache()
Clear cache vector.
Definition: DTCache.h:51
DTTSPhi * getTSPhi(int istat) const
Return TSPhi.
Definition: DTSectColl.h:72
static const int NTSTSC
Constants: number of TSTheta/TSPhi in input to Sector Collector.
DTTSTheta * getTSTheta(int istat) const
Return TSTheta.
Definition: DTSectColl.h:75