CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Namespaces | Classes | Functions | Variables
fireworks Namespace Reference

Namespaces

 expression
 
 geometry
 
 table
 

Classes

class  Context
 
struct  jetScaleMarker
 
class  OptionNode
 
struct  OptionNodePtrCompare
 
struct  OptionNodePtrEqual
 
struct  scaleMarker
 
struct  State
 
class  StateOrdering
 

Functions

bool acceptDataFormatsVersion (TString &n)
 
void addBox (const std::vector< float > &corners, TEveElement *, FWProxyBuilderBase *)
 
void addCircle (double eta, double phi, double radius, const unsigned int nLineSegments, TEveElement *comp, FWProxyBuilderBase *pb)
 
void addDashedArrow (double phi, double size, TEveElement *comp, FWProxyBuilderBase *pb)
 
void addDashedLine (double phi, double theta, double size, TEveElement *comp, FWProxyBuilderBase *pb)
 
void addDoubleLines (double phi, TEveElement *comp, FWProxyBuilderBase *pb)
 
void addRhoZEnergyProjection (FWProxyBuilderBase *, TEveElement *, double r_ecal, double z_ecal, double theta_min, double theta_max, double phi)
 
void addSiStripClusters (const FWEventItem *iItem, const reco::Track &t, class TEveElement *tList, bool addNearbyClusters, bool master)
 
void addStraightLineSegment (TEveStraightLineSet *marker, reco::Candidate const *cand, double scale_factor=2)
 
const TGGC & boldGC ()
 
void createSegment (int detector, bool matchedSegment, float segmentLength, float segmentLimit, float *segmentPosition, float *segmentDirection, float *segmentInnerPoint, float *segmentOuterPoint)
 
const TString datadir ("/src/Fireworks/Core/")
 
void drawEnergyScaledBox3D (const float *corners, float scale, TEveElement *, FWProxyBuilderBase *, bool invert=false)
 
void drawEnergyTower3D (const float *corners, float scale, TEveElement *, FWProxyBuilderBase *, bool reflect=false)
 
void drawEtScaledBox3D (const float *corners, float energy, float maxEnergy, TEveElement *, FWProxyBuilderBase *, bool reflect=false)
 
void drawEtTower3D (const float *corners, float scale, TEveElement *, FWProxyBuilderBase *, bool reflect=false)
 
void energyScaledBox3DCorners (const float *corners, float scale, std::vector< float > &, bool invert=false)
 
void energyTower3DCorners (const float *corners, float scale, std::vector< float > &, bool reflect=false)
 
void etScaledBox3DCorners (const float *corners, float energy, float maxEnergy, std::vector< float > &scaledCorners, bool reflect=false)
 
void etTower3DCorners (const float *corners, float scale, std::vector< float > &, bool reflect=false)
 
const SiStripClusterextractClusterFromTrackingRecHit (const TrackingRecHit *rh)
 
void getDecomposedVersion (const TString &s, int *out)
 
std::string getLocalTime (const edm::EventBase &event)
 
std::pair< double, double > getPhiRange (const std::vector< double > &phis, double phi)
 
TEveGeoShape * getShape (const char *name, TGeoBBox *shape, Color_t color)
 
std::string getTimeGMT (const edm::EventBase &event)
 
const TGGC & greenGC ()
 
std::string info (const DetId &)
 
std::string info (const std::set< DetId > &)
 
std::string info (const std::vector< DetId > &)
 
void invertBox (std::vector< float > &corners)
 
const TGGC & italicGC ()
 
void localSiStrip (short strip, float *localTop, float *localBottom, const float *pars, unsigned int id)
 
TEveJetCone * makeEveJetCone (const reco::Jet &iData, const fireworks::Context &context)
 
bool makeRhoPhiSuperCluster (FWProxyBuilderBase *, const reco::SuperClusterRef &iCluster, float iPhi, TEveElement &oItemHolder)
 
bool makeRhoZSuperCluster (FWProxyBuilderBase *, const reco::SuperClusterRef &iCluster, float iPhi, TEveElement &oItemHolder)
 
float pixelLocalX (const double mpx, const int m_nrows)
 
float pixelLocalY (const double mpy, const int m_ncols)
 
TEveTrack * prepareCandidate (const reco::Candidate &track, TEveTrackPropagator *propagator)
 
TEveTrack * prepareTrack (const reco::Track &track, TEveTrackPropagator *propagator, const std::vector< TEveVector > &extraRefPoints=std::vector< TEveVector >())
 
void pushNearbyPixelHits (std::vector< TVector3 > &pixelPoints, const FWEventItem &iItem, const reco::Track &t)
 
void pushPixelCluster (std::vector< TVector3 > &pixelPoints, const FWGeometry &geom, DetId id, const SiPixelCluster &c, const float *pars)
 
void pushPixelHits (std::vector< TVector3 > &pixelPoints, const FWEventItem &iItem, const reco::Track &t)
 
const TGGC & redGC ()
 
void setPath (TString &v)
 
void setTrackTypePF (const reco::PFCandidate &pfCand, TAttLine *track)
 
void setupAddElement (TEveElement *el, TEveElement *parent, const FWEventItem *item, bool master, bool color)
 
int * supportedDataFormatsVersion ()
 
std::vector< std::pair< double,
double > > 
thetaBins ()
 

Variables

static const int BIG_PIX_PER_ROC_X = 1
 
static const int BIG_PIX_PER_ROC_Y = 2
 
static const int COLS_PER_ROC = 52
 
static const double MICRON = 1./1000./10.
 
const TString p1 = gSystem->Getenv("CMSSW_BASE") + datadir
 
const TString p2 = gSystem->Getenv("CMSSW_RELEASE_BASE") + datadir
 
static const double PITCHX = 100*MICRON
 
static const double PITCHY = 150*MICRON
 
static const int ROWS_PER_ROC = 80
 
static const std::string subdets [7] = { "UNKNOWN", "PXB", "PXF", "TIB", "TID", "TOB", "TEC" }
 

Function Documentation

bool fireworks::acceptDataFormatsVersion ( TString &  n)

Definition at line 71 of file fwPaths.cc.

References AlCaHLTBitMon_QueryRunRegistry::data, getDecomposedVersion(), and supportedDataFormatsVersion().

Referenced by FWFileEntry::openFile().

72 {
73  int data[] = {0, 0, 0};
74  getDecomposedVersion(processConfigurationVersion, data);
75 
76 
77  int* running = supportedDataFormatsVersion();
78  if ((data[0] == 6 && running[0] == 5 && running[1] > 1) ||
79  (data[0] == 5 && data[1] > 1 && running[0] == 6))
80  return true;
81  else
82  return data[0] == running[0];
83 }
void getDecomposedVersion(const TString &s, int *out)
Definition: fwPaths.cc:30
int * supportedDataFormatsVersion()
Definition: fwPaths.cc:43
void fireworks::addBox ( const std::vector< float > &  corners,
TEveElement *  comp,
FWProxyBuilderBase pb 
)

Definition at line 148 of file BuilderUtils.cc.

References FWProxyBuilderBase::setupAddElement().

Referenced by drawEnergyScaledBox3D(), drawEnergyTower3D(), drawEtScaledBox3D(), and drawEtTower3D().

149  {
150  TEveBox* eveBox = new TEveBox( "Box" );
151  eveBox->SetDrawFrame( false );
152  eveBox->SetPickable( true );
153  eveBox->SetVertices( &corners[0] );
154 
155  pb->setupAddElement( eveBox, comp );
156  }
void setupAddElement(TEveElement *el, TEveElement *parent, bool set_color=true) const
void fireworks::addCircle ( double  eta,
double  phi,
double  radius,
const unsigned int  nLineSegments,
TEveElement *  comp,
FWProxyBuilderBase pb 
)

Definition at line 158 of file BuilderUtils.cc.

References funct::cos(), M_PI, FWProxyBuilderBase::setupAddElement(), and funct::sin().

Referenced by FWJetLegoProxyBuilder::build(), FWL1MuonParticleLegoProxyBuilder::build(), FWL1JetParticleLegoProxyBuilder::build(), FWPFTauProxyBuilder::buildViewType(), and FWCaloTauProxyBuilder::buildViewType().

159  {
160  TEveStraightLineSet* container = new TEveStraightLineSet;
161 
162  for( unsigned int iphi = 0; iphi < nLineSegments; ++iphi )
163  {
164  container->AddLine( eta + radius * cos( 2 * M_PI / nLineSegments * iphi ),
165  phi + radius * sin( 2 * M_PI / nLineSegments * iphi ),
166  0.01,
167  eta + radius * cos( 2 * M_PI / nLineSegments * ( iphi + 1 )),
168  phi + radius * sin( 2 * M_PI / nLineSegments * ( iphi + 1 )),
169  0.01 );
170  }
171  pb->setupAddElement( container, comp );
172  }
void setupAddElement(TEveElement *el, TEveElement *parent, bool set_color=true) const
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
#define M_PI
Geom::Phi< T > phi() const
void fireworks::addDashedArrow ( double  phi,
double  size,
TEveElement *  comp,
FWProxyBuilderBase pb 
)

Definition at line 174 of file BuilderUtils.cc.

References funct::cos(), cmsHarvester::marker, FWProxyBuilderBase::setupAddElement(), and funct::sin().

Referenced by FWL1EtMissParticleGlimpseProxyBuilder::build(), and FWMETGlimpseProxyBuilder::build().

175  {
176  TEveScalableStraightLineSet* marker = new TEveScalableStraightLineSet;
177  marker->SetLineWidth( 1 );
178  marker->SetLineStyle( 2 );
179  marker->AddLine( 0, 0, 0, size * cos( phi ), size * sin( phi ), 0 );
180  marker->AddLine( size * 0.9 * cos( phi + 0.03 ), size * 0.9 * sin( phi + 0.03 ), 0, size * cos( phi ), size * sin( phi ), 0 );
181  marker->AddLine( size * 0.9 * cos( phi - 0.03 ), size * 0.9 * sin( phi - 0.03 ), 0, size * cos( phi ), size * sin( phi ), 0 );
182  pb->setupAddElement( marker, comp );
183  }
void setupAddElement(TEveElement *el, TEveElement *parent, bool set_color=true) const
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
Geom::Phi< T > phi() const
tuple size
Write out results.
void fireworks::addDashedLine ( double  phi,
double  theta,
double  size,
TEveElement *  comp,
FWProxyBuilderBase pb 
)

Definition at line 185 of file BuilderUtils.cc.

References fireworks::Context::caloR1(), fireworks::Context::caloZ2(), FWProxyBuilderBase::context(), funct::cos(), M_PI, cmsHarvester::marker, alignCSCRings::r, FWProxyBuilderBase::setupAddElement(), and funct::sin().

Referenced by FWL1EmParticleProxyBuilder::build(), FWL1MuonParticleProxyBuilder::build(), FWL1JetParticleProxyBuilder::build(), and FWL1EtMissParticleProxyBuilder::build().

186  {
187  double r( 0 );
188  if( theta < pb->context().caloTransAngle() || M_PI - theta < pb->context().caloTransAngle())
189  r = pb->context().caloZ2() / fabs( cos( theta ));
190  else
191  r = pb->context().caloR1() / sin( theta );
192 
193  TEveStraightLineSet* marker = new TEveStraightLineSet;
194  marker->SetLineWidth( 2 );
195  marker->SetLineStyle( 2 );
196  marker->AddLine( r * cos( phi ) * sin( theta ), r * sin( phi ) * sin( theta ), r * cos( theta ),
197  ( r + size ) * cos( phi ) * sin( theta ), ( r + size ) * sin( phi ) * sin( theta ), ( r + size ) * cos( theta ));
198  pb->setupAddElement( marker, comp );
199  }
const fireworks::Context & context() const
void setupAddElement(TEveElement *el, TEveElement *parent, bool set_color=true) const
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
Geom::Theta< T > theta() const
static float caloZ2(bool offset=true)
Definition: Context.cc:225
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
static float caloR1(bool offset=true)
Definition: Context.cc:210
#define M_PI
Geom::Phi< T > phi() const
tuple size
Write out results.
void fireworks::addDoubleLines ( double  phi,
TEveElement *  comp,
FWProxyBuilderBase pb 
)

Definition at line 201 of file BuilderUtils.cc.

References M_PI, and FWProxyBuilderBase::setupAddElement().

Referenced by FWL1EtMissParticleLegoProxyBuilder::build(), and FWMETLegoProxyBuilder::build().

202  {
203  TEveStraightLineSet* mainLine = new TEveStraightLineSet;
204  mainLine->AddLine( -5.191, phi, 0.01, 5.191, phi, 0.01 );
205  pb->setupAddElement( mainLine, comp );
206 
207  phi = phi > 0 ? phi - M_PI : phi + M_PI;
208  TEveStraightLineSet* secondLine = new TEveStraightLineSet;
209  secondLine->SetLineStyle( 7 );
210  secondLine->AddLine( -5.191, phi, 0.01, 5.191, phi, 0.01 );
211  pb->setupAddElement( secondLine, comp );
212  }
void setupAddElement(TEveElement *el, TEveElement *parent, bool set_color=true) const
#define M_PI
Geom::Phi< T > phi() const
void fireworks::addRhoZEnergyProjection ( FWProxyBuilderBase pb,
TEveElement *  container,
double  r_ecal,
double  z_ecal,
double  theta_min,
double  theta_max,
double  phi 
)

