CMS 3D CMS Logo

Private Member Functions

CmsTrackerPanelBuilder Class Reference

#include <CmsTrackerPanelBuilder.h>

Inheritance diagram for CmsTrackerPanelBuilder:
CmsTrackerLevelBuilder CmsTrackerAbstractConstruction

List of all members.

Private Member Functions

virtual void buildComponent (DDFilteredView &, GeometricDet *, std::string)
virtual void sortNS (DDFilteredView &, GeometricDet *)

Detailed Description

Class which contructs PixelForward Panels.

Definition at line 10 of file CmsTrackerPanelBuilder.h.


Member Function Documentation

void CmsTrackerPanelBuilder::buildComponent ( DDFilteredView fv,
GeometricDet g,
std::string  s 
) [private, virtual]

Implements CmsTrackerLevelBuilder.

Definition at line 12 of file CmsTrackerPanelBuilder.cc.

References CmsDetConstruction::buildComponent(), GeometricDet::DetUnit, ExtractStringFromDDD::getString(), CmsTrackerLevelBuilder::theCmsTrackerStringToEnum, and CmsTrackerStringToEnum::type().

                                                                                           {

  CmsDetConstruction theCmsDetConstruction;
  switch (theCmsTrackerStringToEnum.type(ExtractStringFromDDD::getString(s,&fv))){
  case GeometricDet::DetUnit:
           theCmsDetConstruction.buildComponent(fv,g,s);
    break;
  default:
    edm::LogError("CmsTrackerPanelBuilder")<<" ERROR - I was expecting a Plaq, I got a "<<ExtractStringFromDDD::getString(s,&fv);
    ;
  }  
}
void CmsTrackerPanelBuilder::sortNS ( DDFilteredView fv,
GeometricDet det 
) [private, virtual]

Reimplemented from CmsTrackerLevelBuilder.

Definition at line 25 of file CmsTrackerPanelBuilder.cc.

References AlCaHLTBitMon_QueryRunRegistry::comp, GeometricDet::components(), GeometricDet::DetUnit, i, python::multivaluedict::sort(), TrackerStablePhiSort(), and z.

                                                                        {
 GeometricDet::GeometricDetContainer & comp = det->components();

 if (comp.front()->type()==GeometricDet::DetUnit){ 

   // NP** Phase 2 Sort Modules within Rings
   if( fabs( comp[0]->translation().z() ) > 1000 ) {
     //std::cerr<<"PHASE 2!!!"<<std::endl;
     TrackerStablePhiSort(comp.begin(), comp.end(), ExtractPhi());
     stable_sort(comp.begin(), comp.end() ,PhiSortNP());
   }
   else
     // original one
     std::sort(comp.begin(),comp.end(),LessR());
 }
 else
   edm::LogError("CmsTrackerPanelBuilder")<<"ERROR - wrong SubDet to sort..... "<<det->components().front()->type(); 

  for(uint32_t i=0; i<comp.size();i++){
    comp[i]->setGeographicalID(i+1);
  } 
 
}