#include <L1Trigger/DTUtilities/interface/DTTrigGeom.h>
Public Member Functions | |
float | cellH () const |
Height of a cell (cm). | |
float | cellPitch () const |
Width of a cell (cm) i.e. distance between ywo wires. | |
GlobalPoint | CMSPosition (const DTTracoId obj) const |
CMS position of a TRACO. | |
GlobalPoint | CMSPosition (const DTBtiId obj) const |
CMS position of a BTI. | |
float | distSL () const |
Distance between the phi view superlayers (cms). | |
DTTrigGeom (DTChamber *stat, bool debug) | |
Constructor. | |
void | dumpGeom () const |
Dump the geometry. | |
LocalPoint | localPosition (const DTTracoId) const |
Local position in chamber of a TRACO. | |
LocalPoint | localPosition (const DTBtiId) const |
Local position in chamber of a BTI. | |
int | mapTubeInFEch (int nsl, int nlay, int ntube) const |
Staggering of first wire of layer respect to default: obsolete 19/6/06. | |
int | nCell (int sl) const |
Number of BTIs in a required superlayer (i.e. nCells in lay 1). | |
float | phiCh () const |
Rotation angle of chamber (deg). | |
float | phiSLOffset () |
Superlayer offset in chamber front-end frame, in cm. | |
int | posFE (int sl) const |
Front End position : 1=toward negative y, 0=toward positive y. | |
int | sector () const |
Return sector number. | |
void | setGeom (const DTChamber *stat) |
Set/Update Geometry. | |
const DTChamber * | stat () const |
Associated chamber. | |
DTChamberId | statId () const |
Identifier of the associated chamber. | |
int | station () const |
Return station number. | |
GlobalVector | toGlobal (const LocalVector v) const |
Go to CMS coordinate system for a vector. | |
GlobalPoint | toGlobal (const LocalPoint p) const |
Go to CMS coordinate system for a point. | |
LocalVector | toLocal (const GlobalVector v) const |
Go to Local coordinate system for a vector. | |
LocalPoint | toLocal (const GlobalPoint p) const |
Go to Local coordinate system for a point. | |
LocalPoint | tubePosInCh (int nsl, int nlay, int ntube) const |
Wire position in chamber frame. | |
int | wheel () const |
Return wheel number. | |
float | ZcenterSL () const |
Coordinate of center of the 2 Phi SL. | |
float | ZSL (int) const |
Radial coordinate in chamber frame of center of a superlayer. | |
~DTTrigGeom () | |
Destructor. | |
Private Member Functions | |
void | getGeom () |
Get the geometry from the station. | |
Private Attributes | |
bool | _debug |
float | _H |
int | _NCELL [3] |
float | _PHICH |
float | _PITCH |
const DTChamber * | _stat |
float | _ZSL [3] |
Definition at line 43 of file DTTrigGeom.h.
DTTrigGeom::~DTTrigGeom | ( | ) |
float DTTrigGeom::cellH | ( | ) | const [inline] |
Height of a cell (cm).
Definition at line 77 of file DTTrigGeom.h.
References _H.
Referenced by DTBtiChip::DTBtiChip(), DTBtiCard::localDirection(), localPosition(), DTTracoChip::setTracoAcceptances(), DTTracoChip::storeCorr(), and DTTracoChip::storeUncorr().
00077 { return _H; }
float DTTrigGeom::cellPitch | ( | ) | const [inline] |
Width of a cell (cm) i.e. distance between ywo wires.
Definition at line 80 of file DTTrigGeom.h.
References _PITCH.
Referenced by DTBtiChip::DTBtiChip(), DTTracoChip::DTTracoChip(), DTBtiCard::localDirection(), DTTracoCard::localDirection(), DTTracoCard::localPosition(), DTBtiCard::localPosition(), localPosition(), and DTTracoChip::setTracoAcceptances().
00080 { return _PITCH; }
GlobalPoint DTTrigGeom::CMSPosition | ( | const DTTracoId | obj | ) | const [inline] |
CMS position of a TRACO.
Definition at line 189 of file DTTrigGeom.h.
References localPosition(), and toGlobal().
00189 { 00190 return toGlobal(localPosition(obj)); 00191 }
GlobalPoint DTTrigGeom::CMSPosition | ( | const DTBtiId | obj | ) | const [inline] |
CMS position of a BTI.
Definition at line 184 of file DTTrigGeom.h.
References localPosition(), and toGlobal().
Referenced by DTTracoChip::CMSPosition(), DTBtiChip::CMSPosition(), DTBtiChip::DTBtiChip(), and dumpGeom().
00184 { 00185 return toGlobal(localPosition(obj)); 00186 }
float DTTrigGeom::distSL | ( | ) | const [inline] |
Distance between the phi view superlayers (cms).
Definition at line 83 of file DTTrigGeom.h.
References _ZSL.
Referenced by getGeom(), DTTracoCard::localDirection(), DTTracoCard::localPosition(), DTTracoChip::setTracoAcceptances(), DTTracoChip::storeCorr(), and DTTracoChip::storeUncorr().
void DTTrigGeom::dumpGeom | ( | ) | const |
Dump the geometry.
Definition at line 275 of file DTTrigGeom.cc.
References _stat, CMSPosition(), GenMuonPlsPt100GeV_cfg::cout, lat::endl(), gp1, localPosition(), PV3DBase< T, PVType, FrameType >::mag(), nCell(), PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), phiCh(), sector(), statId(), station(), GeomDet::toGlobal(), tubePosInCh(), wheel(), PV3DBase< T, PVType, FrameType >::z(), and ZSL().
Referenced by DTSCTrigUnit::dumpGeom().
00275 { 00276 std::cout << "Identification: wheel=" << wheel(); 00277 std::cout << ", station=" << station(); 00278 std::cout << ", sector=" << sector() << std::endl; 00279 GlobalPoint pp = _stat->toGlobal(LocalPoint(0,0,0)); 00280 std::cout << "Position: Mag=" << pp.mag() << "cm, Phi=" << pp.phi()*180/3.14159; 00281 std::cout << " deg, Z=" << pp.z() << " cm" << std::endl; 00282 std::cout << "Rotation: ANGLE=" << phiCh()*180/3.14159 << std::endl; 00283 std::cout << "Z of superlayers: phi=" << ZSL(1) << ", "; 00284 std::cout << ZSL(3) << " theta=" << ZSL(2) << std::endl; 00285 std::cout << "Number of cells: SL1=" << nCell(1) << " SL2=" << nCell(2) << 00286 " SL3=" << nCell(3) << std::endl; 00287 std::cout << "First wire positions:" << std::endl; 00288 int ii=0; 00289 int jj=0; 00290 for( ii = 1; ii<=3; ii++ ) { 00291 if(station()!=4||ii!=2){ 00292 for ( jj =1; jj<=4; jj++ ) { 00293 std::cout << " SL=" << ii << ", lay=" << jj << ", wire 1 position="; 00294 if ( jj ==4) 00295 std::cout << tubePosInCh( ii, jj, 2) << std::endl; 00296 else 00297 std::cout << tubePosInCh( ii, jj, 1) << std::endl; 00298 } 00299 } 00300 } 00301 00302 GlobalPoint gp1 = CMSPosition(DTBtiId(statId(),1,1)); 00303 00304 00305 std::cout << "First BTI position:"; 00306 std::cout << " SL1:" << localPosition(DTBtiId(statId(),1,1)) << std::endl; 00307 std::cout << " Position: R=" << gp1.perp() << "cm, Phi=" << gp1.phi()*180/3.14159 << " deg, Z=" << gp1.z() << " cm" << std::endl; 00308 00309 if(station()!=4) 00310 { 00311 GlobalPoint gp2 = CMSPosition(DTBtiId(statId(),2,1)); 00312 std::cout << " SL2:" << localPosition(DTBtiId(statId(),2,1))<< std::endl; 00313 std::cout << " Position: R=" << gp2.perp() << "cm, Phi=" << gp2.phi()*180/3.14159 << " deg, Z=" << gp2.z() << " cm" << std::endl; 00314 } 00315 00316 GlobalPoint gp3 = CMSPosition(DTBtiId(statId(),3,1)); 00317 std::cout << " SL3:" << localPosition(DTBtiId(statId(),3,1)) << std::endl; 00318 std::cout << " Position: R=" << gp3.perp() << "cm, Phi=" << gp3.phi()*180/3.14159 << " deg, Z=" << gp3.z() << " cm" << std::endl; 00319 00320 std::cout << "First TRACO position:"; 00321 std::cout << localPosition(DTTracoId(statId(),1)) << std::endl; 00322 std::cout << "******************************************************" << std::endl; 00323 }
void DTTrigGeom::getGeom | ( | ) | [private] |
Get the geometry from the station.
Definition at line 207 of file DTTrigGeom.cc.
References _debug, _H, _NCELL, _PHICH, _PITCH, _stat, _ZSL, DTTopology::channels(), GenMuonPlsPt100GeV_cfg::cout, distSL(), lat::endl(), DTTopology::firstChannel(), i, l1, l3, PV3DBase< T, PVType, FrameType >::mag(), nCell(), PV3DBase< T, PVType, FrameType >::phi(), phiCh(), sector(), sl, DTLayer::specificTopology(), statId(), station(), DTChamber::superLayer(), GeomDet::surface(), toGlobal(), Surface::toGlobal(), GeomDet::toGlobal(), GloballyPositioned< T >::toLocal(), tp, wheel(), DTTopology::wirePosition(), PV3DBase< T, PVType, FrameType >::z(), and ZSL().
Referenced by DTTrigGeom(), and setGeom().
00207 { 00208 00209 // Geometrical constants of chamber 00210 // Cell width (cm) 00211 _PITCH = 4.2; 00212 // Cell height (cm) 00213 _H = 1.3; 00214 // azimuthal angle of normal to the chamber 00215 _PHICH = _stat->surface().toGlobal(LocalVector(0,0,-1)).phi(); 00216 00217 // superlayer positions and number of cells 00218 DTSuperLayer* sl[3]; 00219 DTLayer* l1[3]; 00220 DTLayer* l3[3]; 00221 int i = 0; 00222 for(i=0; i<3; i++) { 00223 if(station()==4&&i==1) { // No theta SL in MB4 00224 _ZSL[i] = -999; 00225 _NCELL[i] = 0; 00226 } else { 00227 sl[i] = (DTSuperLayer*) _stat->superLayer(DTSuperLayerId(statId(),i+1)); 00228 l1[i] = (DTLayer*) sl[i]->layer(DTLayerId(statId(),i+1,1)); 00229 l3[i] = (DTLayer*) sl[i]->layer(DTLayerId(statId(),i+1,3)); 00230 _ZSL[i] = _stat->surface().toLocal(sl[i]->position()).z(); // - 1.5 * _H; 00231 //LocalPoint posInLayer=l1[i]->layType()->getWire(1)->positionInLayer(); 00232 const DTTopology& tp=l1[i]->specificTopology(); 00233 float posX=tp.wirePosition(tp.firstChannel()); 00234 LocalPoint posInLayer(posX,0,0); 00235 LocalPoint posInChamber=_stat->surface().toLocal(l1[i]->surface().toGlobal(posInLayer)); 00236 _NCELL[i] = l1[i]->specificTopology().channels(); 00237 } 00238 } 00239 00240 // debugging 00241 if(_debug){ 00242 std::cout << setiosflags(std::ios::showpoint | std::ios::fixed) << std::setw(4) << 00243 std::setprecision(1); 00244 std::cout << "Identification: wheel=" << wheel(); 00245 std::cout << ", station=" << station(); 00246 std::cout << ", sector=" << sector() << std::endl; 00247 GlobalPoint pp = _stat->toGlobal(LocalPoint(0,0,0)); 00248 std::cout << "Position: Mag=" << pp.mag() << "cm, Phi=" << pp.phi()*180/3.14159; 00249 std::cout << " deg, Z=" << pp.z() << " cm" << std::endl; 00250 std::cout << "Rotation: ANGLE=" << phiCh()*180/3.14159 << std::endl; 00251 //if(wheel()==2&§or()==2){ // only 1 sector-wheel 00252 std::cout << "Z of superlayers: phi=" << ZSL(1) << ", "; 00253 std::cout << ZSL(3) << " theta=" << ZSL(2); 00254 std::cout << " (DeltaY = " << distSL() << ")" << std::endl; 00255 std::cout << " ncell: sl 1 " << nCell(1) << " sl 2 " << nCell(2) << 00256 " sl 3 " << nCell(3) << std::endl; 00257 //} 00258 } 00259 // end debugging 00260 00261 }
LocalPoint DTTrigGeom::localPosition | ( | const | DTTracoId | ) | const |
Local position in chamber of a TRACO.
NB: attention: in NEWGEO definition has changed: +----+----+----+----+----+----+----+----+----+----+----+----+ | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | +----+----+----+----+----+----+----+----+----+----+----+----+ \ / | \ / | \ / | \ / | \ / ----|-------------------------------------------------------------------> | \ / | \ / | \ / | \ / | \ / | +----+----+----+----+ | | 1 | 2 | 3 | 4 | | +----+----+----+----+ X=0 ^ | traco position
Definition at line 388 of file DTTrigGeom.cc.
References cellPitch(), localPosition(), DTConfig::NBTITC, sector(), station(), wheel(), PV3DBase< T, PVType, FrameType >::x(), x, y, z, and ZcenterSL().
00388 { 00389 /* obsolete 00390 float x = Xwire1BTI1SL(1) + 00391 ( ( (float)(id.traco()) - 0.5 ) * DTConfig::NBTITC - 0.5 )*cellPitch(); 00392 // half cell shift in SL1 of MB1 (since cmsim116) 00393 if(station()==1) x -= 0.5*cellPitch(); 00394 float y = 0; 00395 float z = ZcenterSL(); 00396 */ 00397 //NEWGEO 00398 // position of first BTI in sl 3 on X 00399 float x = localPosition( DTBtiId(DTSuperLayerId(wheel(),station(),sector(),3),1) ).x(); 00400 // 10/7/06 May be not needed anymore in new geometry 00401 // if(posFE(3)==1) 00402 // x -= (id.traco()-2)*DTConfig::NBTITC * cellPitch(); 00403 // if(posFE(3)==0) 00404 x += (id.traco()-2)*DTConfig::NBTITC * cellPitch(); 00405 00406 float y = 0; 00407 float z = ZcenterSL(); 00408 00409 return LocalPoint(x,y,z); 00410 }
LocalPoint DTTrigGeom::localPosition | ( | const | DTBtiId | ) | const |
Local position in chamber of a BTI.
NB: attention: in NEWGEO definition has changed: +---------+---------+---------+ | 1 o | 5 o | 9 o | +----+----+----+----+----+----+ | 3 o | 7 o | +----+----+----+----+----+ - - - -> x/-x | 2 o | 6 o | +----+----+----+----+----+ | 4 o | 8 o | +---------+---------+ ^ | x=0
Definition at line 327 of file DTTrigGeom.cc.
References _stat, cellH(), cellPitch(), DTSuperLayer::layer(), sl, DTLayer::specificTopology(), statId(), DTChamber::superLayer(), GeomDet::surface(), GeomDet::toGlobal(), GloballyPositioned< T >::toLocal(), and DTTopology::wirePosition().
Referenced by CMSPosition(), dumpGeom(), DTBtiCard::localDirection(), DTTracoChip::localPosition(), DTTracoCard::localPosition(), DTBtiCard::localPosition(), localPosition(), and DTBtiChip::localPosition().
00327 { 00328 /* obsolete! 00329 float x = 0; 00330 float y = 0; 00331 float z = ZSL(id.superlayer()); 00332 if(id.superlayer()==2){ 00333 // SL 2: Reverse numbering -------V 00334 y = Xwire1BTI1SL(id.superlayer()) - ((float)(id.bti()-1)-0.5)*cellPitch(); 00335 } else { 00336 x = Xwire1BTI1SL(id.superlayer()) + ((float)(id.bti()-1)-0.5)*cellPitch(); 00337 } 00338 */ 00339 00340 //NEWGEO 00341 /* int nsl = id.superlayer(); 00342 int tube = mapTubeInFEch(nsl,1,id.bti()); 00343 LocalPoint p = tubePosInCh(nsl,1,tube); 00344 //traslation because z axes is in middle of SL, x/y axes on left I of first cell 00345 00346 LocalPoint p1 = tubePosInCh (nsl,1,1); 00347 LocalPoint p2 = tubePosInCh (nsl,2,1); 00348 cout << "nbti " << id.bti() << " tube " << tube << " localpoint" << p << endl; 00349 cout << "localpoint layer 1" << p1 << " localpoint layer 2" << p2 << endl; 00350 00351 float xt = 0; 00352 float yt = 0; 00353 float zt = - cellH() * 3./2.; 00354 if(nsl==2) 00355 yt = - cellPitch()/2.; 00356 else 00357 xt = + cellPitch()/2.; 00358 00359 if(posFE(nsl)==0){//FE in positive y 00360 xt = - xt; 00361 yt = - yt; 00362 } 00363 00364 cout << "localpoint " << p << ' ' << xt << ' ' << yt << endl; 00365 00366 return LocalPoint(p.x()+xt,p.y()+yt,p.z()+zt);*/ 00367 00368 int nsl = id.superlayer(); 00369 const DTSuperLayer* sl = _stat->superLayer(DTSuperLayerId(statId(),nsl)); 00370 const DTLayer* lay = sl->layer(DTLayerId(statId(),nsl,1)); 00371 int tube = id.bti(); 00372 float localX = lay->specificTopology().wirePosition(tube); 00373 float xt = -cellPitch()/2.; 00374 float zt = -cellH() * 3./2.; 00375 //LocalPoint posInLayer1(localX+xt,yt,0); //Correction now y is left I of first cell of layer 1 y=0 and z in the middle of SL, 00376 LocalPoint posInLayer1(localX+xt,0,zt); 00377 LocalPoint posInChamber = _stat->surface().toLocal(lay->toGlobal(posInLayer1)); 00378 //GlobalPoint posInCMS = lay->toGlobal(posInLayer1); 00379 00380 /* cout <<endl; 00381 cout << "tube " << ntube << " nlay " << nlay << endl; 00382 cout << "posinlayer " << posInLayer1 << "posinchamb " << posInChamber << "posinCMS " << posInCMS << endl;*/ 00383 00384 return posInChamber; 00385 }
Staggering of first wire of layer respect to default: obsolete 19/6/06.
Map tube number into hw wire number, and reverse hw num->tube (nb NOT in bti hardware number, this depends on connectors)
Definition at line 140 of file DTTrigGeom.cc.
References GenMuonPlsPt100GeV_cfg::cout, lat::endl(), and station().
Referenced by DTBtiCard::loadBTI().
00140 { 00141 int nch = 0; 00142 if(station()==4 && nsl==2){ 00143 std::cout << "No theta superlayer in station 4!" << std::endl; 00144 } 00145 else{ 00146 // obsolete 19/06/2006 const DTLayer* lay = _stat->superLayer(DTSuperLayerId(statId(),nsl))->layer(DTLayerId(statId(),nsl,nlay)); 00147 00148 /* obsolete 19/6/06 00149 if(lay->getFEPosition()==0) //FE is in Y negative: opposite numbering 00150 nch = lay->specificTopology().channels() - ntube + 1; 00151 // if(lay->getFEPosition()==1) //FE is in Y positive: same numbering digi-trig 00152 // nch = ntube; 00153 // } 00154 */ 00155 // in new geometry depends on SL: theta tube numbering is reverted wrt hardware 00156 nch =ntube; 00157 /* if(nsl==2){ 00158 nch = lay->specificTopology().channels() - ntube + 1; 00159 }*/ 00160 } 00161 return nch; 00162 }
Number of BTIs in a required superlayer (i.e. nCells in lay 1).
Definition at line 92 of file DTTrigGeom.h.
References _NCELL.
Referenced by DTBtiCard::activeGetBTI(), DTBtiChip::add_digi(), dumpGeom(), getGeom(), and DTBtiChip::run().
float DTTrigGeom::phiCh | ( | ) | const [inline] |
Rotation angle of chamber (deg).
Definition at line 74 of file DTTrigGeom.h.
References _PHICH.
Referenced by DTTracoChip::calculateAngles(), dumpGeom(), and getGeom().
00074 { return _PHICH; }
float DTTrigGeom::phiSLOffset | ( | ) |
Superlayer offset in chamber front-end frame, in cm.
Definition at line 67 of file DTTrigGeom.cc.
References offset, tubePosInCh(), and PV3DBase< T, PVType, FrameType >::x().
Referenced by DTTracoChip::DTTracoChip(), and DTTracoChip::setTracoAcceptances().
00067 { 00068 //sl1 offset respect to sl3 - in Front End view!! 00069 float x1 = tubePosInCh(1,1,1).x(); 00070 float x3 = tubePosInCh(3,1,1).x(); 00071 float offset = x1-x3; 00072 // if(posFE(1)==1) // Obsolete in 00073 // offset = - offset; // CMSSW 00074 00075 return offset; 00076 }
Front End position : 1=toward negative y, 0=toward positive y.
Definition at line 187 of file DTTrigGeom.cc.
References GenMuonPlsPt100GeV_cfg::cout, lat::endl(), and station().
Referenced by DTBtiCard::localPosition().
00187 { 00188 if( station()!=4 || sl!=2 ) { 00189 // obsolete 19/0602006 const DTLayer* lay = _stat->superLayer(DTSuperLayerId(statId(),sl))->layer(DTLayerId(statId(),sl,1)); 00190 return 1/*lay->getFEPosition()*/; 00191 } 00192 else{ 00193 std::cout << "No theta superlayer in station 4!" << std::endl; 00194 return 0; 00195 } 00196 }
Return sector number.
Definition at line 69 of file DTTrigGeom.h.
References _stat, DTChamber::id(), and DTChamberId::sector().
Referenced by dumpGeom(), getGeom(), localPosition(), DTSCTrigUnit::sector(), DTBtiChip::sector(), DTTracoChip::sector(), and DTGeomSupplier::sector().
Set/Update Geometry.
Definition at line 199 of file DTTrigGeom.cc.
References _stat, and getGeom().
Referenced by DTSCTrigUnit::setGeom().
const DTChamber* DTTrigGeom::stat | ( | ) | const [inline] |
Associated chamber.
Definition at line 54 of file DTTrigGeom.h.
References _stat.
Referenced by DTGeomSupplier::stat(), and DTSCTrigUnit::stat().
00054 { return _stat; }
DTChamberId DTTrigGeom::statId | ( | ) | const [inline] |
Identifier of the associated chamber.
Definition at line 57 of file DTTrigGeom.h.
References _stat, and DTChamber::id().
Referenced by DTBtiCard::activeGetBTI(), DTTracoCard::activeGetTRACO(), DTGeomSupplier::ChamberId(), DTTracoCard::config_traco(), DTBtiChip::DTBtiChip(), DTTracoChip::DTTracoChip(), dumpGeom(), getGeom(), localPosition(), DTSCTrigUnit::statId(), and tubePosInCh().
int DTTrigGeom::station | ( | ) | const [inline] |
Return station number.
Definition at line 66 of file DTTrigGeom.h.
References _stat, DTChamber::id(), and DTChamberId::station().
Referenced by dumpGeom(), getGeom(), localPosition(), mapTubeInFEch(), posFE(), DTGeomSupplier::station(), DTTracoChip::station(), DTSCTrigUnit::station(), and DTBtiChip::station().
GlobalVector DTTrigGeom::toGlobal | ( | const LocalVector | v | ) | const [inline] |
Go to CMS coordinate system for a vector.
Definition at line 120 of file DTTrigGeom.h.
References _stat, GeomDet::surface(), and Surface::toGlobal().
GlobalPoint DTTrigGeom::toGlobal | ( | const LocalPoint | p | ) | const [inline] |
Go to CMS coordinate system for a point.
Definition at line 117 of file DTTrigGeom.h.
References _stat, GeomDet::surface(), and Surface::toGlobal().
Referenced by DTGeomSupplier::CMSDirection(), DTGeomSupplier::CMSPosition(), CMSPosition(), and getGeom().
LocalVector DTTrigGeom::toLocal | ( | const GlobalVector | v | ) | const [inline] |
Go to Local coordinate system for a vector.
Definition at line 126 of file DTTrigGeom.h.
References _stat, GeomDet::surface(), and GloballyPositioned< T >::toLocal().
LocalPoint DTTrigGeom::toLocal | ( | const GlobalPoint | p | ) | const [inline] |
Go to Local coordinate system for a point.
Definition at line 123 of file DTTrigGeom.h.
References _stat, GeomDet::surface(), and GloballyPositioned< T >::toLocal().
LocalPoint DTTrigGeom::tubePosInCh | ( | int | nsl, | |
int | nlay, | |||
int | ntube | |||
) | const |
Wire position in chamber frame.
Definition at line 165 of file DTTrigGeom.cc.
References _stat, GenMuonPlsPt100GeV_cfg::cout, lat::endl(), DTSuperLayer::layer(), sl, DTLayer::specificTopology(), statId(), DTChamber::superLayer(), GeomDet::surface(), GeomDet::toGlobal(), GloballyPositioned< T >::toLocal(), and DTTopology::wirePosition().
Referenced by dumpGeom(), and phiSLOffset().
00165 { 00166 if ( nlay==4 && ntube==1) { 00167 std::cout << "ATTENTION: no wire nuber 1 for 4th layer!!!" << std::endl; 00168 LocalPoint dummyLP(0,0,0); 00169 return dummyLP; 00170 } 00171 const DTSuperLayer* sl = _stat->superLayer(DTSuperLayerId(statId(),nsl)); 00172 const DTLayer* lay = sl->layer(DTLayerId(statId(),nsl,nlay)); 00173 00174 float localX = lay->specificTopology().wirePosition(ntube); 00175 LocalPoint posInLayer(localX,0,0); 00176 LocalPoint posInChamber = _stat->surface().toLocal(lay->toGlobal(posInLayer)); 00177 //obsolete 19/06/2006 GlobalPoint posInCMS = lay->toGlobal(posInLayer); 00178 00179 /* cout <<endl; 00180 cout << "tube " << ntube << " nlay " << nlay << endl; 00181 cout << "posinlayer " << posInLayer << "posinchamb " << posInChamber << "posinCMS " << posInCMS << endl;*/ 00182 00183 return posInChamber; 00184 }
int DTTrigGeom::wheel | ( | ) | const [inline] |
Return wheel number.
Definition at line 63 of file DTTrigGeom.h.
References _stat, DTChamber::id(), and DTChamberId::wheel().
Referenced by dumpGeom(), getGeom(), localPosition(), DTTracoChip::wheel(), DTGeomSupplier::wheel(), DTBtiChip::wheel(), and DTSCTrigUnit::wheel().
float DTTrigGeom::ZcenterSL | ( | ) | const [inline] |
Coordinate of center of the 2 Phi SL.
Definition at line 86 of file DTTrigGeom.h.
References _ZSL.
Referenced by localPosition().
float DTTrigGeom::ZSL | ( | int | sl | ) | const |
Radial coordinate in chamber frame of center of a superlayer.
Definition at line 264 of file DTTrigGeom.cc.
References _ZSL, GenMuonPlsPt100GeV_cfg::cout, and lat::endl().
Referenced by dumpGeom(), and getGeom().
00264 { 00265 if(sl<1||sl>3){ 00266 std::cout << "DTTrigGeom::ZSL: wrong SL number: " << sl; 00267 std::cout << -999 << " returned" << std::endl; 00268 return -999; 00269 } 00270 return _ZSL[sl-1]; 00271 }
bool DTTrigGeom::_debug [private] |
float DTTrigGeom::_H [private] |
int DTTrigGeom::_NCELL[3] [private] |
float DTTrigGeom::_PHICH [private] |
float DTTrigGeom::_PITCH [private] |
const DTChamber* DTTrigGeom::_stat [private] |
Definition at line 203 of file DTTrigGeom.h.
Referenced by dumpGeom(), getGeom(), localPosition(), sector(), setGeom(), stat(), statId(), station(), toGlobal(), toLocal(), tubePosInCh(), and wheel().
float DTTrigGeom::_ZSL[3] [private] |
Definition at line 209 of file DTTrigGeom.h.
Referenced by distSL(), getGeom(), ZcenterSL(), and ZSL().