Definition at line 60 of file BuilderUtils.cc.

References diffTwoXMLs::r1, diffTwoXMLs::r2, FWProxyBuilderBase::setupAddElement(), tree::t, and funct::tan().

Referenced by FWTauProxyBuilderBase::buildBaseTau(), FWMETProxyBuilder::buildViewType(), and makeRhoZSuperCluster().

64  {
65  TEveGeoManagerHolder gmgr( TEveGeoShape::GetGeoMangeur());
66  double z1 = r_ecal / tan( theta_min );
67  if( z1 > z_ecal ) z1 = z_ecal;
68  if( z1 < -z_ecal ) z1 = -z_ecal;
69  double z2 = r_ecal / tan( theta_max );
70  if( z2 > z_ecal ) z2 = z_ecal;
71  if( z2 < -z_ecal ) z2 = -z_ecal;
72  double r1 = z_ecal * fabs( tan( theta_min ));
73  if( r1 > r_ecal ) r1 = r_ecal;
74  if( phi < 0 ) r1 = -r1;
75  double r2 = z_ecal * fabs( tan( theta_max ));
76  if( r2 > r_ecal ) r2 = r_ecal;
77  if( phi < 0 ) r2 = -r2;
78 
79  if( fabs(r2 - r1) > 1 )
80  {
81  TGeoBBox *sc_box = new TGeoBBox( 0., fabs( r2 - r1 ) / 2, 1 );
82  TEveGeoShape *element = new TEveGeoShape("r-segment");
83  element->SetShape(sc_box);
84  TEveTrans &t = element->RefMainTrans();
85  t(1,4) = 0;
86  t(2,4) = (r2+r1)/2;
87  t(3,4) = fabs(z2)>fabs(z1) ? z2 : z1;
88  pb->setupAddElement(element, container);
89  }
90  if( fabs(z2 - z1) > 1 )
91  {
92  TGeoBBox *sc_box = new TGeoBBox( 0., 1, ( z2 - z1 ) / 2 );
93  TEveGeoShape *element = new TEveGeoShape("z-segment");
94  element->SetShape( sc_box );
95  TEveTrans &t = element->RefMainTrans();
96  t(1,4) = 0;
97  t(2,4) = fabs(r2)>fabs(r1) ? r2 : r1;
98  t(3,4) = (z2+z1)/2;
99  pb->setupAddElement(element, container);
100  }
101  }
tuple t
Definition: tree.py:139
void setupAddElement(TEveElement *el, TEveElement *parent, bool set_color=true) const
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
Geom::Phi< T > phi() const
void fireworks::addSiStripClusters ( const FWEventItem iItem,
const reco::Track t,
class TEveElement *  tList,
bool  addNearbyClusters,
bool  master 
)

Definition at line 387 of file TrackUtils.cc.

References edmNew::DetSet< T >::begin(), SiStripRecHit1D::cluster(), SiStripRecHit2D::cluster(), FWGeometry::contains(), edmNew::DetSet< T >::end(), edmNew::DetSetVector< T >::end(), extractClusterFromTrackingRecHit(), edmNew::DetSetVector< T >::find(), SiStripCluster::firstStrip(), fwLog, TrackingRecHit::geographicalId(), relativeConstraints::geom, edm::EventBase::get(), FWEventItem::getEvent(), FWEventItem::getGeom(), FWGeometry::getParameters(), edm::Ref< C, T, F >::id(), edm::Ref< C, T, F >::isAvailable(), edm::Ref< C, T, F >::isNonnull(), TrackingRecHit::isValid(), fwlog::kDebug, fwlog::kError, localSiStrip(), FWGeometry::localToGlobal(), edm::Handle< T >::product(), DetId::rawId(), reco::Track::recHitsBegin(), reco::Track::recHitsEnd(), and setupAddElement().

Referenced by FWTrackHitsDetailView::addHits(), FWConvTrackHitsDetailView::addHits(), and FWTracksRecHitsProxyBuilder::build().

388 {
389  // master is true if the product is for proxy builder
390  const FWGeometry *geom = iItem->getGeom();
391 
392  const edmNew::DetSetVector<SiStripCluster> * allClusters = 0;
393  if( addNearbyClusters )
394  {
395  for( trackingRecHit_iterator it = t.recHitsBegin(), itEnd = t.recHitsEnd(); it != itEnd; ++it )
396  {
397  if( typeid( **it ) == typeid( SiStripRecHit2D ))
398  {
399  const SiStripRecHit2D &hit = static_cast<const SiStripRecHit2D &>( **it );
400  if( hit.cluster().isNonnull() && hit.cluster().isAvailable())
401  {
403  iItem->getEvent()->get(hit.cluster().id(), allClustersHandle);
404  allClusters = allClustersHandle.product();
405  break;
406  }
407  }
408  else if( typeid( **it ) == typeid( SiStripRecHit1D ))
409  {
410  const SiStripRecHit1D &hit = static_cast<const SiStripRecHit1D &>( **it );
411  if( hit.cluster().isNonnull() && hit.cluster().isAvailable())
412  {
414  iItem->getEvent()->get(hit.cluster().id(), allClustersHandle);
415  allClusters = allClustersHandle.product();
416  break;
417  }
418  }
419  }
420  }
421 
422  for( trackingRecHit_iterator it = t.recHitsBegin(), itEnd = t.recHitsEnd(); it != itEnd; ++it )
423  {
424  unsigned int rawid = (*it)->geographicalId();
425  if( ! geom->contains( rawid ))
426  {
428  << "failed to get geometry of SiStripCluster with detid: "
429  << rawid << std::endl;
430 
431  continue;
432  }
433 
434  const float* pars = geom->getParameters( rawid );
435 
436  // -- get phi from SiStripHit
437  auto rechitRef = *it;
438  const TrackingRecHit *rechit = &( *rechitRef );
439  const SiStripCluster *cluster = extractClusterFromTrackingRecHit( rechit );
440 
441  if( cluster )
442  {
443  if( allClusters != 0 )
444  {
445  const edmNew::DetSet<SiStripCluster> & clustersOnThisDet = (*allClusters)[rechit->geographicalId().rawId()];
446 
447  for( edmNew::DetSet<SiStripCluster>::const_iterator itc = clustersOnThisDet.begin(), edc = clustersOnThisDet.end(); itc != edc; ++itc )
448  {
449 
450  TEveStraightLineSet *scposition = new TEveStraightLineSet;
451  scposition->SetDepthTest( false );
452  scposition->SetPickable( kTRUE );
453 
454  short firststrip = itc->firstStrip();
455 
456  if( &*itc == cluster )
457  {
458  scposition->SetTitle( Form( "Exact SiStripCluster from TrackingRecHit, first strip %d", firststrip ));
459  scposition->SetLineColor( kGreen );
460  }
461  else
462  {
463  scposition->SetTitle( Form( "SiStripCluster, first strip %d", firststrip ));
464  scposition->SetLineColor( kRed );
465  }
466 
467  float localTop[3] = { 0.0, 0.0, 0.0 };
468  float localBottom[3] = { 0.0, 0.0, 0.0 };
469 
470  fireworks::localSiStrip( firststrip, localTop, localBottom, pars, rawid );
471 
472  float globalTop[3];
473  float globalBottom[3];
474  geom->localToGlobal( rawid, localTop, globalTop, localBottom, globalBottom );
475 
476  scposition->AddLine( globalTop[0], globalTop[1], globalTop[2],
477  globalBottom[0], globalBottom[1], globalBottom[2] );
478 
479  setupAddElement( scposition, tList, iItem, master, false );
480  }
481  }
482  else
483  {
484  short firststrip = cluster->firstStrip();
485  TEveStraightLineSet *scposition = new TEveStraightLineSet;
486  scposition->SetDepthTest( false );
487  scposition->SetPickable( kTRUE );
488  scposition->SetTitle( Form( "SiStripCluster, first strip %d", firststrip ));
489 
490  float localTop[3] = { 0.0, 0.0, 0.0 };
491  float localBottom[3] = { 0.0, 0.0, 0.0 };
492 
493  fireworks::localSiStrip( firststrip, localTop, localBottom, pars, rawid );
494 
495  float globalTop[3];
496  float globalBottom[3];
497  geom->localToGlobal( rawid, localTop, globalTop, localBottom, globalBottom );
498 
499  scposition->AddLine( globalTop[0], globalTop[1], globalTop[2],
500  globalBottom[0], globalBottom[1], globalBottom[2] );
501 
502  setupAddElement( scposition, tList, iItem, master, true );
503  }
504  }
505  else if( !rechit->isValid() && ( rawid != 0 )) // lost hit
506  {
507  if( allClusters != 0 )
508  {
509  edmNew::DetSetVector<SiStripCluster>::const_iterator itds = allClusters->find( rawid );
510  if( itds != allClusters->end())
511  {
512  const edmNew::DetSet<SiStripCluster> & clustersOnThisDet = *itds;
513  for( edmNew::DetSet<SiStripCluster>::const_iterator itc = clustersOnThisDet.begin(), edc = clustersOnThisDet.end(); itc != edc; ++itc )
514  {
515  short firststrip = itc->firstStrip();
516 
517  TEveStraightLineSet *scposition = new TEveStraightLineSet;
518  scposition->SetDepthTest( false );
519  scposition->SetPickable( kTRUE );
520  scposition->SetTitle( Form( "Lost SiStripCluster, first strip %d", firststrip ));
521 
522  float localTop[3] = { 0.0, 0.0, 0.0 };
523  float localBottom[3] = { 0.0, 0.0, 0.0 };
524 
525  fireworks::localSiStrip( firststrip, localTop, localBottom, pars, rawid );
526 
527  float globalTop[3];
528  float globalBottom[3];
529  geom->localToGlobal( rawid, localTop, globalTop, localBottom, globalBottom );
530 
531  scposition->AddLine( globalTop[0], globalTop[1], globalTop[2],
532  globalBottom[0], globalBottom[1], globalBottom[2] );
533 
534 
535  setupAddElement( scposition, tList, iItem, master, false );
536  scposition->SetLineColor( kRed );
537  }
538  }
539  }
540  }
541  else
542  {
544  << "*ANOTHER* option possible: valid=" << rechit->isValid()
545  << ", rawid=" << rawid << std::endl;
546  }
547  }
548 }
ClusterRef cluster() const
bool isAvailable() const
Definition: Ref.h:576
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
const_iterator end(bool update=false) const
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:252
const float * getParameters(unsigned int id) const
Definition: FWGeometry.cc:296
bool get(ProductID const &, Handle< T > &) const
Definition: EventBase.h:104
uint16_t firstStrip() const
data_type const * const_iterator
Definition: DetSetNew.h:30
ProductID id() const
Accessor for product ID.
Definition: Ref.h:258
void localSiStrip(short strip, float *localTop, float *localBottom, const float *pars, unsigned int id)
Definition: TrackUtils.cc:297
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
const SiStripCluster * extractClusterFromTrackingRecHit(const TrackingRecHit *rh)
Definition: TrackUtils.cc:364
void localToGlobal(unsigned int id, const float *local, float *global, bool translatep=true) const
Definition: FWGeometry.cc:328
ClusterRef cluster() const
bool contains(unsigned int id) const
Definition: FWGeometry.h:109
trackingRecHit_iterator recHitsBegin() const
Iterator to first hit on the track.
Definition: Track.h:104
const edm::EventBase * getEvent() const
Definition: FWEventItem.h:146
T const * product() const
Definition: Handle.h:81
#define fwLog(_level_)
Definition: fwLog.h:50
bool isValid() const
const_iterator find(id_type i, bool update=false) const
iterator end()
Definition: DetSetNew.h:70
DetId geographicalId() const
void setupAddElement(TEveElement *el, TEveElement *parent, const FWEventItem *item, bool master, bool color)
Definition: TrackUtils.cc:342
const FWGeometry * getGeom() const
Definition: FWEventItem.cc:681
TrackingRecHitCollection::base::const_iterator trackingRecHit_iterator
iterator over a vector of reference to TrackingRecHit in the same collection
trackingRecHit_iterator recHitsEnd() const
Iterator to last hit on the track.
Definition: Track.h:109
iterator begin()
Definition: DetSetNew.h:67
void fireworks::addStraightLineSegment ( TEveStraightLineSet *  marker,
reco::Candidate const *  cand,
double  scale_factor = 2 
)

Definition at line 23 of file CandidateUtils.cc.

References funct::cos(), reco::Candidate::phi(), phi(), reco::Candidate::pt(), funct::sin(), findQualityFiles::size, reco::Candidate::theta(), and theta().

Referenced by FWMuonGlimpseProxyBuilder::build(), and FWElectronGlimpseProxyBuilder::build().

