CMS 3D CMS Logo

Namespaces | Classes | Functions | Variables
fireworks Namespace Reference

Namespaces

 expression
 
 geometry
 
 table
 

Classes

class  Context
 
struct  jetScaleMarker
 
class  OptionNode
 
struct  OptionNodePtrCompare
 
struct  OptionNodePtrEqual
 
struct  PaletteExtraTopBottomIndices
 
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 GetColorValuesForPaletteExtra (float(*iColors)[3], unsigned int iSize, FWColorManager::EPalette id, bool isWhiteBg)
 
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 float *)
 
float pixelLocalY (const double mpy, const float *)
 
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 double MICRON = 1./1000./1000.
 
const TString p1 = gSystem->Getenv("CMSSW_BASE") + datadir
 
const TString p2 = gSystem->Getenv("CMSSW_RELEASE_BASE") + datadir
 
static const float s_forBlack [][3]
 
static const float s_forWhite [][3]
 
static const unsigned int s_size = sizeof(s_forBlack)/sizeof(s_forBlack[0])
 
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 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
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
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
void fireworks::addDashedArrow ( double  phi,
double  size,
TEveElement *  comp,
FWProxyBuilderBase pb 
)

Definition at line 174 of file BuilderUtils.cc.

References funct::cos(), create_public_lumi_plots::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  }
size
Write out results.
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
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, create_public_lumi_plots::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  }
size
Write out results.
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:223
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
static float caloR1(bool offset=true)
Definition: Context.cc:208
#define M_PI
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
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(), lumiQTWidget::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  }
void setupAddElement(TEveElement *el, TEveElement *parent, bool set_color=true) const
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
void fireworks::addSiStripClusters ( const FWEventItem iItem,
const reco::Track t,
class TEveElement *  tList,
bool  addNearbyClusters,
bool  master 
)

Definition at line 352 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(), FWTracksRecHitsProxyBuilder::build(), and fireworks::StateOrdering::operator()().

353 {
354  // master is true if the product is for proxy builder
355  const FWGeometry *geom = iItem->getGeom();
356 
357  const edmNew::DetSetVector<SiStripCluster> * allClusters = nullptr;
358  if( addNearbyClusters )
359  {
360  for( trackingRecHit_iterator it = t.recHitsBegin(), itEnd = t.recHitsEnd(); it != itEnd; ++it )
361  {
362  const auto & rhs = *(*(it));
363  if( typeid( rhs ) == typeid( SiStripRecHit2D ))
364  {
365  const SiStripRecHit2D &hit = static_cast<const SiStripRecHit2D &>( **it );
366  if( hit.cluster().isNonnull() && hit.cluster().isAvailable())
367  {
369  iItem->getEvent()->get(hit.cluster().id(), allClustersHandle);
370  allClusters = allClustersHandle.product();
371  break;
372  }
373  }
374  else if( typeid( rhs ) == typeid( SiStripRecHit1D ))
375  {
376  const SiStripRecHit1D &hit = static_cast<const SiStripRecHit1D &>( **it );
377  if( hit.cluster().isNonnull() && hit.cluster().isAvailable())
378  {
380  iItem->getEvent()->get(hit.cluster().id(), allClustersHandle);
381  allClusters = allClustersHandle.product();
382  break;
383  }
384  }
385  }
386  }
387 
388  for( trackingRecHit_iterator it = t.recHitsBegin(), itEnd = t.recHitsEnd(); it != itEnd; ++it )
389  {
390  unsigned int rawid = (*it)->geographicalId();
391  if( ! geom->contains( rawid ))
392  {
394  << "failed to get geometry of SiStripCluster with detid: "
395  << rawid << std::endl;
396 
397  continue;
398  }
399 
400  const float* pars = geom->getParameters( rawid );
401 
402  // -- get phi from SiStripHit
403  auto rechitRef = *it;
404  const TrackingRecHit *rechit = &( *rechitRef );
405  const SiStripCluster *cluster = extractClusterFromTrackingRecHit( rechit );
406 
407  if( cluster )
408  {
409  if( allClusters != nullptr )
410  {
411  const edmNew::DetSet<SiStripCluster> & clustersOnThisDet = (*allClusters)[rechit->geographicalId().rawId()];
412 
413  for( edmNew::DetSet<SiStripCluster>::const_iterator itc = clustersOnThisDet.begin(), edc = clustersOnThisDet.end(); itc != edc; ++itc )
414  {
415 
416  TEveStraightLineSet *scposition = new TEveStraightLineSet;
417  scposition->SetDepthTest( false );
418  scposition->SetPickable( kTRUE );
419 
420  short firststrip = itc->firstStrip();
421 
422  if( &*itc == cluster )
423  {
424  scposition->SetTitle( Form( "Exact SiStripCluster from TrackingRecHit, first strip %d", firststrip ));
425  scposition->SetLineColor( kGreen );
426  }
427  else
428  {
429  scposition->SetTitle( Form( "SiStripCluster, first strip %d", firststrip ));
430  scposition->SetLineColor( kRed );
431  }
432 
433  float localTop[3] = { 0.0, 0.0, 0.0 };
434  float localBottom[3] = { 0.0, 0.0, 0.0 };
435 
436  fireworks::localSiStrip( firststrip, localTop, localBottom, pars, rawid );
437 
438  float globalTop[3];
439  float globalBottom[3];
440  geom->localToGlobal( rawid, localTop, globalTop, localBottom, globalBottom );
441 
442  scposition->AddLine( globalTop[0], globalTop[1], globalTop[2],
443  globalBottom[0], globalBottom[1], globalBottom[2] );
444 
445  setupAddElement( scposition, tList, iItem, master, false );
446  }
447  }
448  else
449  {
450  short firststrip = cluster->firstStrip();
451  TEveStraightLineSet *scposition = new TEveStraightLineSet;
452  scposition->SetDepthTest( false );
453  scposition->SetPickable( kTRUE );
454  scposition->SetTitle( Form( "SiStripCluster, first strip %d", firststrip ));
455 
456  float localTop[3] = { 0.0, 0.0, 0.0 };
457  float localBottom[3] = { 0.0, 0.0, 0.0 };
458 
459  fireworks::localSiStrip( firststrip, localTop, localBottom, pars, rawid );
460 
461  float globalTop[3];
462  float globalBottom[3];
463  geom->localToGlobal( rawid, localTop, globalTop, localBottom, globalBottom );
464 
465  scposition->AddLine( globalTop[0], globalTop[1], globalTop[2],
466  globalBottom[0], globalBottom[1], globalBottom[2] );
467 
468  setupAddElement( scposition, tList, iItem, master, true );
469  }
470  }
471  else if( !rechit->isValid() && ( rawid != 0 )) // lost hit
472  {
473  if( allClusters != nullptr )
474  {
475  edmNew::DetSetVector<SiStripCluster>::const_iterator itds = allClusters->find( rawid );
476  if( itds != allClusters->end())
477  {
478  const edmNew::DetSet<SiStripCluster> & clustersOnThisDet = *itds;
479  for( edmNew::DetSet<SiStripCluster>::const_iterator itc = clustersOnThisDet.begin(), edc = clustersOnThisDet.end(); itc != edc; ++itc )
480  {
481  short firststrip = itc->firstStrip();
482 
483  TEveStraightLineSet *scposition = new TEveStraightLineSet;
484  scposition->SetDepthTest( false );
485  scposition->SetPickable( kTRUE );
486  scposition->SetTitle( Form( "Lost SiStripCluster, first strip %d", firststrip ));
487 
488  float localTop[3] = { 0.0, 0.0, 0.0 };
489  float localBottom[3] = { 0.0, 0.0, 0.0 };
490 
491  fireworks::localSiStrip( firststrip, localTop, localBottom, pars, rawid );
492 
493  float globalTop[3];
494  float globalBottom[3];
495  geom->localToGlobal( rawid, localTop, globalTop, localBottom, globalBottom );
496 
497  scposition->AddLine( globalTop[0], globalTop[1], globalTop[2],
498  globalBottom[0], globalBottom[1], globalBottom[2] );
499 
500 
501  setupAddElement( scposition, tList, iItem, master, false );
502  scposition->SetLineColor( kRed );
503  }
504  }
505  }
506  }
507  else
508  {
510  << "*ANOTHER* option possible: valid=" << rechit->isValid()
511  << ", rawid=" << rawid << std::endl;
512  }
513  }
514 }
ClusterRef cluster() const
bool isAvailable() const
Definition: Ref.h:577
Master< F > master(const F &f)
Definition: FunctClone.h:68
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:253
const float * getParameters(unsigned int id) const
Definition: FWGeometry.cc:446
bool get(ProductID const &, Handle< T > &) const
Definition: EventBase.h:106
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:50
uint16_t firstStrip() const
data_type const * const_iterator
Definition: DetSetNew.h:30
ProductID id() const
Accessor for product ID.
Definition: Ref.h:259
void localSiStrip(short strip, float *localTop, float *localBottom, const float *pars, unsigned int id)
Definition: TrackUtils.cc:262
const SiStripCluster * extractClusterFromTrackingRecHit(const TrackingRecHit *rh)
Definition: TrackUtils.cc:329
void localToGlobal(unsigned int id, const float *local, float *global, bool translatep=true) const
Definition: FWGeometry.cc:478
ClusterRef cluster() const
bool contains(unsigned int id) const
Definition: FWGeometry.h:117
trackingRecHit_iterator recHitsBegin() const
Iterator to first hit on the track.
Definition: Track.h:106
const edm::EventBase * getEvent() const
Definition: FWEventItem.h:148
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:307
const FWGeometry * getGeom() const
Definition: FWEventItem.cc:683
trackingRecHit_iterator recHitsEnd() const
Iterator to last hit on the track.
Definition: Track.h:111
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(), 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 }
size
Write out results.
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
const TGGC & fireworks::boldGC ( )

