CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
DTTSTheta Class Reference

#include <DTTSTheta.h>

Inheritance diagram for DTTSTheta:
DTCache< T, Coll > DTGeomSupplier

Public Member Functions

const DTConfigTSThetaconfig () const
 Return configuration. More...
 
 DTTSTheta (DTTrigGeom *, DTBtiCard *)
 Constructor. More...
 
LocalVector localDirection (const DTTrigData *) const override
 Local direction in chamber of a L1Trigger-data object. More...
 
LocalPoint localPosition (const DTTrigData *) const override
 Local position in chamber of a L1Trigger-data object. More...
 
int nHTrig (int step)
 Return number of DTBtiChip fired with a HTRIG (used by DTTracoChip) More...
 
int nSegm (int step)
 Return number of TStheta segments (just 1) More...
 
int nTrig (int step)
 Return number of DTBtiChip fired (used by DTTracoChip) More...
 
void print (const DTTrigData *trig) const override
 Print a L1Trigger-data object with also local and global position/direction. More...
 
void reconstruct () override
 Load BTIs triggers and run TSTheta algoritm. More...
 
const DTChambThSegmsegment (int step, unsigned n)
 Return the requested DTTSTheta segment (only the first) More...
 
void setConfig (const DTConfigManager *conf)
 Set configuration. More...
 
 ~DTTSTheta () override
 Destructor. More...
 
- Public Member Functions inherited from DTCache< T, Coll >
const_iterator begin () const
 Get first cache element. More...
 
void clearCache ()
 Clear cache vector. More...
 
 DTCache ()
 Constructor. More...
 
const_iterator end () const
 Get last cache element. More...
 
int size () const
 Get cache vector's size. More...
 
virtual ~DTCache ()
 Destructor. More...
 
- Public Member Functions inherited from DTGeomSupplier
DTChamberId ChamberId () const
 Identifier of the associated chamber. More...
 
GlobalVector CMSDirection (const DTTrigData *trig) const
 CMS direction in chamber of a trigger -data object. More...
 
GlobalPoint CMSPosition (const DTTrigData *trig) const
 CMS position in chamber of a trigger-data object. More...
 
 DTGeomSupplier (DTTrigGeom *geom)
 Constructor. More...
 
DTTrigGeomgeom () const
 Associated geometry. More...
 
int sector () const
 Return sector number. More...
 
const DTChamberstat () const
 Associated chamber. More...
 
int station () const
 Return station number. More...
 
int wheel () const
 Return wheel number. More...
 
virtual ~DTGeomSupplier ()
 Destructor. More...
 

Private Member Functions

void add_btiT (int step, const DTBtiTrigData *btitrig)
 Add a DTBtiChip L1Trigger to the DTTSTheta. More...
 
BitArray< DTConfigTSTheta::NCELLTH > * btiMask (int step) const
 Return the BitArray of DTBtiChip fired. More...
 
BitArray< DTConfigTSTheta::NCELLTH > * btiQual (int step) const
 Return the BitArray of DTBtiChip fired with a HTRIG. More...
 
void loadDTTSTheta ()
 store DTBtiChip L1Triggers in the TST More...
 
void localClear ()
 Clear. More...
 
void runDTTSTheta ()
 run DTTSTheta algorithm (build the mask) More...
 

Private Attributes

DTBtiCard_bticard
 
const DTConfigTSTheta_config
 
BitArray< DTConfigTSTheta::NCELLTH_Htrig [DTConfigTSTheta::NSTEPL - DTConfigTSTheta::NSTEPF+1]
 
int _nHtrig [DTConfigTSTheta::NSTEPL - DTConfigTSTheta::NSTEPF+1]
 
int _ntrig [DTConfigTSTheta::NSTEPL - DTConfigTSTheta::NSTEPF+1]
 
BitArray< DTConfigTSTheta::NCELLTH_trig [DTConfigTSTheta::NSTEPL - DTConfigTSTheta::NSTEPF+1]
 

Additional Inherited Members

- Public Types inherited from DTCache< T, Coll >
typedef my_collection::const_iterator const_iterator
 
typedef my_collection::iterator iterator
 
typedef Coll my_collection
 
typedef T my_type
 