26 {
27  double phi = cand->phi();
28  double theta = cand->theta();
29  double size = cand->pt() * scale_factor;
30  marker->AddLine( 0, 0, 0, size * cos(phi)*sin(theta), size *sin(phi)*sin(theta), size*cos(theta));
31 }
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
Geom::Theta< T > theta() const
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
Geom::Phi< T > phi() const
tuple size
Write out results.
const TGGC & fireworks::boldGC ( )

Definition at line 12 of file GlobalContexts.cc.

References fetchall_from_DQM_v2::pool.

Referenced by FWPSetTableManager::cellRenderer().

13 {
14  static TGGC s_boldGC(*gClient->GetResourcePool()->GetFrameGC());
15 
16  TGFontPool *pool = gClient->GetFontPool();
17  //TGFont *font = pool->FindFontByHandle(s_boldGC.GetFont());
18  //FontAttributes_t attributes = font->GetFontAttributes();
19 
20  /*
21  This doesn't seem to work:
22  attributes.fWeight = 1;
23  TGFont *newFont = pool->GetFont(attributes.fFamily, 9,
24  attributes.fWeight, attributes.fSlant);
25 
26  But this does:
27  */
28 
29  TGFont* newFont = pool->GetFont("-*-helvetica-bold-r-*-*-12-*-*-*-*-*-iso8859-1");
30 
31  if ( ! newFont )
32  return s_boldGC;
33 
34  s_boldGC.SetFont(newFont->GetFontHandle());
35 
36  return s_boldGC;
37 }
void fireworks::createSegment ( int  detector,
bool  matchedSegment,
float  segmentLength,
float  segmentLimit,
float *  segmentPosition,
float *  segmentDirection,
float *  segmentInnerPoint,
float *  segmentOuterPoint 
)

Definition at line 10 of file SegmentUtils.cc.

References funct::cos(), MuonSubdetId::CSC, MuonSubdetId::DT, fwLog, fwlog::kWarning, mag(), mathSSE::sqrt(), funct::tan(), and theta().

18  {
19  if( detector == MuonSubdetId::CSC )
20  {
21  if( matchedSegment )
22  {
23  segmentOuterPoint[0] = segmentPosition[0] + segmentLength*segmentDirection[0];
24  segmentOuterPoint[1] = segmentPosition[1] + segmentLength*segmentDirection[1];
25  segmentOuterPoint[2] = segmentLength;
26 
27  if( fabs(segmentOuterPoint[1]) > segmentLimit )
28  segmentOuterPoint[1] = segmentLimit * ( segmentOuterPoint[1] / fabs( segmentOuterPoint[1] ));
29 
30  segmentInnerPoint[0] = segmentPosition[0] - segmentLength*segmentDirection[0];
31  segmentInnerPoint[1] = segmentPosition[1] - segmentLength*segmentDirection[1];
32  segmentInnerPoint[2] = -segmentLength;
33 
34  if( fabs(segmentInnerPoint[1]) > segmentLimit )
35  segmentInnerPoint[1] = segmentLimit * ( segmentInnerPoint[1] / fabs( segmentInnerPoint[1] ));
36 
37  return;
38  }
39  else
40  {
41  segmentOuterPoint[0] = segmentPosition[0] + segmentDirection[0] * ( segmentPosition[2] / segmentDirection[2] );
42  segmentOuterPoint[1] = segmentPosition[1] + segmentDirection[1] * ( segmentPosition[2] / segmentDirection[2] );
43  segmentOuterPoint[2] = segmentPosition[2];
44 
45  if( fabs( segmentOuterPoint[1] ) > segmentLength )
46  segmentOuterPoint[1] = segmentLength * ( segmentOuterPoint[1]/fabs( segmentOuterPoint[1] ));
47 
48  segmentInnerPoint[0] = segmentPosition[0] - segmentDirection[0] * ( segmentPosition[2] / segmentDirection[2] );
49  segmentInnerPoint[1] = segmentPosition[1] - segmentDirection[1] * ( segmentPosition[2] / segmentDirection[2] );
50  segmentInnerPoint[2] = -segmentPosition[2];
51 
52  if( fabs( segmentInnerPoint[1] ) > segmentLength )
53  segmentInnerPoint[1] = segmentLength * ( segmentInnerPoint[1] / fabs( segmentInnerPoint[1] ));
54 
55  return;
56  }
57  }
58 
59  if ( detector == MuonSubdetId::DT )
60  {
61  if( matchedSegment )
62  {
63  segmentOuterPoint[0] = segmentPosition[0] + segmentLength*segmentDirection[0];
64  segmentOuterPoint[1] = segmentPosition[1] + segmentLength*segmentDirection[1];
65  segmentOuterPoint[2] = segmentLength;
66 
67  segmentInnerPoint[0] = segmentPosition[0] - segmentLength*segmentDirection[0];
68  segmentInnerPoint[1] = segmentPosition[1] - segmentLength*segmentDirection[1];
69  segmentInnerPoint[2] = -segmentLength;
70 
71  return;
72  }
73  else
74  {
75  double mag = sqrt( segmentDirection[0] * segmentDirection[0] +
76  segmentDirection[1] * segmentDirection[1] +
77  segmentDirection[2] * segmentDirection[2] );
78 
79  double theta = atan2( sqrt( segmentDirection[0] * segmentDirection[0]
80  + segmentDirection[1] * segmentDirection[1] ), segmentDirection[2] );
81 
82  double newSegmentLength = segmentLength / cos( theta );
83 
84  segmentInnerPoint[0] = segmentPosition[0] + ( segmentDirection[0] / mag ) * newSegmentLength;
85  segmentInnerPoint[1] = segmentPosition[1] + ( segmentDirection[1] / mag ) * newSegmentLength;
86  segmentInnerPoint[2] = segmentPosition[2] + ( segmentDirection[2] / mag ) * newSegmentLength;
87 
88  segmentOuterPoint[0] = segmentPosition[0] - ( segmentDirection[0] / mag ) * newSegmentLength;
89  segmentOuterPoint[1] = segmentPosition[1] - ( segmentDirection[1] / mag ) * newSegmentLength;
90  segmentOuterPoint[2] = segmentPosition[2] - ( segmentDirection[2] / mag ) * newSegmentLength;
91 
92  if( fabs(segmentOuterPoint[0]) > segmentLimit )
93  {
94  segmentOuterPoint[0] = segmentLimit * ( segmentOuterPoint[0]/fabs( segmentOuterPoint[0] ));
95  segmentOuterPoint[1] = ( segmentOuterPoint[1]/fabs( segmentOuterPoint[1] )) * tan( theta );
96  }
97 
98  return;
99  }
100  }
101 
102  fwLog( fwlog::kWarning ) << "MuonSubdetId: " << detector << std::endl;
103  return;
104  }
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
Geom::Theta< T > theta() const
static const int CSC
Definition: MuonSubdetId.h:13
T sqrt(T t)
Definition: SSEVec.h:48
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
#define fwLog(_level_)
Definition: fwLog.h:50
static const int DT
Definition: MuonSubdetId.h:12
const TString fireworks::datadir ( "/src/Fireworks/Core/"  )
void fireworks::drawEnergyScaledBox3D ( const float *  corners,
float  scale,
TEveElement *  comp,
FWProxyBuilderBase pb,
bool  invert = false 
)

Definition at line 241 of file BuilderUtils.cc.

References addBox(), and energyScaledBox3DCorners().

242  {
243  std::vector<float> scaledCorners( 24 );
244  energyScaledBox3DCorners(corners, scale, scaledCorners, invert);
245  addBox( scaledCorners, comp, pb );
246  }
void energyScaledBox3DCorners(const float *corners, float scale, std::vector< float > &, bool invert=false)
void addBox(const std::vector< float > &corners, TEveElement *, FWProxyBuilderBase *)
void fireworks::drawEnergyTower3D ( const float *  corners,
float  scale,
TEveElement *  comp,
FWProxyBuilderBase pb,
bool  reflect = false 
)

Definition at line 325 of file BuilderUtils.cc.

References addBox(), and energyTower3DCorners().

326  {
327  std::vector<float> scaledCorners( 24 );
328  energyTower3DCorners(corners, scale, scaledCorners, reflect);
329  addBox( scaledCorners, comp, pb );
330  }
void energyTower3DCorners(const float *corners, float scale, std::vector< float > &, bool reflect=false)
void addBox(const std::vector< float > &corners, TEveElement *, FWProxyBuilderBase *)
void fireworks::drawEtScaledBox3D ( const float *  corners,
float  energy,
float  maxEnergy,
TEveElement *  comp,
FWProxyBuilderBase pb,
bool  reflect = false 
)

Definition at line 278 of file BuilderUtils.cc.

References addBox(), and etScaledBox3DCorners().

279  {
280  std::vector<float> scaledCorners( 24 );
281  etScaledBox3DCorners(corners, energy, maxEnergy, scaledCorners, invert);
282  addBox( scaledCorners, comp, pb );
283  }
void addBox(const std::vector< float > &corners, TEveElement *, FWProxyBuilderBase *)
void etScaledBox3DCorners(const float *corners, float energy, float maxEnergy, std::vector< float > &scaledCorners, bool reflect=false)
void fireworks::drawEtTower3D ( const float *  corners,
float  scale,
TEveElement *  comp,
FWProxyBuilderBase pb,
bool  reflect = false 
)

Definition at line 374 of file BuilderUtils.cc.

References addBox(), and etTower3DCorners().

375  {
376  std::vector<float> scaledCorners( 24 );
377  etTower3DCorners(corners, scale, scaledCorners, reflect);
378  addBox( scaledCorners, comp, pb );
379  }
void etTower3DCorners(const float *corners, float scale, std::vector< float > &, bool reflect=false)
void addBox(const std::vector< float > &corners, TEveElement *, FWProxyBuilderBase *)
void fireworks::energyScaledBox3DCorners ( const float *  corners,
float  scale,
std::vector< float > &  scaledCorners,
bool  invert = false 
)

Definition at line 215 of file BuilderUtils.cc.

References f, i, and invertBox().

Referenced by drawEnergyScaledBox3D().

216  {
217  std::vector<float> centre( 3, 0 );
218 
219  for( unsigned int i = 0; i < 24; i += 3 )
220  {
221  centre[0] += corners[i];
222  centre[1] += corners[i + 1];
223  centre[2] += corners[i + 2];
224  }
225 
226  for( unsigned int i = 0; i < 3; ++i )
227  centre[i] *= 1.0f / 8.0f;
228 
229  // Coordinates for a scaled version of the original box
230  for( unsigned int i = 0; i < 24; i += 3 )
231  {
232  scaledCorners[i] = centre[0] + ( corners[i] - centre[0] ) * scale;
233  scaledCorners[i + 1] = centre[1] + ( corners[i + 1] - centre[1] ) * scale;
234  scaledCorners[i + 2] = centre[2] + ( corners[i + 2] - centre[2] ) * scale;
235  }
236 
237  if( invert )
238  invertBox( scaledCorners );
239  }
int i
Definition: DBlmapReader.cc:9
void invertBox(std::vector< float > &corners)
double f[11][100]
void fireworks::energyTower3DCorners ( const float *  corners,
float  scale,
std::vector< float > &  scaledCorners,
bool  reflect = false 
)

Definition at line 286 of file BuilderUtils.cc.

References diffTreeTool::diff, i, and pileupReCalc_HLTpaths::scale.

Referenced by FWPRCaloTowerProxyBuilder::build(), FWCaloClusterProxyBuilder::build(), FWPCaloHitProxyBuilder::build(), and drawEnergyTower3D().

287  {
288  for( int i = 0; i < 24; ++i )
289  scaledCorners[i] = corners[i];
290  // Coordinates of a front face scaled
291  if( reflect )
292  {
293  // We know, that an ES rechit geometry in -Z needs correction.
294  // The back face is actually its front face.
295  for( unsigned int i = 0; i < 12; i += 3 )
296  {
297  TEveVector diff( corners[i] - corners[i + 12], corners[i + 1] - corners[i + 13], corners[i + 2] - corners[i + 14] );
298  diff.Normalize();
299  diff *= scale;
300 
301  scaledCorners[i] = corners[i] + diff.fX;
302  scaledCorners[i + 1] = corners[i + 1] + diff.fY;
303  scaledCorners[i + 2] = corners[i + 2] + diff.fZ;
304  }
305  }
306  else
307  {
308  for( unsigned int i = 0; i < 12; i += 3 )
309  {
310  TEveVector diff( corners[i + 12] - corners[i], corners[i + 13] - corners[i + 1], corners[i + 14] - corners[i + 2] );
311  diff.Normalize();
312  diff *= scale;
313 
314  scaledCorners[i] = corners[i + 12];
315  scaledCorners[i + 1] = corners[i + 13];
316  scaledCorners[i + 2] = corners[i + 14];
317 
318  scaledCorners[i + 12] = corners[i + 12] + diff.fX;
319  scaledCorners[i + 13] = corners[i + 13] + diff.fY;
320  scaledCorners[i + 14] = corners[i + 14] + diff.fZ;
321  }
322  }
323  }
int i
Definition: DBlmapReader.cc:9
void fireworks::etScaledBox3DCorners ( const float *  corners,
float  energy,
float  maxEnergy,
std::vector< float > &  scaledCorners,
bool  reflect = false 
)