Definition at line 12 of file GlobalContexts.cc.

References edmIntegrityCheck::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, MuonSubdetId::GEM, fwlog::kWarning, mag(), MuonSubdetId::ME0, mathSSE::sqrt(), funct::tan(), and theta().

18  {
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())
static const int GEM
Definition: MuonSubdetId.h:15
Geom::Theta< T > theta() const
static const int ME0
Definition: MuonSubdetId.h:16
static const int CSC
Definition: MuonSubdetId.h:13
T sqrt(T t)
Definition: SSEVec.h:18
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, mps_fire::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  }
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, mps_fire::i, and Scenarios_cff::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  }
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, mps_fire::i, invertBox(), Scenarios_cff::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  }
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, mps_fire::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  }
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
const SiStripCluster * fireworks::extractClusterFromTrackingRecHit ( const TrackingRecHit rh)

Definition at line 329 of file TrackUtils.cc.

References fwLog, and fwlog::kDebug.

Referenced by addSiStripClusters(), FWTrajectorySeedProxyBuilder::build(), and fireworks::StateOrdering::operator()().

330 {
331  const SiStripCluster* cluster = nullptr;
332 
333  if( const SiStripRecHit2D* hit2D = dynamic_cast<const SiStripRecHit2D*>( rechit ))
334  {
335  fwLog( fwlog::kDebug ) << "hit 2D ";
336 
337  cluster = hit2D->cluster().get();
338  }
339  if( cluster == nullptr )
340  {
341  if( const SiStripRecHit1D* hit1D = dynamic_cast<const SiStripRecHit1D*>( rechit ))
342  {
343  fwLog( fwlog::kDebug ) << "hit 1D ";
344 
345  cluster = hit1D->cluster().get();
346  }
347  }
348  return cluster;
349 }
#define fwLog(_level_)
Definition: fwLog.h:50
void fireworks::GetColorValuesForPaletteExtra ( float(*)  iColors[3],
unsigned int  iSize,
FWColorManager::EPalette  id,
bool  isWhiteBg 
)

Definition at line 152 of file fwPaletteExtra.cc.

References b, f, g, mps_fire::i, fireworks::PaletteExtraTopBottomIndices::InitArctic(), fireworks::PaletteExtraTopBottomIndices::InitFall(), fireworks::PaletteExtraTopBottomIndices::InitPurple(), fireworks::PaletteExtraTopBottomIndices::InitSpring(), FWColorManager::kArctic, FWColorManager::kFall, FWColorManager::kPurple, FWColorManager::kSpring, Min(), AlCaHLTBitMon_ParallelJobs::p, alignCSCRings::r, and alignCSCRings::s.