- Protected Attributes inherited from DTCache< T, Coll >
my_collection _cache
 
- Protected Attributes inherited from DTGeomSupplier
DTTrigGeom_geom
 

Detailed Description

Implementation of TS Theta L1Trigger algorithm

Author
C.Grandi

Definition at line 44 of file DTTSTheta.h.

Constructor & Destructor Documentation

◆ DTTSTheta()

DTTSTheta::DTTSTheta ( DTTrigGeom geom,
DTBtiCard bticard 
)

Constructor.

Definition at line 37 of file DTTSTheta.cc.

37  : DTGeomSupplier(geom), _bticard(bticard) {
38  for (int i = 0; i < DTConfigTSTheta::NSTEPL - DTConfigTSTheta::NSTEPF + 1; i++) {
39  _trig[i].zero();
40  _Htrig[i].zero();
41  _ntrig[i] = 0;
42  _nHtrig[i] = 0;
43  }
44 }

References _Htrig, _nHtrig, _ntrig, _trig, mps_fire::i, DTConfig::NSTEPF, DTConfig::NSTEPL, and BitArray< N >::zero().

◆ ~DTTSTheta()

DTTSTheta::~DTTSTheta ( )
override

Destructor.

Definition at line 49 of file DTTSTheta.cc.

49  {
50  //delete _config;
51 }

Member Function Documentation

◆ add_btiT()

void DTTSTheta::add_btiT ( int  step,
const DTBtiTrigData btitrig 
)
private

Add a DTBtiChip L1Trigger to the DTTSTheta.

Definition at line 96 of file DTTSTheta.cc.

96  {
97  int n = btitrig->btiNumber();
98 
99  /*
100 OBSOLETE! in NEWGEO the bti number order is the correct one!
101  // check where the BTI is, and reverse the order in stat 1 and 2 and 3 (only for some sectors)
102 
103  if( (wheel()==0 && (sector()==1 || sector()==4 || sector()==5 ||
104  sector()==8 || sector()==9 || sector()==12))
105  || wheel()==-1
106  || wheel()==-2)
107  {n=DTConfigTSTheta::NCELLTH + 1 - n; }
108 
109 */
110 
111  if (n < 1 || n > geom()->nCell(2)) {
112  std::cout << "DTTSTheta::add_btiT: BTI out of range: " << n;
113  std::cout << " trigger not added!" << std::endl;
114  return;
115  }
117  std::cout << "DTTSTheta::add_btiT: step out of range: " << step;
118  std::cout << " trigger not added!" << std::endl;
119  return;
120  }
123 
124  if (btitrig->code() == 8) {
127  }
128 
129  if (config()->debug()) {
130  std::cout << "BTI Trigger added at step " << step;
131  std::cout << " to DTTSTheta at position " << n << std::endl;
132  }
133  return;
134 }

References _Htrig, _nHtrig, _ntrig, _trig, DTBtiTrigData::btiNumber(), DTBtiTrigData::code(), config(), gather_cfg::cout, debug, DTGeomSupplier::geom(), dqmiodumpmetadata::n, DTConfig::NSTEPF, DTConfig::NSTEPL, and BitArray< N >::set().

Referenced by loadDTTSTheta().

◆ btiMask()

BitArray< DTConfigTSTheta::NCELLTH > * DTTSTheta::btiMask ( int  step) const
private

Return the BitArray of DTBtiChip fired.

Definition at line 240 of file DTTSTheta.cc.

240  {
242  std::cout << "DTTSTheta::btiMask: step out of range " << step;
243  std::cout << " empty pointer returned" << std::endl;
244  return nullptr;
245  }
247 }

References _trig, gather_cfg::cout, DTConfig::NSTEPF, and DTConfig::NSTEPL.

Referenced by runDTTSTheta().

◆ btiQual()

BitArray< DTConfigTSTheta::NCELLTH > * DTTSTheta::btiQual ( int  step) const
private

Return the BitArray of DTBtiChip fired with a HTRIG.

Definition at line 249 of file DTTSTheta.cc.

249  {
251  std::cout << "DTTSTheta::btiQual: step out of range " << step;
252  std::cout << " empty pointer returned" << std::endl;
253  return nullptr;
254  }
256 }