Definition at line 249 of file BuilderUtils.cc.

References EnergyCorrector::c, f, i, invertBox(), pileupReCalc_HLTpaths::scale, and funct::sin().

Referenced by drawEtScaledBox3D().

250  {
251  std::vector<float> centre( 3, 0 );
252 
253  for( unsigned int i = 0; i < 24; i += 3 )
254  {
255  centre[0] += corners[i];
256  centre[1] += corners[i + 1];
257  centre[2] += corners[i + 2];
258  }
259 
260  for( unsigned int i = 0; i < 3; ++i )
261  centre[i] *= 1.0f / 8.0f;
262 
263  TEveVector c( centre[0], centre[1], centre[2] );
264  float scale = energy / maxEnergy * sin( c.Theta());
265 
266  // Coordinates for a scaled version of the original box
267  for( unsigned int i = 0; i < 24; i += 3 )
268  {
269  scaledCorners[i] = centre[0] + ( corners[i] - centre[0] ) * scale;
270  scaledCorners[i + 1] = centre[1] + ( corners[i + 1] - centre[1] ) * scale;
271  scaledCorners[i + 2] = centre[2] + ( corners[i + 2] - centre[2] ) * scale;
272  }
273 
274  if( invert )
275  invertBox( scaledCorners );
276  }
int i
Definition: DBlmapReader.cc:9
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
void invertBox(std::vector< float > &corners)
double f[11][100]
void fireworks::etTower3DCorners ( const float *  corners,
float  scale,
std::vector< float > &  scaledCorners,
bool  reflect = false 
)

Definition at line 334 of file BuilderUtils.cc.

References diffTreeTool::diff, i, and funct::sin().

Referenced by drawEtTower3D().

335  {
336  for( int i = 0; i < 24; ++i )
337  scaledCorners[i] = corners[i];
338  // Coordinates of a front face scaled
339  if( reflect )
340  {
341  // We know, that an ES rechit geometry in -Z needs correction.
342  // The back face is actually its front face.
343  for( unsigned int i = 0; i < 12; i += 3 )
344  {
345  TEveVector diff( corners[i] - corners[i + 12], corners[i + 1] - corners[i + 13], corners[i + 2] - corners[i + 14] );
346  diff.Normalize();
347  diff *= ( scale * sin( diff.Theta()));
348 
349  scaledCorners[i] = corners[i] + diff.fX;
350  scaledCorners[i + 1] = corners[i + 1] + diff.fY;
351  scaledCorners[i + 2] = corners[i + 2] + diff.fZ;
352  }
353  }
354  else
355  {
356  for( unsigned int i = 0; i < 12; i += 3 )
357  {
358  TEveVector diff( corners[i + 12] - corners[i], corners[i + 13] - corners[i + 1], corners[i + 14] - corners[i + 2] );
359  diff.Normalize();
360  diff *= ( scale * sin( diff.Theta()));
361 
362  scaledCorners[i] = corners[i + 12];
363  scaledCorners[i + 1] = corners[i + 13];
364  scaledCorners[i + 2] = corners[i + 14];
365 
366  scaledCorners[i + 12] = corners[i + 12] + diff.fX;
367  scaledCorners[i + 13] = corners[i + 13] + diff.fY;
368  scaledCorners[i + 14] = corners[i + 14] + diff.fZ;
369  }
370  }
371  }
int i
Definition: DBlmapReader.cc:9
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
const SiStripCluster * fireworks::extractClusterFromTrackingRecHit ( const TrackingRecHit rh)

Definition at line 364 of file TrackUtils.cc.

References fwLog, and fwlog::kDebug.

Referenced by addSiStripClusters(), and FWTrajectorySeedProxyBuilder::build().

365 {
366  const SiStripCluster* cluster = 0;
367 
368  if( const SiStripRecHit2D* hit2D = dynamic_cast<const SiStripRecHit2D*>( rechit ))
369  {
370  fwLog( fwlog::kDebug ) << "hit 2D ";
371 
372  cluster = hit2D->cluster().get();
373  }
374  if( cluster == 0 )
375  {
376  if( const SiStripRecHit1D* hit1D = dynamic_cast<const SiStripRecHit1D*>( rechit ))
377  {
378  fwLog( fwlog::kDebug ) << "hit 1D ";
379 
380  cluster = hit1D->cluster().get();
381  }
382  }
383  return cluster;
384 }
#define fwLog(_level_)
Definition: fwLog.h:50
void fireworks::getDecomposedVersion ( const TString &  s,
int *  out 
)

Definition at line 30 of file fwPaths.cc.

Referenced by acceptDataFormatsVersion(), FWFileEntry::openFile(), and supportedDataFormatsVersion().

31 {
32  TPMERegexp re("CMSSW_(\\d+)_(\\d+)_");
33  re.Match(s);
34  if (re.NMatches() > 2)
35  {
36  out[0] = re[1].Atoi();
37  out[1] = re[2].Atoi();
38  }
39 }
tuple out
Definition: dbtoconf.py:99
std::string fireworks::getLocalTime ( const edm::EventBase event)

Definition at line 113 of file BuilderUtils.cc.

References AlCaHLTBitMon_QueryRunRegistry::string, tree::t, runonSM::text, edm::EventBase::time(), and edm::Timestamp::value().

Referenced by CmsShowMainFrame::loadEvent(), and FWEventAnnotation::updateOverlayText().

114  {
115 
116  time_t t( event.time().value() >> 32 );
117  struct tm * xx = localtime( &t );
118  std::string text( asctime(xx) );
119  size_t pos = text.find('\n');
120  if( pos != std::string::npos ) text = text.substr( 0, pos );
121  text += " ";
122  if( xx->tm_isdst )
123  text += tzname[1];
124  else
125  text += tzname[0];
126  return text;
127  }
tuple t
Definition: tree.py:139
tuple text
Definition: runonSM.py:42
TimeValue_t value() const
Definition: Timestamp.h:56
edm::Timestamp time() const
Definition: EventBase.h:61
std::pair< double, double > fireworks::getPhiRange ( const std::vector< double > &  phis,
double  phi 
)

Definition at line 21 of file BuilderUtils.cc.

References i, M_PI, bookConverter::max, and min().

Referenced by FWTauProxyBuilderBase::buildBaseTau(), and makeRhoPhiSuperCluster().

22  {
23  double min = 100;
24  double max = -100;
25 
26  for( std::vector<double>::const_iterator i = phis.begin();
27  i != phis.end(); ++i )
28  {
29  double aphi = *i;
30  // make phi continuous around jet phi
31  if( aphi - phi > M_PI ) aphi -= 2*M_PI;
32  if( phi - aphi > M_PI ) aphi += 2*M_PI;
33  if( aphi > max ) max = aphi;
34  if( aphi < min ) min = aphi;
35  }
36 
37  if( min > max ) return std::pair<double,double>( 0, 0 );
38 
39  return std::pair<double,double>( min, max );
40  }
int i
Definition: DBlmapReader.cc:9
T min(T a, T b)
Definition: MathUtil.h:58
#define M_PI
Geom::Phi< T > phi() const
TEveGeoShape * fireworks::getShape ( const char *  name,
TGeoBBox *  shape,
Color_t  color 
)

Definition at line 42 of file BuilderUtils.cc.

References EnergyCorrector::c.

Referenced by FWTauProxyBuilderBase::buildBaseTau(), FWMETProxyBuilder::buildViewType(), FWGlimpseView::FWGlimpseView(), and makeRhoPhiSuperCluster().

45  {
46  TEveGeoShape* egs = new TEveGeoShape( name );
47  TColor* c = gROOT->GetColor( color );
48  Float_t rgba[4] = { 1, 0, 0, 1 };
49  if( c )
50  {
51  rgba[0] = c->GetRed();
52  rgba[1] = c->GetGreen();
53  rgba[2] = c->GetBlue();
54  }
55  egs->SetMainColorRGB( rgba[0], rgba[1], rgba[2] );
56  egs->SetShape( shape );
57  return egs;
58  }
std::string fireworks::getTimeGMT ( const edm::EventBase event)

Definition at line 103 of file BuilderUtils.cc.

References AlCaHLTBitMon_QueryRunRegistry::string, tree::t, runonSM::text, edm::EventBase::time(), and edm::Timestamp::value().

104  {
105  time_t t( event.time().value() >> 32 );
106  std::string text( asctime( gmtime( &t ) ) );
107  size_t pos = text.find( '\n' );
108  if( pos != std::string::npos ) text = text.substr( 0, pos );
109  text += " GMT";
110  return text;
111  }
tuple t
Definition: tree.py:139
tuple text
Definition: runonSM.py:42
TimeValue_t value() const
Definition: Timestamp.h:56
edm::Timestamp time() const
Definition: EventBase.h:61
const TGGC & fireworks::greenGC ( )

Definition at line 39 of file GlobalContexts.cc.

40 {
41  static TGGC s_greenGC(*gClient->GetResourcePool()->GetFrameGC());
42  s_greenGC.SetForeground(gVirtualX->GetPixel(kGreen-5));
43  return s_greenGC;
44 }
std::string fireworks::info ( const DetId id)

Definition at line 692 of file TrackUtils.cc.

References DetId::Calo, ME0DetId::chamber(), GEMDetId::chamber(), CSCDetId::chamber(), MuonSubdetId::CSC, HcalDetId::depth(), MuonSubdetId::DT, DetId::Ecal, EcalBarrel, EcalEndcap, EcalLaserPnDiode, EcalPreshower, EcalTriggerTower, CSCDetId::endcap(), MuonSubdetId::GEM, DetId::Hcal, HcalBarrel, HcalEmpty, HcalEndcap, HcalForward, HcalOther, HcalOuter, HcalTriggerTower, EEDetId::ic(), CaloTowerDetId::ieta(), HcalDetId::ieta(), EBDetId::ieta(), CaloTowerDetId::iphi(), HcalDetId::iphi(), EBDetId::iphi(), EEDetId::iquadrant(), EEDetId::isc(), EEDetId::ix(), EEDetId::iy(), PXBDetId::layer(), TOBDetId::layer(), TIBDetId::layer(), ME0DetId::layer(), GEMDetId::layer(), CSCDetId::layer(), RPCDetId::layer(), MuonSubdetId::ME0, DetId::Muon, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, ME0DetId::region(), GEMDetId::region(), RPCDetId::region(), GEMDetId::ring(), RPCDetId::ring(), CSCDetId::ring(), RPCDetId::roll(), MuonSubdetId::RPC, DTChamberId::sector(), RPCDetId::sector(), DTChamberId::station(), GEMDetId::station(), RPCDetId::station(), CSCDetId::station(), HcalDetId::subdet(), RPCDetId::subsector(), StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, StripSubdetector::TOB, EBDetId::tower_ieta(), EBDetId::tower_iphi(), DetId::Tracker, DTChamberId::wheel(), TIDDetId::wheel(), and TECDetId::wheel().

Referenced by FWTrackHitsDetailView::addModules(), FWConvTrackHitsDetailView::addModules(), FWTracksModulesProxyBuilder::build(), and info().