Referenced by FWColorManager::initColorTable().

153 {
154  PaletteExtraTopBottomIndices p(iColors, isWhiteBg, id);
155  switch (id) {
157  p.InitArctic();
158  break;
160  p.InitFall();
161  break;
163  p.InitSpring();
164  break;
165 
167  p.InitPurple();
168  break;
169  default:
170  break;
171  }
172 
173 
174  iSize = iSize/2;
175  unsigned int lastIdx = iSize -2;
176  if (isWhiteBg)
177  {
178  for (unsigned int i = 0; i<lastIdx; ++i) {
179 
180  float s = 1.2;
181  float r = TMath::Min(1.f,s* iColors[i][0]);
182  float g = TMath::Min(1.f,s *iColors[i][1]);
183  float b = TMath::Min(1.f,s *iColors[i][2]);
184 
185 
186  iColors[i][0] = r;
187  iColors[i][1] = g;
188  iColors[i][2] = b;
189 
190 
191  float value = 1.7;
192  r = TMath::Power(r, (2.5 - value)/2.5);
193  g = TMath::Power(g, (2.5 - value)/2.5);
194  b = TMath::Power(b, (2.5 - value)/2.5);
195  /*
196  s = 1.2;
197  r = TMath::Min(1.f,s* iColors[i][0]);
198  g = TMath::Min(1.f,s *iColors[i][1]);
199  b = TMath::Min(1.f,s *iColors[i][2]);
200  */
201 
202  r = TMath::Min(1.f, r);
203  g = TMath::Min(1.f, g);
204  b = TMath::Min(1.f, b);
205 
206  iColors[i + iSize][0] = r;
207  iColors[i + iSize][1] = g;
208  iColors[i + iSize][2] = b;
209  }
210  }
211  else {
212  for (unsigned int i = 0; i<lastIdx; ++i) {
213  // TColor* c = gROOT->GetColor(i);
214  float s = 0.4;
215  float r = s* iColors[i][0];
216  float g = s *iColors[i][1];
217  float b = s * iColors[i][2];
218 
219 
220  // printf("[%d] (%.1f, %.1f, %.1f) => ", i, r, g, b);
221  float value = -0.5;
222  r = TMath::Power( r, (2.5 - value)/2.5);
223  g = TMath::Power(g, (2.5 - value)/2.5);
224  b = TMath::Power(b, (2.5 - value)/2.5);
225 
226 
227  // printf(" (%.1f, %.1f, %.1f) \n", r, g, b);
228  //TColor::HLStoRGB(c->GetHue(), c->GetSaturation(), c->GetLight()*0.8, r, g, b);
229  iColors[i + iSize][0] = r;
230  iColors[i + iSize][1] = g;
231  iColors[i + iSize][2] = b;
232 
233  }
234  }
235 }
T Min(T a, T b)
Definition: MathUtil.h:39
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
double f[11][100]
Definition: value.py:1
double b
Definition: hdecay.h:120
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 }
std::string fireworks::getLocalTime ( const edm::EventBase event)

Definition at line 113 of file BuilderUtils.cc.

References AlCaHLTBitMon_QueryRunRegistry::string, lumiQTWidget::t, RecoTauValidation_cfi::text, edm::EventBase::time(), edm::Timestamp::value(), and geometryCSVtoXML::xx.

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  }
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 mps_fire::i, M_PI, SiStripPI::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  }
T min(T a, T b)
Definition: MathUtil.h:58
#define M_PI
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(), HcalPulseShapes::hoShape(), 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, lumiQTWidget::t, RecoTauValidation_cfi::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  }
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 659 of file TrackUtils.cc.

References DetId::Calo, ME0DetId::chamber(), CSCDetId::chamber(), GEMDetId::chamber(), MuonSubdetId::CSC, HcalDetId::depth(), MuonSubdetId::DT, DetId::Ecal, EcalBarrel, EcalEndcap, EcalLaserPnDiode, EcalPreshower, EcalTriggerTower, CSCDetId::endcap(), MuonSubdetId::GEM, fireworks::Context::getGeom(), fireworks::Context::getInstance(), FWGeometry::getTrackerTopology(), DetId::Hcal, HcalBarrel, HcalEmpty, HcalEndcap, HcalForward, HcalOther, HcalOuter, HcalTriggerTower, EEDetId::ic(), CaloTowerDetId::ieta(), EBDetId::ieta(), HcalDetId::ieta(), CaloTowerDetId::iphi(), EBDetId::iphi(), HcalDetId::iphi(), EEDetId::iquadrant(), EEDetId::isc(), EEDetId::ix(), EEDetId::iy(), ME0DetId::layer(), CSCDetId::layer(), GEMDetId::layer(), RPCDetId::layer(), MuonSubdetId::ME0, DetId::Muon, TrackerTopology::print(), ME0DetId::region(), GEMDetId::region(), RPCDetId::region(), GEMDetId::ring(), RPCDetId::ring(), CSCDetId::ring(), RPCDetId::roll(), MuonSubdetId::RPC, DTChamberId::sector(), RPCDetId::sector(), DTChamberId::station(), GEMDetId::station(), CSCDetId::station(), RPCDetId::station(), AlCaHLTBitMon_QueryRunRegistry::string, HcalDetId::subdet(), RPCDetId::subsector(), EBDetId::tower_ieta(), EBDetId::tower_iphi(), DetId::Tracker, and DTChamberId::wheel().

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

