CMS 3D CMS Logo

Namespaces | Classes | Functions | Variables

fireworks Namespace Reference

Namespaces

namespace  expression
namespace  geometry
namespace  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 std::set< DetId > &)
std::string info (const std::vector< DetId > &)
std::string info (const 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 data, getDecomposedVersion(), and supportedDataFormatsVersion().

Referenced by FWFileEntry::openFile().

{
   int data[] = {0, 0, 0};
   getDecomposedVersion(processConfigurationVersion, data);


   int* running = supportedDataFormatsVersion();
   if ((data[0] == 6 && running[0] == 5 && running[1] > 1) ||
       (data[0] == 5 && data[1] > 1 && running[0] == 6))
      return true;
   else
      return data[0] == running[0];
}
void fireworks::addBox ( const std::vector< float > &  corners,
TEveElement *  comp,
FWProxyBuilderBase pb 
)

Definition at line 146 of file BuilderUtils.cc.

References FWProxyBuilderBase::setupAddElement().

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

   {
      TEveBox* eveBox = new TEveBox( "Box" );    
      eveBox->SetDrawFrame( false );
      eveBox->SetPickable( true );      
      eveBox->SetVertices( &corners[0] );

      pb->setupAddElement( eveBox, comp );
   }
void fireworks::addCircle ( double  eta,
double  phi,
double  radius,
const unsigned int  nLineSegments,
TEveElement *  comp,
FWProxyBuilderBase pb 
)

Definition at line 156 of file BuilderUtils.cc.

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

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

   {
      TEveStraightLineSet* container = new TEveStraightLineSet;
      
      for( unsigned int iphi = 0; iphi < nLineSegments; ++iphi )
      {
         container->AddLine( eta + radius * cos( 2 * M_PI / nLineSegments * iphi ),
                             phi + radius * sin( 2 * M_PI / nLineSegments * iphi ),
                             0.01,
                             eta + radius * cos( 2 * M_PI / nLineSegments * ( iphi + 1 )),
                             phi + radius * sin( 2 * M_PI / nLineSegments * ( iphi + 1 )),
                             0.01 );
      }
      pb->setupAddElement( container, comp );
   }
void fireworks::addDashedArrow ( double  phi,
double  size,
TEveElement *  comp,
FWProxyBuilderBase pb 
)

Definition at line 172 of file BuilderUtils.cc.

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

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

   {
      TEveScalableStraightLineSet* marker = new TEveScalableStraightLineSet;
      marker->SetLineWidth( 1 );
      marker->SetLineStyle( 2 );
      marker->AddLine( 0, 0, 0, size * cos( phi ), size * sin( phi ), 0 );
      marker->AddLine( size * 0.9 * cos( phi + 0.03 ), size * 0.9 * sin( phi + 0.03 ), 0, size * cos( phi ), size * sin( phi ), 0 );
      marker->AddLine( size * 0.9 * cos( phi - 0.03 ), size * 0.9 * sin( phi - 0.03 ), 0, size * cos( phi ), size * sin( phi ), 0 );
      pb->setupAddElement( marker, comp );      
   }
void fireworks::addDashedLine ( double  phi,
double  theta,
double  size,
TEveElement *  comp,
FWProxyBuilderBase pb 
)

Definition at line 183 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 FWL1JetParticleProxyBuilder::build(), FWL1EmParticleProxyBuilder::build(), FWL1MuonParticleProxyBuilder::build(), and FWL1EtMissParticleProxyBuilder::build().

   {
      double r( 0 );
      if( theta < pb->context().caloTransAngle() || M_PI - theta < pb->context().caloTransAngle())
         r = pb->context().caloZ2() / fabs( cos( theta ));
      else
         r = pb->context().caloR1() / sin( theta );
      
      TEveStraightLineSet* marker = new TEveStraightLineSet;
      marker->SetLineWidth( 2 );
      marker->SetLineStyle( 2 );
      marker->AddLine( r * cos( phi ) * sin( theta ), r * sin( phi ) * sin( theta ), r * cos( theta ),
                       ( r + size ) * cos( phi ) * sin( theta ), ( r + size ) * sin( phi ) * sin( theta ), ( r + size ) * cos( theta ));
      pb->setupAddElement( marker, comp );      
   }
void fireworks::addDoubleLines ( double  phi,
TEveElement *  comp,
FWProxyBuilderBase pb 
)

Definition at line 199 of file BuilderUtils.cc.

References M_PI, and FWProxyBuilderBase::setupAddElement().

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

   {
      TEveStraightLineSet* mainLine = new TEveStraightLineSet;
      mainLine->AddLine( -5.191, phi, 0.01, 5.191, phi, 0.01 );
      pb->setupAddElement( mainLine, comp );
      
      phi = phi > 0 ? phi - M_PI : phi + M_PI;
      TEveStraightLineSet* secondLine = new TEveStraightLineSet;
      secondLine->SetLineStyle( 7 );
      secondLine->AddLine( -5.191, phi, 0.01, 5.191, phi, 0.01 );
      pb->setupAddElement( secondLine, comp );      
   }
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().

   {
      TEveGeoManagerHolder gmgr( TEveGeoShape::GetGeoMangeur());
      double z1 = r_ecal / tan( theta_min );
      if( z1 > z_ecal ) z1 = z_ecal;
      if( z1 < -z_ecal ) z1 = -z_ecal;
      double z2 = r_ecal / tan( theta_max );
      if( z2 > z_ecal ) z2 = z_ecal;
      if( z2 < -z_ecal ) z2 = -z_ecal;
      double r1 = z_ecal * fabs( tan( theta_min ));
      if( r1 > r_ecal ) r1 = r_ecal;
      if( phi < 0 ) r1 = -r1;
      double r2 = z_ecal * fabs( tan( theta_max ));
      if( r2 > r_ecal ) r2 = r_ecal;
      if( phi < 0 ) r2 = -r2;

      if( fabs(r2 - r1) > 1 )
      {
         TGeoBBox *sc_box = new TGeoBBox( 0., fabs( r2 - r1 ) / 2, 1 );
         TEveGeoShape *element = new TEveGeoShape("r-segment");
         element->SetShape(sc_box);
         TEveTrans &t = element->RefMainTrans();
         t(1,4) = 0;
         t(2,4) = (r2+r1)/2;
         t(3,4) = fabs(z2)>fabs(z1) ? z2 : z1;
         pb->setupAddElement(element, container);
      }
      if( fabs(z2 - z1) > 1 )
      {
         TGeoBBox *sc_box = new TGeoBBox( 0., 1, ( z2 - z1 ) / 2 );
         TEveGeoShape *element = new TEveGeoShape("z-segment");
         element->SetShape( sc_box );
         TEveTrans &t = element->RefMainTrans();
         t(1,4) = 0;
         t(2,4) = fabs(r2)>fabs(r1) ? r2 : r1;
         t(3,4) = (z2+z1)/2;
         pb->setupAddElement(element, container);
      }
   }
void fireworks::addSiStripClusters ( const FWEventItem iItem,
const reco::Track t,
class TEveElement *  tList,
bool  addNearbyClusters,
bool  master 
)

Definition at line 404 of file TrackUtils.cc.

References edmNew::DetSet< T >::begin(), FWGeometry::contains(), edmNew::DetSetVector< T >::end(), edmNew::DetSet< T >::end(), extractClusterFromTrackingRecHit(), edmNew::DetSetVector< T >::find(), SiStripCluster::firstStrip(), fwLog, TrackingRecHit::geographicalId(), relativeConstraints::geom, FWEventItem::getGeom(), FWGeometry::getParameters(), TrackingRecHit::isValid(), fwlog::kDebug, fwlog::kError, localSiStrip(), FWGeometry::localToGlobal(), DetId::rawId(), reco::Track::recHitsBegin(), reco::Track::recHitsEnd(), and setupAddElement().

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

{
   // master is true if the product is for proxy builder
   const FWGeometry *geom = iItem->getGeom();

   const edmNew::DetSetVector<SiStripCluster> * allClusters = 0;
   if( addNearbyClusters )
   {
      for( trackingRecHit_iterator it = t.recHitsBegin(), itEnd = t.recHitsEnd(); it != itEnd; ++it )
      {
         if( typeid( **it ) == typeid( SiStripRecHit2D ))
         {
            const SiStripRecHit2D &hit = static_cast<const SiStripRecHit2D &>( **it );
            if( hit.cluster().isNonnull() && hit.cluster().isAvailable())
            {
               allClusters = hit.cluster().product();
               break;
            }
         }
         else if( typeid( **it ) == typeid( SiStripRecHit1D ))
         {
            const SiStripRecHit1D &hit = static_cast<const SiStripRecHit1D &>( **it );
            if( hit.cluster().isNonnull() && hit.cluster().isAvailable())
            {
               allClusters = hit.cluster().product();
               break;
            }
         }
      }
   }

   for( trackingRecHit_iterator it = t.recHitsBegin(), itEnd = t.recHitsEnd(); it != itEnd; ++it )
   {
      unsigned int rawid = (*it)->geographicalId();
      if( ! geom->contains( rawid ))
      {
         fwLog( fwlog::kError )
           << "failed to get geometry of SiStripCluster with detid: " 
           << rawid << std::endl;
         
         continue;
      }
        
      const float* pars = geom->getParameters( rawid );
      
      // -- get phi from SiStripHit
      TrackingRecHitRef rechitRef = *it;
      const TrackingRecHit *rechit = &( *rechitRef );
      const SiStripCluster *cluster = extractClusterFromTrackingRecHit( rechit );

      if( cluster )
      {
         if( allClusters != 0 )
         {
            const edmNew::DetSet<SiStripCluster> & clustersOnThisDet = (*allClusters)[rechit->geographicalId().rawId()];

            for( edmNew::DetSet<SiStripCluster>::const_iterator itc = clustersOnThisDet.begin(), edc = clustersOnThisDet.end(); itc != edc; ++itc )
            {

               TEveStraightLineSet *scposition = new TEveStraightLineSet;
               scposition->SetDepthTest( false );
               scposition->SetPickable( kTRUE );

               short firststrip = itc->firstStrip();

               if( &*itc == cluster )
               {
                  scposition->SetTitle( Form( "Exact SiStripCluster from TrackingRecHit, first strip %d", firststrip ));
                  scposition->SetLineColor( kGreen );
               }
               else
               {
                  scposition->SetTitle( Form( "SiStripCluster, first strip %d", firststrip ));
                  scposition->SetLineColor( kRed );
               }
               
               float localTop[3] = { 0.0, 0.0, 0.0 };
               float localBottom[3] = { 0.0, 0.0, 0.0 };

               fireworks::localSiStrip( firststrip, localTop, localBottom, pars, rawid );

               float globalTop[3];
               float globalBottom[3];
               geom->localToGlobal( rawid, localTop, globalTop, localBottom, globalBottom );
  
               scposition->AddLine( globalTop[0], globalTop[1], globalTop[2],
                                    globalBottom[0], globalBottom[1], globalBottom[2] );
               
               setupAddElement( scposition, tList, iItem, master, false );
            }
         }
         else
         {
            short firststrip = cluster->firstStrip();
            TEveStraightLineSet *scposition = new TEveStraightLineSet;
            scposition->SetDepthTest( false );
            scposition->SetPickable( kTRUE );
            scposition->SetTitle( Form( "SiStripCluster, first strip %d", firststrip ));
            
            float localTop[3] = { 0.0, 0.0, 0.0 };
            float localBottom[3] = { 0.0, 0.0, 0.0 };

            fireworks::localSiStrip( firststrip, localTop, localBottom, pars, rawid );

            float globalTop[3];
            float globalBottom[3];
            geom->localToGlobal( rawid, localTop, globalTop, localBottom, globalBottom );
  
            scposition->AddLine( globalTop[0], globalTop[1], globalTop[2],
                                 globalBottom[0], globalBottom[1], globalBottom[2] );
               
            setupAddElement( scposition, tList, iItem, master, true );
         }              
      }
      else if( !rechit->isValid() && ( rawid != 0 )) // lost hit
      {
         if( allClusters != 0 )
         {
            edmNew::DetSetVector<SiStripCluster>::const_iterator itds = allClusters->find( rawid );
            if( itds != allClusters->end())
            {
               const edmNew::DetSet<SiStripCluster> & clustersOnThisDet = *itds;
               for( edmNew::DetSet<SiStripCluster>::const_iterator itc = clustersOnThisDet.begin(), edc = clustersOnThisDet.end(); itc != edc; ++itc )
               {
                  short firststrip = itc->firstStrip();

                  TEveStraightLineSet *scposition = new TEveStraightLineSet;
                  scposition->SetDepthTest( false );
                  scposition->SetPickable( kTRUE );
                  scposition->SetTitle( Form( "Lost SiStripCluster, first strip %d", firststrip ));

                  float localTop[3] = { 0.0, 0.0, 0.0 };
                  float localBottom[3] = { 0.0, 0.0, 0.0 };

                  fireworks::localSiStrip( firststrip, localTop, localBottom, pars, rawid );

                  float globalTop[3];
                  float globalBottom[3];
                  geom->localToGlobal( rawid, localTop, globalTop, localBottom, globalBottom );
  
                  scposition->AddLine( globalTop[0], globalTop[1], globalTop[2],
                                       globalBottom[0], globalBottom[1], globalBottom[2] );


                  setupAddElement( scposition, tList, iItem, master, false );
                  scposition->SetLineColor( kRed );
               }
            }
         }
      }
      else
      {
         fwLog( fwlog::kDebug )
            << "*ANOTHER* option possible: valid=" << rechit->isValid()
            << ", rawid=" << rawid << std::endl;
      }
   }
}
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, theta(), and reco::Candidate::theta().

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

{
   double phi = cand->phi();
   double theta = cand->theta();
   double size = cand->pt() * scale_factor;
   marker->AddLine( 0, 0, 0, size * cos(phi)*sin(theta), size *sin(phi)*sin(theta), size*cos(theta));
}
const TGGC & fireworks::boldGC ( )

Definition at line 12 of file GlobalContexts.cc.

References fetchall_from_DQM_v2::pool.

Referenced by FWPSetTableManager::cellRenderer().

{
   static TGGC s_boldGC(*gClient->GetResourcePool()->GetFrameGC());
 
   TGFontPool *pool = gClient->GetFontPool();
   //TGFont *font = pool->FindFontByHandle(s_boldGC.GetFont());
   //FontAttributes_t attributes = font->GetFontAttributes();
  
   /*
     This doesn't seem to work:
     attributes.fWeight = 1; 
     TGFont *newFont = pool->GetFont(attributes.fFamily, 9,
     attributes.fWeight, attributes.fSlant);

     But this does:
   */
  
   TGFont* newFont = pool->GetFont("-*-helvetica-bold-r-*-*-12-*-*-*-*-*-iso8859-1");
  
   if ( ! newFont )
      return s_boldGC;

   s_boldGC.SetFont(newFont->GetFontHandle());
  
   return s_boldGC;
}
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().

  {
    if( detector == MuonSubdetId::CSC )
    {
      if( matchedSegment )
      {
        segmentOuterPoint[0] = segmentPosition[0] + segmentLength*segmentDirection[0];
        segmentOuterPoint[1] = segmentPosition[1] + segmentLength*segmentDirection[1];
        segmentOuterPoint[2] = segmentLength;

        if( fabs(segmentOuterPoint[1]) > segmentLimit )
          segmentOuterPoint[1] = segmentLimit * ( segmentOuterPoint[1] / fabs( segmentOuterPoint[1] ));

        segmentInnerPoint[0] = segmentPosition[0] - segmentLength*segmentDirection[0];
        segmentInnerPoint[1] = segmentPosition[1] - segmentLength*segmentDirection[1];
        segmentInnerPoint[2] = -segmentLength;

        if( fabs(segmentInnerPoint[1]) > segmentLimit )
          segmentInnerPoint[1] = segmentLimit * ( segmentInnerPoint[1] / fabs( segmentInnerPoint[1] ));

        return;
      }     
      else 
      {
        segmentOuterPoint[0] = segmentPosition[0] + segmentDirection[0] * ( segmentPosition[2] / segmentDirection[2] );
        segmentOuterPoint[1] = segmentPosition[1] + segmentDirection[1] * ( segmentPosition[2] / segmentDirection[2] );
        segmentOuterPoint[2] = segmentPosition[2];

        if( fabs( segmentOuterPoint[1] ) > segmentLength )
          segmentOuterPoint[1] = segmentLength * ( segmentOuterPoint[1]/fabs( segmentOuterPoint[1] ));

        segmentInnerPoint[0] = segmentPosition[0] - segmentDirection[0] * ( segmentPosition[2] / segmentDirection[2] );
        segmentInnerPoint[1] = segmentPosition[1] - segmentDirection[1] * ( segmentPosition[2] / segmentDirection[2] );
        segmentInnerPoint[2] = -segmentPosition[2];

        if( fabs( segmentInnerPoint[1] ) > segmentLength )
          segmentInnerPoint[1] = segmentLength * ( segmentInnerPoint[1] / fabs( segmentInnerPoint[1] ));
      
        return;
      }
    }
    
    if ( detector == MuonSubdetId::DT )
    {
      if( matchedSegment )
      {
        segmentOuterPoint[0] = segmentPosition[0] + segmentLength*segmentDirection[0];
        segmentOuterPoint[1] = segmentPosition[1] + segmentLength*segmentDirection[1];
        segmentOuterPoint[2] = segmentLength;

        segmentInnerPoint[0] = segmentPosition[0] - segmentLength*segmentDirection[0];
        segmentInnerPoint[1] = segmentPosition[1] - segmentLength*segmentDirection[1];
        segmentInnerPoint[2] = -segmentLength;
         
        return;
      }
      else
      {
        double mag = sqrt( segmentDirection[0] * segmentDirection[0] + 
                           segmentDirection[1] * segmentDirection[1] +
                           segmentDirection[2] * segmentDirection[2] );
      
        double theta = atan2( sqrt( segmentDirection[0] * segmentDirection[0]
                                  + segmentDirection[1] * segmentDirection[1] ), segmentDirection[2] );

        double newSegmentLength = segmentLength / cos( theta );

        segmentInnerPoint[0] = segmentPosition[0] + ( segmentDirection[0] / mag ) * newSegmentLength;
        segmentInnerPoint[1] = segmentPosition[1] + ( segmentDirection[1] / mag ) * newSegmentLength;
        segmentInnerPoint[2] = segmentPosition[2] + ( segmentDirection[2] / mag ) * newSegmentLength;
        
        segmentOuterPoint[0] = segmentPosition[0] - ( segmentDirection[0] / mag ) * newSegmentLength;
        segmentOuterPoint[1] = segmentPosition[1] - ( segmentDirection[1] / mag ) * newSegmentLength;
        segmentOuterPoint[2] = segmentPosition[2] - ( segmentDirection[2] / mag ) * newSegmentLength;
        
        if( fabs(segmentOuterPoint[0]) > segmentLimit )
        {         
          segmentOuterPoint[0] = segmentLimit * ( segmentOuterPoint[0]/fabs( segmentOuterPoint[0] ));
          segmentOuterPoint[1] = ( segmentOuterPoint[1]/fabs( segmentOuterPoint[1] )) * tan( theta );
        }
        
        return;
      }  
    }
    
    fwLog( fwlog::kWarning ) << "MuonSubdetId: " << detector << std::endl;
    return;
  }
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 239 of file BuilderUtils.cc.

References addBox(), and energyScaledBox3DCorners().

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

Definition at line 323 of file BuilderUtils.cc.

References addBox(), and energyTower3DCorners().

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

Definition at line 276 of file BuilderUtils.cc.

References addBox(), and etScaledBox3DCorners().

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

Definition at line 372 of file BuilderUtils.cc.

References addBox(), and etTower3DCorners().

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

Definition at line 213 of file BuilderUtils.cc.

References f, i, and invertBox().

Referenced by FWHBHERecHitProxyBuilder::build(), FWHFRecHitProxyBuilder::build(), FWHORecHitProxyBuilder::build(), drawEnergyScaledBox3D(), and FWHBHERecHitProxyBuilder::scaleProduct().

   {
      std::vector<float> centre( 3, 0 );

      for( unsigned int i = 0; i < 24; i += 3 )
      {  
         centre[0] += corners[i];
         centre[1] += corners[i + 1];
         centre[2] += corners[i + 2];
      }

      for( unsigned int i = 0; i < 3; ++i )
         centre[i] *= 1.0f / 8.0f;

      // Coordinates for a scaled version of the original box
      for( unsigned int i = 0; i < 24; i += 3 )
      { 
         scaledCorners[i] = centre[0] + ( corners[i] - centre[0] ) * scale;
         scaledCorners[i + 1] = centre[1] + ( corners[i + 1] - centre[1] ) * scale;
         scaledCorners[i + 2] = centre[2] + ( corners[i + 2] - centre[2] ) * scale;
      }
      
      if( invert )
         invertBox( scaledCorners );
   }
void fireworks::energyTower3DCorners ( const float *  corners,
float  scale,
std::vector< float > &  scaledCorners,
bool  reflect = false 
)

Definition at line 284 of file BuilderUtils.cc.

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

Referenced by FWCaloClusterProxyBuilder::build(), FWCastorRecHitProxyBuilder::build(), FWPRCaloTowerProxyBuilder::build(), FWZDCRecHitProxyBuilder::build(), FWPCaloHitProxyBuilder::build(), FWEcalRecHitProxyBuilder::build(), drawEnergyTower3D(), and FWEcalRecHitProxyBuilder::scaleProduct().

   {
      for( int i = 0; i < 24; ++i )
         scaledCorners[i] = corners[i];
      // Coordinates of a front face scaled 
      if( reflect )
      {
         // We know, that an ES rechit geometry in -Z needs correction. 
         // The back face is actually its front face.
         for( unsigned int i = 0; i < 12; i += 3 )
         {
            TEveVector diff( corners[i] - corners[i + 12], corners[i + 1] - corners[i + 13], corners[i + 2] - corners[i + 14] );
            diff.Normalize();
            diff *= scale;
            
            scaledCorners[i] = corners[i] + diff.fX;
            scaledCorners[i + 1] = corners[i + 1] + diff.fY;
            scaledCorners[i + 2] = corners[i + 2] + diff.fZ;
         }
      } 
      else
      {
         for( unsigned int i = 0; i < 12; i += 3 )
         {
            TEveVector diff( corners[i + 12] - corners[i], corners[i + 13] - corners[i + 1], corners[i + 14] - corners[i + 2] );
            diff.Normalize();
            diff *= scale;
            
            scaledCorners[i] = corners[i + 12];
            scaledCorners[i + 1] = corners[i + 13];
            scaledCorners[i + 2] = corners[i + 14];
            
            scaledCorners[i + 12] = corners[i + 12] + diff.fX;
            scaledCorners[i + 13] = corners[i + 13] + diff.fY;
            scaledCorners[i + 14] = corners[i + 14] + diff.fZ;
         }
      }
   }
void fireworks::etScaledBox3DCorners ( const float *  corners,
float  energy,
float  maxEnergy,
std::vector< float > &  scaledCorners,
bool  reflect = false 
)

Definition at line 247 of file BuilderUtils.cc.

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

Referenced by FWHBHERecHitProxyBuilder::build(), drawEtScaledBox3D(), and FWHBHERecHitProxyBuilder::scaleProduct().

   {
      std::vector<float> centre( 3, 0 );

      for( unsigned int i = 0; i < 24; i += 3 )
      {  
         centre[0] += corners[i];
         centre[1] += corners[i + 1];
         centre[2] += corners[i + 2];
      }

      for( unsigned int i = 0; i < 3; ++i )
         centre[i] *= 1.0f / 8.0f;

      TEveVector c( centre[0], centre[1], centre[2] );
      float scale = energy / maxEnergy * sin( c.Theta());
      
      // Coordinates for a scaled version of the original box
      for( unsigned int i = 0; i < 24; i += 3 )
      { 
         scaledCorners[i] = centre[0] + ( corners[i] - centre[0] ) * scale;
         scaledCorners[i + 1] = centre[1] + ( corners[i + 1] - centre[1] ) * scale;
         scaledCorners[i + 2] = centre[2] + ( corners[i + 2] - centre[2] ) * scale;
      }
      
      if( invert )
         invertBox( scaledCorners );
   }
void fireworks::etTower3DCorners ( const float *  corners,
float  scale,
std::vector< float > &  scaledCorners,
bool  reflect = false 
)

Definition at line 332 of file BuilderUtils.cc.

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

Referenced by drawEtTower3D(), and FWEcalRecHitProxyBuilder::scaleProduct().

   {
      for( int i = 0; i < 24; ++i )
         scaledCorners[i] = corners[i];
      // Coordinates of a front face scaled 
      if( reflect )
      {
         // We know, that an ES rechit geometry in -Z needs correction. 
         // The back face is actually its front face.
         for( unsigned int i = 0; i < 12; i += 3 )
         {
            TEveVector diff( corners[i] - corners[i + 12], corners[i + 1] - corners[i + 13], corners[i + 2] - corners[i + 14] );
            diff.Normalize();
            diff *= ( scale * sin( diff.Theta()));
            
            scaledCorners[i] = corners[i] + diff.fX;
            scaledCorners[i + 1] = corners[i + 1] + diff.fY;
            scaledCorners[i + 2] = corners[i + 2] + diff.fZ;
         }
      } 
      else
      {
         for( unsigned int i = 0; i < 12; i += 3 )
         {
            TEveVector diff( corners[i + 12] - corners[i], corners[i + 13] - corners[i + 1], corners[i + 14] - corners[i + 2] );
            diff.Normalize();
            diff *= ( scale * sin( diff.Theta()));
            
            scaledCorners[i] = corners[i + 12];
            scaledCorners[i + 1] = corners[i + 13];
            scaledCorners[i + 2] = corners[i + 14];
            
            scaledCorners[i + 12] = corners[i + 12] + diff.fX;
            scaledCorners[i + 13] = corners[i + 13] + diff.fY;
            scaledCorners[i + 14] = corners[i + 14] + diff.fZ;
         }
      }
   }
const SiStripCluster * fireworks::extractClusterFromTrackingRecHit ( const TrackingRecHit rh)

Definition at line 359 of file TrackUtils.cc.

References fwLog, and fwlog::kDebug.

Referenced by addSiStripClusters().

{
   const SiStripCluster* cluster = 0;

   if( const SiStripRecHit2D* hit2D = dynamic_cast<const SiStripRecHit2D*>( rechit ))
   {     
      fwLog( fwlog::kDebug ) << "hit 2D ";
      
      if( hit2D->cluster().isNonnull())
      {
         cluster = hit2D->cluster().get();
      }
      else if( hit2D->cluster_regional().isNonnull())
      {
         cluster = hit2D->cluster_regional().get();
      }
      else
      {
         fwLog( fwlog::kDebug ) << "no cluster found!\n";
      }
   }
   if( cluster == 0 )
   {
     if( const SiStripRecHit1D* hit1D = dynamic_cast<const SiStripRecHit1D*>( rechit ))
     {
        fwLog( fwlog::kDebug ) << "hit 1D ";

        if( hit1D->cluster().isNonnull())
        {
           cluster = hit1D->cluster().get();
        }
        else if( hit1D->cluster_regional().isNonnull())
        {
           cluster = hit1D->cluster_regional().get();
        }
        else
        {
           fwLog( fwlog::kDebug ) << "no cluster found!\n";
        }
     }
   }
   return cluster;
}
void fireworks::getDecomposedVersion ( const TString &  s,
int *  out 
)

Definition at line 30 of file fwPaths.cc.

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

{
   TPMERegexp re("CMSSW_(\\d+)_(\\d+)_");
   re.Match(s);
   if (re.NMatches() > 2)
   {
      out[0] = re[1].Atoi();
      out[1] = re[2].Atoi();
   }
}
std::string fireworks::getLocalTime ( const edm::EventBase event)

Definition at line 113 of file BuilderUtils.cc.

References pos, lumiQTWidget::t, runonSM::text, edm::EventBase::time(), and edm::Timestamp::value().

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

   {
      time_t t( event.time().value() >> 32 );
      std::string text( asctime( localtime( &t ) ) );
      size_t pos = text.find('\n');
      if( pos != std::string::npos ) text = text.substr( 0, pos );
      text += " ";
      if( daylight )
         text += tzname[1];
      else
         text += tzname[0];
      return text;
   }
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, max(), and min.

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

   {
      double min =  100;
      double max = -100;

      for( std::vector<double>::const_iterator i = phis.begin();
           i != phis.end(); ++i )
      {
         double aphi = *i;
         // make phi continuous around jet phi
         if( aphi - phi > M_PI ) aphi -= 2*M_PI;
         if( phi - aphi > M_PI ) aphi += 2*M_PI;
         if( aphi > max ) max = aphi;
         if( aphi < min ) min = aphi;
      }

      if( min > max ) return std::pair<double,double>( 0, 0 );

      return std::pair<double,double>( min, max );
   }
TEveGeoShape * fireworks::getShape ( const char *  name,
TGeoBBox *  shape,
Color_t  color 
)

Definition at line 42 of file BuilderUtils.cc.

References trackerHits::c.

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

   {
      TEveGeoShape* egs = new TEveGeoShape( name );
      TColor* c = gROOT->GetColor( color );
      Float_t rgba[4] = { 1, 0, 0, 1 };
      if( c )
      {
         rgba[0] = c->GetRed();
         rgba[1] = c->GetGreen();
         rgba[2] = c->GetBlue();
      }
      egs->SetMainColorRGB( rgba[0], rgba[1], rgba[2] );
      egs->SetShape( shape );
      return egs;
   }
std::string fireworks::getTimeGMT ( const edm::EventBase event)

Definition at line 103 of file BuilderUtils.cc.

References pos, lumiQTWidget::t, runonSM::text, edm::EventBase::time(), and edm::Timestamp::value().

   {
      time_t t( event.time().value() >> 32 );
      std::string text( asctime( gmtime( &t ) ) );
      size_t pos = text.find( '\n' );
      if( pos != std::string::npos ) text = text.substr( 0, pos );
      text += " GMT";
      return text;
   }
const TGGC & fireworks::greenGC ( )

Definition at line 39 of file GlobalContexts.cc.

{
   static TGGC s_greenGC(*gClient->GetResourcePool()->GetFrameGC());
   s_greenGC.SetForeground(gVirtualX->GetPixel(kGreen-5));
   return s_greenGC;
}
std::string fireworks::info ( const std::set< DetId > &  idSet)

Definition at line 887 of file TrackUtils.cc.

References errorMatrix2Lands_multiChannel::id, info(), and runonSM::text.

                                 {
   std::string text;
   for(std::set<DetId>::const_iterator id = idSet.begin(), idEnd = idSet.end(); id != idEnd; ++id)
   {
      text += info(*id);
      text += "\n";
   }
   return text;
}
std::string fireworks::info ( const std::vector< DetId > &  idSet)

Definition at line 898 of file TrackUtils.cc.

References errorMatrix2Lands_multiChannel::id, info(), and runonSM::text.

                                    {
   std::string text;
   for(std::vector<DetId>::const_iterator id = idSet.begin(), idEnd = idSet.end(); id != idEnd; ++id)
   {
      text += info(*id);
      text += "\n";
   }
   return text;
}   
std::string fireworks::info ( const DetId id)

Definition at line 703 of file TrackUtils.cc.

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

Referenced by info().

                      {
   std::ostringstream oss;
   
   oss << "DetId: " << id.rawId() << "\n";
   
   switch ( id.det() ) {
    
      case DetId::Tracker:
         switch ( id.subdetId() ) {
            case StripSubdetector::TIB:
            {
               oss <<"TIB "<<TIBDetId(id).layer();
            }
            break;
            case StripSubdetector::TOB:
            {
               oss <<"TOB "<<TOBDetId(id).layer();
            }
            break;
            case StripSubdetector::TEC:
            {
               oss <<"TEC "<<TECDetId(id).wheel();
            }
            break;
            case StripSubdetector::TID:
            {
               oss <<"TID "<<TIDDetId(id).wheel();
            }
            break;
            case (int) PixelSubdetector::PixelBarrel:
            {
               oss <<"PixBarrel "<< PXBDetId(id).layer();
            }
            break;
            case (int) PixelSubdetector::PixelEndcap:
            {
               oss <<"PixEndcap "<< PXBDetId(id).layer();
            }
            break;
         }
         break;

      case DetId::Muon:
         switch ( id.subdetId() ) {
            case MuonSubdetId::DT:
            { 
               DTChamberId detId(id.rawId());
               oss << "DT chamber (wheel, station, sector): "
                   << detId.wheel() << ", "
                   << detId.station() << ", "
                   << detId.sector();
            }
            break;
            case MuonSubdetId::CSC:
            {
               CSCDetId detId(id.rawId());
               oss << "CSC chamber (endcap, station, ring, chamber, layer): "
                   << detId.endcap() << ", "
                   << detId.station() << ", "
                   << detId.ring() << ", "
                   << detId.chamber() << ", "
                   << detId.layer();
            }
            break;
            case MuonSubdetId::RPC:
            { 
               RPCDetId detId(id.rawId());
               oss << "RPC chamber ";
               switch ( detId.region() ) {
                  case 0:
                     oss << "/ barrel / (wheel, station, sector, layer, subsector, roll): "
                         << detId.ring() << ", "
                         << detId.station() << ", "
                         << detId.sector() << ", "
                         << detId.layer() << ", "
                         << detId.subsector() << ", "
                         << detId.roll();
                     break;
                  case 1:
                     oss << "/ forward endcap / (wheel, station, sector, layer, subsector, roll): "
                         << detId.ring() << ", "
                         << detId.station() << ", "
                         << detId.sector() << ", "
                         << detId.layer() << ", "
                         << detId.subsector() << ", "
                         << detId.roll();
                     break;
                  case -1:
                     oss << "/ backward endcap / (wheel, station, sector, layer, subsector, roll): "
                         << detId.ring() << ", "
                         << detId.station() << ", "
                         << detId.sector() << ", "
                         << detId.layer() << ", "
                         << detId.subsector() << ", "
                         << detId.roll();
                     break;
               }
            }
            break;
         }
         break;
    
      case DetId::Calo:
      {
         CaloTowerDetId detId( id.rawId() );
         oss << "CaloTower (ieta, iphi): "
             << detId.ieta() << ", "
             << detId.iphi();
      }
      break;
    
      case DetId::Ecal:
         switch ( id.subdetId() ) {
            case EcalBarrel:
            {
               EBDetId detId(id);
               oss << "EcalBarrel (ieta, iphi, tower_ieta, tower_iphi): "
                   << detId.ieta() << ", "
                   << detId.iphi() << ", "
                   << detId.tower_ieta() << ", "
                   << detId.tower_iphi();
            }
            break;
            case EcalEndcap:
            {
               EEDetId detId(id);
               oss << "EcalEndcap (ix, iy, SuperCrystal, crystal, quadrant): "
                   << detId.ix() << ", "
                   << detId.iy() << ", "
                   << detId.isc() << ", "
                   << detId.ic() << ", "
                   << detId.iquadrant();
            }
            break;
            case EcalPreshower:
               oss << "EcalPreshower";
               break;
            case EcalTriggerTower:
               oss << "EcalTriggerTower";
               break;
            case EcalLaserPnDiode:
               oss << "EcalLaserPnDiode";
               break;
         }
         break;
      
      case DetId::Hcal:
      {
         HcalDetId detId(id);
         switch ( detId.subdet() ) {
            case HcalEmpty:
               oss << "HcalEmpty ";
               break;
            case HcalBarrel:
               oss << "HcalBarrel ";
               break;
            case HcalEndcap:
               oss << "HcalEndcap ";
               break;
            case HcalOuter:
               oss << "HcalOuter ";
               break;
            case HcalForward:
               oss << "HcalForward ";
               break;
            case HcalTriggerTower:
               oss << "HcalTriggerTower ";
               break;
            case HcalOther:
               oss << "HcalOther ";
               break;
         }
         oss << "(ieta, iphi, depth):"
             << detId.ieta() << ", "
             << detId.iphi() << ", "
             << detId.depth();
      }
      break;
      default :;
   }
   return oss.str();
}
void fireworks::invertBox ( std::vector< float > &  corners)

Definition at line 127 of file BuilderUtils.cc.

References swap().

Referenced by energyScaledBox3DCorners(), and etScaledBox3DCorners().

   {
      std::swap( corners[0], corners[9] );
      std::swap( corners[1], corners[10] );
      std::swap( corners[2], corners[11] );

      std::swap( corners[3], corners[6] );
      std::swap( corners[4], corners[7] );
      std::swap( corners[5], corners[8] );

      std::swap( corners[12], corners[21] );
      std::swap( corners[13], corners[22] );
      std::swap( corners[14], corners[23] );

      std::swap( corners[15], corners[18] );
      std::swap( corners[16], corners[19] );
      std::swap( corners[17], corners[20] );
   }
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().

{
   static TGGC s_italicGC(*gClient->GetResourcePool()->GetFrameGC());
 
   TGFontPool *pool = gClient->GetFontPool();
   TGFont *font = pool->FindFontByHandle(s_italicGC.GetFont());
   FontAttributes_t attributes = font->GetFontAttributes();
  
   attributes.fSlant = 1;
   TGFont *newFont = pool->GetFont(attributes.fFamily, 9,
                                   attributes.fWeight, attributes.fSlant);
   
   s_italicGC.SetFont(newFont->GetFontHandle());
  
   return s_italicGC;
}
void fireworks::localSiStrip ( short  strip,
float *  localTop,
float *  localBottom,
const float *  pars,
unsigned int  id 
)

Definition at line 292 of file TrackUtils.cc.

References delta, fwLog, fwlog::kError, evf::evtn::offset(), and funct::tan().

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

{
  Float_t topology = pars[0];
  Float_t halfStripLength = pars[2] * 0.5;
  
  Double_t localCenter[3] = { 0.0, 0.0, 0.0 };
  localTop[1] = halfStripLength;
  localBottom[1] = -halfStripLength;
  
  if( topology == 1 ) // RadialStripTopology
  {
    // stripAngle = phiOfOneEdge + yAxisOrientation * strip * angularWidth
    // localY = yAxisOrientation * originToIntersection * tan( stripAngle )
    Float_t stripAngle = tan( pars[5] + pars[3] * strip * pars[6] );
    Float_t delta = halfStripLength * stripAngle;
    localCenter[0] = pars[3] * pars[4] * stripAngle;
    localTop[0] = localCenter[0] + delta;
    localBottom[0] = localCenter[0] - delta;
  }
  else if( topology == 2 ) // RectangularStripTopology
  {
    // offset = -numberOfStrips/2. * pitch
    // localY = strip * pitch + offset
    Float_t offset = -pars[1] * 0.5 * pars[3];
    localCenter[0] = strip * pars[3] + offset;
    localTop[0] = localCenter[0];
    localBottom[0] = localCenter[0];
  }
  else if( topology == 3 ) // TrapezoidalStripTopology
  {
    fwLog( fwlog::kError )
      << "did not expect TrapezoidalStripTopology of "
      << id << std::endl;
  }
  else if( pars[0] == 0 ) // StripTopology
  {
    fwLog( fwlog::kError )
      << "did not find StripTopology of "
      << id << std::endl;
  }
}
TEveJetCone * fireworks::makeEveJetCone ( const reco::Jet iData,
const fireworks::Context context 
)

Definition at line 7 of file makeEveJetCone.cc.

References trackerHits::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().

{
   TEveJetCone* jet = new TEveJetCone();
   jet->SetApex(TEveVector(iData.vertex().x(),iData.vertex().y(),iData.vertex().z()));

   reco::Jet::Constituents c = iData.getJetConstituents();
   bool haveData = true;
   for ( reco::Jet::Constituents::const_iterator itr = c.begin(); itr != c.end(); ++itr )
   {
      if ( !itr->isAvailable() ) {
         haveData = false;
         break;
      }
   }

   double eta_size = 0.2;
   double phi_size = 0.2;
   if ( haveData ){
      eta_size = sqrt(iData.etaetaMoment());
      phi_size = sqrt(iData.phiphiMoment());
   }

   static const float offr = 5;
   static const float offz = offr/tan(context.caloTransAngle());
   if (iData.eta() < context.caloMaxEta())
      jet->SetCylinder(context.caloR1(false) -offr, context.caloZ1(false)-offz);
   else
      jet->SetCylinder(context.caloR2(false) -offr, context.caloZ2(false)-offz);


   jet-> AddEllipticCone(iData.eta(), iData.phi(), eta_size, phi_size);
   jet->SetPickable(kTRUE);
   return jet;
}
bool fireworks::makeRhoPhiSuperCluster ( FWProxyBuilderBase pb,
const reco::SuperClusterRef iCluster,
float  iPhi,
TEveElement &  oItemHolder 
)

Definition at line 29 of file makeSuperCluster.cc.

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

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

{
   if( !iCluster.isAvailable()) return false;
   TEveGeoManagerHolder gmgr( TEveGeoShape::GetGeoMangeur());

   std::vector< std::pair<DetId, float> > detids = iCluster->hitsAndFractions();
   std::vector<double> phis;
   for( std::vector<std::pair<DetId, float> >::const_iterator id = detids.begin(), end = detids.end(); id != end; ++id )
   {
      const float* corners = pb->context().getGeom()->getCorners( id->first.rawId());
      if( corners != 0 )
      {
         std::vector<float> centre( 3, 0 );

         for( unsigned int i = 0; i < 24; i += 3 )
         {       
            centre[0] += corners[i];
            centre[1] += corners[i + 1];
            centre[2] += corners[i + 2];
         }
       
         phis.push_back( TEveVector( centre[0], centre[1], centre[2] ).Phi());
      }
   }
   std::pair<double,double> phiRange = fireworks::getPhiRange( phis, iPhi );
   const double r = pb->context().caloR1();
   TGeoBBox *sc_box = new TGeoTubeSeg( r - 2, r , 1,
                                       phiRange.first * 180 / M_PI - 0.5,
                                       phiRange.second * 180 / M_PI + 0.5 ); // 0.5 is roughly half size of a crystal
   TEveGeoShape *sc = fireworks::getShape( "supercluster", sc_box, pb->item()->defaultDisplayProperties().color());
   sc->SetPickable( kTRUE );
   pb->setupAddElement( sc, &oItemHolder );
   return true;
}
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, errorMatrix2Lands_multiChannel::id, edm::Ref< C, T, F >::isAvailable(), Pi, and theta().

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

{
   if( !iCluster.isAvailable()) return false;
   TEveGeoManagerHolder gmgr( TEveGeoShape::GetGeoMangeur());
   double theta_max = 0;
   double theta_min = 10;
   std::vector<std::pair<DetId, float> > detids = iCluster->hitsAndFractions();
   for( std::vector<std::pair<DetId, float> >::const_iterator id = detids.begin(), end = detids.end(); id != end; ++id )
   {
      const float* corners = pb->context().getGeom()->getCorners( id->first.rawId());
      if( corners != 0 )
      {
         std::vector<float> centre( 3, 0 );

         for( unsigned int i = 0; i < 24; i += 3 )
         {       
            centre[0] += corners[i];
            centre[1] += corners[i + 1];
            centre[2] += corners[i + 2];
         }

         double theta = TEveVector( centre[0], centre[1], centre[2] ).Theta();
         if( theta > theta_max ) theta_max = theta;
         if( theta < theta_min ) theta_min = theta;
      }
   }
   // expand theta range by the size of a crystal to avoid segments of zero length
   bool barrel = true; 
   if ((theta_max > 0 && theta_max <  pb->context().caloTransAngle()) || 
       ( theta_min > (TMath::Pi() -pb->context().caloTransAngle())) )
   {
        barrel = false; 
   }
 
   double z_ecal = barrel ? pb->context().caloZ1() : pb->context().caloZ2();
   double r_ecal = barrel ? pb->context().caloR1() : pb->context().caloR2();

   fireworks::addRhoZEnergyProjection( pb, &oItemHolder, r_ecal-1, z_ecal-1,
                                       theta_min - 0.003, theta_max + 0.003,
                                       iPhi );

   return true;
}
float fireworks::pixelLocalX ( const double  mpx,
const int  m_nrows 
)

Definition at line 165 of file TrackUtils.cc.

References BIG_PIX_PER_ROC_X, PITCHX, and ROWS_PER_ROC.

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

{
  // Calculate the edge of the active sensor with respect to the center,
  // that is simply the half-size.       
  // Take into account large pixels
  const double xoffset = -( nrows + BIG_PIX_PER_ROC_X * nrows / ROWS_PER_ROC ) / 2. * PITCHX;

  // Measurement to local transformation for X coordinate
  // X coordinate is in the ROC row number direction
  // Copy from RectangularPixelTopology::localX implementation
   int binoffx = int(mpx);             // truncate to int
   double fractionX = mpx - binoffx;   // find the fraction
   double local_PITCHX = PITCHX;       // defaultpitch
   if( binoffx > 80 ) {                // ROC 1 - handles x on edge cluster
      binoffx = binoffx + 2;
   } else if( binoffx == 80 ) {        // ROC 1
      binoffx = binoffx+1;
      local_PITCHX = 2 * PITCHX;
   } else if( binoffx == 79 ) {        // ROC 0
      binoffx = binoffx + 0;
      local_PITCHX = 2 * PITCHX;
   } else if( binoffx >= 0 ) {         // ROC 0
      binoffx = binoffx + 0;
   }

   // The final position in local coordinates
   double lpX = double( binoffx * PITCHX ) + fractionX * local_PITCHX + xoffset;

   return lpX;
}
float fireworks::pixelLocalY ( const double  mpy,
const int  m_ncols 
)

Definition at line 198 of file TrackUtils.cc.

References BIG_PIX_PER_ROC_Y, COLS_PER_ROC, and PITCHY.

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

{
  // Calculate the edge of the active sensor with respect to the center,
  // that is simply the half-size.       
  // Take into account large pixels
  double yoffset = -( ncols + BIG_PIX_PER_ROC_Y * ncols / COLS_PER_ROC ) / 2. * PITCHY;

  // Measurement to local transformation for Y coordinate
  // Y is in the ROC column number direction
  // Copy from RectangularPixelTopology::localY implementation
  int binoffy = int( mpy );           // truncate to int
  double fractionY = mpy - binoffy;   // find the fraction
  double local_PITCHY = PITCHY;       // defaultpitch

  if( binoffy>416 ) {                 // ROC 8, not real ROC
    binoffy = binoffy+17;
  } else if( binoffy == 416 ) {       // ROC 8
    binoffy = binoffy + 16;
    local_PITCHY = 2 * PITCHY;
  } else if( binoffy == 415 ) {       // ROC 7, last big pixel
    binoffy = binoffy + 15;
    local_PITCHY = 2 * PITCHY;
  } else if( binoffy > 364 ) {        // ROC 7
    binoffy = binoffy + 15;
  } else if( binoffy == 364 ) {       // ROC 7
    binoffy = binoffy + 14;
    local_PITCHY = 2 * PITCHY;
  } else if( binoffy == 363 ) {       // ROC 6
    binoffy = binoffy + 13;
    local_PITCHY = 2 * PITCHY;
  } else if( binoffy > 312 ) {        // ROC 6
    binoffy = binoffy + 13;
  } else if( binoffy == 312 ) {       // ROC 6
    binoffy = binoffy + 12;
    local_PITCHY = 2 * PITCHY;
  } else if( binoffy == 311 ) {       // ROC 5
    binoffy = binoffy + 11;
    local_PITCHY = 2 * PITCHY;
  } else if( binoffy > 260 ) {        // ROC 5
    binoffy = binoffy + 11;
  } else if( binoffy == 260 ) {       // ROC 5
    binoffy = binoffy + 10;
    local_PITCHY = 2 * PITCHY;
  } else if( binoffy == 259 ) {       // ROC 4
    binoffy = binoffy + 9;
    local_PITCHY = 2 * PITCHY;
  } else if( binoffy > 208 ) {        // ROC 4
    binoffy = binoffy + 9;
  } else if(binoffy == 208 ) {        // ROC 4
    binoffy = binoffy + 8;
    local_PITCHY = 2 * PITCHY;
  } else if( binoffy == 207 ) {       // ROC 3
    binoffy = binoffy + 7;
    local_PITCHY = 2 * PITCHY;
  } else if( binoffy > 156 ) {        // ROC 3
    binoffy = binoffy + 7;
  } else if( binoffy == 156 ) {       // ROC 3
    binoffy = binoffy + 6;
    local_PITCHY = 2 * PITCHY;
  } else if( binoffy == 155 ) {       // ROC 2
    binoffy = binoffy + 5;
    local_PITCHY = 2 * PITCHY;
  } else if( binoffy > 104 ) {        // ROC 2
    binoffy = binoffy + 5;
  } else if( binoffy == 104 ) {       // ROC 2
    binoffy = binoffy + 4;
    local_PITCHY = 2 * PITCHY;
  } else if( binoffy == 103 ) {       // ROC 1
    binoffy = binoffy + 3;
    local_PITCHY = 2 * PITCHY;
  } else if( binoffy > 52 ) {         // ROC 1
    binoffy = binoffy + 3;
  } else if( binoffy == 52 ) {        // ROC 1
    binoffy = binoffy + 2;
    local_PITCHY = 2 * PITCHY;
  } else if( binoffy == 51 ) {        // ROC 0
    binoffy = binoffy + 1;
    local_PITCHY = 2 * PITCHY;
  } else if( binoffy > 0 ) {          // ROC 0
    binoffy=binoffy + 1;
  } else if( binoffy == 0 ) {         // ROC 0
    binoffy = binoffy + 0;
    local_PITCHY = 2 * PITCHY;
  }

  // The final position in local coordinates
  double lpY = double( binoffy * PITCHY ) + fractionY * local_PITCHY + yoffset;

  return lpY;
}
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 FWCandidateProxyBuilder::build(), FWGenParticleProxyBuilder::build(), FWElectronLegoProxyBuilder::build(), FWMuonBuilder::buildMuon(), and FWElectronProxyBuilder::requestCommon().

{
   TEveRecTrack t;
   t.fBeta = 1.;
   t.fP = TEveVector( track.px(), track.py(), track.pz() );
   t.fV = TEveVector( track.vertex().x(), track.vertex().y(), track.vertex().z() );
   t.fSign = track.charge();
   TEveTrack* trk = new TEveTrack(&t, propagator);
   return trk;
}
TEveTrack * fireworks::prepareTrack ( const reco::Track track,
TEveTrackPropagator *  propagator,
const std::vector< TEveVector > &  extraRefPoints = std::vector<TEveVector>() 
)

Definition at line 70 of file TrackUtils.cc.

References reco::TrackBase::charge(), reco::Track::extra(), f, i, reco::Track::innerMomentum(), reco::Track::innerOk(), reco::Track::innerPosition(), 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(), lumiQTWidget::t, reco::btau::trackMomentum, v, TrackValidation_HighPurity_cff::valid, reco::TrackBase::vx(), reco::TrackBase::vy(), and reco::TrackBase::vz().

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

{
   // To make use of all available information, we have to order states
   // properly first. Propagator should take care of y=0 transition.

   std::vector<State> refStates;
   TEveVector trackMomentum(track.px(), track.py(), track.pz());
   refStates.push_back(State(TEveVector(track.vx(), track.vy(), track.vz()),
                             trackMomentum));
   if( track.extra().isAvailable() ) {
      if (track.innerOk()) {
         const reco::TrackBase::Point  &v = track.innerPosition();
         const reco::TrackBase::Vector &p = track.innerMomentum();
         refStates.push_back(State(TEveVector(v.x(), v.y(), v.z()), TEveVector(p.x(), p.y(), p.z())));
      }
      if (track.outerOk()) {
         const reco::TrackBase::Point  &v = track.outerPosition();
         const reco::TrackBase::Vector &p = track.outerMomentum();
         refStates.push_back(State(TEveVector(v.x(), v.y(), v.z()), TEveVector(p.x(), p.y(), p.z())));
      }
   }
   for( std::vector<TEveVector>::const_iterator point = extraRefPoints.begin(), pointEnd = extraRefPoints.end();
        point != pointEnd; ++point )
      refStates.push_back(State(*point));
   if( track.pt()>1 )
      std::sort( refStates.begin(), refStates.end(), StateOrdering(trackMomentum) );

   // * if the first state has non-zero momentum use it as a starting point
   //   and all other points as PathMarks to follow
   // * if the first state has only position, try the last state. If it has
   //   momentum we propagate backword, if not, we look for the first one
   //   on left that has momentum and ignore all earlier.
   //

   TEveRecTrack t;
   t.fBeta = 1.;
   t.fSign = track.charge();

   if( refStates.front().valid ) {
      t.fV = refStates.front().position;
      t.fP = refStates.front().momentum;
      TEveTrack* trk = new TEveTrack( &t, propagator );
      for( unsigned int i(1); i<refStates.size()-1; ++i) {
         if( refStates[i].valid )
            trk->AddPathMark( TEvePathMark( TEvePathMark::kReference, refStates[i].position, refStates[i].momentum ) );
         else
            trk->AddPathMark( TEvePathMark( TEvePathMark::kDaughter, refStates[i].position ) );
      }
      if( refStates.size()>1 ) {
         trk->AddPathMark( TEvePathMark( TEvePathMark::kDecay, refStates.back().position ) );
      }
      return trk;
   }

   if( refStates.back().valid ) {
      t.fSign = (-1)*track.charge();
      t.fV = refStates.back().position;
      t.fP = refStates.back().momentum * (-1.0f);
      TEveTrack* trk = new TEveTrack( &t, propagator );
      unsigned int i( refStates.size()-1 );
      for(; i>0; --i) {
         if ( refStates[i].valid )
            trk->AddPathMark( TEvePathMark( TEvePathMark::kReference, refStates[i].position, refStates[i].momentum*(-1.0f) ) );
         else
            trk->AddPathMark( TEvePathMark( TEvePathMark::kDaughter, refStates[i].position ) );
      }
      if ( refStates.size()>1 ) {
         trk->AddPathMark( TEvePathMark( TEvePathMark::kDecay, refStates.front().position ) );
      }
      return trk;
   }

   unsigned int i(0);
   while( i<refStates.size() && !refStates[i].valid ) ++i;
   assert( i < refStates.size() );

   t.fV = refStates[i].position;
   t.fP = refStates[i].momentum;
   TEveTrack* trk = new TEveTrack( &t, propagator );
   for( unsigned int j(i+1); j<refStates.size()-1; ++j ) {
      if( refStates[i].valid )
         trk->AddPathMark( TEvePathMark( TEvePathMark::kReference, refStates[i].position, refStates[i].momentum ) );
      else
         trk->AddPathMark( TEvePathMark( TEvePathMark::kDaughter, refStates[i].position ) );
   }
   if ( i < refStates.size() ) {
      trk->AddPathMark( TEvePathMark( TEvePathMark::kDecay, refStates.back().position ) );
   }
   return trk;
}
void fireworks::pushNearbyPixelHits ( std::vector< TVector3 > &  pixelPoints,
const FWEventItem iItem,
const reco::Track t 
)

Definition at line 566 of file TrackUtils.cc.

References edmNew::DetSet< T >::begin(), FWGeometry::contains(), edmNew::DetSetVector< T >::end(), edmNew::DetSet< T >::end(), edmNew::DetSetVector< T >::find(), fwLog, relativeConstraints::geom, FWEventItem::getGeom(), FWGeometry::getParameters(), fwlog::kError, PixelSubdetector::PixelBarrel, GeomDetEnumerators::PixelEndcap, pushPixelCluster(), reco::Track::recHitsBegin(), and reco::Track::recHitsEnd().

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

{
   const edmNew::DetSetVector<SiPixelCluster> * allClusters = 0;
   for( trackingRecHit_iterator it = t.recHitsBegin(), itEnd = t.recHitsEnd(); it != itEnd; ++it)
   {
      if( typeid(**it) == typeid( SiPixelRecHit ))
      {
         const SiPixelRecHit &hit = static_cast<const SiPixelRecHit &>(**it);
         if( hit.cluster().isNonnull() && hit.cluster().isAvailable())
         {
            allClusters = hit.cluster().product();
            break;
         }
      }
   }
   if( allClusters == 0 ) return;

   const FWGeometry *geom = iItem.getGeom();

   for( trackingRecHit_iterator it = t.recHitsBegin(), itEnd = t.recHitsEnd(); it != itEnd; ++it )
   {
      const TrackingRecHit* rh = &(**it);

      DetId id = (*it)->geographicalId();
      if( ! geom->contains( id ))
      {
         fwLog( fwlog::kError )
            << "failed to get geometry of Tracker Det with raw id: " 
            << id.rawId() << std::endl;

        continue;
      }

      // -- in which detector are we?
      unsigned int subdet = (unsigned int)id.subdetId();
      if(( subdet != PixelSubdetector::PixelBarrel ) && ( subdet != PixelSubdetector::PixelEndcap )) continue;

      const SiPixelCluster* hitCluster = 0;
      if( const SiPixelRecHit* pixel = dynamic_cast<const SiPixelRecHit*>( rh ))
         hitCluster = pixel->cluster().get();
      edmNew::DetSetVector<SiPixelCluster>::const_iterator itds = allClusters->find(id.rawId());
      if( itds != allClusters->end())
      {
         const edmNew::DetSet<SiPixelCluster> & clustersOnThisDet = *itds;
         for( edmNew::DetSet<SiPixelCluster>::const_iterator itc = clustersOnThisDet.begin(), edc = clustersOnThisDet.end(); itc != edc; ++itc )
         {
           if( &*itc != hitCluster )
              pushPixelCluster( pixelPoints, *geom, id, *itc, geom->getParameters( id ));
         }
      }
   }
}
void fireworks::pushPixelCluster ( std::vector< TVector3 > &  pixelPoints,
const FWGeometry geom,
DetId  id,
const SiPixelCluster c,
const float *  pars 
)

Definition at line 669 of file TrackUtils.cc.

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

Referenced by pushNearbyPixelHits(), and pushPixelHits().

{
   double row = c.minPixelRow();
   double col = c.minPixelCol();
   float lx = 0.;
   float ly = 0.;
   
   int nrows = (int)pars[0];
   int ncols = (int)pars[1];
   lx = pixelLocalX( row, nrows );
   ly = pixelLocalY( col, ncols );

   fwLog( fwlog::kDebug )
      << ", row: " << row << ", col: " << col 
      << ", lx: " << lx << ", ly: " << ly ;
                                
   float local[3] = { lx, ly, 0. };
   float global[3];
   geom.localToGlobal( id, local, global );
   TVector3 pb( global[0], global[1], global[2] );
   pixelPoints.push_back( pb );
                                
   fwLog( fwlog::kDebug )
      << " x: " << pb.X()
      << ", y: " << pb.Y()
      << " z: " << pb.Z()
      << " eta: " << pb.Eta()
      << ", phi: " << pb.Phi()
      << " rho: " << pb.Pt() << std::endl;
}
void fireworks::pushPixelHits ( std::vector< TVector3 > &  pixelPoints,
const FWEventItem iItem,
const reco::Track t 
)

Definition at line 622 of file TrackUtils.cc.

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

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

{               
   /*
    * -- return for each Pixel Hit a 3D point
    */
   const FWGeometry *geom = iItem.getGeom();
   
   double dz = t.dz();
   double vz = t.vz();
   double etaT = t.eta();
   
   fwLog( fwlog::kDebug ) << "Track eta: " << etaT << ", vz: " << vz << ", dz: " << dz
                          << std::endl;
                
   int cnt = 0;
   for( trackingRecHit_iterator it = t.recHitsBegin(), itEnd = t.recHitsEnd(); it != itEnd; ++it )
   {
      const TrackingRecHit* rh = &(**it);                       
      // -- get position of center of wafer, assuming (0,0,0) is the center
      DetId id = (*it)->geographicalId();
      if( ! geom->contains( id ))
      {
         fwLog( fwlog::kError )
            << "failed to get geometry of Tracker Det with raw id: " 
            << id.rawId() << std::endl;

        continue;
      }

      // -- in which detector are we?                   
      unsigned int subdet = (unsigned int)id.subdetId();
                        
      if(( subdet == PixelSubdetector::PixelBarrel ) || ( subdet == PixelSubdetector::PixelEndcap ))
      {
         fwLog( fwlog::kDebug ) << cnt++ << " -- "
                                << subdets[subdet];
                                                                
         if( const SiPixelRecHit* pixel = dynamic_cast<const SiPixelRecHit*>( rh ))
         {
            const SiPixelCluster& c = *( pixel->cluster());
            pushPixelCluster( pixelPoints, *geom, id, c, geom->getParameters( id ));
         } 
      }
   }
}
const TGGC & fireworks::redGC ( )

Definition at line 46 of file GlobalContexts.cc.

{
   static TGGC s_redGC(*gClient->GetResourcePool()->GetFrameGC());
   s_redGC.SetForeground(gVirtualX->GetPixel(kRed-5));
   return s_redGC;
}
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(), objMon< T >::monitorDenominator(), CmsShowMainBase::sendVersionInfo(), and CmsShowMainFrame::showFWorksInfo().

{
   if (gSystem->AccessPathName(p1 + v) == kFALSE)
   {
      v.Prepend(p1);
      return;
   }

   v.Prepend(p2);
   if (gSystem->AccessPathName(v))
      fwLog(fwlog::kError) << "Can't access path " << v << std::endl;
}
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 FWPFCandidate3DProxyBuilder::build(), FWPFPatJetLegoProxyBuilder< T >::build(), FWPFPatJet3DProxyBuilder< T >::build(), and FWPFCandidatesLegoProxyBuilder::build().

                               {

     using namespace reco;

   //   switch (pfCand.particleId() ) {
   //   case PFCandidate::e: track->SetLineStyle(5); break;
   //   case PFCandidate::mu: track->SetLineStyle(6); break;
   //   case PFCandidate::h0: track->SetLineStyle(3); break;
   //   case PFCandidate::gamma:  track->SetLineStyle(7); break;
   //   default: break;
   //   }
   }
void fireworks::setupAddElement ( TEveElement *  el,
TEveElement *  parent,
const FWEventItem item,
bool  master,
bool  color 
)

Definition at line 337 of file TrackUtils.cc.

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

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

{
   if (master)
   {
      el->CSCTakeAnyParentAsMaster();
      el->SetPickable(true);
   }

   if (color)
   {
      el->CSCApplyMainColorToMatchingChildren();
      el->CSCApplyMainTransparencyToMatchingChildren();
      el->SetMainColor(item->defaultDisplayProperties().color());
      assert((item->defaultDisplayProperties().transparency() >= 0)
             && (item->defaultDisplayProperties().transparency() <= 100));
      el->SetMainTransparency(item->defaultDisplayProperties().transparency());
   }
   parent->AddElement(el);
}
int * fireworks::supportedDataFormatsVersion ( )

Definition at line 43 of file fwPaths.cc.

References getDecomposedVersion(), and v.

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

{
   static int mm[] = {0, 0, 0};

   if (!mm[0]) {
      TString v;
      if (gSystem->Getenv("CMSSW_VERSION"))
      {
         v = gSystem->Getenv("CMSSW_VERSION");

      }
      else
      {
         TString versionFileName = gSystem->Getenv("CMSSW_BASE");
         versionFileName += "/src/Fireworks/Core/data/version.txt";
         ifstream fs(versionFileName);
         TString infoText;
         infoText.ReadLine(fs); infoText.ReadLine(fs);
         fs.close();
         v = &infoText[13];
      }

      getDecomposedVersion(v, &mm[0]);
   }

   return &mm[0];
}
std::vector< std::pair< double, double > > fireworks::thetaBins ( )

Definition at line 49 of file thetaBins.cc.

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

Referenced by FWCaloTauProxyBuilder::buildViewType().

   {
      const int n_bins = fw3dlego::xbins_n - 1;
      std::vector<std::pair<double,double> > thetaBins(n_bins);
      for (int i = 0; i < n_bins; ++i )
      {
         thetaBins[i].first  = 2*atan( exp(-fw3dlego::xbins[i]) );
         thetaBins[i].second = 2*atan( exp(-fw3dlego::xbins[i+1]) );
      }
      return thetaBins;
   }

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]

Definition at line 62 of file TrackUtils.cc.

Referenced by pixelLocalY(), and GCC11_FINAL::RectangularPixelTopology().

const double fireworks::MICRON = 1./1000./10. [static]

Definition at line 58 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 59 of file TrackUtils.cc.

Referenced by pixelLocalX().

const double fireworks::PITCHY = 150*MICRON [static]

Definition at line 60 of file TrackUtils.cc.

Referenced by pixelLocalY().

const int fireworks::ROWS_PER_ROC = 80 [static]

Definition at line 63 of file TrackUtils.cc.

Referenced by pixelLocalX(), and GCC11_FINAL::RectangularPixelTopology().

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

Definition at line 67 of file TrackUtils.cc.

Referenced by pushPixelHits().