References _Htrig, gather_cfg::cout, DTConfig::NSTEPF, and DTConfig::NSTEPL.

Referenced by runDTTSTheta().

◆ config()

const DTConfigTSTheta* DTTSTheta::config ( void  ) const
inline

Return configuration.

Definition at line 54 of file DTTSTheta.h.

54 { return _config; }

References _config.

Referenced by add_btiT(), loadDTTSTheta(), and runDTTSTheta().

◆ loadDTTSTheta()

void DTTSTheta::loadDTTSTheta ( )
private

store DTBtiChip L1Triggers in the TST

Definition at line 72 of file DTTSTheta.cc.

72  {
73  localClear();
74  if (station() == 4)
75  return;
76 
77  if (config()->debug()) {
78  std::cout << "DTTSTheta::loadDTTSTheta called for wheel=" << wheel();
79  std::cout << ", station=" << station();
80  std::cout << ", sector=" << sector() << std::endl;
81  }
82 
83  // loop on all BTI triggers
84  std::vector<DTBtiTrigData>::const_iterator p;
85  std::vector<DTBtiTrigData>::const_iterator pend = _bticard->end();
86  for (p = _bticard->begin(); p != pend; p++) {
87  // Look only to BTIs in SL 2
88  if (p->btiSL() == 2) {
89  // BTI number
90  int step = p->step();
91  add_btiT(step, &(*p));
92  }
93  }
94 }

References _bticard, add_btiT(), DTCache< T, Coll >::begin(), config(), gather_cfg::cout, debug, DTCache< T, Coll >::end(), localClear(), AlCaHLTBitMon_ParallelJobs::p, DTGeomSupplier::sector(), DTGeomSupplier::station(), and DTGeomSupplier::wheel().

Referenced by reconstruct().

◆ localClear()

void DTTSTheta::localClear ( )
private

Clear.

Definition at line 57 of file DTTSTheta.cc.

57  {
58  for (int is = 0; is < DTConfigTSTheta::NSTEPL - DTConfigTSTheta::NSTEPF + 1; is++) {
59  // clear input bit masks
60  _trig[is].zero();
61  _Htrig[is].zero();
62  _ntrig[is] = 0;
63  _nHtrig[is] = 0;
64  }
65 }

References _Htrig, _nHtrig, _ntrig, _trig, DTConfig::NSTEPF, DTConfig::NSTEPL, and BitArray< N >::zero().

Referenced by loadDTTSTheta().

◆ localDirection()

LocalVector DTTSTheta::localDirection ( const DTTrigData tr) const
overridevirtual

Local direction in chamber of a L1Trigger-data object.

Implements DTGeomSupplier.

Definition at line 264 of file DTTSTheta.cc.

264  {
265  //const DTChambThSegm* trig = dynamic_cast<const DTChambThSegm*>(tr);
266  //@@ Not implemented yet
267  return LocalVector(0, 0, 0);
268 }

◆ localPosition()

LocalPoint DTTSTheta::localPosition ( const DTTrigData tr) const
overridevirtual

Local position in chamber of a L1Trigger-data object.

Implements DTGeomSupplier.

Definition at line 258 of file DTTSTheta.cc.

258  {
259  //const DTChambThSegm* trig = dynamic_cast<const DTChambThSegm*>(tr);
260  //@@ Not implemented yet
261  return LocalPoint(0, 0, 0);
262 }

◆ nHTrig()

int DTTSTheta::nHTrig ( int  step)

Return number of DTBtiChip fired with a HTRIG (used by DTTracoChip)

Definition at line 229 of file DTTSTheta.cc.

229  {
231  std::cout << "DTTSTheta::nHTrig: step out of range " << step;
232  std::cout << " 0 returned" << std::endl;
233  return 0;
234  }
235  if (size() > 0)
237  return 0;
238 }

References _nHtrig, gather_cfg::cout, DTConfig::NSTEPF, DTConfig::NSTEPL, and DTCache< T, Coll >::size().

Referenced by DTTracoChip::storeUncorr().

◆ nSegm()

int DTTSTheta::nSegm ( int  step)

Return number of TStheta segments (just 1)

Definition at line 199 of file DTTSTheta.cc.