659  {
660  std::ostringstream oss;
661 
662  oss << "DetId: " << id.rawId() << "\n";
663 
664  switch ( id.det() ) {
665 
666  case DetId::Tracker:
668  break;
669 
670  case DetId::Muon:
671  switch ( id.subdetId() ) {
672  case MuonSubdetId::DT:
673  {
674  DTChamberId detId(id.rawId());
675  oss << "DT chamber (wheel, station, sector): "
676  << detId.wheel() << ", "
677  << detId.station() << ", "
678  << detId.sector();
679  }
680  break;
681  case MuonSubdetId::CSC:
682  {
683  CSCDetId detId(id.rawId());
684  oss << "CSC chamber (endcap, station, ring, chamber, layer): "
685  << detId.endcap() << ", "
686  << detId.station() << ", "
687  << detId.ring() << ", "
688  << detId.chamber() << ", "
689  << detId.layer();
690  }
691  break;
692  case MuonSubdetId::RPC:
693  {
694  RPCDetId detId(id.rawId());
695  oss << "RPC chamber ";
696  switch ( detId.region() ) {
697  case 0:
698  oss << "/ barrel / (wheel, station, sector, layer, subsector, roll): "
699  << detId.ring() << ", "
700  << detId.station() << ", "
701  << detId.sector() << ", "
702  << detId.layer() << ", "
703  << detId.subsector() << ", "
704  << detId.roll();
705  break;
706  case 1:
707  oss << "/ forward endcap / (wheel, station, sector, layer, subsector, roll): "
708  << detId.ring() << ", "
709  << detId.station() << ", "
710  << detId.sector() << ", "
711  << detId.layer() << ", "
712  << detId.subsector() << ", "
713  << detId.roll();
714  break;
715  case -1:
716  oss << "/ backward endcap / (wheel, station, sector, layer, subsector, roll): "
717  << detId.ring() << ", "
718  << detId.station() << ", "
719  << detId.sector() << ", "
720  << detId.layer() << ", "
721  << detId.subsector() << ", "
722  << detId.roll();
723  break;
724  }
725  }
726  break;
727  case MuonSubdetId::GEM:
728  {
729  GEMDetId detId(id.rawId());
730  oss << "GEM chamber (region, station, ring, chamber, layer): "
731  << detId.region() << ", "
732  << detId.station() << ", "
733  << detId.ring() << ", "
734  << detId.chamber() << ", "
735  << detId.layer();
736  }
737  break;
738  case MuonSubdetId::ME0:
739  {
740  ME0DetId detId(id.rawId());
741  oss << "ME0 chamber (region, chamber, layer): "
742  << detId.region() << ", "
743  << detId.chamber() << ", "
744  << detId.layer();
745  }
746  break;
747  }
748  break;
749 
750  case DetId::Calo:
751  {
752  CaloTowerDetId detId( id.rawId() );
753  oss << "CaloTower (ieta, iphi): "
754  << detId.ieta() << ", "
755  << detId.iphi();
756  }
757  break;
758 
759  case DetId::Ecal:
760  switch ( id.subdetId() ) {
761  case EcalBarrel:
762  {
763  EBDetId detId(id);
764  oss << "EcalBarrel (ieta, iphi, tower_ieta, tower_iphi): "
765  << detId.ieta() << ", "
766  << detId.iphi() << ", "
767  << detId.tower_ieta() << ", "
768  << detId.tower_iphi();
769  }
770  break;
771  case EcalEndcap:
772  {
773  EEDetId detId(id);
774  oss << "EcalEndcap (ix, iy, SuperCrystal, crystal, quadrant): "
775  << detId.ix() << ", "
776  << detId.iy() << ", "
777  << detId.isc() << ", "
778  << detId.ic() << ", "
779  << detId.iquadrant();
780  }
781  break;
782  case EcalPreshower:
783  oss << "EcalPreshower";
784  break;
785  case EcalTriggerTower:
786  oss << "EcalTriggerTower";
787  break;
788  case EcalLaserPnDiode:
789  oss << "EcalLaserPnDiode";
790  break;
791  }
792  break;
793 
794  case DetId::Hcal:
795  {
796  HcalDetId detId(id);
797  switch ( detId.subdet() ) {
798  case HcalEmpty:
799  oss << "HcalEmpty ";
800  break;
801  case HcalBarrel:
802  oss << "HcalBarrel ";
803  break;
804  case HcalEndcap:
805  oss << "HcalEndcap ";
806  break;
807  case HcalOuter:
808  oss << "HcalOuter ";
809  break;
810  case HcalForward:
811  oss << "HcalForward ";
812  break;
813  case HcalTriggerTower:
814  oss << "HcalTriggerTower ";
815  break;
816  case HcalOther:
817  oss << "HcalOther ";
818  break;
819  }
820  oss << "(ieta, iphi, depth):"
821  << detId.ieta() << ", "
822  << detId.iphi() << ", "
823  << detId.depth();
824  }
825  break;
826  default :;
827  }
828  return oss.str();
829 }
const FWGeometry * getGeom() const
Definition: Context.h:83
static const int GEM
Definition: MuonSubdetId.h:15
std::string print(DetId detid) const
static const int ME0
Definition: MuonSubdetId.h:16
static const int CSC
Definition: MuonSubdetId.h:13
static Context * getInstance()
Definition: Context.cc:243
static const int RPC
Definition: MuonSubdetId.h:14
static const int DT
Definition: MuonSubdetId.h:12
const TrackerTopology * getTrackerTopology() const
Definition: FWGeometry.h:133
std::string fireworks::info ( const std::set< DetId > &  idSet)

Definition at line 832 of file TrackUtils.cc.

References triggerObjects_cff::id, info(), AlCaHLTBitMon_QueryRunRegistry::string, and RecoTauValidation_cfi::text.

832  {
834  for(std::set<DetId>::const_iterator id = idSet.begin(), idEnd = idSet.end(); id != idEnd; ++id)
835  {
836  text += info(*id);
837  text += "\n";
838  }
839  return text;
840 }
static const TGPicture * info(bool iBackgroundIsBlack)
std::string fireworks::info ( const std::vector< DetId > &  idSet)

Definition at line 843 of file TrackUtils.cc.

References triggerObjects_cff::id, info(), AlCaHLTBitMon_QueryRunRegistry::string, and RecoTauValidation_cfi::text.

843  {
845  for(std::vector<DetId>::const_iterator id = idSet.begin(), idEnd = idSet.end(); id != idEnd; ++id)
846  {
847  text += info(*id);
848  text += "\n";
849  }
850  return text;
851 }
static const TGPicture * info(bool iBackgroundIsBlack)
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 edmIntegrityCheck::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 }
void fireworks::localSiStrip ( short  strip,
float *  localTop,
float *  localBottom,
const float *  pars,
unsigned int  id 
)

