CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Enumerations | Functions
FWTGeoRecoGeometryESProducer.cc File Reference
#include "Fireworks/Geometry/interface/FWTGeoRecoGeometryESProducer.h"
#include "Fireworks/Geometry/interface/FWTGeoRecoGeometry.h"
#include "Fireworks/Geometry/interface/FWTGeoRecoGeometryRecord.h"
#include "DataFormats/GeometrySurface/interface/RectangularPlaneBounds.h"
#include "DataFormats/GeometrySurface/interface/TrapezoidalPlaneBounds.h"
#include "DataFormats/SiPixelDetId/interface/PXBDetId.h"
#include "DataFormats/SiPixelDetId/interface/PXFDetId.h"
#include "DataFormats/SiStripDetId/interface/TIBDetId.h"
#include "DataFormats/SiStripDetId/interface/TIDDetId.h"
#include "DataFormats/SiStripDetId/interface/TOBDetId.h"
#include "DataFormats/SiStripDetId/interface/TECDetId.h"
#include "DataFormats/MuonDetId/interface/RPCDetId.h"
#include "DataFormats/MuonDetId/interface/GEMDetId.h"
#include "DataFormats/EcalDetId/interface/EcalSubdetector.h"
#include "DataFormats/HcalDetId/interface/HcalSubdetector.h"
#include "DataFormats/EcalDetId/interface/EBDetId.h"
#include "DataFormats/EcalDetId/interface/EEDetId.h"
#include "DataFormats/HcalDetId/interface/HcalDetId.h"
#include "Geometry/CommonDetUnit/interface/GlobalTrackingGeometry.h"
#include "Geometry/CaloGeometry/interface/CaloGeometry.h"
#include "Geometry/CaloGeometry/interface/CaloCellGeometry.h"
#include "Geometry/CSCGeometry/interface/CSCGeometry.h"
#include "Geometry/DTGeometry/interface/DTGeometry.h"
#include "Geometry/CSCGeometry/interface/CSCChamber.h"
#include "Geometry/CSCGeometry/interface/CSCLayer.h"
#include "Geometry/DTGeometry/interface/DTChamber.h"
#include "Geometry/DTGeometry/interface/DTLayer.h"
#include "Geometry/RPCGeometry/interface/RPCGeometry.h"
#include "Geometry/GEMGeometry/interface/GEMEtaPartition.h"
#include "Geometry/GEMGeometry/interface/GEMGeometry.h"
#include "Geometry/Records/interface/CaloGeometryRecord.h"
#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
#include "Geometry/TrackerGeometryBuilder/interface/RectangularPixelTopology.h"
#include "Geometry/TrackerGeometryBuilder/interface/PixelGeomDetUnit.h"
#include "Geometry/TrackerGeometryBuilder/interface/StripGeomDetUnit.h"
#include "Geometry/TrackerGeometryBuilder/interface/StripGeomDetType.h"
#include "Geometry/CommonTopologies/interface/StripTopology.h"
#include "Geometry/CommonTopologies/interface/RectangularStripTopology.h"
#include "Geometry/CommonTopologies/interface/TrapezoidalStripTopology.h"
#include "Geometry/CaloGeometry/interface/IdealZPrism.h"
#include "Geometry/CaloGeometry/interface/IdealObliquePrism.h"
#include "Geometry/CaloGeometry/interface/TruncatedPyramid.h"
#include "TGeoManager.h"
#include "TGeoArb8.h"
#include "TGeoMatrix.h"
#include "TFile.h"
#include "TTree.h"
#include "TError.h"
#include "TMath.h"
#include "TEveVector.h"
#include "TEveTrans.h"

Go to the source code of this file.

Enumerations

enum  GMCol
 

Functions

TGeoHMatrix * getEcalTrans (CaloCellGeometry::CornersVec const &gc)
 
TGeoShape * makeEcalShape (const TruncatedPyramid *cell)
 

Enumeration Type Documentation

enum GMCol

Definition at line 157 of file FWTGeoRecoGeometryESProducer.cc.

