#include <VisReco/VisTracker/interface/VisTkIdealHelixTracksTwig.h>
Public Member Functions | |
virtual void | onNewEvent (const edm::Event &event, const edm::EventSetup &eventSetup) |
virtual void | twigChanged (void) |
virtual void | update (IgRZRep *rep) |
virtual void | update (IgRPhiRep *rep) |
virtual void | update (IgTextRep *rep) |
virtual void | update (IgLegoRep *rep) |
virtual void | update (Ig3DRep *rep) |
VisTkIdealHelixTracksTwig (IgState *state, IgTwig *parent, const std::string &name="", const std::string &friendlyName="", const std::string &moduleLabel="", const std::string &instanceName="", const std::string &processName="") | |
Private Attributes | |
VisAnimate | m_animate |
VisMuonAnnotation | m_annot |
VisBField | m_BField |
VisCounterMax | m_counterMax |
VisCounterMin | m_counterMin |
VisMuonDt | m_dt |
double | m_flytime |
VisCounterFrequency | m_frequency |
const std::string | m_friendlyName |
const std::string | m_instanceName |
const std::string | m_moduleLabel |
const std::string | m_processName |
VisRMax | m_RMax |
VisShowHitDets | m_showDets |
VisMuonT0 | m_t0 |
std::string | m_text |
std::vector< std::string > | m_trackCollectionNames |
std::vector< reco::Track > | m_tracks |
std::vector< std::vector < SbVec3f > > | m_trajectoryDirections |
std::vector< std::vector < SbVec3f > > | m_trajectoryPositions |
VisZMax | m_ZMax |
const edm::ParameterSet * | pset |
double | trackThickness |
Definition at line 38 of file VisTkIdealHelixTracksTwig.h.
VisTkIdealHelixTracksTwig::VisTkIdealHelixTracksTwig | ( | IgState * | state, | |
IgTwig * | parent, | |||
const std::string & | name = "" , |
|||
const std::string & | friendlyName = "" , |
|||
const std::string & | moduleLabel = "" , |
|||
const std::string & | instanceName = "" , |
|||
const std::string & | processName = "" | |||
) |
Definition at line 63 of file VisTkIdealHelixTracksTwig.cc.
References createThisTwig(), edm::TypeID::friendlyClassName(), DBSPlugin::get(), edm::ParameterSet::getUntrackedParameter(), m_flytime, m_trackCollectionNames, p, VisConfigurationService::pSet(), pset, VisTwigFactroyService::registerTwig(), trackThickness, and VisConfigurationService_cff::VisConfigurationService.
00069 : VisQueuedTwig (state, parent, name), 00070 m_text ("no info"), 00071 m_friendlyName (friendlyName), 00072 m_moduleLabel (moduleLabel), 00073 m_instanceName (instanceName), 00074 m_processName (processName), 00075 m_animate (state, lat::CreateCallback (this, &VisTkIdealHelixTracksTwig::twigChanged)), 00076 m_counterMax (state, lat::CreateCallback (this, &VisTkIdealHelixTracksTwig::twigChanged)), 00077 m_counterMin (state, lat::CreateCallback (this, &VisTkIdealHelixTracksTwig::twigChanged)), 00078 m_frequency (state, lat::CreateCallback (this, &VisTkIdealHelixTracksTwig::twigChanged)), 00079 m_BField (state, lat::CreateCallback (this, &VisTkIdealHelixTracksTwig::twigChanged)), 00080 m_RMax (state, lat::CreateCallback (this, &VisTkIdealHelixTracksTwig::twigChanged)), 00081 m_ZMax (state, lat::CreateCallback (this, &VisTkIdealHelixTracksTwig::twigChanged)), 00082 m_t0 (state, lat::CreateCallback (this, &VisTkIdealHelixTracksTwig::twigChanged)), 00083 m_dt (state, lat::CreateCallback (this, &VisTkIdealHelixTracksTwig::twigChanged)), 00084 m_annot (state, lat::CreateCallback (this, &VisTkIdealHelixTracksTwig::twigChanged)), 00085 m_showDets (state, lat::CreateCallback (this, &VisTkIdealHelixTracksTwig::twigChanged)) 00086 { 00087 VisTwigFactroyService *tfService = VisTwigFactroyService::get (state); 00088 if (! tfService) 00089 { 00090 tfService = new VisTwigFactroyService (state); 00091 } 00092 edm::TypeID trackID (typeid (reco::TrackCollection)); 00093 tfService->registerTwig (trackID.friendlyClassName (), &createThisTwig); 00094 pset = VisConfigurationService::pSet (); 00095 if (! pset) 00096 { 00097 edm::ParameterSet p; 00098 VisConfigurationService *visService = new VisConfigurationService (p); 00099 pset = visService->pSet (); 00100 delete visService; 00101 } 00102 trackThickness = pset->getUntrackedParameter<double> ("trackLineThickness", 2.0); 00103 00104 m_flytime = pset->getUntrackedParameter<double> ("flyTime", 0.5); 00105 00106 std::vector<std::string> notSpecified; 00107 m_trackCollectionNames = pset->getUntrackedParameter<std::vector<std::string> > ("trackCollectionNames", notSpecified); 00108 }
void VisTkIdealHelixTracksTwig::onNewEvent | ( | const edm::Event & | event, | |
const edm::EventSetup & | eventSetup | |||
) | [virtual] |
Reimplemented from VisQueuedTwig.
Definition at line 115 of file VisTkIdealHelixTracksTwig.cc.
References cms::Exception::append(), arg, c, e, exception, edm::Event::getManyByType(), i, edm::Event::id(), LFfwvis, LOG, m_friendlyName, m_instanceName, m_moduleLabel, VisQueuedTwig::m_onCmsException, VisQueuedTwig::m_onError, VisQueuedTwig::m_onException, VisQueuedTwig::m_onUnhandledException, m_processName, m_text, m_trackCollectionNames, m_tracks, m_trajectoryDirections, m_trajectoryPositions, VisQueuedTwig::onBaseInvalidate(), VisQueuedTwig::onNewEvent(), tc, GsfMatrixTools::trace(), track, x, y, and z.
00117 { 00118 // Get debugging dump. 00119 VisQueuedTwig::onNewEvent (event, eventSetup); 00120 00121 m_tracks.clear (); 00122 00123 m_trajectoryPositions.clear (); 00124 m_trajectoryDirections.clear (); 00125 00126 m_text = (QString ("Run # %1, event # %2") 00127 .arg (event.id ().run ()) 00128 .arg (event.id ().event ()).latin1 ()); 00129 00130 std::vector<edm::Handle<reco::TrackCollection> > trackCollections; 00131 00132 try 00133 { 00134 if ((! m_friendlyName.empty ()) || (! m_moduleLabel.empty ()) || (! m_instanceName.empty ()) || (! m_processName.empty ())) 00135 { 00136 VisEventSelector visSel (m_friendlyName, m_moduleLabel, m_instanceName, m_processName); 00137 event.getMany (visSel, trackCollections); 00138 } 00139 else 00140 { 00141 if (m_trackCollectionNames.empty ()) 00142 event.getManyByType (trackCollections); 00143 else 00144 { 00145 for(std::vector<std::string>::iterator tkColl = m_trackCollectionNames.begin (), tkCollEnd = m_trackCollectionNames.end (); 00146 tkColl != tkCollEnd; ++tkColl) 00147 { 00148 LOG (2, trace, LFfwvis, "Getting track Collection with label " << (*tkColl) << "\n"); 00149 00150 edm::Handle<reco::TrackCollection> tcHandle; 00151 00152 event.getByLabel ((*tkColl), tcHandle); 00153 trackCollections.push_back (tcHandle); 00154 } 00155 } 00156 } 00157 } 00158 catch (cms::Exception& e) 00159 { 00160 e.append (" from VisTkIdealHelixTracksTwig: "); 00161 e.append (this->name ()); 00162 00163 if (this->m_onCmsException) 00164 this->m_onCmsException (&e); 00165 } 00166 catch (lat::Error &e) 00167 { 00168 if (this->m_onError) 00169 this->m_onError (&e); 00170 } 00171 catch (std::exception &e) 00172 { 00173 if (this->m_onException) 00174 this->m_onException (&e); 00175 } 00176 catch (...) 00177 { 00178 if (this->m_onUnhandledException) 00179 this->m_onUnhandledException (); 00180 } 00181 00182 if (! trackCollections.empty ()) 00183 { 00184 std::vector<edm::Handle<reco::TrackCollection> >::iterator i; 00185 std::vector<edm::Handle<reco::TrackCollection> >::iterator iEnd; 00186 00187 LOG (2, trace, LFfwvis, "There are " << trackCollections.size () << " track collections.\n"); 00188 int tc = 1; 00189 00190 for (i = trackCollections.begin (), iEnd = trackCollections.end (); i != iEnd; ++i) 00191 { 00192 try 00193 { 00194 const reco::TrackCollection c = *(*i).product (); 00195 LOG (3, trace, LFfwvis, "#" << tc++ << ": track collection has " << c.size () << " tracks\n"); 00196 for (reco::TrackCollection::const_iterator track = c.begin (), cEnd = c.end (); track != cEnd; ++track) 00197 { 00198 m_tracks.push_back (*track); 00199 LOG (3, trace, LFfwvis, "\nTrack with rechitsize = " << (*track).recHitsSize () << "\n"); 00200 00201 LOG (3, trace, LFfwvis, "\nConvert failed, use Inner and Onter States " << "\n"); 00202 00203 std::vector<SbVec3f> myTraPos; 00204 std::vector<SbVec3f> myTraDir; 00205 00206 if ((*track).innerOk () && (*track).outerOk ()) 00207 { 00208 00209 float x = (*track).innerPosition ().x () / 100.0; 00210 float y = (*track).innerPosition ().y () / 100.0; 00211 float z = (*track).innerPosition ().z () / 100.0; 00212 00213 float dirx = (*track).innerMomentum ().x (); //FIXME 00214 float diry = (*track).innerMomentum ().y (); 00215 float dirz = (*track).innerMomentum ().z (); 00216 00217 myTraPos.push_back (SbVec3f (x, y, z)); 00218 myTraDir.push_back (SbVec3f (dirx, diry, dirz)); 00219 00220 x = (*track).outerPosition ().x () / 100.0; 00221 y = (*track).outerPosition ().y () / 100.0; 00222 z = (*track).outerPosition ().z () / 100.0; 00223 00224 dirx = (*track).outerMomentum ().x (); 00225 diry = (*track).outerMomentum ().y (); 00226 dirz = (*track).outerMomentum ().z (); 00227 00228 myTraPos.push_back (SbVec3f (x, y, z)); 00229 myTraDir.push_back (SbVec3f (dirx, diry, dirz)); 00230 } 00231 else 00232 { 00233 LOG (2, trace, LFfwvis, "\nOuter or Inner not OK\n"); 00234 } 00235 00236 m_trajectoryPositions.push_back (myTraPos); 00237 m_trajectoryDirections.push_back (myTraDir); 00238 } 00239 } 00240 catch (cms::Exception& e) 00241 { 00242 if (this->m_onCmsException) 00243 this->m_onCmsException (&e); 00244 } 00245 catch (lat::Error &e) 00246 { 00247 if (this->m_onError) 00248 this->m_onError (&e); 00249 } 00250 catch (std::exception &e) 00251 { 00252 if (this->m_onException) 00253 this->m_onException (&e); 00254 } 00255 catch (...) 00256 { 00257 if (this->m_onUnhandledException) 00258 this->m_onUnhandledException (); 00259 } 00260 } 00261 } 00262 00263 VisQueuedTwig::onBaseInvalidate (); 00264 }
Definition at line 111 of file VisTkIdealHelixTracksTwig.cc.
References IgRepSet::invalidate(), and IgTwig::SELF_MASK.
00112 { IgRepSet::invalidate (this, SELF_MASK); }
Reimplemented from VisQueuedTwig.
Definition at line 506 of file VisTkIdealHelixTracksTwig.cc.
References Ig3DBaseRep::clear(), IgSoIdealTrack::dt, IgParticleChar::getByName(), IgSoIdealTrack::initialise(), m_BField, m_dt, m_flytime, m_RMax, m_t0, m_tracks, m_trajectoryDirections, m_trajectoryPositions, m_ZMax, Ig3DBaseRep::node(), IgSoIdealTrack::setBField(), IgSoIdealTrack::setRMax(), IgSoIdealTrack::setZMax(), IgSoIdealTrack::t0, trackThickness, VisQueuedTwig::update(), and VisActiveConfigurable< T >::value().
00507 { 00508 // Get debugging dump. 00509 VisQueuedTwig::update (rep); 00510 00511 IgQtLock (); 00512 rep->clear (); 00513 00514 if (! m_tracks.empty ()) 00515 { 00516 SoSeparator *sep = new SoSeparator; 00517 00518 SoMaterial *recomat = new SoMaterial; 00519 recomat->diffuseColor.setValue (1.0, 0.0, 0.0); 00520 sep->addChild (recomat); 00521 //set line width 00522 SoDrawStyle *sty = new SoDrawStyle; 00523 sty->style = SoDrawStyle::LINES; 00524 sty->lineWidth.setValue (trackThickness); 00525 sep->addChild (sty); 00526 00527 if (!m_trajectoryPositions.empty () && !m_trajectoryDirections.empty ()) 00528 { 00529 std::vector<std::vector<SbVec3f> >::const_iterator ipos = m_trajectoryPositions.begin (); 00530 std::vector<std::vector<SbVec3f> >::const_iterator idir = m_trajectoryDirections.begin (); 00531 for (std::vector<reco::Track>::const_iterator itrack = m_tracks.begin (); itrack != m_tracks.end (); ++itrack) 00532 { 00533 int nState = 0; 00534 std::vector<SbVec3f>::const_iterator idd = (*idir).begin (); 00535 for (std::vector<SbVec3f>::const_iterator ipp = (*ipos).begin (); ipp != (*ipos).end (); ++ipp) 00536 { 00537 IgSoIdealTrack* myTraj = new IgSoIdealTrack; 00538 myTraj->setBField (m_BField.value ()); 00539 myTraj->setRMax (m_RMax.value ()); 00540 myTraj->setZMax (m_ZMax.value ()); 00541 myTraj->t0.setValue (m_t0.value ()); 00542 myTraj->dt.setValue (m_dt.value ()); 00543 if ((*itrack).charge() > 0) 00544 { 00545 myTraj->initialise ((*ipp)[0], (*ipp)[1], (*ipp)[2], 00546 (*idd)[0], (*idd)[1], (*idd)[2], 00547 m_flytime, 00548 IgParticleChar::getByName ("muon")); 00549 } 00550 else if ((*itrack).charge() < 0) 00551 { 00552 myTraj->initialise ((*ipp)[0], (*ipp)[1], (*ipp)[2], 00553 (*idd)[0], (*idd)[1], (*idd)[2], 00554 m_flytime, 00555 IgParticleChar::getByName ("electron")); 00556 } else 00557 { 00558 myTraj->initialise ((*ipp)[0], (*ipp)[1], (*ipp)[2], 00559 (*idd)[0], (*idd)[1], (*idd)[2], 00560 m_flytime, 00561 IgParticleChar::getByName ("gamma")); 00562 } 00563 00564 sep->addChild (myTraj); 00565 nState++; 00566 idd++; 00567 } 00568 ipos++; 00569 idir++; 00570 } 00571 } 00572 rep->node ()->addChild (sep); 00573 } 00574 }
Reimplemented from VisQueuedTwig.
Definition at line 433 of file VisTkIdealHelixTracksTwig.cc.
References Ig3DBaseRep::clear(), IgSoIdealTrack::dt, IgParticleChar::getByName(), IgSoIdealTrack::initialise(), m_BField, m_dt, m_flytime, m_RMax, m_t0, m_tracks, m_trajectoryDirections, m_trajectoryPositions, m_ZMax, Ig3DBaseRep::node(), IgSoIdealTrack::setBField(), IgSoIdealTrack::setRMax(), IgSoIdealTrack::setZMax(), IgSoIdealTrack::t0, trackThickness, VisQueuedTwig::update(), and VisActiveConfigurable< T >::value().
00434 { 00435 // Get debugging dump. 00436 VisQueuedTwig::update (rep); 00437 00438 IgQtLock (); 00439 rep->clear (); 00440 00441 if (! m_tracks.empty ()) 00442 { 00443 SoSeparator *sep = new SoSeparator; 00444 00445 SoMaterial *recomat = new SoMaterial; 00446 recomat->diffuseColor.setValue (1.0, 0.0, 0.0); 00447 sep->addChild (recomat); 00448 //set line width 00449 SoDrawStyle *sty = new SoDrawStyle; 00450 sty->style = SoDrawStyle::LINES; 00451 sty->lineWidth.setValue (trackThickness); 00452 sep->addChild (sty); 00453 00454 if (! m_trajectoryPositions.empty () && ! m_trajectoryDirections.empty ()) 00455 { 00456 std::vector<std::vector<SbVec3f> >::const_iterator ipos = m_trajectoryPositions.begin (); 00457 std::vector<std::vector<SbVec3f> >::const_iterator idir = m_trajectoryDirections.begin (); 00458 00459 for (std::vector<reco::Track>::const_iterator itrack = m_tracks.begin (); itrack != m_tracks.end (); ++itrack) 00460 { 00461 int nState = 0; 00462 std::vector<SbVec3f>::const_iterator idd = (*idir).begin (); 00463 for (std::vector<SbVec3f>::const_iterator ipp = (*ipos).begin (); ipp != (*ipos).end (); ++ipp) 00464 { 00465 IgSoIdealTrack* myTraj = new IgSoIdealTrack; 00466 myTraj->setBField (m_BField.value ()); 00467 myTraj->setRMax (m_RMax.value ()); 00468 myTraj->setZMax (m_ZMax.value ()); 00469 myTraj->t0.setValue (m_t0.value ()); 00470 myTraj->dt.setValue (m_dt.value ()); 00471 if ((*itrack).charge() > 0) 00472 { 00473 myTraj->initialise ((*ipp)[0], (*ipp)[1], (*ipp)[2], 00474 (*idd)[0], (*idd)[1], (*idd)[2], 00475 m_flytime, 00476 IgParticleChar::getByName ("muon")); 00477 } 00478 else if ((*itrack).charge() < 0) 00479 { 00480 myTraj->initialise ((*ipp)[0], (*ipp)[1], (*ipp)[2], 00481 (*idd)[0], (*idd)[1], (*idd)[2], 00482 m_flytime, 00483 IgParticleChar::getByName ("electron")); 00484 } else 00485 { 00486 myTraj->initialise ((*ipp)[0], (*ipp)[1], (*ipp)[2], 00487 (*idd)[0], (*idd)[1], (*idd)[2], 00488 m_flytime, 00489 IgParticleChar::getByName ("gamma")); 00490 } 00491 00492 sep->addChild (myTraj); 00493 nState++; 00494 idd++; 00495 } 00496 ipos++; 00497 idir++; 00498 } 00499 } 00500 rep->node ()->addChild (sep); 00501 } 00502 }
Reimplemented from VisQueuedTwig.
Definition at line 267 of file VisTkIdealHelixTracksTwig.cc.
References e, exception, VisQueuedTwig::m_onCmsException, VisQueuedTwig::m_onError, VisQueuedTwig::m_onException, VisQueuedTwig::m_onUnhandledException, m_tracks, m_trajectoryDirections, m_trajectoryPositions, IgTextRep::setText(), and VisQueuedTwig::update().
00268 { 00269 // Get debugging dump. 00270 VisQueuedTwig::update (rep); 00271 00272 // Prepare the property description. 00273 std::ostringstream text; 00274 00275 text << setiosflags (std::ios::showpoint | std::ios::fixed); 00276 text.setf (std::ios::right, std::ios::adjustfield); 00277 00278 text << "Reconstructed Tracks = "; 00279 00280 try 00281 { 00282 unsigned int tracks_size = m_tracks.size (); 00283 00284 std::vector<std::vector<SbVec3f> >::const_iterator ipos = m_trajectoryPositions.begin (); 00285 std::vector<std::vector<SbVec3f> >::const_iterator idir = m_trajectoryDirections.begin (); 00286 00287 for (unsigned int nt = 0; nt < tracks_size; nt++) 00288 { 00289 std::ostringstream out_pt; 00290 out_pt << m_tracks [nt].pt (); 00291 text << "<table width='100%' border=1>" 00292 << "<TR align = center>" 00293 << "<TD COLSPAN =4>Track number = " << nt 00294 << " track pt = " << out_pt.str () 00295 << "</TR>"; 00296 00297 int nState = 0; 00298 00299 std::vector<SbVec3f>::const_iterator idd = (*idir).begin (); 00300 for (std::vector<SbVec3f>::const_iterator ipp = (*ipos).begin (); ipp != (*ipos).end (); ++ipp) 00301 { 00302 text << "<TR align = right>" 00303 << "<TD>" << std::setw (3) << nState++<< "</TD>" 00304 << "<TD>" << std::setw (6) << std::setprecision (3) << (*ipp)[0] << "," << (*ipp)[1] << "," << (*ipp)[2] << "</TD>" 00305 << "<TD>" << std::setw (6) << std::setprecision (3) << (*idd)[0] << "," << (*idd)[1] << "," << (*idd)[2] << "</TD></TR>"; 00306 idd++; 00307 } 00308 text << "</table>"; 00309 } 00310 } 00311 catch (cms::Exception& e) 00312 { 00313 if (this->m_onCmsException) 00314 this->m_onCmsException (&e); 00315 } 00316 catch (lat::Error &e) 00317 { 00318 if (this->m_onError) 00319 this->m_onError (&e); 00320 } 00321 catch (std::exception &e) 00322 { 00323 if (this->m_onException) 00324 this->m_onException (&e); 00325 } 00326 catch (...) 00327 { 00328 if (this->m_onUnhandledException) 00329 this->m_onUnhandledException (); 00330 } 00331 00332 IgQtLock (); 00333 rep->setText (text.str ()); 00334 }
Reimplemented from VisQueuedTwig.
Definition at line 577 of file VisTkIdealHelixTracksTwig.cc.
References Ig3DBaseRep::clear(), and VisQueuedTwig::update().
00578 { 00579 00580 // Get debugging dump. 00581 VisQueuedTwig::update (rep); 00582 00583 IgQtLock (); 00584 rep->clear (); 00585 00586 //........ still missing 00587 }
Reimplemented from VisQueuedTwig.
Definition at line 337 of file VisTkIdealHelixTracksTwig.cc.
References Ig3DBaseRep::clear(), IgSoSimpleTrajectory::controlPoints, IgSoIdealTrack::dt, IgParticleChar::getByName(), IgSoIdealTrack::initialise(), m_BField, m_dt, m_flytime, m_RMax, m_t0, m_tracks, m_trajectoryDirections, m_trajectoryPositions, m_ZMax, IgSoSimpleTrajectory::markerPoints, Ig3DBaseRep::node(), IgSoIdealTrack::setBField(), IgSoIdealTrack::setRMax(), IgSoIdealTrack::setZMax(), IgSoIdealTrack::t0, track, trackThickness, VisQueuedTwig::update(), and VisActiveConfigurable< T >::value().
00338 { 00339 // Get debugging dump. 00340 VisQueuedTwig::update (rep); 00341 00342 IgQtLock (); 00343 rep->clear (); 00344 00345 if (! m_tracks.empty ()) 00346 { 00347 SoSeparator *sep = new SoSeparator; 00348 00349 SoMaterial *recomat = new SoMaterial; 00350 recomat->diffuseColor.setValue (1.0, 0.0, 0.0); 00351 sep->addChild (recomat); 00352 //set line width 00353 SoDrawStyle *sty = new SoDrawStyle; 00354 sty->style = SoDrawStyle::LINES; 00355 sty->lineWidth.setValue (trackThickness); 00356 sep->addChild (sty); 00357 00358 if (!m_trajectoryPositions.empty () && !m_trajectoryDirections.empty ()) 00359 { 00360 std::vector<std::vector<SbVec3f> >::const_iterator ipos = m_trajectoryPositions.begin (); 00361 std::vector<std::vector<SbVec3f> >::const_iterator idir = m_trajectoryDirections.begin (); 00362 00363 for (std::vector<reco::Track>::const_iterator itrack = m_tracks.begin (), itrackEnd = m_tracks.end (); itrack != itrackEnd; ++itrack) 00364 { 00365 int nState = 0; 00366 std::vector<SbVec3f>::const_iterator idd = (*idir).begin (); 00367 for (std::vector<SbVec3f>::const_iterator ipp = (*ipos).begin (); ipp != (*ipos).end (); ++ipp) 00368 { 00369 if ((*itrack).charge() > 0) 00370 { 00371 IgSoIdealTrack* myTraj = new IgSoIdealTrack; 00372 myTraj->setBField (m_BField.value ()); 00373 myTraj->setRMax (m_RMax.value ()); 00374 myTraj->setZMax (m_ZMax.value ()); 00375 myTraj->t0.setValue (m_t0.value ()); 00376 myTraj->dt.setValue (m_dt.value ()); 00377 myTraj->initialise ((*ipp)[0], (*ipp)[1], (*ipp)[2], 00378 (*idd)[0], (*idd)[1], (*idd)[2], 00379 m_flytime, 00380 IgParticleChar::getByName ("muon")); 00381 sep->addChild (myTraj); 00382 } 00383 else if ((*itrack).charge() < 0) 00384 { 00385 IgSoIdealTrack* myTraj = new IgSoIdealTrack; 00386 myTraj->setBField (m_BField.value ()); 00387 myTraj->setRMax (m_RMax.value ()); 00388 myTraj->setZMax (m_ZMax.value ()); 00389 myTraj->t0.setValue (m_t0.value ()); 00390 myTraj->dt.setValue (m_dt.value ()); 00391 myTraj->initialise ((*ipp)[0], (*ipp)[1], (*ipp)[2], 00392 (*idd)[0], (*idd)[1], (*idd)[2], 00393 m_flytime, 00394 IgParticleChar::getByName ("electron")); 00395 sep->addChild (myTraj); 00396 } 00397 else 00398 { 00399 SoSeparator *gammas = new SoSeparator; 00400 SoMaterial *gammaMaterial = new SoMaterial; 00401 gammaMaterial->ambientColor.setValue (0.000, 0.000, 0.000); 00402 gammaMaterial->diffuseColor.setValue (1.000, 1.000, 0.000); 00403 gammaMaterial->emissiveColor.setValue (1.000, 1.000, 0.000); 00404 gammaMaterial->specularColor.setValue (0.000, 0.000, 0.000); 00405 gammaMaterial->shininess = 0.0; 00406 gammaMaterial->transparency = 0.0; 00407 gammas->addChild (gammaMaterial); 00408 00409 IgSoSimpleTrajectory *track = new IgSoSimpleTrajectory; 00410 00411 track->controlPoints.set1Value (0, SbVec3f ((*ipp)[0], (*ipp)[1], (*ipp)[2])); 00412 track->markerPoints.set1Value (0, SbVec3f ((*ipp)[0], (*ipp)[1], (*ipp)[2])); 00413 00414 track->controlPoints.set1Value (1, SbVec3f ((*ipp)[0], (*ipp)[1], (*ipp)[2])); 00415 track->markerPoints.set1Value (1, SbVec3f ((*ipp)[0] * 10, (*ipp)[1] * 10, (*ipp)[2] * 10)); 00416 gammas->addChild (track); 00417 00418 sep->addChild (gammas); 00419 } 00420 00421 nState++; 00422 idd++; 00423 } 00424 ipos++; 00425 idir++; 00426 } 00427 } 00428 rep->node ()->addChild (sep); 00429 } 00430 }
Definition at line 70 of file VisTkIdealHelixTracksTwig.h.
Definition at line 79 of file VisTkIdealHelixTracksTwig.h.
VisBField VisTkIdealHelixTracksTwig::m_BField [private] |
Definition at line 71 of file VisTkIdealHelixTracksTwig.h.
Definition at line 72 of file VisTkIdealHelixTracksTwig.h.
VisMuonDt VisTkIdealHelixTracksTwig::m_dt [private] |
double VisTkIdealHelixTracksTwig::m_flytime [private] |
Definition at line 90 of file VisTkIdealHelixTracksTwig.h.
Referenced by update(), and VisTkIdealHelixTracksTwig().
Definition at line 73 of file VisTkIdealHelixTracksTwig.h.
const std::string VisTkIdealHelixTracksTwig::m_friendlyName [private] |
const std::string VisTkIdealHelixTracksTwig::m_instanceName [private] |
const std::string VisTkIdealHelixTracksTwig::m_moduleLabel [private] |
const std::string VisTkIdealHelixTracksTwig::m_processName [private] |
VisRMax VisTkIdealHelixTracksTwig::m_RMax [private] |
Definition at line 80 of file VisTkIdealHelixTracksTwig.h.
VisMuonT0 VisTkIdealHelixTracksTwig::m_t0 [private] |
std::string VisTkIdealHelixTracksTwig::m_text [private] |
std::vector<std::string> VisTkIdealHelixTracksTwig::m_trackCollectionNames [private] |
Definition at line 81 of file VisTkIdealHelixTracksTwig.h.
Referenced by onNewEvent(), and VisTkIdealHelixTracksTwig().
std::vector<reco::Track> VisTkIdealHelixTracksTwig::m_tracks [private] |
Definition at line 83 of file VisTkIdealHelixTracksTwig.h.
Referenced by onNewEvent(), and update().
std::vector<std::vector<SbVec3f> > VisTkIdealHelixTracksTwig::m_trajectoryDirections [private] |
Definition at line 86 of file VisTkIdealHelixTracksTwig.h.
Referenced by onNewEvent(), and update().
std::vector<std::vector<SbVec3f> > VisTkIdealHelixTracksTwig::m_trajectoryPositions [private] |
Definition at line 85 of file VisTkIdealHelixTracksTwig.h.
Referenced by onNewEvent(), and update().
VisZMax VisTkIdealHelixTracksTwig::m_ZMax [private] |
const edm::ParameterSet* VisTkIdealHelixTracksTwig::pset [private] |
Definition at line 88 of file VisTkIdealHelixTracksTwig.h.
Referenced by VisTkIdealHelixTracksTwig().
double VisTkIdealHelixTracksTwig::trackThickness [private] |
Definition at line 89 of file VisTkIdealHelixTracksTwig.h.
Referenced by update(), and VisTkIdealHelixTracksTwig().