Definition at line 262 of file TrackUtils.cc.

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

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

263 {
264  Float_t topology = pars[0];
265  Float_t halfStripLength = pars[2] * 0.5;
266 
267  Double_t localCenter[3] = { 0.0, 0.0, 0.0 };
268  localTop[1] = halfStripLength;
269  localBottom[1] = -halfStripLength;
270 
271  if( topology == 1 ) // RadialStripTopology
272  {
273  // stripAngle = phiOfOneEdge + strip * angularWidth
274  // localY = originToIntersection * tan( stripAngle )
275  Float_t stripAngle = tan( pars[5] + strip * pars[6] );
276  Float_t delta = halfStripLength * stripAngle;
277  localCenter[0] = pars[4] * stripAngle;
278  localTop[0] = localCenter[0] + delta;
279  localBottom[0] = localCenter[0] - delta;
280  }
281  else if( topology == 2 ) // RectangularStripTopology
282  {
283  // offset = -numberOfStrips/2. * pitch
284  // localY = strip * pitch + offset
285  Float_t offset = -pars[1] * 0.5 * pars[3];
286  localCenter[0] = strip * pars[3] + offset;
287  localTop[0] = localCenter[0];
288  localBottom[0] = localCenter[0];
289  }
290  else if( topology == 3 ) // TrapezoidalStripTopology
291  {
293  << "did not expect TrapezoidalStripTopology of "
294  << id << std::endl;
295  }
296  else if( pars[0] == 0 ) // StripTopology
297  {
299  << "did not find StripTopology of "
300  << id << std::endl;
301  }
302 }
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 }
double eta() const final
momentum pseudorapidity
static float caloTransAngle()
Definition: Context.cc:233
static float caloZ2(bool offset=true)
Definition: Context.cc:223
std::vector< Constituent > Constituents
Definition: Jet.h:23
float etaetaMoment() const
eta-eta second moment, ET weighted
virtual Constituents getJetConstituents() const
list of constituents
static float caloR2(bool offset=true)
Definition: Context.cc:213
T sqrt(T t)
Definition: SSEVec.h:18
const Point & vertex() const override
vertex position (overwritten by PF...)
static float caloR1(bool offset=true)
Definition: Context.cc:208
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:238
static float caloZ1(bool offset=true)
Definition: Context.cc:218
double phi() const final
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(), mps_fire::i, triggerObjects_cff::id, edm::Ref< C, T, F >::isAvailable(), FWProxyBuilderBase::item(), M_PI, colinearityKinematic::Phi, alignCSCRings::r, SimDataFormats::CaloAnalysis::sc, 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 != nullptr )
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:577
const fireworks::Context & context() const
const FWDisplayProperties & defaultDisplayProperties() const
Definition: FWEventItem.cc:453
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:208
#define end
Definition: vmac.h:39
#define M_PI
const float * getCorners(unsigned int id) const
Definition: FWGeometry.cc:430
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(), mps_fire::i, triggerObjects_cff::id, 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 != nullptr )
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:577
const double Pi
const fireworks::Context & context() const
static float caloTransAngle()
Definition: Context.cc:233
const FWGeometry * getGeom() const
Definition: Context.h:83
Geom::Theta< T > theta() const
static float caloZ2(bool offset=true)
Definition: Context.cc:223
static float caloR2(bool offset=true)
Definition: Context.cc:213
static float caloR1(bool offset=true)
Definition: Context.cc:208
#define end
Definition: vmac.h:39
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:430
static float caloZ1(bool offset=true)
Definition: Context.cc:218
float fireworks::pixelLocalX ( const double  mpx,
const float *  par 
)

Definition at line 160 of file TrackUtils.cc.

References fireworks::Context::getInstance(), createfilelist::int, and MICRON.

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

161 {
162  float xoffset = 0;
163  float xpitch = 0;
164  // std::cerr << "version pr0d " << fireworks::Context::getInstance()->getGeom()->getProducerVersion() << "\n";
165  if (fireworks::Context::getInstance() && fireworks::Context::getInstance()->getGeom()->getProducerVersion() < 1)
166  {
167 
168  static const int ROWS_PER_ROC = 80; // Num of cols per ROC
169  static const int BIG_PIX_PER_ROC_X = 1; // in x direction, rows
170  static const double PITCHX = 100*MICRON;
171  // Calculate the edge of the active sensor with respect to the center,
172  // that is simply the half-size.
173  // Take into account large pixels
174  xpitch = PITCHX;
175  xoffset = -( par[0] + BIG_PIX_PER_ROC_X * par[0] / ROWS_PER_ROC ) / 2. * PITCHX;
176  }
177  else {
178  xpitch = par[0];
179  xoffset = par[2];
180  }
181 
182  bool bigPixelsLayout = par[4];
183 
184  int binoffx = int(mpx); // truncate to int
185  double fractionX = mpx - binoffx; // find the fraction
186  double local_xpitch = xpitch; // defaultpitch
187 
188  if (bigPixelsLayout == 0) {
189  // Measurement to local transformation for X coordinate
190  // X coordinate is in the ROC row number direction
191  // Copy from RectangularPixelTopology::localX implementation
192  if( binoffx > 80 ) { // ROC 1 - handles x on edge cluster
193  binoffx = binoffx + 2;
194  } else if( binoffx == 80 ) { // ROC 1
195  binoffx = binoffx+1;
196  local_xpitch = 2 * xpitch;
197  } else if( binoffx == 79 ) { // ROC 0
198  binoffx = binoffx + 0;
199  local_xpitch = 2 * xpitch;
200  } else if( binoffx >= 0 ) { // ROC 0
201  binoffx = binoffx + 0;
202  }
203  }
204 
205  // The final position in local coordinates
206  double lpX = double( binoffx * xpitch ) + fractionX * local_xpitch + xoffset;
207 
208  return lpX;
209 }
static const double MICRON
Definition: TrackUtils.cc:57
static Context * getInstance()
Definition: Context.cc:243
float fireworks::pixelLocalY ( const double  mpy,
const float *  par 
)

Definition at line 216 of file TrackUtils.cc.

References begin, constexpr, end, fireworks::Context::getInstance(), createfilelist::int, and MICRON.

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

