#include <L1Trigger/DTBti/interface/DTBtiCard.h>
Public Member Functions | |
std::vector< DTBtiChip * > | btiList (int) |
Returns the active BTI list in a given superlayer. | |
void | clearCache () |
Clear all BTI stuff (map & cache). | |
bool | debug () const |
Return TU debug flag. | |
DTBtiCard (DTTrigGeom *, DTTTrigBaseSync *) | |
Constructor. | |
DTBtiChip * | getBTI (const DTBtiId &btiid) const |
Returns the required BTI. Return 0 if it doesn't exist. | |
DTBtiChip * | getBTI (int sl, int n) const |
Returns the required BTI. Return 0 if it doesn't exist. | |
LocalVector | localDirection (const DTTrigData *) const |
NEWGEO Local direction in chamber of a trigger-data object. | |
LocalPoint | localPosition (const DTTrigData *) const |
NEWGEO Local position in chamber of a trigger-data object. | |
virtual void | reconstruct (const DTDigiCollection dtDigis) |
void | setConfig (const DTConfigManager *conf) |
Set configuration. | |
DTBtiTrig * | storeTrigger (DTBtiTrigData) |
Returns a DTBtiTrig corresponding to a DTBtiTrigData. | |
~DTBtiCard () | |
Destructor. | |
Private Member Functions | |
DTBtiChip * | activeGetBTI (const DTBtiId &btiid) |
Returns the required DTBtiChip. Create it if it doesn't exist. | |
DTBtiChip * | activeGetBTI (int sl, int n) |
Returns the required DTBtiChip. Create it if it doesn't exist. | |
DTConfigBti * | config_bti (DTBtiId &btiid) const |
Return bti chip configuration. | |
void | loadBTI (const DTDigiCollection dtDigis) |
store digi's in DTBtiChip's | |
void | localClear () |
clear the BTI maps | |
void | runBTI () |
run DTBtiChip algorithm | |
Private Attributes | |
BTIContainer | _btimap [3] |
ConfBtiMap | _conf_bti_map |
bool | _debug |
DTTTrigBaseSync * | _digi_sync |
std::vector< DTDigi * > | _digis |
int | _finedelay |
int | _MCdelay |
Modifications: V/05 S.Vanini : modified to run with new geometry III/07 : SV configuration with DTConfigManager
Definition at line 61 of file DTBtiCard.h.
DTBtiCard::DTBtiCard | ( | DTTrigGeom * | geom, | |
DTTTrigBaseSync * | sync | |||
) |
Constructor.
Definition at line 61 of file DTBtiCard.cc.
00061 : 00062 DTGeomSupplier(geom), _digi_sync(sync) { 00063 00064 //_configBti = new DTConfigBti(bti_pset); 00065 //_configBti->print(); 00066 00067 //DTChamberId sid = ChamberId(); 00068 //_conf_bti_map = conf_manager->getDTConfigBtiMap(sid); 00069 //_debug = conf_manager->getDTTPGDebug(); 00070 00071 //_finedelay = conf_manager->getDTConfigTrigUnit(sid)->MCSetupTime(); 00072 //_MCdelay = conf_manager->getDTConfigTrigUnit(sid)->MCDigiOffset(); 00073 00074 }
DTBtiCard::~DTBtiCard | ( | ) |
Destructor.
Definition at line 80 of file DTBtiCard.cc.
References localClear().
00080 { 00081 00082 localClear(); 00083 //delete _conf_Bti; 00084 00085 }
Returns the required DTBtiChip. Create it if it doesn't exist.
Definition at line 118 of file DTBtiCard.h.
References activeGetBTI(), DTBtiId::bti(), and DTBtiId::superlayer().
00118 { 00119 return activeGetBTI(btiid.superlayer(),btiid.bti()); 00120 }
Returns the required DTBtiChip. Create it if it doesn't exist.
Definition at line 401 of file DTBtiCard.cc.
References _btimap, bti, config_bti(), GenMuonPlsPt100GeV_cfg::cout, DTConfigBti::debug(), debug(), DTCache< DTBtiTrigData > >::end(), lat::endl(), DTGeomSupplier::geom(), DTTrigGeom::nCell(), and DTTrigGeom::statId().
Referenced by activeGetBTI(), loadBTI(), and storeTrigger().
00401 { 00402 00403 DTBtiChip* bti=0; 00404 //check if BTi is out of range before all 00405 if( n<1 || n>geom()->nCell(sl) ){ 00406 if(debug()){ 00407 std::cout << "DTBtiCard::activeGetBTI :"; 00408 std::cout << " invalid bti number: " << n; 00409 std::cout << " not in range [1," << geom()->nCell(sl) << "]"; 00410 std::cout << " dummy BTI returned!" << std::endl; 00411 } 00412 sl = 1; 00413 n = 999; 00414 return bti; 00415 } 00416 00417 // get configuration for this chip Identifier 00418 DTChamberId sid = geom()->statId(); 00419 DTBtiId _id = DTBtiId(sid, sl, n); 00420 00421 //debug this chip 00422 int _debug_bti = config_bti(_id)->debug(); 00423 00424 if(_debug_bti==3){ 00425 std::cout << "DTBtiCard::activeGetBTI :"; 00426 std::cout << " bti number: " << n << std::endl; 00427 } 00428 00429 if( sl<1 || sl>3){ 00430 if(_debug_bti>1){ 00431 std::cout << "DTBtiCard::activeGetBTI :"; 00432 std::cout << " invalid superlayer number: " << sl; 00433 std::cout << " dummy BTI returned!" << std::endl; 00434 } 00435 sl = 1; 00436 n = 999; 00437 return bti; 00438 } 00439 00440 BTI_iter pbti = _btimap[sl-1].find(n); 00441 if( pbti!=_btimap[sl-1].end() ) { 00442 bti = (*pbti).second; 00443 } else { 00444 bti = new DTBtiChip(geom(),sl,n, config_bti(_id)); 00445 _btimap[sl-1][n]=bti; 00446 } 00447 return bti; 00448 }
Returns the active BTI list in a given superlayer.
Definition at line 466 of file DTBtiCard.cc.
References _btimap, DTCache< DTBtiTrigData > >::begin(), GenMuonPlsPt100GeV_cfg::cout, lat::endl(), p, and DTCache< DTBtiTrigData > >::size().
00466 { 00467 00468 std::vector<DTBtiChip*> blist; 00469 00470 if(size()<1)return blist; 00471 00472 if(sl<1||sl>3){ 00473 std::cout << "DTBtiCard::btiList :"; 00474 std::cout << " invalid superlayer number: " << sl; 00475 std::cout << " empty list returned" << std::endl; 00476 return blist; 00477 } 00478 00479 for(BTI_const_iter p=_btimap[sl-1].begin();p!=_btimap[sl-1].end();p++){ 00480 blist.push_back((*p).second); 00481 } 00482 return blist; 00483 00484 }
Clear all BTI stuff (map & cache).
Reimplemented from DTCache< DTBtiTrigData > >.
Definition at line 92 of file DTBtiCard.cc.
References DTCache< T, Coll >::clearCache(), and localClear().
Referenced by reconstruct(), and DTTrig::triggerReco().
00092 { 00093 00094 BTICache::clearCache(); 00095 localClear(); 00096 00097 }
DTConfigBti * DTBtiCard::config_bti | ( | DTBtiId & | btiid | ) | const [private] |
Return bti chip configuration.
Definition at line 671 of file DTBtiCard.cc.
References _conf_bti_map, DTBtiId::bti(), GenMuonPlsPt100GeV_cfg::cout, lat::endl(), DTBtiId::sector(), DTBtiId::station(), DTBtiId::superlayer(), and DTBtiId::wheel().
Referenced by activeGetBTI(), localDirection(), and localPosition().
00672 { 00673 //loop on map to find bti 00674 ConfBtiMap::const_iterator biter = _conf_bti_map.find(btiid); 00675 if (biter == _conf_bti_map.end()){ 00676 std::cout << "DTBtiCard::config_bti : BTI (" << btiid.wheel() 00677 << "," << btiid.sector() 00678 << "," << btiid.station() 00679 << "," << btiid.superlayer() 00680 << "," << btiid.bti() 00681 << ") not found, return 0" << std::endl; 00682 return 0; 00683 } 00684 00685 return const_cast<DTConfigBti*>(&(*biter).second); 00686 00687 }
bool DTBtiCard::debug | ( | ) | const [inline] |
Return TU debug flag.
Definition at line 79 of file DTBtiCard.h.
References _debug.
Referenced by activeGetBTI(), loadBTI(), localDirection(), localPosition(), and runBTI().
00079 {return _debug;}
Returns the required BTI. Return 0 if it doesn't exist.
Definition at line 85 of file DTBtiCard.h.
References DTBtiId::bti(), getBTI(), and DTBtiId::superlayer().
00085 { 00086 return getBTI(btiid.superlayer(),btiid.bti()); 00087 }
Returns the required BTI. Return 0 if it doesn't exist.
Definition at line 451 of file DTBtiCard.cc.
References _btimap, GenMuonPlsPt100GeV_cfg::cout, DTCache< DTBtiTrigData > >::end(), and lat::endl().
Referenced by getBTI().
00451 { 00452 if(sl<1||sl>3||n==999){ 00453 std::cout << "DTBtiCard::getBTI :"; 00454 std::cout << " invalid superlayer number: " << sl; 00455 std::cout << " 0 returned!" << std::endl; 00456 return 0; 00457 } 00458 BTI_const_iter pbti = _btimap[sl-1].find(n); 00459 if( pbti==_btimap[sl-1].end() ){ 00460 return 0; 00461 } 00462 return (*pbti).second; 00463 }
void DTBtiCard::loadBTI | ( | const DTDigiCollection | dtDigis | ) | [private] |
store digi's in DTBtiChip's
Definition at line 252 of file DTBtiCard.cc.
References _digi_sync, _digis, _finedelay, activeGetBTI(), DTBtiChip::add_digi(), GenMuonPlsPt100GeV_cfg::cout, debug(), lat::endl(), DTGeomSupplier::geom(), localClear(), DTTrigGeom::mapTubeInFEch(), DTTTrigBaseSync::offset(), DigiCosmics_cff::pdigi, range, DTGeomSupplier::sector(), DTGeomSupplier::station(), DTSuperLayerId::superlayer(), and DTGeomSupplier::wheel().
Referenced by reconstruct().
00252 { 00253 00254 localClear(); 00255 00256 if(debug()){ 00257 std::cout << "DTBtiCard::loadBTI called for wheel=" << wheel() ; 00258 std::cout << ", station=" << station(); 00259 std::cout << ", sector=" << sector() << std::endl; 00260 } 00261 00262 DTDigiCollection::DigiRangeIterator detUnitIt; 00263 for (detUnitIt=dtDigis.begin(); 00264 detUnitIt!=dtDigis.end(); 00265 ++detUnitIt){ 00266 00267 const DTLayerId& id = (*detUnitIt).first; 00268 const DTDigiCollection::Range& range = (*detUnitIt).second; 00269 00270 // DTLayerId print-out 00271 if(debug()){ 00272 std::cout<<"--------------"<<std::endl; 00273 std::cout<<"id: "<<id; 00274 } 00275 00276 // Loop over the digis of this DetUnit 00277 for (DTDigiCollection::const_iterator digiIt = range.first; 00278 digiIt!=range.second; 00279 ++digiIt){ 00280 00281 int tube = (*digiIt).wire(); 00282 const DTWireId tubeid(id,tube); 00283 float tdrift = (*digiIt).time() - _digi_sync->offset(tubeid); 00284 if (debug()){ 00285 std::cout << "digi time: " << (*digiIt).time(); 00286 std::cout << " sync offset: " << _digi_sync->offset(tubeid) << std::endl; 00287 } 00288 00289 if(tdrift<500 && tdrift>-500){ 00290 if(debug()) 00291 (*digiIt).print(); 00292 00293 // get bti number for access to the configuration for this bti chip : SV 00294 // FIX: for the moment take first bti configuration!!!!! ok fixed 00295 DTSuperLayerId slnum = id.superlayerId(); 00296 //DTChamberId dtcham =id.chamberId(); 00297 int sln = slnum.superlayer(); 00298 int layn = id.layer(); 00299 //int tube = (*digiIt).wire(); 00300 00301 // map in FE channel number: SL theta tubes are numbered inversely w.r.t. hardware setup in new geometry 19/06/06 00302 // assign ch numbers to btis: in new geometry does not depend on layer staggering anymore! Same staggering anywhere. 00303 //int nch = geom()->mapTubeInFEch(sln,layn,tube); 00304 // int nbti = nch + geom()->layerFEStaggering(sln,layn); 00305 00306 int nch = geom()->mapTubeInFEch(sln,layn,tube); 00307 int nbti = nch ; 00308 00309 if(debug()){ 00310 std::cout << "FE ch " << nch; 00311 std::cout << " of bti " << nbti; 00312 // std::cout << " staggering " << geom()->layerFEStaggering(sln,layn); 00313 std::cout << " now nbti is " << nch << std::endl; 00314 // std::cout << " SL phi offset " << geom()->phiSLOffset() << std::endl; 00315 } 00316 00317 // FIXED get configuration for the nbti chip Identifier, and from it MCdelay + finedelay 00318 //DTChamberId sid = geom()->statId(); 00319 //DTBtiId _id = DTBtiId(sid, sln, nbti); 00320 00321 tdrift = tdrift + _finedelay; 00322 // float tdrift = (*digiIt).time() - _MCdelay + _finedelay; 00323 // std::cout<<"tdrift "<< tdrift << " (*digiIt).wire() " << (*digiIt).wire() << std::endl; 00324 00325 DTDigi* pdigi = new DTDigi((*digiIt).wire(),tdrift); 00326 _digis.push_back(const_cast<DTDigi*>(pdigi) ); 00327 00328 00329 switch(layn) { 00330 case 1: 00331 if(activeGetBTI(sln, nbti )) activeGetBTI(sln, nbti )->add_digi(4, pdigi); 00332 if(activeGetBTI(sln, nbti-1)) activeGetBTI(sln, nbti-1)->add_digi(8, pdigi); 00333 break; 00334 case 2: 00335 if(activeGetBTI(sln, nbti )) activeGetBTI(sln, nbti )->add_digi(2, pdigi); 00336 if(activeGetBTI(sln, nbti-1)) activeGetBTI(sln, nbti-1)->add_digi(6, pdigi); 00337 break; 00338 case 3: 00339 if(activeGetBTI(sln, nbti )) activeGetBTI(sln, nbti )->add_digi(3, pdigi); 00340 if(activeGetBTI(sln, nbti-1)) activeGetBTI(sln, nbti-1)->add_digi(7, pdigi); 00341 break; 00342 case 4: 00343 if(activeGetBTI(sln, nbti )) activeGetBTI(sln, nbti )->add_digi(1, pdigi); 00344 if(activeGetBTI(sln, nbti-1)) activeGetBTI(sln, nbti-1)->add_digi(5, pdigi); 00345 if(activeGetBTI(sln, nbti-2)) activeGetBTI(sln, nbti-2)->add_digi(9, pdigi); 00346 break; 00347 } 00348 }//end loop on digi 00349 // }//end loop on lay 00350 // }//end loop on sl 00351 } 00352 } 00353 }
void DTBtiCard::localClear | ( | ) | [private] |
clear the BTI maps
Definition at line 111 of file DTBtiCard.cc.
References _btimap, _digis, DTCache< DTBtiTrigData > >::begin(), i, and p.
Referenced by clearCache(), loadBTI(), and ~DTBtiCard().
00111 { 00112 // Clear the maps 00113 for(int i=0; i<3; i++){ 00114 for(BTI_iter p=_btimap[i].begin();p!=_btimap[i].end();p++){ 00115 delete (*p).second; 00116 } 00117 _btimap[i].clear(); 00118 } 00119 00120 //clear digis 00121 std::vector<DTDigi*>::const_iterator p; 00122 for(p=_digis.begin();p<_digis.end();p++) 00123 delete (*p); 00124 _digis.clear(); 00125 }
LocalVector DTBtiCard::localDirection | ( | const DTTrigData * | tr | ) | const [virtual] |
NEWGEO Local direction in chamber of a trigger-data object.
Implements DTGeomSupplier.
Definition at line 595 of file DTBtiCard.cc.
References DTBtiTrigData::btiSL(), DTTrigGeom::cellH(), DTTrigGeom::cellPitch(), config_bti(), funct::cos(), GenMuonPlsPt100GeV_cfg::cout, debug(), lat::endl(), DTGeomSupplier::geom(), DTBtiTrigData::K(), DTTrigGeom::localPosition(), DTBtiTrigData::parentId(), DTBtiTrigData::print(), funct::sin(), DTConfigBti::ST(), x, y, and z.
00595 { 00596 //NEWGEO 00597 DTBtiTrigData* trig = dynamic_cast<DTBtiTrigData*>(const_cast<DTTrigData*>(tr)); 00598 //this method is only for check purpose 00599 if(!trig) { 00600 std::cout << "DTBtiCard::localDirection called with wrong argument!" << std::endl; 00601 return LocalVector(0,0,0); 00602 } 00603 00604 //FE position 00605 //int FE = geom()->posFE(trig->parentId().superlayer()); 00606 00607 // psi in BTI frame 00608 DTBtiId _btiid = trig->parentId(); 00609 float psi = atan((float)(trig->K() - config_bti(_btiid)->ST())*geom()->cellPitch() 00610 /(2*geom()->cellH() * config_bti(_btiid)->ST())); 00611 // (xd,yd,zd) in chamber frame 00612 float xd=0; 00613 float yd=0; 00614 float zd=-cos(psi); 00615 if(trig->btiSL()==2) 00616 yd = sin(psi); 00617 else 00618 xd = -sin(psi); 00619 00620 // 17/07/06 Ths should be obsolete in CMSSW 00621 // if(FE==1){//FE in negative y 00622 // xd = - xd; 00623 // yd = - yd; 00624 // } 00625 00626 if(debug()){ 00627 //BTI position in chamber frame 00628 float xb = geom()->localPosition(trig->parentId()).x(); 00629 float yb = geom()->localPosition(trig->parentId()).y(); 00630 float zb = geom()->localPosition(trig->parentId()).z(); 00631 00632 std::cout << "DTBtiCard::localDirection of BTI in ("<<xb<<","<<yb<<","<<zb<<")"<<std::endl; 00633 std::cout << " called for trig "; 00634 trig->print(); 00635 std::cout << "in Local Direction ("<<xd<<","<<yd<<","<<zd<<")"<<std::endl; 00636 } 00637 00638 return LocalVector(xd,yd,zd); 00639 }
LocalPoint DTBtiCard::localPosition | ( | const DTTrigData * | tr | ) | const [virtual] |
NEWGEO Local position in chamber of a trigger-data object.
Implements DTGeomSupplier.
Definition at line 548 of file DTBtiCard.cc.
References DTBtiTrigData::btiSL(), DTTrigGeom::cellPitch(), config_bti(), GenMuonPlsPt100GeV_cfg::cout, debug(), lat::endl(), DTGeomSupplier::geom(), DTTrigGeom::localPosition(), DTBtiTrigData::parentId(), DTTrigGeom::posFE(), DTBtiTrigData::print(), DTConfigBti::ST(), DTBtiId::superlayer(), DTBtiTrigData::X(), x, y, and z.
00548 { 00549 //NEWGEO!!! 00550 DTBtiTrigData* trig = dynamic_cast<DTBtiTrigData*>(const_cast<DTTrigData*>(tr)); 00551 if(!trig) { 00552 std::cout << "DTBtiCard::localPosition called with wrong argument!" << std::endl; 00553 return LocalPoint(0,0,0); 00554 } 00555 00556 //BTI position in chamber frame 00557 float x = geom()->localPosition(trig->parentId()).x(); 00558 float y = geom()->localPosition(trig->parentId()).y(); 00559 float z = geom()->localPosition(trig->parentId()).z(); 00560 00561 //FE position 00562 int FE = geom()->posFE(trig->parentId().superlayer()); 00563 00564 //trigger position in the BTI frame 00565 float xt = 0; 00566 float yt = 0; 00567 00568 DTBtiId _btiid = trig->parentId(); 00569 float xtrig = (float)trig->X() * geom()->cellPitch() / (config_bti(_btiid)->ST()); 00570 if(trig->btiSL()==2) 00571 yt = - xtrig; 00572 else 00573 xt = + xtrig; 00574 00575 // 17/07/06 Should be obsolete in CMSSW 00576 // if(FE==1){//FE in negative y 00577 // xt = - xt; 00578 // yt = - yt; 00579 // } 00580 00581 00582 00583 if(debug()){ 00584 std::cout << "DTBtiCard::localPosition of BTI in ("<<x<<","<<y<<","<<z<<")"<<std::endl; 00585 std::cout << " called for trig "; 00586 trig->print(); 00587 std::cout << "in Local Point ("<<x+xt<<","<<y+yt<<","<<z<<")"<<std::endl; 00588 } 00589 00590 return LocalPoint(x+xt,y+yt,z); 00591 }
virtual void DTBtiCard::reconstruct | ( | const DTDigiCollection | dtDigis | ) | [inline, virtual] |
Definition at line 104 of file DTBtiCard.h.
References clearCache(), loadBTI(), and runBTI().
Referenced by DTTrig::triggerReco().
00104 { clearCache();loadBTI(dtDigis); runBTI(); }
void DTBtiCard::runBTI | ( | ) | [private] |
run DTBtiChip algorithm
Definition at line 356 of file DTBtiCard.cc.
References _btimap, DTCache< DTBtiTrigData > >::_cache, DTCache< DTBtiTrigData > >::begin(), bti, GenMuonPlsPt100GeV_cfg::cout, debug(), lat::endl(), DTConfig::NSTEPF, DTConfig::NSTEPL, DTBtiChip::nTrig(), DTBtiChip::number(), DTBtiChip::run(), DTGeomSupplier::sector(), DTCache< DTBtiTrigData > >::size(), sl, DTGeomSupplier::station(), cmsRelvalreportInput::step, DTBtiChip::triggerData(), and DTGeomSupplier::wheel().
Referenced by reconstruct().
00356 { 00357 00358 int nbtisig = _btimap[0].size()+_btimap[1].size()+_btimap[2].size(); 00359 00360 if(debug()){ 00361 std::cout << "DTBtiCard::runBTI called for wheel=" << wheel() ; 00362 std::cout << ", station=" << station(); 00363 std::cout << ", sector=" << sector(); 00364 std::cout << ", " << nbtisig 00365 << " BTIs with signal" << std::endl; 00366 } 00367 00368 if( nbtisig){ 00369 00370 if(debug()){ 00371 std::cout << "====================================================" << std::endl; 00372 std::cout << " BTI triggers " << std::endl; 00373 } 00374 00375 00376 // run DTBtiChip algorithm on all non-empty BTI 00377 for(int sl=1;sl<=3;sl++){ 00378 if(_btimap[sl-1].size()>0){ 00379 BTI_iter pbti; 00380 for(pbti=_btimap[sl-1].begin(); pbti!=_btimap[sl-1].end(); pbti++) { 00381 DTBtiChip* bti = (*pbti).second; 00382 if(bti->number()<200) 00383 bti->run(); 00384 for(int step=DTConfig::NSTEPF; step<=DTConfig::NSTEPL; step++){ 00385 if(bti->nTrig(step)>0) { 00386 _cache.push_back( bti->triggerData(step,1) ); 00387 //localPosition(&(bti->triggerData(step,1))); 00388 //localDirection(&(bti->triggerData(step,1))); 00389 } 00390 } 00391 } 00392 } 00393 } 00394 00395 if(debug()) 00396 std::cout << "====================================================" << std::endl; 00397 }//end if(nbtisig) 00398 }
void DTBtiCard::setConfig | ( | const DTConfigManager * | conf | ) |
Set configuration.
Definition at line 100 of file DTBtiCard.cc.
References _conf_bti_map, _debug, _finedelay, DTGeomSupplier::ChamberId(), DTConfigManager::getDTConfigBtiMap(), DTConfigManager::getDTConfigTrigUnit(), DTConfigManager::getDTTPGDebug(), and DTConfigTrigUnit::MCSetupTime().
Referenced by DTSCTrigUnit::setConfig().
00100 { 00101 00102 DTChamberId sid = ChamberId(); 00103 _conf_bti_map = conf->getDTConfigBtiMap(sid); 00104 _debug = conf->getDTTPGDebug(); 00105 _finedelay = conf->getDTConfigTrigUnit(sid)->MCSetupTime(); 00106 00107 }
DTBtiTrig * DTBtiCard::storeTrigger | ( | DTBtiTrigData | td | ) |
Returns a DTBtiTrig corresponding to a DTBtiTrigData.
Creates the corresponding BTI chip if needed and stores the trigger
Definition at line 487 of file DTBtiCard.cc.
References activeGetBTI(), DTBtiChip::addTrig(), DTBtiId::bti(), bti, GenMuonPlsPt100GeV_cfg::cout, DTBtiTrigData::parentId(), DTGeomSupplier::sector(), DTBtiId::sector(), DTGeomSupplier::station(), DTBtiId::station(), DTBtiTrigData::step(), DTBtiId::superlayer(), DTBtiId::wheel(), and DTGeomSupplier::wheel().
00487 { 00488 DTBtiId btiid = td.parentId(); 00489 if(!(btiid.wheel()==wheel() && 00490 btiid.sector()==sector() && 00491 btiid.station()==station()) ) return 0; 00492 std::cout << "DTBtiCard::trigger: trigger not belonging to this card! "; 00493 std::cout << "card=(" << wheel() << "," << station() << "," << sector() << ") "; 00494 std::cout << "trig=(" << btiid.wheel() << "," << btiid.station() << "," 00495 << btiid.sector() << ")"; 00496 // get the appropriate BTI 00497 DTBtiChip* bti = activeGetBTI(btiid.superlayer(), btiid.bti()); 00498 // create a new trigger in the BTI 00499 DTBtiTrig* trig = new DTBtiTrig(bti,td); 00500 // add the trigger to the BTI 00501 bti->addTrig(td.step(),trig); 00502 // return the trigger 00503 return trig; 00504 }
BTIContainer DTBtiCard::_btimap[3] [private] |
Definition at line 131 of file DTBtiCard.h.
Referenced by activeGetBTI(), btiList(), getBTI(), localClear(), and runBTI().
ConfBtiMap DTBtiCard::_conf_bti_map [private] |
bool DTBtiCard::_debug [private] |
DTTTrigBaseSync* DTBtiCard::_digi_sync [private] |
std::vector<DTDigi*> DTBtiCard::_digis [private] |
int DTBtiCard::_finedelay [private] |
int DTBtiCard::_MCdelay [private] |
Definition at line 139 of file DTBtiCard.h.