692  {
693  std::ostringstream oss;
694 
695  oss << "DetId: " << id.rawId() << "\n";
696 
697  switch ( id.det() ) {
698 
699  case DetId::Tracker:
700  switch ( id.subdetId() ) {
702  {
703  oss <<"TIB "<<TIBDetId(id).layer();
704  }
705  break;
707  {
708  oss <<"TOB "<<TOBDetId(id).layer();
709  }
710  break;
712  {
713  oss <<"TEC "<<TECDetId(id).wheel();
714  }
715  break;
717  {
718  oss <<"TID "<<TIDDetId(id).wheel();
719  }
720  break;
722  {
723  oss <<"PixBarrel "<< PXBDetId(id).layer();
724  }
725  break;
727  {
728  oss <<"PixEndcap "<< PXBDetId(id).layer();
729  }
730  break;
731  }
732  break;
733 
734  case DetId::Muon:
735  switch ( id.subdetId() ) {
736  case MuonSubdetId::DT:
737  {
738  DTChamberId detId(id.rawId());
739  oss << "DT chamber (wheel, station, sector): "
740  << detId.wheel() << ", "
741  << detId.station() << ", "
742  << detId.sector();
743  }
744  break;
745  case MuonSubdetId::CSC:
746  {
747  CSCDetId detId(id.rawId());
748  oss << "CSC chamber (endcap, station, ring, chamber, layer): "
749  << detId.endcap() << ", "
750  << detId.station() << ", "
751  << detId.ring() << ", "
752  << detId.chamber() << ", "
753  << detId.layer();
754  }
755  break;
756  case MuonSubdetId::RPC:
757  {
758  RPCDetId detId(id.rawId());
759  oss << "RPC chamber ";
760  switch ( detId.region() ) {
761  case 0:
762  oss << "/ barrel / (wheel, station, sector, layer, subsector, roll): "
763  << detId.ring() << ", "
764  << detId.station() << ", "
765  << detId.sector() << ", "
766  << detId.layer() << ", "
767  << detId.subsector() << ", "
768  << detId.roll();
769  break;
770  case 1:
771  oss << "/ forward endcap / (wheel, station, sector, layer, subsector, roll): "
772  << detId.ring() << ", "
773  << detId.station() << ", "
774  << detId.sector() << ", "
775  << detId.layer() << ", "
776  << detId.subsector() << ", "
777  << detId.roll();
778  break;
779  case -1:
780  oss << "/ backward endcap / (wheel, station, sector, layer, subsector, roll): "
781  << detId.ring() << ", "
782  << detId.station() << ", "
783  << detId.sector() << ", "
784  << detId.layer() << ", "
785  << detId.subsector() << ", "
786  << detId.roll();
787  break;
788  }
789  }
790  break;
791  case MuonSubdetId::GEM:
792  {
793  GEMDetId detId(id.rawId());
794  oss << "GEM chamber (region, station, ring, chamber, layer): "
795  << detId.region() << ", "
796  << detId.station() << ", "
797  << detId.ring() << ", "
798  << detId.chamber() << ", "
799  << detId.layer();
800  }
801  break;
802  case MuonSubdetId::ME0:
803  {
804  ME0DetId detId(id.rawId());
805  oss << "ME0 chamber (region, chamber, layer): "
806  << detId.region() << ", "
807  << detId.chamber() << ", "
808  << detId.layer();
809  }
810  break;
811  }
812  break;
813 
814  case DetId::Calo:
815  {
816  CaloTowerDetId detId( id.rawId() );
817  oss << "CaloTower (ieta, iphi): "
818  << detId.ieta() << ", "
819  << detId.iphi();
820  }
821  break;
822 
823  case DetId::Ecal:
824  switch ( id.subdetId() ) {
825  case EcalBarrel:
826  {
827  EBDetId detId(id);
828  oss << "EcalBarrel (ieta, iphi, tower_ieta, tower_iphi): "
829  << detId.ieta() << ", "
830  << detId.iphi() << ", "
831  << detId.tower_ieta() << ", "
832  << detId.tower_iphi();
833  }
834  break;
835  case EcalEndcap:
836  {
837  EEDetId detId(id);
838  oss << "EcalEndcap (ix, iy, SuperCrystal, crystal, quadrant): "
839  << detId.ix() << ", "
840  << detId.iy() << ", "
841  << detId.isc() << ", "
842  << detId.ic() << ", "
843  << detId.iquadrant();
844  }
845  break;
846  case EcalPreshower:
847  oss << "EcalPreshower";
848  break;
849  case EcalTriggerTower:
850  oss << "EcalTriggerTower";
851  break;
852  case EcalLaserPnDiode:
853  oss << "EcalLaserPnDiode";
854  break;
855  }
856  break;
857 
858  case DetId::Hcal:
859  {
860  HcalDetId detId(id);
861  switch ( detId.subdet() ) {
862  case HcalEmpty:
863  oss << "HcalEmpty ";
864  break;
865  case HcalBarrel:
866  oss << "HcalBarrel ";
867  break;
868  case HcalEndcap:
869  oss << "HcalEndcap ";
870  break;
871  case HcalOuter:
872  oss << "HcalOuter ";
873  break;
874  case HcalForward:
875  oss << "HcalForward ";
876  break;
877  case HcalTriggerTower:
878  oss << "HcalTriggerTower ";
879  break;
880  case HcalOther:
881  oss << "HcalOther ";
882  break;
883  }
884  oss << "(ieta, iphi, depth):"
885  << detId.ieta() << ", "
886  << detId.iphi() << ", "
887  << detId.depth();
888  }
889  break;
890  default :;
891  }
892  return oss.str();
893 }
unsigned int layer() const
layer id
Definition: TOBDetId.h:39
static const int GEM
Definition: MuonSubdetId.h:15
unsigned int layer() const
layer id
Definition: PXBDetId.h:35
static const int ME0
Definition: MuonSubdetId.h:16
static const int CSC
Definition: MuonSubdetId.h:13
unsigned int wheel() const
wheel id
Definition: TECDetId.h:52
unsigned int layer() const
layer id
Definition: TIBDetId.h:41
static const int RPC
Definition: MuonSubdetId.h:14
static const int DT
Definition: MuonSubdetId.h:12
unsigned int wheel() const
wheel id
Definition: TIDDetId.h:50
std::string fireworks::info ( const std::set< DetId > &  idSet)

Definition at line 896 of file TrackUtils.cc.

References info(), AlCaHLTBitMon_QueryRunRegistry::string, and runonSM::text.

896  {
898  for(std::set<DetId>::const_iterator id = idSet.begin(), idEnd = idSet.end(); id != idEnd; ++id)
899  {
900  text += info(*id);
901  text += "\n";
902  }
903  return text;
904 }
static const TGPicture * info(bool iBackgroundIsBlack)
tuple text
Definition: runonSM.py:42
std::string fireworks::info ( const std::vector< DetId > &  idSet)

Definition at line 907 of file TrackUtils.cc.

References info(), AlCaHLTBitMon_QueryRunRegistry::string, and runonSM::text.

907  {
909  for(std::vector<DetId>::const_iterator id = idSet.begin(), idEnd = idSet.end(); id != idEnd; ++id)
910  {
911  text += info(*id);
912  text += "\n";
913  }
914  return text;
915 }
static const TGPicture * info(bool iBackgroundIsBlack)
tuple text
Definition: runonSM.py:42
void fireworks::invertBox ( std::vector< float > &  corners)

Definition at line 129 of file BuilderUtils.cc.

References std::swap().

Referenced by energyScaledBox3DCorners(), etScaledBox3DCorners(), and FWCaloRecHitDigitSetProxyBuilder::viewContextBoxScale().

130  {
131  std::swap( corners[0], corners[9] );
132  std::swap( corners[1], corners[10] );
133  std::swap( corners[2], corners[11] );
134 
135  std::swap( corners[3], corners[6] );
136  std::swap( corners[4], corners[7] );
137  std::swap( corners[5], corners[8] );
138 
139  std::swap( corners[12], corners[21] );
140  std::swap( corners[13], corners[22] );
141  std::swap( corners[14], corners[23] );
142 
143  std::swap( corners[15], corners[18] );
144  std::swap( corners[16], corners[19] );
145  std::swap( corners[17], corners[20] );
146  }
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
const TGGC & fireworks::italicGC ( )

Definition at line 53 of file GlobalContexts.cc.

References asciidump::attributes, and fetchall_from_DQM_v2::pool.

Referenced by FWPSetTableManager::cellRenderer().

54 {
55  static TGGC s_italicGC(*gClient->GetResourcePool()->GetFrameGC());
56 
57  TGFontPool *pool = gClient->GetFontPool();
58  TGFont *font = pool->FindFontByHandle(s_italicGC.GetFont());
59  FontAttributes_t attributes = font->GetFontAttributes();
60 
61  attributes.fSlant = 1;
62  TGFont *newFont = pool->GetFont(attributes.fFamily, 9,
63  attributes.fWeight, attributes.fSlant);
64 
65  s_italicGC.SetFont(newFont->GetFontHandle());
66 
67  return s_italicGC;
68 }
list attributes
Definition: asciidump.py:415
void fireworks::localSiStrip ( short  strip,
float *  localTop,
float *  localBottom,
const float *  pars,
unsigned int  id 
)

Definition at line 297 of file TrackUtils.cc.

References delta, fwLog, fwlog::kError, unpackBuffers-CaloStage2::offset, funct::tan(), and ecaldqm::topology().

Referenced by addSiStripClusters(), FWSiStripClusterProxyBuilder::build(), FWSiStripDigiProxyBuilder::build(), and FWTrajectorySeedProxyBuilder::build().

298 {
299  Float_t topology = pars[0];
300  Float_t halfStripLength = pars[2] * 0.5;
301 
302  Double_t localCenter[3] = { 0.0, 0.0, 0.0 };
303  localTop[1] = halfStripLength;
304  localBottom[1] = -halfStripLength;
305 
306  if( topology == 1 ) // RadialStripTopology
307  {
308  // stripAngle = phiOfOneEdge + strip * angularWidth
309  // localY = originToIntersection * tan( stripAngle )
310  Float_t stripAngle = tan( pars[5] + strip * pars[6] );
311  Float_t delta = halfStripLength * stripAngle;
312  localCenter[0] = pars[4] * stripAngle;
313  localTop[0] = localCenter[0] + delta;
314  localBottom[0] = localCenter[0] - delta;
315  }
316  else if( topology == 2 ) // RectangularStripTopology
317  {
318  // offset = -numberOfStrips/2. * pitch
319  // localY = strip * pitch + offset
320  Float_t offset = -pars[1] * 0.5 * pars[3];
321  localCenter[0] = strip * pars[3] + offset;
322  localTop[0] = localCenter[0];
323  localBottom[0] = localCenter[0];
324  }
325  else if( topology == 3 ) // TrapezoidalStripTopology
326  {
328  << "did not expect TrapezoidalStripTopology of "
329  << id << std::endl;
330  }
331  else if( pars[0] == 0 ) // StripTopology
332  {
334  << "did not find StripTopology of "
335  << id << std::endl;
336  }
337 }
dbl * delta
Definition: mlp_gen.cc:36
CaloTopology const * topology(0)
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
#define fwLog(_level_)
Definition: fwLog.h:50
TEveJetCone * fireworks::makeEveJetCone ( const reco::Jet iData,
const fireworks::Context context 
)

Definition at line 7 of file makeEveJetCone.cc.

References EnergyCorrector::c, fireworks::Context::caloMaxEta(), fireworks::Context::caloR1(), fireworks::Context::caloR2(), fireworks::Context::caloTransAngle(), fireworks::Context::caloZ1(), fireworks::Context::caloZ2(), reco::LeafCandidate::eta(), reco::Jet::etaetaMoment(), reco::Jet::getJetConstituents(), metsig::jet, reco::LeafCandidate::phi(), reco::Jet::phiphiMoment(), mathSSE::sqrt(), funct::tan(), and reco::LeafCandidate::vertex().

Referenced by FWTauProxyBuilderBase::buildBaseTau(), and FWJetProxyBuilder::requestCommon().

8 {
9  TEveJetCone* jet = new TEveJetCone();
10  jet->SetApex(TEveVector(iData.vertex().x(),iData.vertex().y(),iData.vertex().z()));
11 
13  bool haveData = true;
14  for ( reco::Jet::Constituents::const_iterator itr = c.begin(); itr != c.end(); ++itr )
15  {
16  if ( !itr->isAvailable() ) {
17  haveData = false;
18  break;
19  }
20  }
21 
22  double eta_size = 0.2;
23  double phi_size = 0.2;
24  if ( haveData ){
25  eta_size = sqrt(iData.etaetaMoment());
26  phi_size = sqrt(iData.phiphiMoment());
27  }
28 
29  static const float offr = 5;
30  static const float offz = offr/tan(context.caloTransAngle());
31  if (iData.eta() < context.caloMaxEta())
32  jet->SetCylinder(context.caloR1(false) -offr, context.caloZ1(false)-offz);
33  else
34  jet->SetCylinder(context.caloR2(false) -offr, context.caloZ2(false)-offz);
35 
36 
37  jet-> AddEllipticCone(iData.eta(), iData.phi(), eta_size, phi_size);
38  jet->SetPickable(kTRUE);
39  return jet;
40 }
static float caloTransAngle()
Definition: Context.cc:235
virtual const Point & vertex() const
vertex position (overwritten by PF...)
static float caloZ2(bool offset=true)
Definition: Context.cc:225
std::vector< Constituent > Constituents
Definition: Jet.h:23
float etaetaMoment() const
eta-eta second moment, ET weighted
virtual Constituents getJetConstituents() const
list of constituents
virtual double eta() const
momentum pseudorapidity
static float caloR2(bool offset=true)
Definition: Context.cc:215
T sqrt(T t)
Definition: SSEVec.h:48
static float caloR1(bool offset=true)
Definition: Context.cc:210
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
float phiphiMoment() const
phi-phi second moment, ET weighted
static double caloMaxEta()
Definition: Context.cc:240
static float caloZ1(bool offset=true)
Definition: Context.cc:220
virtual double phi() const
momentum azimuthal angle
bool fireworks::makeRhoPhiSuperCluster ( FWProxyBuilderBase pb,
const reco::SuperClusterRef iCluster,
float  iPhi,
TEveElement &  oItemHolder 
)

Definition at line 28 of file makeSuperCluster.cc.

References fireworks::Context::caloR1(), FWDisplayProperties::color(), FWProxyBuilderBase::context(), FWEventItem::defaultDisplayProperties(), end, FWGeometry::getCorners(), fireworks::Context::getGeom(), getPhiRange(), getShape(), i, edm::Ref< C, T, F >::isAvailable(), FWProxyBuilderBase::item(), M_PI, colinearityKinematic::Phi, alignCSCRings::r, and FWProxyBuilderBase::setupAddElement().