217 {
218  float ypitch = 0;
219  float yoffset = 0;
220  if (fireworks::Context::getInstance() && fireworks::Context::getInstance()->getGeom()->getProducerVersion() < 1)
221  {
222  static const double PITCHY = 150*MICRON;
223  static const int BIG_PIX_PER_ROC_Y = 2; // in y direction, cols
224  static const int COLS_PER_ROC = 52; // Num of Rows per ROC
225 
226  // Calculate the edge of the active sensor with respect to the center,
227  // that is simply the half-size.
228  // Take into account large pixels
229  yoffset = -( par[1] + BIG_PIX_PER_ROC_Y * par[1] / COLS_PER_ROC ) / 2. * PITCHY;
230  ypitch = PITCHY;
231  }
232  else
233  {
234  ypitch = par[1];
235  yoffset = par[3];
236  }
237  // Measurement to local transformation for Y coordinate
238  // Y is in the ROC column number direction
239  // Copy from RectangularPixelTopology::localY implementation
240  int binoffy = int( mpy ); // truncate to int
241  double fractionY = mpy - binoffy; // find the fraction
242  double local_pitchy = ypitch; // defaultpitch
243 
244 
245  bool bigPixelsLayout = par[4];
246  if (bigPixelsLayout == 0) {
247  constexpr int bigYIndeces[]{0,51,52,103,104,155,156,207,208,259,260,311,312,363,364,415,416,511};
248  auto const j = std::lower_bound(std::begin(bigYIndeces),std::end(bigYIndeces),binoffy);
249  if (*j==binoffy) local_pitchy *= 2 ;
250  binoffy += (j-bigYIndeces);
251  }
252 
253  // The final position in local coordinates
254  double lpY = double( binoffy * ypitch ) + fractionY * local_pitchy + yoffset;
255 
256  return lpY;
257 }
#define constexpr
static const double MICRON
Definition: TrackUtils.cc:57
#define end
Definition: vmac.h:39
static Context * getInstance()
Definition: Context.cc:243
#define begin
Definition: vmac.h:32
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(), lumiQTWidget::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 }
virtual double pz() const =0
z coordinate of momentum vector
virtual double py() const =0
y coordinate of momentum vector
virtual int charge() const =0
electric charge
virtual const Point & vertex() const =0
vertex position
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 63 of file TrackUtils.cc.

References reco::TrackBase::charge(), reco::Track::extra(), f, mps_fire::i, reco::Track::innerMomentum(), reco::Track::innerOk(), reco::Track::innerPosition(), edm::Ref< C, T, F >::isAvailable(), 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(), lumiQTWidget::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(), fireworks::StateOrdering::operator()(), and FWElectronProxyBuilder::requestCommon().

66 {
67  // To make use of all available information, we have to order states
68  // properly first. Propagator should take care of y=0 transition.
69 
70  std::vector<State> refStates;
71  TEveVector trackMomentum(track.px(), track.py(), track.pz());
72  refStates.push_back(State(TEveVector(track.vx(), track.vy(), track.vz()),
73  trackMomentum));
74  if( track.extra().isAvailable() ) {
75  if (track.innerOk()) {
76  const reco::TrackBase::Point &v = track.innerPosition();
77  const reco::TrackBase::Vector &p = track.innerMomentum();
78  refStates.push_back(State(TEveVector(v.x(), v.y(), v.z()), TEveVector(p.x(), p.y(), p.z())));
79  }
80  if (track.outerOk()) {
81  const reco::TrackBase::Point &v = track.outerPosition();
82  const reco::TrackBase::Vector &p = track.outerMomentum();
83  refStates.push_back(State(TEveVector(v.x(), v.y(), v.z()), TEveVector(p.x(), p.y(), p.z())));
84  }
85  }
86  for( std::vector<TEveVector>::const_iterator point = extraRefPoints.begin(), pointEnd = extraRefPoints.end();
87  point != pointEnd; ++point )
88  refStates.push_back(State(*point));
89  if( track.pt()>1 )
90  std::sort( refStates.begin(), refStates.end(), StateOrdering(trackMomentum) );
91 
92  // * if the first state has non-zero momentum use it as a starting point
93  // and all other points as PathMarks to follow
94  // * if the first state has only position, try the last state. If it has
95  // momentum we propagate backword, if not, we look for the first one
96  // on left that has momentum and ignore all earlier.
97  //
98 
99  TEveRecTrack t;
100  t.fBeta = 1.;
101  t.fSign = track.charge();
102 
103  if( refStates.front().valid ) {
104  t.fV = refStates.front().position;
105  t.fP = refStates.front().momentum;
106  TEveTrack* trk = new TEveTrack( &t, propagator );
107  for( unsigned int i(1); i<refStates.size()-1; ++i) {
108  if( refStates[i].valid )
109  trk->AddPathMark( TEvePathMark( TEvePathMark::kReference, refStates[i].position, refStates[i].momentum ) );
110  else
111  trk->AddPathMark( TEvePathMark( TEvePathMark::kDaughter, refStates[i].position ) );
112  }
113  if( refStates.size()>1 ) {
114  trk->AddPathMark( TEvePathMark( TEvePathMark::kDecay, refStates.back().position ) );
115  }
116  return trk;
117  }
118 
119  if( refStates.back().valid ) {
120  t.fSign = (-1)*track.charge();
121  t.fV = refStates.back().position;
122  t.fP = refStates.back().momentum * (-1.0f);
123  TEveTrack* trk = new TEveTrack( &t, propagator );
124  unsigned int i( refStates.size()-1 );
125  for(; i>0; --i) {
126  if ( refStates[i].valid )
127  trk->AddPathMark( TEvePathMark( TEvePathMark::kReference, refStates[i].position, refStates[i].momentum*(-1.0f) ) );
128  else
129  trk->AddPathMark( TEvePathMark( TEvePathMark::kDaughter, refStates[i].position ) );
130  }
131  if ( refStates.size()>1 ) {
132  trk->AddPathMark( TEvePathMark( TEvePathMark::kDecay, refStates.front().position ) );
133  }
134  return trk;
135  }
136 
137  unsigned int i(0);
138  while( i<refStates.size() && !refStates[i].valid ) ++i;
139  assert( i < refStates.size() );
140 
141  t.fV = refStates[i].position;
142  t.fP = refStates[i].momentum;
143  TEveTrack* trk = new TEveTrack( &t, propagator );
144  for( unsigned int j(i+1); j<refStates.size()-1; ++j ) {
145  if( refStates[i].valid )
146  trk->AddPathMark( TEvePathMark( TEvePathMark::kReference, refStates[i].position, refStates[i].momentum ) );
147  else
148  trk->AddPathMark( TEvePathMark( TEvePathMark::kDaughter, refStates[i].position ) );
149  }
150  if ( i < refStates.size() ) {
151  trk->AddPathMark( TEvePathMark( TEvePathMark::kDecay, refStates.back().position ) );
152  }
153  return trk;
154 }
bool isAvailable() const
Definition: Ref.h:577
const TrackExtraRef & extra() const
reference to "extra" object
Definition: Track.h:191
bool innerOk() const
return true if the innermost hit is valid
Definition: Track.h:52
double px() const
x coordinate of momentum vector
Definition: TrackBase.h:660
const math::XYZPoint & outerPosition() const
position of the outermost hit
Definition: Track.h:67
const math::XYZPoint & innerPosition() const
position of the innermost hit
Definition: Track.h:57
double pt() const
track transverse momentum
Definition: TrackBase.h:654
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:672
double vz() const
z coordinate of the reference point on track
Definition: TrackBase.h:702
const math::XYZVector & outerMomentum() const
momentum vector at the outermost hit position
Definition: Track.h:72
bool outerOk() const
return true if the outermost hit is valid
Definition: Track.h:47
double vy() const
y coordinate of the reference point on track
Definition: TrackBase.h:696
const math::XYZVector & innerMomentum() const
momentum vector at the innermost hit position
Definition: Track.h:62
static int position[264][3]
Definition: ReadPGInfo.cc:509
int charge() const
track electric charge
Definition: TrackBase.h:600
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:666
double vx() const
x coordinate of the reference point on track
Definition: TrackBase.h:690
void fireworks::pushNearbyPixelHits ( std::vector< TVector3 > &  pixelPoints,
const FWEventItem iItem,
const reco::Track t 
)

