CMS 3D CMS Logo

Public Member Functions | Static Public Member Functions | Public Attributes | Static Private Attributes

ObjectMap2CSC Class Reference

#include <TracktoRPC.h>

List of all members.

Public Member Functions

std::set< RPCDetIdGetRolls (CSCStationIndex2 cscstationindex)
 ObjectMap2CSC (const edm::EventSetup &iSetup)

Static Public Member Functions

static ObjectMap2CSCGetInstance (const edm::EventSetup &iSetup)

Public Attributes

std::map< CSCStationIndex2,
std::set< RPCDetId > > 
rollstoreCSC

Static Private Attributes

static ObjectMap2CSCmapInstance = NULL

Detailed Description

Definition at line 154 of file TracktoRPC.h.


Constructor & Destructor Documentation

ObjectMap2CSC::ObjectMap2CSC ( const edm::EventSetup iSetup)

Definition at line 82 of file TracktoRPC.cc.

References edm::EventSetup::get(), alignCSCRings::r, RPCDetId::region(), RPCDetId::ring(), relativeConstraints::ring, RPCChamber::rolls(), rollstoreCSC, RPCGeomServ::segment(), relativeConstraints::station, and RPCDetId::station().

Referenced by GetInstance().

                                                       {
  edm::ESHandle<RPCGeometry> rpcGeo;
  edm::ESHandle<CSCGeometry> cscGeo;
  
  iSetup.get<MuonGeometryRecord>().get(rpcGeo);
  iSetup.get<MuonGeometryRecord>().get(cscGeo);
  
  for (TrackingGeometry::DetContainer::const_iterator it=rpcGeo->dets().begin();it<rpcGeo->dets().end();it++){
    if(dynamic_cast< RPCChamber* >( *it ) != 0 ){
      RPCChamber* ch = dynamic_cast< RPCChamber* >( *it ); 
      std::vector< const RPCRoll*> roles = (ch->rolls());
      for(std::vector<const RPCRoll*>::const_iterator r = roles.begin();r != roles.end(); ++r){
        RPCDetId rpcId = (*r)->id();
        int region=rpcId.region();
        if(region!=0){
          int station=rpcId.station();
          int ring=rpcId.ring();
          int cscring=ring;
          int cscstation=station;
          RPCGeomServ rpcsrv(rpcId);
          int rpcsegment = rpcsrv.segment();
          int cscchamber = rpcsegment; //FIX THIS ACCORDING TO RPCGeomServ::segment()Definition
          if((station==2||station==3)&&ring==3){//Adding Ring 3 of RPC to the CSC Ring 2
            cscring = 2;
          }
          CSCStationIndex2 ind(region,cscstation,cscring,cscchamber);
          std::set<RPCDetId> myrolls;
          if (rollstoreCSC.find(ind)!=rollstoreCSC.end()) myrolls=rollstoreCSC[ind];
          myrolls.insert(rpcId);
          rollstoreCSC[ind]=myrolls;
        }
      }
    }
  }
}

Member Function Documentation

ObjectMap2CSC * ObjectMap2CSC::GetInstance ( const edm::EventSetup iSetup) [static]

Definition at line 75 of file TracktoRPC.cc.

References mapInstance, NULL, and ObjectMap2CSC().

Referenced by TracktoRPC::TracktoRPC().

                                                                    {
  if (mapInstance == NULL){
    mapInstance = new ObjectMap2CSC(iSetup);
  }
  return mapInstance;
}
std::set<RPCDetId> ObjectMap2CSC::GetRolls ( CSCStationIndex2  cscstationindex) [inline]

Definition at line 157 of file TracktoRPC.h.

References mapInstance, and rollstoreCSC.

Referenced by TracktoRPC::TracktoRPC().

{return mapInstance->rollstoreCSC[cscstationindex];}

Member Data Documentation

ObjectMap2CSC * ObjectMap2CSC::mapInstance = NULL [static, private]

Definition at line 162 of file TracktoRPC.h.

Referenced by GetInstance(), and GetRolls().

Definition at line 159 of file TracktoRPC.h.

Referenced by GetRolls(), and ObjectMap2CSC().