Referenced by FWPhotonProxyBuilder::buildViewType(), and FWElectronProxyBuilder::buildViewType().

32 {
33  if( !iCluster.isAvailable()) return false;
34  TEveGeoManagerHolder gmgr( TEveGeoShape::GetGeoMangeur());
35 
36  std::vector< std::pair<DetId, float> > detids = iCluster->hitsAndFractions();
37  if (detids.empty()) return false;
38  std::vector<double> phis;
39  for( std::vector<std::pair<DetId, float> >::const_iterator id = detids.begin(), end = detids.end(); id != end; ++id )
40  {
41  const float* corners = pb->context().getGeom()->getCorners( id->first.rawId());
42  if( corners != 0 )
43  {
44  std::vector<float> centre( 3, 0 );
45 
46  for( unsigned int i = 0; i < 24; i += 3 )
47  {
48  centre[0] += corners[i];
49  centre[1] += corners[i + 1];
50  centre[2] += corners[i + 2];
51  }
52 
53  phis.push_back( TEveVector( centre[0], centre[1], centre[2] ).Phi());
54  }
55  }
56  std::pair<double,double> phiRange = fireworks::getPhiRange( phis, iPhi );
57  const double r = pb->context().caloR1();
58  TGeoBBox *sc_box = new TGeoTubeSeg( r - 2, r , 1,
59  phiRange.first * 180 / M_PI - 0.5,
60  phiRange.second * 180 / M_PI + 0.5 ); // 0.5 is roughly half size of a crystal
61  TEveGeoShape *sc = fireworks::getShape( "supercluster", sc_box, pb->item()->defaultDisplayProperties().color());
62  sc->SetPickable( kTRUE );
63  pb->setupAddElement( sc, &oItemHolder );
64  return true;
65 }
bool isAvailable() const
Definition: Ref.h:576
const fireworks::Context & context() const
int i
Definition: DBlmapReader.cc:9
const FWDisplayProperties & defaultDisplayProperties() const
Definition: FWEventItem.cc:451
std::pair< double, double > getPhiRange(const std::vector< double > &phis, double phi)
Definition: BuilderUtils.cc:21
const FWGeometry * getGeom() const
Definition: Context.h:83
void setupAddElement(TEveElement *el, TEveElement *parent, bool set_color=true) const
const FWEventItem * item() const
Color_t color() const
static float caloR1(bool offset=true)
Definition: Context.cc:210
#define end
Definition: vmac.h:37
#define M_PI
const float * getCorners(unsigned int id) const
Definition: FWGeometry.cc:280
TEveGeoShape * getShape(const char *name, TGeoBBox *shape, Color_t color)
Definition: BuilderUtils.cc:42
bool fireworks::makeRhoZSuperCluster ( FWProxyBuilderBase pb,
const reco::SuperClusterRef iCluster,
float  iPhi,
TEveElement &  oItemHolder 
)

Definition at line 67 of file makeSuperCluster.cc.

References addRhoZEnergyProjection(), Reference_intrackfit_cff::barrel, fireworks::Context::caloR1(), fireworks::Context::caloR2(), fireworks::Context::caloTransAngle(), fireworks::Context::caloZ1(), fireworks::Context::caloZ2(), FWProxyBuilderBase::context(), end, FWGeometry::getCorners(), fireworks::Context::getGeom(), i, edm::Ref< C, T, F >::isAvailable(), Pi, and theta().

Referenced by FWPhotonProxyBuilder::buildViewType(), and FWElectronProxyBuilder::buildViewType().

71 {
72  if( !iCluster.isAvailable()) return false;
73  TEveGeoManagerHolder gmgr( TEveGeoShape::GetGeoMangeur());
74  double theta_max = 0;
75  double theta_min = 10;
76  std::vector<std::pair<DetId, float> > detids = iCluster->hitsAndFractions();
77  if (detids.empty()) return false;
78  for( std::vector<std::pair<DetId, float> >::const_iterator id = detids.begin(), end = detids.end(); id != end; ++id )
79  {
80  const float* corners = pb->context().getGeom()->getCorners( id->first.rawId());
81  if( corners != 0 )
82  {
83  std::vector<float> centre( 3, 0 );
84 
85  for( unsigned int i = 0; i < 24; i += 3 )
86  {
87  centre[0] += corners[i];
88  centre[1] += corners[i + 1];
89  centre[2] += corners[i + 2];
90  }
91 
92  double theta = TEveVector( centre[0], centre[1], centre[2] ).Theta();
93  if( theta > theta_max ) theta_max = theta;
94  if( theta < theta_min ) theta_min = theta;
95  }
96  }
97  // expand theta range by the size of a crystal to avoid segments of zero length
98  bool barrel = true;
99  if ((theta_max > 0 && theta_max < pb->context().caloTransAngle()) ||
100  ( theta_min > (TMath::Pi() -pb->context().caloTransAngle())) )
101  {
102  barrel = false;
103  }
104 
105  double z_ecal = barrel ? pb->context().caloZ1() : pb->context().caloZ2();
106  double r_ecal = barrel ? pb->context().caloR1() : pb->context().caloR2();
107 
108  fireworks::addRhoZEnergyProjection( pb, &oItemHolder, r_ecal-1, z_ecal-1,
109  theta_min - 0.003, theta_max + 0.003,
110  iPhi );
111 
112  return true;
113 }
bool isAvailable() const
Definition: Ref.h:576
const double Pi
const fireworks::Context & context() const
int i
Definition: DBlmapReader.cc:9
static float caloTransAngle()
Definition: Context.cc:235
const FWGeometry * getGeom() const
Definition: Context.h:83
Geom::Theta< T > theta() const
static float caloZ2(bool offset=true)
Definition: Context.cc:225
static float caloR2(bool offset=true)
Definition: Context.cc:215
static float caloR1(bool offset=true)
Definition: Context.cc:210
#define end
Definition: vmac.h:37
void addRhoZEnergyProjection(FWProxyBuilderBase *, TEveElement *, double r_ecal, double z_ecal, double theta_min, double theta_max, double phi)
Definition: BuilderUtils.cc:60
const float * getCorners(unsigned int id) const
Definition: FWGeometry.cc:280
static float caloZ1(bool offset=true)
Definition: Context.cc:220
float fireworks::pixelLocalX ( const double  mpx,
const int  m_nrows 
)

Definition at line 170 of file TrackUtils.cc.

References BIG_PIX_PER_ROC_X, PITCHX, and ROWS_PER_ROC.

Referenced by FWSiPixelClusterProxyBuilder::build(), FWSiPixelDigiProxyBuilder::build(), FWTrajectorySeedProxyBuilder::build(), pushPixelCluster(), and ValidateGeometry::validatePixelTopology().

171 {
172  // Calculate the edge of the active sensor with respect to the center,
173  // that is simply the half-size.
174  // Take into account large pixels
175  const double xoffset = -( nrows + BIG_PIX_PER_ROC_X * nrows / ROWS_PER_ROC ) / 2. * PITCHX;
176 
177  // Measurement to local transformation for X coordinate
178  // X coordinate is in the ROC row number direction
179  // Copy from RectangularPixelTopology::localX implementation
180  int binoffx = int(mpx); // truncate to int
181  double fractionX = mpx - binoffx; // find the fraction
182  double local_PITCHX = PITCHX; // defaultpitch
183  if( binoffx > 80 ) { // ROC 1 - handles x on edge cluster
184  binoffx = binoffx + 2;
185  } else if( binoffx == 80 ) { // ROC 1
186  binoffx = binoffx+1;
187  local_PITCHX = 2 * PITCHX;
188  } else if( binoffx == 79 ) { // ROC 0
189  binoffx = binoffx + 0;
190  local_PITCHX = 2 * PITCHX;
191  } else if( binoffx >= 0 ) { // ROC 0
192  binoffx = binoffx + 0;
193  }
194 
195  // The final position in local coordinates
196  double lpX = double( binoffx * PITCHX ) + fractionX * local_PITCHX + xoffset;
197 
198  return lpX;
199 }
static const int ROWS_PER_ROC
Definition: TrackUtils.cc:68
static const double PITCHX
Definition: TrackUtils.cc:64
static const int BIG_PIX_PER_ROC_X
Definition: TrackUtils.cc:69
float fireworks::pixelLocalY ( const double  mpy,
const int  m_ncols 
)

Definition at line 203 of file TrackUtils.cc.

References BIG_PIX_PER_ROC_Y, COLS_PER_ROC, and PITCHY.

Referenced by FWSiPixelClusterProxyBuilder::build(), FWSiPixelDigiProxyBuilder::build(), FWTrajectorySeedProxyBuilder::build(), pushPixelCluster(), and ValidateGeometry::validatePixelTopology().

204 {
205  // Calculate the edge of the active sensor with respect to the center,
206  // that is simply the half-size.
207  // Take into account large pixels
208  double yoffset = -( ncols + BIG_PIX_PER_ROC_Y * ncols / COLS_PER_ROC ) / 2. * PITCHY;
209 
210  // Measurement to local transformation for Y coordinate
211  // Y is in the ROC column number direction
212  // Copy from RectangularPixelTopology::localY implementation
213  int binoffy = int( mpy ); // truncate to int
214  double fractionY = mpy - binoffy; // find the fraction
215  double local_PITCHY = PITCHY; // defaultpitch
216 
217  if( binoffy>416 ) { // ROC 8, not real ROC
218  binoffy = binoffy+17;
219  } else if( binoffy == 416 ) { // ROC 8
220  binoffy = binoffy + 16;
221  local_PITCHY = 2 * PITCHY;
222  } else if( binoffy == 415 ) { // ROC 7, last big pixel
223  binoffy = binoffy + 15;
224  local_PITCHY = 2 * PITCHY;
225  } else if( binoffy > 364 ) { // ROC 7
226  binoffy = binoffy + 15;
227  } else if( binoffy == 364 ) { // ROC 7
228  binoffy = binoffy + 14;
229  local_PITCHY = 2 * PITCHY;
230  } else if( binoffy == 363 ) { // ROC 6
231  binoffy = binoffy + 13;
232  local_PITCHY = 2 * PITCHY;
233  } else if( binoffy > 312 ) { // ROC 6
234  binoffy = binoffy + 13;
235  } else if( binoffy == 312 ) { // ROC 6
236  binoffy = binoffy + 12;
237  local_PITCHY = 2 * PITCHY;
238  } else if( binoffy == 311 ) { // ROC 5
239  binoffy = binoffy + 11;
240  local_PITCHY = 2 * PITCHY;
241  } else if( binoffy > 260 ) { // ROC 5
242  binoffy = binoffy + 11;
243  } else if( binoffy == 260 ) { // ROC 5
244  binoffy = binoffy + 10;
245  local_PITCHY = 2 * PITCHY;
246  } else if( binoffy == 259 ) { // ROC 4
247  binoffy = binoffy + 9;
248  local_PITCHY = 2 * PITCHY;
249  } else if( binoffy > 208 ) { // ROC 4
250  binoffy = binoffy + 9;
251  } else if(binoffy == 208 ) { // ROC 4
252  binoffy = binoffy + 8;
253  local_PITCHY = 2 * PITCHY;
254  } else if( binoffy == 207 ) { // ROC 3
255  binoffy = binoffy + 7;
256  local_PITCHY = 2 * PITCHY;
257  } else if( binoffy > 156 ) { // ROC 3
258  binoffy = binoffy + 7;
259  } else if( binoffy == 156 ) { // ROC 3
260  binoffy = binoffy + 6;
261  local_PITCHY = 2 * PITCHY;
262  } else if( binoffy == 155 ) { // ROC 2
263  binoffy = binoffy + 5;
264  local_PITCHY = 2 * PITCHY;
265  } else if( binoffy > 104 ) { // ROC 2
266  binoffy = binoffy + 5;
267  } else if( binoffy == 104 ) { // ROC 2
268  binoffy = binoffy + 4;
269  local_PITCHY = 2 * PITCHY;
270  } else if( binoffy == 103 ) { // ROC 1
271  binoffy = binoffy + 3;
272  local_PITCHY = 2 * PITCHY;
273  } else if( binoffy > 52 ) { // ROC 1
274  binoffy = binoffy + 3;
275  } else if( binoffy == 52 ) { // ROC 1
276  binoffy = binoffy + 2;
277  local_PITCHY = 2 * PITCHY;
278  } else if( binoffy == 51 ) { // ROC 0
279  binoffy = binoffy + 1;
280  local_PITCHY = 2 * PITCHY;
281  } else if( binoffy > 0 ) { // ROC 0
282  binoffy=binoffy + 1;
283  } else if( binoffy == 0 ) { // ROC 0
284  binoffy = binoffy + 0;
285  local_PITCHY = 2 * PITCHY;
286  }
287 
288  // The final position in local coordinates
289  double lpY = double( binoffy * PITCHY ) + fractionY * local_PITCHY + yoffset;
290 
291  return lpY;
292 }
static const int COLS_PER_ROC
Definition: TrackUtils.cc:67
static const int BIG_PIX_PER_ROC_Y
Definition: TrackUtils.cc:66
static const double PITCHY
Definition: TrackUtils.cc:65
TEveTrack * fireworks::prepareCandidate ( const reco::Candidate track,
TEveTrackPropagator *  propagator 
)