Definition at line 519 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(), createfilelist::int, edm::Ref< C, T, F >::isAvailable(), edm::Ref< C, T, F >::isNonnull(), fwlog::kError, digitizers_cfi::pixel, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, edm::Handle< T >::product(), pushPixelCluster(), reco::Track::recHitsBegin(), and reco::Track::recHitsEnd().

Referenced by FWTrackHitsDetailView::addHits(), FWConvTrackHitsDetailView::addHits(), and fireworks::StateOrdering::operator()().

520 {
521  const edmNew::DetSetVector<SiPixelCluster> * allClusters = nullptr;
522  for( trackingRecHit_iterator it = t.recHitsBegin(), itEnd = t.recHitsEnd(); it != itEnd; ++it)
523  {
524  const auto & rhs = *(*(it));
525  if( typeid( rhs ) == typeid( SiPixelRecHit ))
526  {
527  const SiPixelRecHit &hit = static_cast<const SiPixelRecHit &>(**it);
528  if( hit.cluster().isNonnull() && hit.cluster().isAvailable())
529  {
531  iItem.getEvent()->get(hit.cluster().id(), allClustersHandle);
532  allClusters = allClustersHandle.product();
533  break;
534  }
535  }
536  }
537  if( allClusters == nullptr ) return;
538 
539  const FWGeometry *geom = iItem.getGeom();
540 
541  for( trackingRecHit_iterator it = t.recHitsBegin(), itEnd = t.recHitsEnd(); it != itEnd; ++it )
542  {
543  const TrackingRecHit* rh = &(**it);
544 
545  DetId id = (*it)->geographicalId();
546  if( ! geom->contains( id ))
547  {
549  << "failed to get geometry of Tracker Det with raw id: "
550  << id.rawId() << std::endl;
551 
552  continue;
553  }
554 
555  // -- in which detector are we?
556  unsigned int subdet = (unsigned int)id.subdetId();
557  if(( subdet != PixelSubdetector::PixelBarrel ) && ( subdet != PixelSubdetector::PixelEndcap )) continue;
558 
559  const SiPixelCluster* hitCluster = nullptr;
560  if( const SiPixelRecHit* pixel = dynamic_cast<const SiPixelRecHit*>( rh ))
561  hitCluster = pixel->cluster().get();
562  edmNew::DetSetVector<SiPixelCluster>::const_iterator itds = allClusters->find(id.rawId());
563  if( itds != allClusters->end())
564  {
565  const edmNew::DetSet<SiPixelCluster> & clustersOnThisDet = *itds;
566  for( edmNew::DetSet<SiPixelCluster>::const_iterator itc = clustersOnThisDet.begin(), edc = clustersOnThisDet.end(); itc != edc; ++itc )
567  {
568  if( &*itc != hitCluster )
569  pushPixelCluster( pixelPoints, *geom, id, *itc, geom->getParameters( id ));
570  }
571  }
572  }
573 }
bool isAvailable() const
Definition: Ref.h:577
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:253
const float * getParameters(unsigned int id) const
Definition: FWGeometry.cc:446
bool get(ProductID const &, Handle< T > &) const
Definition: EventBase.h:106
data_type const * const_iterator
Definition: DetSetNew.h:30
ProductID id() const
Accessor for product ID.
Definition: Ref.h:259
bool contains(unsigned int id) const
Definition: FWGeometry.h:117
trackingRecHit_iterator recHitsBegin() const
Iterator to first hit on the track.
Definition: Track.h:106
const edm::EventBase * getEvent() const
Definition: FWEventItem.h:148
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:625
const FWGeometry * getGeom() const
Definition: FWEventItem.cc:683
Our base class.
Definition: SiPixelRecHit.h:23
trackingRecHit_iterator recHitsEnd() const
Iterator to last hit on the track.
Definition: Track.h:111
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 625 of file TrackUtils.cc.

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

Referenced by fireworks::StateOrdering::operator()(), pushNearbyPixelHits(), and pushPixelHits().

