CMS 3D CMS Logo

MuonCSCDetLayerGeometryBuilder Class Reference

Build the CSC DetLayers. More...

#include <RecoMuon/DetLayers/src/MuonCSCDetLayerGeometryBuilder.h>

List of all members.

Static Public Member Functions

static std::pair< std::vector
< DetLayer * >, std::vector
< DetLayer * > > 
buildLayers (const CSCGeometry &geo)
 return.first=forward (+Z), return.second=backward (-Z) both vectors are sorted inside-out

Private Member Functions

 MuonCSCDetLayerGeometryBuilder ()

Static Private Member Functions

static MuRingForwardDoubleLayerbuildLayer (int endcap, int station, std::vector< int > &rings, const CSCGeometry &geo)
static bool isFront (int station, int ring, int chamber)
static MuDetRingmakeDetRing (std::vector< const GeomDet * > &geomDets)


Detailed Description

Build the CSC DetLayers.

Date
2007/06/14 23:48:22
Revision
1.8
Author:
N. Amapane - CERN

Definition at line 20 of file MuonCSCDetLayerGeometryBuilder.h.


Constructor & Destructor Documentation

MuonCSCDetLayerGeometryBuilder::MuonCSCDetLayerGeometryBuilder (  )  [inline, private]

Definition at line 28 of file MuonCSCDetLayerGeometryBuilder.h.

00028 {}


Member Function Documentation

static MuRingForwardDoubleLayer* MuonCSCDetLayerGeometryBuilder::buildLayer ( int  endcap,
int  station,
std::vector< int > &  rings,
const CSCGeometry geo 
) [static, private]

Referenced by buildLayers().

pair< vector< DetLayer * >, vector< DetLayer * > > MuonCSCDetLayerGeometryBuilder::buildLayers ( const CSCGeometry geo  )  [static]

return.first=forward (+Z), return.second=backward (-Z) both vectors are sorted inside-out

Definition at line 18 of file MuonCSCDetLayerGeometryBuilder.cc.

References buildLayer(), GeomDetEnumerators::endcap, i, CSCDetId::maxRingId(), CSCDetId::maxStationId(), CSCDetId::minRingId(), HLT_VtxMuL3::result, and RingMakerESProducer_cfi::rings.

Referenced by MuonDetLayerGeometryESProducer::produce().

00018                                                                   {
00019 
00020   vector<DetLayer*> result[2]; // one for each endcap
00021   
00022   for(int i=0; i<2; i++) {        
00023     
00024     int endcap = i+1;
00025     
00026     // ME/1/1a (= station 1, ring 4) and ME/1/1b (= station 1, ring 1)
00027     {
00028       vector<int> rings;
00029       rings.push_back(4);
00030       rings.push_back(1);
00031       
00032       MuRingForwardDoubleLayer* layer = buildLayer(endcap, 1, rings, geo);          
00033       if (layer) result[i].push_back(layer);  
00034     }
00035     
00036     // ME/1/2 and 1/3 (= station 1, ring 2 and 3)
00037     {
00038       vector<int> rings;
00039       rings.push_back(2);
00040       rings.push_back(3);
00041       
00042       MuRingForwardDoubleLayer* layer = buildLayer(endcap, 1, rings, geo);          
00043       if (layer) result[i].push_back(layer);  
00044     }    
00045     
00046     // Stations 2,3,4
00047     for(int station = 2; station <= CSCDetId::maxStationId(); station++) {
00048       vector<int> rings;      
00049       for(int ring = CSCDetId::minRingId(); ring <= CSCDetId::maxRingId(); ring++) {
00050         rings.push_back(ring);
00051       }
00052       MuRingForwardDoubleLayer* layer = buildLayer(endcap, station, rings, geo);          
00053       if (layer) result[i].push_back(layer);
00054     }
00055   }
00056   pair<vector<DetLayer*>, vector<DetLayer*> > res_pair(result[0], result[1]); 
00057   return res_pair;
00058 }

bool MuonCSCDetLayerGeometryBuilder::isFront ( int  station,
int  ring,
int  chamber 
) [static, private]

Definition at line 122 of file MuonCSCDetLayerGeometryBuilder.cc.

00123 {
00124   bool result = false;
00125   
00126   bool isOverlapping = !(station == 1 && ring == 3);
00127   // not overlapping means back
00128   if(isOverlapping)
00129   {
00130     bool isEven = (chamber%2==0);
00131     // odd chambers are bolted to the iron, which faces
00132     // forward in 1&2, backward in 3&4, so...
00133     result = (station<3) ? isEven : !isEven;
00134   }
00135   return result;
00136 }

static MuDetRing* MuonCSCDetLayerGeometryBuilder::makeDetRing ( std::vector< const GeomDet * > &  geomDets  )  [static, private]


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