Definition at line 10 of file CandidateUtils.cc.

References reco::Candidate::charge(), reco::Candidate::px(), reco::Candidate::py(), reco::Candidate::pz(), tree::t, and reco::Candidate::vertex().

Referenced by FWElectronLegoProxyBuilder::build(), FWCandidatePtrProxyBuilder::build(), FWSecVertexCandidateProxyBuilder::build(), FWGenParticleProxyBuilder::build(), FWCandidateProxyBuilder::build(), FWVertexCandidateProxyBuilder::build(), FWMuonBuilder::buildMuon(), and FWElectronProxyBuilder::requestCommon().

12 {
13  TEveRecTrack t;
14  t.fBeta = 1.;
15  t.fP = TEveVector( track.px(), track.py(), track.pz() );
16  t.fV = TEveVector( track.vertex().x(), track.vertex().y(), track.vertex().z() );
17  t.fSign = track.charge();
18  TEveTrack* trk = new TEveTrack(&t, propagator);
19  return trk;
20 }
tuple t
Definition: tree.py:139
virtual double pz() const =0
z coordinate of momentum vector
virtual const Point & vertex() const =0
vertex position
virtual int charge() const =0
electric charge
virtual double py() const =0
y coordinate of momentum vector
virtual double px() const =0
x coordinate of momentum vector
TEveTrack * fireworks::prepareTrack ( const reco::Track track,
TEveTrackPropagator *  propagator,
const std::vector< TEveVector > &  extraRefPoints = std::vector<TEveVector>() 
)

Definition at line 75 of file TrackUtils.cc.

References assert(), reco::TrackBase::charge(), reco::Track::extra(), f, i, reco::Track::innerMomentum(), reco::Track::innerOk(), reco::Track::innerPosition(), edm::Ref< C, T, F >::isAvailable(), j, reco::Track::outerMomentum(), reco::Track::outerOk(), reco::Track::outerPosition(), AlCaHLTBitMon_ParallelJobs::p, point, position, reco::TrackBase::pt(), reco::TrackBase::px(), reco::TrackBase::py(), reco::TrackBase::pz(), python.multivaluedict::sort(), tree::t, reco::btau::trackMomentum, findQualityFiles::v, reco::TrackBase::vx(), reco::TrackBase::vy(), and reco::TrackBase::vz().

Referenced by FWTauProxyBuilderBase::addConstituentTracks(), FWTauProxyBuilderBase::addLeadTrack(), DummyEvelyser::analyze(), FWElectronLegoProxyBuilder::build(), FWTrackProxyBuilder::build(), FWTrackHitsDetailView::build(), FWConvTrackHitsDetailView::build(), FWMuonBuilder::buildMuon(), and FWElectronProxyBuilder::requestCommon().

78 {
79  // To make use of all available information, we have to order states
80  // properly first. Propagator should take care of y=0 transition.
81 
82  std::vector<State> refStates;
83  TEveVector trackMomentum(track.px(), track.py(), track.pz());
84  refStates.push_back(State(TEveVector(track.vx(), track.vy(), track.vz()),
85  trackMomentum));
86  if( track.extra().isAvailable() ) {
87  if (track.innerOk()) {
88  const reco::TrackBase::Point &v = track.innerPosition();
89  const reco::TrackBase::Vector &p = track.innerMomentum();
90  refStates.push_back(State(TEveVector(v.x(), v.y(), v.z()), TEveVector(p.x(), p.y(), p.z())));
91  }
92  if (track.outerOk()) {
93  const reco::TrackBase::Point &v = track.outerPosition();
94  const reco::TrackBase::Vector &p = track.outerMomentum();
95  refStates.push_back(State(TEveVector(v.x(), v.y(), v.z()), TEveVector(p.x(), p.y(), p.z())));
96  }
97  }
98  for( std::vector<TEveVector>::const_iterator point = extraRefPoints.begin(), pointEnd = extraRefPoints.end();
99  point != pointEnd; ++point )
100  refStates.push_back(State(*point));
101  if( track.pt()>1 )
102  std::sort( refStates.begin(), refStates.end(), StateOrdering(trackMomentum) );
103 
104  // * if the first state has non-zero momentum use it as a starting point
105  // and all other points as PathMarks to follow
106  // * if the first state has only position, try the last state. If it has
107  // momentum we propagate backword, if not, we look for the first one
108  // on left that has momentum and ignore all earlier.
109  //
110 
111  TEveRecTrack t;
112  t.fBeta = 1.;
113  t.fSign = track.charge();
114 
115  if( refStates.front().valid ) {
116  t.fV = refStates.front().position;
117  t.fP = refStates.front().momentum;
118  TEveTrack* trk = new TEveTrack( &t, propagator );
119  for( unsigned int i(1); i<refStates.size()-1; ++i) {
120  if( refStates[i].valid )
121  trk->AddPathMark( TEvePathMark( TEvePathMark::kReference, refStates[i].position, refStates[i].momentum ) );
122  else
123  trk->AddPathMark( TEvePathMark( TEvePathMark::kDaughter, refStates[i].position ) );
124  }
125  if( refStates.size()>1 ) {
126  trk->AddPathMark( TEvePathMark( TEvePathMark::kDecay, refStates.back().position ) );
127  }
128  return trk;
129  }
130 
131  if( refStates.back().valid ) {
132  t.fSign = (-1)*track.charge();
133  t.fV = refStates.back().position;
134  t.fP = refStates.back().momentum * (-1.0f);
135  TEveTrack* trk = new TEveTrack( &t, propagator );
136  unsigned int i( refStates.size()-1 );
137  for(; i>0; --i) {
138  if ( refStates[i].valid )
139  trk->AddPathMark( TEvePathMark( TEvePathMark::kReference, refStates[i].position, refStates[i].momentum*(-1.0f) ) );
140  else
141  trk->AddPathMark( TEvePathMark( TEvePathMark::kDaughter, refStates[i].position ) );
142  }
143  if ( refStates.size()>1 ) {
144  trk->AddPathMark( TEvePathMark( TEvePathMark::kDecay, refStates.front().position ) );
145  }
146  return trk;
147  }
148 
149  unsigned int i(0);
150  while( i<refStates.size() && !refStates[i].valid ) ++i;
151  assert( i < refStates.size() );
152 
153  t.fV = refStates[i].position;
154  t.fP = refStates[i].momentum;
155  TEveTrack* trk = new TEveTrack( &t, propagator );
156  for( unsigned int j(i+1); j<refStates.size()-1; ++j ) {
157  if( refStates[i].valid )
158  trk->AddPathMark( TEvePathMark( TEvePathMark::kReference, refStates[i].position, refStates[i].momentum ) );
159  else
160  trk->AddPathMark( TEvePathMark( TEvePathMark::kDaughter, refStates[i].position ) );
161  }
162  if ( i < refStates.size() ) {
163  trk->AddPathMark( TEvePathMark( TEvePathMark::kDecay, refStates.back().position ) );
164  }
165  return trk;
166 }
bool isAvailable() const
Definition: Ref.h:576
tuple t
Definition: tree.py:139
int i
Definition: DBlmapReader.cc:9
const TrackExtraRef & extra() const
reference to &quot;extra&quot; object
Definition: Track.h:189
assert(m_qm.get())
bool innerOk() const
return true if the innermost hit is valid
Definition: Track.h:50
double px() const
x coordinate of momentum vector
Definition: TrackBase.h:580
const math::XYZPoint & outerPosition() const
position of the outermost hit
Definition: Track.h:65
const math::XYZPoint & innerPosition() const
position of the innermost hit
Definition: Track.h:55
double pt() const
track transverse momentum
Definition: TrackBase.h:574
int j
Definition: DBlmapReader.cc:9
double f[11][100]
math::XYZPoint Point
point in the space
Definition: TrackBase.h:83
double pz() const
z coordinate of momentum vector
Definition: TrackBase.h:592
double vz() const
z coordinate of the reference point on track
Definition: TrackBase.h:622
const math::XYZVector & outerMomentum() const
momentum vector at the outermost hit position
Definition: Track.h:70
bool outerOk() const
return true if the outermost hit is valid
Definition: Track.h:45
double vy() const
y coordinate of the reference point on track
Definition: TrackBase.h:616
const math::XYZVector & innerMomentum() const
momentum vector at the innermost hit position
Definition: Track.h:60
static int position[264][3]
Definition: ReadPGInfo.cc:509
int charge() const
track electric charge
Definition: TrackBase.h:520
math::XYZVector Vector
spatial vector
Definition: TrackBase.h:80
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5
double py() const
y coordinate of momentum vector
Definition: TrackBase.h:586
double vx() const
x coordinate of the reference point on track
Definition: TrackBase.h:610
void fireworks::pushNearbyPixelHits ( std::vector< TVector3 > &  pixelPoints,
const FWEventItem iItem,
const reco::Track t 
)

Definition at line 553 of file TrackUtils.cc.

References edmNew::DetSet< T >::begin(), SiPixelRecHit::cluster(), FWGeometry::contains(), edmNew::DetSet< T >::end(), edmNew::DetSetVector< T >::end(), edmNew::DetSetVector< T >::find(), fwLog, relativeConstraints::geom, edm::EventBase::get(), FWEventItem::getEvent(), FWEventItem::getGeom(), FWGeometry::getParameters(), edm::Ref< C, T, F >::id(), edm::Ref< C, T, F >::isAvailable(), edm::Ref< C, T, F >::isNonnull(), fwlog::kError, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, edm::Handle< T >::product(), pushPixelCluster(), reco::Track::recHitsBegin(), and reco::Track::recHitsEnd().

Referenced by FWTrackHitsDetailView::addHits(), and FWConvTrackHitsDetailView::addHits().

554 {
555  const edmNew::DetSetVector<SiPixelCluster> * allClusters = 0;
556  for( trackingRecHit_iterator it = t.recHitsBegin(), itEnd = t.recHitsEnd(); it != itEnd; ++it)
557  {
558  if( typeid(**it) == typeid( SiPixelRecHit ))
559  {
560  const SiPixelRecHit &hit = static_cast<const SiPixelRecHit &>(**it);
561  if( hit.cluster().isNonnull() && hit.cluster().isAvailable())
562  {
564  iItem.getEvent()->get(hit.cluster().id(), allClustersHandle);
565  allClusters = allClustersHandle.product();
566  break;
567  }
568  }
569  }
570  if( allClusters == 0 ) return;
571 
572  const FWGeometry *geom = iItem.getGeom();
573 
574  for( trackingRecHit_iterator it = t.recHitsBegin(), itEnd = t.recHitsEnd(); it != itEnd; ++it )
575  {
576  const TrackingRecHit* rh = &(**it);
577 
578  DetId id = (*it)->geographicalId();
579  if( ! geom->contains( id ))
580  {
582  << "failed to get geometry of Tracker Det with raw id: "
583  << id.rawId() << std::endl;
584 
585  continue;
586  }
587 
588  // -- in which detector are we?
589  unsigned int subdet = (unsigned int)id.subdetId();
590  if(( subdet != PixelSubdetector::PixelBarrel ) && ( subdet != PixelSubdetector::PixelEndcap )) continue;
591 
592  const SiPixelCluster* hitCluster = 0;
593  if( const SiPixelRecHit* pixel = dynamic_cast<const SiPixelRecHit*>( rh ))
594  hitCluster = pixel->cluster().get();
595  edmNew::DetSetVector<SiPixelCluster>::const_iterator itds = allClusters->find(id.rawId());
596  if( itds != allClusters->end())
597  {
598  const edmNew::DetSet<SiPixelCluster> & clustersOnThisDet = *itds;
599  for( edmNew::DetSet<SiPixelCluster>::const_iterator itc = clustersOnThisDet.begin(), edc = clustersOnThisDet.end(); itc != edc; ++itc )
600  {
601  if( &*itc != hitCluster )
602  pushPixelCluster( pixelPoints, *geom, id, *itc, geom->getParameters( id ));
603  }
604  }
605  }
606 }
bool isAvailable() const
Definition: Ref.h:576
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
const_iterator end(bool update=false) const
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:252
const float * getParameters(unsigned int id) const
Definition: FWGeometry.cc:296
bool get(ProductID const &, Handle< T > &) const
Definition: EventBase.h:104
data_type const * const_iterator
Definition: DetSetNew.h:30
ProductID id() const
Accessor for product ID.
Definition: Ref.h:258
bool contains(unsigned int id) const
Definition: FWGeometry.h:109
trackingRecHit_iterator recHitsBegin() const
Iterator to first hit on the track.
Definition: Track.h:104
const edm::EventBase * getEvent() const
Definition: FWEventItem.h:146
Definition: DetId.h:18
T const * product() const
Definition: Handle.h:81
#define fwLog(_level_)
Definition: fwLog.h:50
ClusterRef cluster() const
Definition: SiPixelRecHit.h:49
const_iterator find(id_type i, bool update=false) const
Pixel cluster – collection of neighboring pixels above threshold.
iterator end()
Definition: DetSetNew.h:70
void pushPixelCluster(std::vector< TVector3 > &pixelPoints, const FWGeometry &geom, DetId id, const SiPixelCluster &c, const float *pars)
Definition: TrackUtils.cc:658
const FWGeometry * getGeom() const
Definition: FWEventItem.cc:681
TrackingRecHitCollection::base::const_iterator trackingRecHit_iterator
iterator over a vector of reference to TrackingRecHit in the same collection
Our base class.
Definition: SiPixelRecHit.h:23
trackingRecHit_iterator recHitsEnd() const
Iterator to last hit on the track.
Definition: Track.h:109
iterator begin()
Definition: DetSetNew.h:67
void fireworks::pushPixelCluster ( std::vector< TVector3 > &  pixelPoints,
const FWGeometry geom,
DetId  id,
const SiPixelCluster c,
const float *  pars 
)