199  {
200  int n = 0;
201  std::vector<DTChambThSegm>::const_iterator p;
202  for (p = begin(); p < end(); p++) {
203  if (p->step() == step)
204  n++;
205  }
206  return n;
207 }

References DTCache< T, Coll >::begin(), DTCache< T, Coll >::end(), dqmiodumpmetadata::n, and AlCaHLTBitMon_ParallelJobs::p.

Referenced by DTSCTrigUnit::nThetaSegm().

◆ nTrig()

int DTTSTheta::nTrig ( int  step)

Return number of DTBtiChip fired (used by DTTracoChip)

Definition at line 218 of file DTTSTheta.cc.

218  {
220  std::cout << "DTTSTheta::nTrig: step out of range " << step;
221  std::cout << " 0 returned" << std::endl;
222  return 0;
223  }
224  if (size() > 0)
226  return 0;
227 }

References _ntrig, gather_cfg::cout, DTConfig::NSTEPF, DTConfig::NSTEPL, and DTCache< T, Coll >::size().

Referenced by DTTracoChip::storeUncorr().

◆ print()

void DTTSTheta::print ( const DTTrigData trig) const
overridevirtual

Print a L1Trigger-data object with also local and global position/direction.

Reimplemented from DTGeomSupplier.

Definition at line 270 of file DTTSTheta.cc.

270  {
271  trig->print();
272  //@@ coordinate printing not implemented yet
273  //@@ rermove this method as soon as the local coordinates are meaningful
274 }

References ClusterTask_cfi::trig.

◆ reconstruct()

void DTTSTheta::reconstruct ( )
inlineoverridevirtual

Load BTIs triggers and run TSTheta algoritm.

Reimplemented from DTCache< T, Coll >.

Definition at line 81 of file DTTSTheta.h.

81  {
82  loadDTTSTheta();
83  runDTTSTheta();
84  }

References loadDTTSTheta(), and runDTTSTheta().

Referenced by DTTrig::triggerReco().

◆ runDTTSTheta()

void DTTSTheta::runDTTSTheta ( )
private

run DTTSTheta algorithm (build the mask)

Definition at line 136 of file DTTSTheta.cc.

136  {
137  // Just make a DTChambThSegm for each step and store it
138  for (int is = DTConfigTSTheta::NSTEPF; is < DTConfigTSTheta::NSTEPL + 1; is++) {
139  if (_ntrig[is - DTConfigTSTheta::NSTEPF] > 0) {
140  int i = 0;
141  int code[8];
142  int pos[8];
143  int qual[8];
144  for (i = 0; i < 8; i++) {
145  //@@ MULT not implemented:
146  pos[i] = btiMask(is)->byte(i).any();
147  qual[i] = btiQual(is)->byte(i).any();
148  code[i] = pos[i] + qual[i];
149  }
150 
151  // SM .OR. response of BTI number 57 in previous group of 8 BTIs
152 
153  if (pos[7] > pos[6])
154  pos[6] = pos[7];
155  if (qual[7] > qual[6])
156  qual[6] = qual[7];
157  if (code[7] > code[6])
158  code[6] = code[7];
159 
160  if (config()->debug()) {
161  std::cout << " wheel = " << wheel() << " station = " << station() << " sector = " << sector() << std::endl;
162  std::cout << " pos : ";
163  for (i = 0; i < 8; i++) {
164  std::cout << pos[i] << " ";
165  }
166  std::cout << std::endl;
167  std::cout << " qual : ";
168  for (i = 0; i < 8; i++) {
169  std::cout << qual[i] << " ";
170  }
171  std::cout << std::endl;
172  std::cout << " code : ";
173  for (i = 0; i < 8; i++) {
174  std::cout << code[i] << " ";
175  }
176  std::cout << std::endl;
177  std::cout << std::endl;
178  }
179 
180  _cache.push_back(DTChambThSegm(ChamberId(), is, pos, qual));
181  }
182  }
183 
184  // debugging...
185  if (config()->debug()) {
186  if (!_cache.empty()) {
187  std::cout << "====================================================" << std::endl;
188  std::cout << " Theta segments " << std::endl;
189  std::vector<DTChambThSegm>::const_iterator p;
190  for (p = _cache.begin(); p < _cache.end(); p++) {
191  p->print();
192  }
193  std::cout << "====================================================" << std::endl;
194  }
195  }
196  // end debugging
197 }