626 {
627  double row = c.minPixelRow();
628  double col = c.minPixelCol();
629  float lx = 0.;
630  float ly = 0.;
631 
632  // int nrows = (int)pars[0];
633  // int ncols = (int)pars[1];
634  lx = pixelLocalX( row, pars );
635  ly = pixelLocalY( col, pars );
636 
638  << ", row: " << row << ", col: " << col
639  << ", lx: " << lx << ", ly: " << ly ;
640 
641  float local[3] = { lx, ly, 0. };
642  float global[3];
643  geom.localToGlobal( id, local, global );
644  TVector3 pb( global[0], global[1], global[2] );
645  pixelPoints.push_back( pb );
646 
648  << " x: " << pb.X()
649  << ", y: " << pb.Y()
650  << " z: " << pb.Z()
651  << " eta: " << pb.Eta()
652  << ", phi: " << pb.Phi()
653  << " rho: " << pb.Pt() << std::endl;
654 }
int minPixelCol() const
int minPixelRow() const
void localToGlobal(unsigned int id, const float *local, float *global, bool translatep=true) const
Definition: FWGeometry.cc:478
float pixelLocalX(const double mpx, const float *)
Definition: TrackUtils.cc:160
float pixelLocalY(const double mpy, const float *)
Definition: TrackUtils.cc:216
#define fwLog(_level_)
Definition: fwLog.h:50
col
Definition: cuy.py:1010
void fireworks::pushPixelHits ( std::vector< TVector3 > &  pixelPoints,
const FWEventItem iItem,
const reco::Track t 
)

Definition at line 578 of file TrackUtils.cc.

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

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

579 {
580  /*
581  * -- return for each Pixel Hit a 3D point
582  */
583  const FWGeometry *geom = iItem.getGeom();
584 
585  double dz = t.dz();
586  double vz = t.vz();
587  double etaT = t.eta();
588 
589  fwLog( fwlog::kDebug ) << "Track eta: " << etaT << ", vz: " << vz << ", dz: " << dz
590  << std::endl;
591 
592  int cnt = 0;
593  for( trackingRecHit_iterator it = t.recHitsBegin(), itEnd = t.recHitsEnd(); it != itEnd; ++it )
594  {
595  const TrackingRecHit* rh = &(**it);
596  // -- get position of center of wafer, assuming (0,0,0) is the center
597  DetId id = (*it)->geographicalId();
598  if( ! geom->contains( id ))
599  {
601  << "failed to get geometry of Tracker Det with raw id: "
602  << id.rawId() << std::endl;
603 
604  continue;
605  }
606 
607  // -- in which detector are we?
608  unsigned int subdet = (unsigned int)id.subdetId();
609 
610  if(( subdet == PixelSubdetector::PixelBarrel ) || ( subdet == PixelSubdetector::PixelEndcap ))
611  {
612  fwLog( fwlog::kDebug ) << cnt++ << " -- "
613  << subdets[subdet];
614 
615  if( const SiPixelRecHit* pixel = dynamic_cast<const SiPixelRecHit*>( rh ))
616  {
617  const SiPixelCluster& c = *( pixel->cluster());
618  pushPixelCluster( pixelPoints, *geom, id, c, geom->getParameters( id ));
619  }
620  }
621  }
622 }
const float * getParameters(unsigned int id) const
Definition: FWGeometry.cc:446
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:684
bool contains(unsigned int id) const
Definition: FWGeometry.h:117
trackingRecHit_iterator recHitsBegin() const
Iterator to first hit on the track.
Definition: Track.h:106
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:642
double vz() const
z coordinate of the reference point on track
Definition: TrackBase.h:702
Definition: DetId.h:18
#define fwLog(_level_)
Definition: fwLog.h:50
Pixel cluster – collection of neighboring pixels above threshold.
static const std::string subdets[7]
Definition: TrackUtils.cc:60
void pushPixelCluster(std::vector< TVector3 > &pixelPoints, const FWGeometry &geom, DetId id, const SiPixelCluster &c, const float *pars)
Definition: TrackUtils.cc:625
const FWGeometry * getGeom() const
Definition: FWEventItem.cc:683
Our base class.
Definition: SiPixelRecHit.h:23
trackingRecHit_iterator recHitsEnd() const
Iterator to last hit on the track.
Definition: Track.h:111
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, and fwlog::kError.

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.

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  }
fixed size matrix
void fireworks::setupAddElement ( TEveElement *  el,
TEveElement *  parent,
const FWEventItem item,
bool  master,
bool  color 
)

Definition at line 307 of file TrackUtils.cc.

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

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

308 {
309  if (master)
310  {
311  el->CSCTakeAnyParentAsMaster();
312  el->SetPickable(true);
313  }
314 
315  if (color)
316  {
317  el->CSCApplyMainColorToMatchingChildren();
318  el->CSCApplyMainTransparencyToMatchingChildren();
319  el->SetMainColor(item->defaultDisplayProperties().color());
320  assert((item->defaultDisplayProperties().transparency() >= 0)
321  && (item->defaultDisplayProperties().transparency() <= 100));
322  el->SetMainTransparency(item->defaultDisplayProperties().transparency());
323  }
324  parent->AddElement(el);
325 }
Master< F > master(const F &f)
Definition: FunctClone.h:68
const FWDisplayProperties & defaultDisplayProperties() const
Definition: FWEventItem.cc:453
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 JetChargeProducer_cfi::exp, mps_fire::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  }
const double xbins[]
std::vector< std::pair< double, double > > thetaBins()
Definition: thetaBins.cc:48
const int xbins_n

Variable Documentation

const double fireworks::MICRON = 1./1000./1000.
static

Definition at line 57 of file TrackUtils.cc.

Referenced by pixelLocalX(), and pixelLocalY().

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

Definition at line 12 of file fwPaths.cc.

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

Definition at line 13 of file fwPaths.cc.

const float fireworks::s_forBlack[][3]
static
const float fireworks::s_forWhite[][3]
static

Definition at line 4 of file fwPaletteClassic.cc.

Referenced by FWColorManager::initColorTable().

const unsigned int fireworks::s_size = sizeof(s_forBlack)/sizeof(s_forBlack[0])
static
const std::string fireworks::subdets[7] = { "UNKNOWN", "PXB", "PXF", "TIB", "TID", "TOB", "TEC" }
static