CMS 3D CMS Logo

DTTrigGeom Class Reference

Muon Barrel Trigger Geometry. More...

#include <L1Trigger/DTUtilities/interface/DTTrigGeom.h>

List of all members.

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 DTChamberstat () 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]


Detailed Description

Muon Barrel Trigger Geometry.

Date
2008/09/05 15:52:40
Revision
1.7

Author:
C.Grandi S.Vanini

Definition at line 43 of file DTTrigGeom.h.


Constructor & Destructor Documentation

DTTrigGeom::DTTrigGeom ( DTChamber stat,
bool  debug 
)

Constructor.

Definition at line 48 of file DTTrigGeom.cc.

References getGeom().

00048                                                   : _stat(stat) , _debug(debug) {
00049 
00050   getGeom();
00051 
00052 }

DTTrigGeom::~DTTrigGeom (  ) 

Destructor.

Definition at line 59 of file DTTrigGeom.cc.

00059 {}


Member Function Documentation

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().

00083 { return fabs(_ZSL[2]-_ZSL[0]); }

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&&sector()==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 }

int DTTrigGeom::mapTubeInFEch ( int  nsl,
int  nlay,
int  ntube 
) const

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 }

int DTTrigGeom::nCell ( int  sl  )  const [inline]

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().

00092                                    {
00093       return (sl>0&&sl<=3)*_NCELL[sl-1]; 
00094     }

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 }

int DTTrigGeom::posFE ( int  sl  )  const

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 }

int DTTrigGeom::sector ( void   )  const [inline]

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().

00069 { return _stat->id().sector(); }

void DTTrigGeom::setGeom ( const DTChamber stat  ) 

Set/Update Geometry.

Definition at line 199 of file DTTrigGeom.cc.

References _stat, and getGeom().

Referenced by DTSCTrigUnit::setGeom().

00199                                          {
00200 
00201   _stat=stat;
00202   getGeom();
00203 
00204 }

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().

00057 { return _stat->id(); }

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().

00066 { return _stat->id().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().

00120 { return _stat->surface().toGlobal(v); }

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().

00117 { return _stat->surface().toGlobal(p); }

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().

00126 { return _stat->surface().toLocal(v); }

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().

00123 { return _stat->surface().toLocal(p); }

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().

00063 { return _stat->id().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().

00086 { return 0.5*(_ZSL[2]+_ZSL[0]); } 

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 }


Member Data Documentation

bool DTTrigGeom::_debug [private]

Definition at line 211 of file DTTrigGeom.h.

Referenced by getGeom().

float DTTrigGeom::_H [private]

Definition at line 207 of file DTTrigGeom.h.

Referenced by cellH(), and getGeom().

int DTTrigGeom::_NCELL[3] [private]

Definition at line 210 of file DTTrigGeom.h.

Referenced by getGeom(), and nCell().

float DTTrigGeom::_PHICH [private]

Definition at line 206 of file DTTrigGeom.h.

Referenced by getGeom(), and phiCh().

float DTTrigGeom::_PITCH [private]

Definition at line 208 of file DTTrigGeom.h.

Referenced by cellPitch(), and getGeom().

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().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:19:09 2009 for CMSSW by  doxygen 1.5.4