References DTCache< T, Coll >::_cache, _ntrig, BitArray< N >::any(), btiMask(), btiQual(), BitArray< N >::byte(), DTGeomSupplier::ChamberId(), config(), gather_cfg::cout, debug, mps_fire::i, DTConfig::NSTEPF, DTConfig::NSTEPL, AlCaHLTBitMon_ParallelJobs::p, DTGeomSupplier::sector(), DTGeomSupplier::station(), and DTGeomSupplier::wheel().

Referenced by reconstruct().

◆ segment()

const DTChambThSegm * DTTSTheta::segment ( int  step,
unsigned  n 
)

Return the requested DTTSTheta segment (only the first)

Definition at line 209 of file DTTSTheta.cc.

209  {
210  std::vector<DTChambThSegm>::const_iterator p;
211  for (p = begin(); p < end(); p++) {
212  if (p->step() == step && n == 1)
213  return &(*p);
214  }
215  return nullptr;
216 }

References DTCache< T, Coll >::begin(), DTCache< T, Coll >::end(), dqmiodumpmetadata::n, and AlCaHLTBitMon_ParallelJobs::p.

Referenced by DTSCTrigUnit::thetaSegment().

◆ setConfig()

void DTTSTheta::setConfig ( const DTConfigManager conf)

Set configuration.

Definition at line 67 of file DTTSTheta.cc.

67  {
68  DTChamberId sid = ChamberId();
69  _config = conf->getDTConfigTSTheta(sid);
70 }

References _config, DTGeomSupplier::ChamberId(), and DTConfigManager::getDTConfigTSTheta().

Referenced by DTSCTrigUnit::setConfig().

Member Data Documentation

◆ _bticard

DTBtiCard* DTTSTheta::_bticard
private

Definition at line 106 of file DTTSTheta.h.

Referenced by loadDTTSTheta().

◆ _config

const DTConfigTSTheta* DTTSTheta::_config
private

Definition at line 108 of file DTTSTheta.h.

Referenced by config(), and setConfig().

◆ _Htrig

Definition at line 112 of file DTTSTheta.h.

Referenced by add_btiT(), btiQual(), DTTSTheta(), and localClear().

◆ _nHtrig

int DTTSTheta::_nHtrig[DTConfigTSTheta::NSTEPL - DTConfigTSTheta::NSTEPF+1]
private

Definition at line 114 of file DTTSTheta.h.

Referenced by add_btiT(), DTTSTheta(), localClear(), and nHTrig().

◆ _ntrig

int DTTSTheta::_ntrig[DTConfigTSTheta::NSTEPL - DTConfigTSTheta::NSTEPF+1]
private

Definition at line 113 of file DTTSTheta.h.

Referenced by add_btiT(), DTTSTheta(), localClear(), nTrig(), and runDTTSTheta().

◆ _trig

Definition at line 111 of file DTTSTheta.h.

Referenced by add_btiT(), btiMask(), DTTSTheta(), and localClear().