Definition at line 658 of file TrackUtils.cc.

References cuy::col, fwLog, fwlog::kDebug, FWGeometry::localToGlobal(), SiPixelCluster::minPixelCol(), SiPixelCluster::minPixelRow(), pixelLocalX(), and pixelLocalY().

Referenced by pushNearbyPixelHits(), and pushPixelHits().

659 {
660  double row = c.minPixelRow();
661  double col = c.minPixelCol();
662  float lx = 0.;
663  float ly = 0.;
664 
665  int nrows = (int)pars[0];
666  int ncols = (int)pars[1];
667  lx = pixelLocalX( row, nrows );
668  ly = pixelLocalY( col, ncols );
669 
671  << ", row: " << row << ", col: " << col
672  << ", lx: " << lx << ", ly: " << ly ;
673 
674  float local[3] = { lx, ly, 0. };
675  float global[3];
676  geom.localToGlobal( id, local, global );
677  TVector3 pb( global[0], global[1], global[2] );
678  pixelPoints.push_back( pb );
679 
681  << " x: " << pb.X()
682  << ", y: " << pb.Y()
683  << " z: " << pb.Z()
684  << " eta: " << pb.Eta()
685  << ", phi: " << pb.Phi()
686  << " rho: " << pb.Pt() << std::endl;
687 }
int minPixelCol() const
float pixelLocalY(const double mpy, const int m_ncols)
Definition: TrackUtils.cc:203
int minPixelRow() const
void localToGlobal(unsigned int id, const float *local, float *global, bool translatep=true) const
Definition: FWGeometry.cc:328
#define fwLog(_level_)
Definition: fwLog.h:50
int col
Definition: cuy.py:1008
float pixelLocalX(const double mpx, const int m_nrows)
Definition: TrackUtils.cc:170
void fireworks::pushPixelHits ( std::vector< TVector3 > &  pixelPoints,
const FWEventItem iItem,
const reco::Track t 
)

Definition at line 611 of file TrackUtils.cc.

References EnergyCorrector::c, FWGeometry::contains(), reco::TrackBase::dz(), reco::TrackBase::eta(), fwLog, relativeConstraints::geom, FWEventItem::getGeom(), FWGeometry::getParameters(), fwlog::kDebug, fwlog::kError, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, pushPixelCluster(), reco::Track::recHitsBegin(), reco::Track::recHitsEnd(), subdets, and reco::TrackBase::vz().

Referenced by FWTrackHitsDetailView::addHits(), FWConvTrackHitsDetailView::addHits(), and FWTracksRecHitsProxyBuilder::build().

612 {
613  /*
614  * -- return for each Pixel Hit a 3D point
615  */
616  const FWGeometry *geom = iItem.getGeom();
617 
618  double dz = t.dz();
619  double vz = t.vz();
620  double etaT = t.eta();
621 
622  fwLog( fwlog::kDebug ) << "Track eta: " << etaT << ", vz: " << vz << ", dz: " << dz
623  << std::endl;
624 
625  int cnt = 0;
626  for( trackingRecHit_iterator it = t.recHitsBegin(), itEnd = t.recHitsEnd(); it != itEnd; ++it )
627  {
628  const TrackingRecHit* rh = &(**it);
629  // -- get position of center of wafer, assuming (0,0,0) is the center
630  DetId id = (*it)->geographicalId();
631  if( ! geom->contains( id ))
632  {
634  << "failed to get geometry of Tracker Det with raw id: "
635  << id.rawId() << std::endl;
636 
637  continue;
638  }
639 
640  // -- in which detector are we?
641  unsigned int subdet = (unsigned int)id.subdetId();
642 
643  if(( subdet == PixelSubdetector::PixelBarrel ) || ( subdet == PixelSubdetector::PixelEndcap ))
644  {
645  fwLog( fwlog::kDebug ) << cnt++ << " -- "
646  << subdets[subdet];
647 
648  if( const SiPixelRecHit* pixel = dynamic_cast<const SiPixelRecHit*>( rh ))
649  {
650  const SiPixelCluster& c = *( pixel->cluster());
651  pushPixelCluster( pixelPoints, *geom, id, c, geom->getParameters( id ));
652  }
653  }
654  }
655 }
const float * getParameters(unsigned int id) const
Definition: FWGeometry.cc:296
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:604
bool contains(unsigned int id) const
Definition: FWGeometry.h:109
trackingRecHit_iterator recHitsBegin() const
Iterator to first hit on the track.
Definition: Track.h:104
char const * subdets[11]
double dz() const
dz parameter (= dsz/cos(lambda)). This is the track z0 w.r.t (0,0,0) only if the refPoint is close to...
Definition: TrackBase.h:562
double vz() const
z coordinate of the reference point on track
Definition: TrackBase.h:622
Definition: DetId.h:18
#define fwLog(_level_)
Definition: fwLog.h:50
Pixel cluster – collection of neighboring pixels above threshold.
void pushPixelCluster(std::vector< TVector3 > &pixelPoints, const FWGeometry &geom, DetId id, const SiPixelCluster &c, const float *pars)
Definition: TrackUtils.cc:658
const FWGeometry * getGeom() const
Definition: FWEventItem.cc:681
TrackingRecHitCollection::base::const_iterator trackingRecHit_iterator
iterator over a vector of reference to TrackingRecHit in the same collection
Our base class.
Definition: SiPixelRecHit.h:23
trackingRecHit_iterator recHitsEnd() const
Iterator to last hit on the track.
Definition: Track.h:109
const TGGC & fireworks::redGC ( )

Definition at line 46 of file GlobalContexts.cc.

47 {
48  static TGGC s_redGC(*gClient->GetResourcePool()->GetFrameGC());
49  s_redGC.SetForeground(gVirtualX->GetPixel(kRed-5));
50  return s_redGC;
51 }
void fireworks::setPath ( TString &  v)

Definition at line 15 of file fwPaths.cc.

References fwLog, fwlog::kError, p1, and p2.

Referenced by CmsShowHelpPopup::CmsShowHelpPopup(), main(), CmsShowMainBase::sendVersionInfo(), and CmsShowMainFrame::showFWorksInfo().

16 {
17  if (gSystem->AccessPathName(p1 + v) == kFALSE)
18  {
19  v.Prepend(p1);
20  return;
21  }
22 
23  v.Prepend(p2);
24  if (gSystem->AccessPathName(v))
25  fwLog(fwlog::kError) << "Can't access path " << v << std::endl;
26 }
double p2[4]
Definition: TauolaWrapper.h:90
#define fwLog(_level_)
Definition: fwLog.h:50
double p1[4]
Definition: TauolaWrapper.h:89
void fireworks::setTrackTypePF ( const reco::PFCandidate pfCand,
TAttLine *  track 
)

Definition at line 17 of file setTrackTypePF.cc.

References dt_dqm_sourceclient_common_cff::reco.

Referenced by FWPFCandidateWithHitsProxyBuilder::build(), FWPFPatJetLegoProxyBuilder< T >::build(), FWPFPatJet3DProxyBuilder< T >::build(), FWPFCandidate3DProxyBuilder::build(), and FWPFCandidatesLegoProxyBuilder::build().

18  {
19 
20  using namespace reco;
21 
22  // switch (pfCand.particleId() ) {
23  // case PFCandidate::e: track->SetLineStyle(5); break;
24  // case PFCandidate::mu: track->SetLineStyle(6); break;
25  // case PFCandidate::h0: track->SetLineStyle(3); break;
26  // case PFCandidate::gamma: track->SetLineStyle(7); break;
27  // default: break;
28  // }
29  }
void fireworks::setupAddElement ( TEveElement *  el,
TEveElement *  parent,
const FWEventItem item,
bool  master,
bool  color 
)

Definition at line 342 of file TrackUtils.cc.

References assert(), FWDisplayProperties::color(), FWEventItem::defaultDisplayProperties(), and FWDisplayProperties::transparency().

Referenced by addSiStripClusters(), and FWDTRecHitProxyBuilder::buildViewType().

343 {
344  if (master)
345  {
346  el->CSCTakeAnyParentAsMaster();
347  el->SetPickable(true);
348  }
349 
350  if (color)
351  {
352  el->CSCApplyMainColorToMatchingChildren();
353  el->CSCApplyMainTransparencyToMatchingChildren();
354  el->SetMainColor(item->defaultDisplayProperties().color());
356  && (item->defaultDisplayProperties().transparency() <= 100));
357  el->SetMainTransparency(item->defaultDisplayProperties().transparency());
358  }
359  parent->AddElement(el);
360 }
const FWDisplayProperties & defaultDisplayProperties() const
Definition: FWEventItem.cc:451
list parent
Definition: dbtoconf.py:74
assert(m_qm.get())
Color_t color() const
Char_t transparency() const
int * fireworks::supportedDataFormatsVersion ( )

Definition at line 43 of file fwPaths.cc.

References getDecomposedVersion(), and findQualityFiles::v.

Referenced by acceptDataFormatsVersion(), CmsShowSearchFiles::CmsShowSearchFiles(), FWFileEntry::openFile(), and CmsShowSearchFiles::readInfo().

44 {
45  static int mm[] = {0, 0, 0};
46 
47  if (!mm[0]) {
48  TString v;
49  if (gSystem->Getenv("CMSSW_VERSION"))
50  {
51  v = gSystem->Getenv("CMSSW_VERSION");
52 
53  }
54  else
55  {
56  TString versionFileName = gSystem->Getenv("CMSSW_BASE");
57  versionFileName += "/src/Fireworks/Core/data/version.txt";
58  std::ifstream fs(versionFileName);
59  TString infoText;
60  infoText.ReadLine(fs); infoText.ReadLine(fs);
61  fs.close();
62  v = &infoText[13];
63  }
64 
65  getDecomposedVersion(v, &mm[0]);
66  }
67 
68  return &mm[0];
69 }
void getDecomposedVersion(const TString &s, int *out)
Definition: fwPaths.cc:30
std::vector< std::pair< double, double > > fireworks::thetaBins ( )

Definition at line 48 of file thetaBins.cc.

References create_public_lumi_plots::exp, i, fw3dlego::xbins, and fw3dlego::xbins_n.

Referenced by FWCaloTauProxyBuilder::buildViewType().

49  {
50  const int n_bins = fw3dlego::xbins_n - 1;
51  std::vector<std::pair<double,double> > thetaBins(n_bins);
52  for (int i = 0; i < n_bins; ++i )
53  {
54  thetaBins[i].first = 2*atan( exp(-fw3dlego::xbins[i]) );
55  thetaBins[i].second = 2*atan( exp(-fw3dlego::xbins[i+1]) );
56  }
57  return thetaBins;
58  }
int i
Definition: DBlmapReader.cc:9
const double xbins[]
std::vector< std::pair< double, double > > thetaBins()
Definition: thetaBins.cc:48
const int xbins_n

Variable Documentation

const int fireworks::BIG_PIX_PER_ROC_X = 1
static
const int fireworks::BIG_PIX_PER_ROC_Y = 2
static
const int fireworks::COLS_PER_ROC = 52
static
const double fireworks::MICRON = 1./1000./10.
static

Definition at line 63 of file TrackUtils.cc.

const TString fireworks::p1 = gSystem->Getenv("CMSSW_BASE") + datadir

Definition at line 12 of file fwPaths.cc.

Referenced by setPath().

const TString fireworks::p2 = gSystem->Getenv("CMSSW_RELEASE_BASE") + datadir

Definition at line 13 of file fwPaths.cc.

Referenced by setPath().

const double fireworks::PITCHX = 100*MICRON
static

Definition at line 64 of file TrackUtils.cc.

Referenced by pixelLocalX().

const double fireworks::PITCHY = 150*MICRON
static

Definition at line 65 of file TrackUtils.cc.

Referenced by pixelLocalY().

const int fireworks::ROWS_PER_ROC = 80
static
const std::string fireworks::subdets[7] = { "UNKNOWN", "PXB", "PXF", "TIB", "TID", "TOB", "TEC" }
static

Definition at line 72 of file TrackUtils.cc.

Referenced by pushPixelHits().