157  { Green = 4,
158  Blue0 = 13, Blue1 = 24, Blue2 = 6,
159  Yellow0 = 3, Yellow1 = 16,
160  Pink = 10,
161  Red = 29, Orange0 = 79, Orange1 = 14,
162  Magenta = 8,
163  Gray = 12
164 };

Function Documentation

TGeoHMatrix* getEcalTrans ( CaloCellGeometry::CornersVec const &  gc)

Definition at line 1017 of file FWTGeoRecoGeometryESProducer.cc.

References i, dbtoconf::out, x, detailsBasic3DVector::y, and detailsBasic3DVector::z.

Referenced by FWTGeoRecoGeometryESProducer::addEcalCaloGeometry().

1018 {
1019 
1020  TEveVector gCenter;
1021  for (int i = 0; i < 8; ++i)
1022  gCenter += TEveVector(gc[i].x(), gc[i].y(), gc[i].z());
1023  gCenter *= 0.125;
1024 
1025  TEveVector tgCenter; // top center 4 corners
1026  for (int i = 4; i < 8; ++i)
1027  tgCenter += TEveVector(gc[i].x(), gc[i].y(), gc[i].z());
1028  tgCenter *= 0.25;
1029 
1030 
1031  TEveVector axis = tgCenter - gCenter;
1032  axis.Normalize();
1033 
1034  TEveTrans tr;
1035  TVector3 v1t;
1036  tr.GetBaseVec(1, v1t);
1037 
1038 
1039  TEveVector v1(v1t.x(), v1t.y(), v1t.z());
1040  double dot13 = axis.Dot(v1);
1041  TEveVector gd = axis;
1042  gd*= dot13;
1043  v1 -= gd;
1044  v1.Normalize();
1045  TEveVector v2;
1046  TMath::Cross(v1.Arr(), axis.Arr(), v2.Arr());
1047  TMath::Cross(axis.Arr(), v1.Arr(), v2.Arr());
1048  v2.Normalize();
1049 
1050  tr.SetBaseVec(1, v1.fX, v1.fY, v1.fZ);
1051  tr.SetBaseVec(2, v2.fX, v2.fY, v2.fZ);
1052  tr.SetBaseVec(3, axis.fX, axis.fY, axis.fZ);
1053  tr.Move3PF(gCenter.fX, gCenter.fY, gCenter.fZ);
1054 
1055  TGeoHMatrix* out = new TGeoHMatrix();
1056  tr.SetGeoHMatrix(*out);
1057  return out;
1058 }
int i
Definition: DBlmapReader.cc:9
float float float z
tuple out
Definition: dbtoconf.py:99
Definition: DDAxes.h:10
TGeoShape* makeEcalShape ( const TruncatedPyramid cell)

Definition at line 1060 of file FWTGeoRecoGeometryESProducer.cc.

References EnergyCorrector::c, TruncatedPyramid::localCorners(), and CaloCellGeometry::param().

Referenced by FWTGeoRecoGeometryESProducer::addEcalCaloGeometry().

1061 {
1062  // printf("BEGIN EE SHAPE --------------------------------\n");
1063  // std::cout << detid << std::endl;
1064  const HepGeom::Transform3D idtr;
1067  TruncatedPyramid::localCorners( co, cell->param(), ref);
1068  //for( int c = 0; c < 8; ++c)
1069  // printf("lc.push_back(TEveVector(%.4f, %.4f, %.4f));\n", co[c].x(),co[c].y(),co[c].z() );
1070 
1071  double points[16];
1072  for( int c = 0; c < 8; ++c )
1073  {
1074  points[c*2 ] = co[c].x();
1075  points[c*2+1] = co[c].y();
1076  }
1077  TGeoShape* solid = new TGeoArb8(cell->param()[0], points);
1078  return solid;
1079 }
static void localCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)
CaloCellGeometry::Pt3D Pt3D
const CCGFloat * param() const
CaloCellGeometry::Pt3DVec Pt3DVec