mps_fire.i
i
Definition: mps_fire.py:428
DTTSTheta::localClear
void localClear()
Clear.
Definition: DTTSTheta.cc:57
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
DTCache::size
int size() const
Get cache vector's size.
Definition: DTCache.h:44
DTTSTheta::_config
const DTConfigTSTheta * _config
Definition: DTTSTheta.h:108
step
step
Definition: StallMonitor.cc:94
DTBtiTrigData::code
int code() const
Return trigger code.
Definition: DTBtiTrigData.h:105
BitArray::zero
void zero()
Definition: BitArray.h:210
BitArray::any
int any()
Definition: BitArray.h:176
gather_cfg.cout
cout
Definition: gather_cfg.py:144
pos
Definition: PixelAliasList.h:18
DTTSTheta::config
const DTConfigTSTheta * config() const
Return configuration.
Definition: DTTSTheta.h:54
DTConfig::NSTEPL
static const int NSTEPL
Constants: first and last step to start trigger finding.
Definition: DTConfig.h:35
DTConfig::NSTEPF
static const int NSTEPF
Definition: DTConfig.h:35
align::LocalPoint
Point3DBase< Scalar, LocalTag > LocalPoint
Definition: Definitions.h:30
DTTSTheta::_ntrig
int _ntrig[DTConfigTSTheta::NSTEPL - DTConfigTSTheta::NSTEPF+1]
Definition: DTTSTheta.h:113
DTCache::begin
const_iterator begin() const
Get first cache element.
Definition: DTCache.h:38
DTTSTheta::add_btiT
void add_btiT(int step, const DTBtiTrigData *btitrig)
Add a DTBtiChip L1Trigger to the DTTSTheta.
Definition: DTTSTheta.cc:96
DTGeomSupplier::ChamberId
DTChamberId ChamberId() const
Identifier of the associated chamber.
Definition: DTGeomSupplier.h:57
DTBtiTrigData::btiNumber
int btiNumber() const
Return parent BTI number.
Definition: DTBtiTrigData.h:96
DTGeomSupplier::sector
int sector() const
Return sector number.
Definition: DTGeomSupplier.h:66
DTTSTheta::_bticard
DTBtiCard * _bticard
Definition: DTTSTheta.h:106
debug
#define debug
Definition: HDRShower.cc:19
DTCache::_cache
my_collection _cache
Definition: DTCache.h:53
DTConfigManager::getDTConfigTSTheta
const DTConfigTSTheta * getDTConfigTSTheta(DTChamberId) const
Get desired Trigger Server Theta configuration.
Definition: DTConfigManager.cc:116
DTChambThSegm
Definition: DTChambThSegm.h:39
DTTSTheta::btiQual
BitArray< DTConfigTSTheta::NCELLTH > * btiQual(int step) const
Return the BitArray of DTBtiChip fired with a HTRIG.
Definition: DTTSTheta.cc:249
DTTSTheta::runDTTSTheta
void runDTTSTheta()
run DTTSTheta algorithm (build the mask)
Definition: DTTSTheta.cc:136
DTGeomSupplier::wheel
int wheel() const
Return wheel number.
Definition: DTGeomSupplier.h:60
AlCaHLTBitMon_ParallelJobs.p
def p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
DTCache::end
const_iterator end() const
Get last cache element.
Definition: DTCache.h:41
LocalVector
Local3DVector LocalVector
Definition: LocalVector.h:12
DTGeomSupplier::DTGeomSupplier
DTGeomSupplier(DTTrigGeom *geom)
Constructor.
Definition: DTGeomSupplier.h:45
DTTSTheta::loadDTTSTheta
void loadDTTSTheta()
store DTBtiChip L1Triggers in the TST
Definition: DTTSTheta.cc:72
ClusterTask_cfi.trig
trig
Definition: ClusterTask_cfi.py:398
DTTSTheta::_nHtrig
int _nHtrig[DTConfigTSTheta::NSTEPL - DTConfigTSTheta::NSTEPF+1]
Definition: DTTSTheta.h:114
DTTSTheta::_trig
BitArray< DTConfigTSTheta::NCELLTH > _trig[DTConfigTSTheta::NSTEPL - DTConfigTSTheta::NSTEPF+1]
Definition: DTTSTheta.h:111
BitArray::byte
BitArray< 8 > byte(const int i) const
Definition: BitArray.h:282
DTGeomSupplier::station
int station() const
Return station number.
Definition: DTGeomSupplier.h:63
DTTSTheta::btiMask
BitArray< DTConfigTSTheta::NCELLTH > * btiMask(int step) const
Return the BitArray of DTBtiChip fired.
Definition: DTTSTheta.cc:240
BitArray::set
void set(const int i)
Definition: BitArray.h:224
DTGeomSupplier::geom
DTTrigGeom * geom() const
Associated geometry.
Definition: DTGeomSupplier.h:51
DTChamberId
Definition: DTChamberId.h:14
DTTSTheta::_Htrig
BitArray< DTConfigTSTheta::NCELLTH > _Htrig[DTConfigTSTheta::NSTEPL - DTConfigTSTheta::NSTEPF+1]
Definition: DTTSTheta.h:112
BitArray< DTConfigTSTheta::NCELLTH >