Public Methods | |
VertexObserver () | |
~VertexObserver () | |
void | upDate (G3SetUp *su) |
void | upDate (G3EventProxy *ev) |
Public Attributes | |
int | nbVertices_ |
SimpleConfigurable< string > | vertexReconstructorName_ |
SimpleConfigurable< string > | trackReconstructorName_ |
TrackReconstructor * | trackReconstructor_ |
|
Definition at line 38 of file XANAVertex.cpp. References nbVertices_, trackReconstructor_, trackReconstructorName_, and vertexReconstructorName_.
00039 : nbVertices_(0), trackReconstructor_(0) 00040 { 00041 // initialize observer 00042 Observer<G3EventProxy *>::init() ; 00043 Observer<G3SetUp *>::init() ; 00044 00045 // steering 00046 vertexReconstructorName_= 00047 SimpleConfigurable<string>("PVRVertex","XANAVertex:VertexReconstructor"); 00048 trackReconstructorName_= 00049 // SimpleConfigurable<string>("FKfTracks","XANAVertex:TrackReconstructor"); 00050 SimpleConfigurable<string>("FKfTracks","XANAVertex:TrackReconstructor"); 00051 // initialisation of tracking algo must be done in observing G3SetUp 00052 } |
|
Definition at line 54 of file XANAVertex.cpp. References nbVertices_, xana::out, and trackReconstructor_.
00055 { 00056 delete trackReconstructor_; 00057 xana::out(1)<<"[OVAL] number of vertices : "<<nbVertices_<<endl ; 00058 } |
|
Definition at line 74 of file XANAVertex.cpp. References XANAVertex::addTrack, xana::out, XANATrack::setAlgoName, XANATrack::setCharge, XANATrack::setChi2OverDof, XANATrack::setImpactParameter, XANATrack::setLongImpactParameter, XANATrack::setMomentumAtFirstPoint, XANATrack::setMomentumAtLastPoint, XANATrack::setMomentumAtVertex, XANATrack::setNumberOfHits, XANATrack::setNumberOfLostHits, XANATrack::setPositionAtFirstPoint, XANATrack::setPositionAtLastPoint, XANATrack::setTransImpactParameter, trackReconstructorName_, and vertexReconstructorName_.
00075 { 00076 00077 if (!ev) return ; 00078 00079 RecItr<TTrack> track(ev->recEvent(),trackReconstructorName_.value().c_str()); 00080 while (track.next()) { 00081 xana::out(1) << "new reconstructed track " << std::endl; 00082 TrajectoryStateOnSurface ts = (*track).impactPointState() ; 00083 xana::out(1) << "(*track).impactPointState() " <<(*track).impactPointState() << std::endl; 00084 TrajectoryStateOnSurface tsi = (*track).innermostState() ; 00085 xana::out(1) << "(*track).innermostState() " <<(*track).innermostState() << std::endl; 00086 TrajectoryStateOnSurface tso = (*track).outermostState() ; 00087 xana::out(1) << "(*track).outermostState() " <<(*track).outermostState() << std::endl; 00088 HepVector3D momentumAtVertex(track->momentumAtVertex().x(), 00089 track->momentumAtVertex().y(),track->momentumAtVertex().z()); 00090 xana::out(1) << "(*track).momentumAtVertex() " <<(*track).momentumAtVertex() << std::endl; 00091 HepVector3D momentumAtFirst(tsi.globalMomentum().x(),tsi.globalMomentum().y(), 00092 tsi.globalMomentum().z()); 00093 HepVector3D momentumAtLast(tso.globalMomentum().x(),tso.globalMomentum().y(), 00094 tso.globalMomentum().z()); 00095 } 00096 AutoRecCollection<RecoVertex, G3EventProxy *> vertices(vertexReconstructorName_.value().c_str()); 00097 00098 // construct XANAVertex from RecoVertex 00099 vector<XANAVertex> xVertices; 00100 XANAVertex *xVertex=0; 00101 XANATrack *xTrack=0; 00102 for(AutoRecCollection<RecoVertex, G3EventProxy *>::const_iterator iv=vertices.begin(); 00103 iv!=vertices.end(); iv++) { 00104 HepPoint3D position((*iv)->position().x(),(*iv)->position().y(), 00105 (*iv)->position().z()); 00106 xVertex = new XANAVertex(position, (*iv)->totalChiSquared(), 00107 (*iv)->degreesOfFreedom(), vertexReconstructorName_.value().c_str()); 00108 // then add constituent tracks 00109 xana::out(1) << "vertex found, loop on constituent tracks " << std::endl; 00110 vector <RefittedRecTrack> refTracks = (*iv)->refittedTracks(); 00111 for (vector<RefittedRecTrack>::const_iterator it=refTracks.begin(); 00112 it!=refTracks.end(); it++) { 00113 xana::out(1) << "new refitted track " << std::endl; 00114 TrajectoryStateOnSurface tsi = it->innermostState() ; 00115 xana::out(1) << "(*track).innermostState() " <<(*track).innermostState() << std::endl; 00116 TrajectoryStateOnSurface tso = it->outermostState() ; 00117 xana::out(1) << "(*track).outermostState() " <<(*track).outermostState() << std::endl; 00118 // acessing track params if vertex exists is buggy but tsi, tso OK 00119 GlobalVector momentum = it->momentumAtVertex(); 00120 xana::out(1) << "tsi.momentum " << tsi.globalMomentum() << std::endl; 00121 HepVector3D momentumAtVertex; 00122 momentumAtVertex=HepVector3D(momentum.x(), 00123 momentum.y(), momentum.z()); 00124 xana::out(1) << "momentum at vertex " << momentumAtVertex << std::endl; 00125 } 00126 // this is needed otherwise access to originaltracks params is buggy 00127 vector<RecTrack> recTracks = (*iv)->originalTracks(); 00128 for (vector<RecTrack>::const_iterator it=recTracks.begin(); 00129 it!=recTracks.end(); it++) { 00130 xana::out(1) << "new original track " << std::endl; 00131 TrajectoryStateOnSurface tsi = it->innermostState() ; 00132 xana::out(1) << "(*track).innermostState() " <<(*track).innermostState() << std::endl; 00133 TrajectoryStateOnSurface tso = it->outermostState() ; 00134 xana::out(1) << "(*track).outermostState() " <<(*track).outermostState() << std::endl; 00135 GlobalVector momentum = it->momentumAtVertex(); 00136 HepVector3D momentumAtVertex; 00137 momentumAtVertex=HepVector3D(momentum.x(), 00138 momentum.y(), momentum.z()); 00139 xana::out(1) << "momentum at vertex " << momentum << std::endl; 00140 HepPoint3D firstHit(tsi.globalPosition().x(),tsi.globalPosition().y(), 00141 tsi.globalPosition().z()); 00142 HepVector3D momentumAtFirst(tsi.globalMomentum().x(),tsi.globalMomentum().y(), 00143 tsi.globalMomentum().z()); 00144 HepPoint3D lastHit(tso.globalPosition().x(),tso.globalPosition().y(), 00145 tso.globalPosition().z()); 00146 HepVector3D momentumAtLast(tso.globalMomentum().x(),tso.globalMomentum().y(), 00147 tso.globalMomentum().z()); 00148 xTrack = new XANATrack; 00149 xana::out(1) << "track created " << std::endl; 00150 xTrack->setCharge(it->charge()); 00151 xTrack->setChi2OverDof(it->normalisedChiSquared()); 00152 xTrack->setNumberOfHits(it->foundHits()); 00153 xTrack->setNumberOfLostHits(it->lostHits()); 00154 xTrack->setImpactParameter(it->impactParameter3D().value()); 00155 xTrack->setLongImpactParameter(it->zImpactParameter().value()); 00156 xTrack->setTransImpactParameter(it->transverseImpactParameter().value()); 00157 xTrack->setMomentumAtVertex(momentumAtVertex); 00158 xTrack->setPositionAtFirstPoint(firstHit); 00159 xTrack->setMomentumAtFirstPoint(momentumAtFirst); 00160 xTrack->setPositionAtLastPoint(lastHit); 00161 xTrack->setMomentumAtLastPoint(momentumAtLast); 00162 xTrack->setAlgoName(trackReconstructorName_.value()); 00163 xana::out(1) << "adding track " << std::endl; 00164 xVertex->addTrack(xTrack); 00165 } 00166 } 00167 00168 // read XANAVertices 00169 vector<XANAVertex>::iterator iv; 00170 for (iv=xVertices.begin(); iv!=xVertices.end(); iv++) 00171 { 00172 xana::out(1)<<"[OVAL] new vertex with position "<<iv->getPosition()<<endl ; 00173 } 00174 } |
|
Definition at line 60 of file XANAVertex.cpp. References trackReconstructor_, and trackReconstructorName_.
00061 { 00062 // defines Tracking algo 00063 // beware! not to add to reconstructor! this is not a RecUnit 00064 // this will use default propagator, trajectory builder, etc.. 00065 TrackFinder *myTrackFinder = new ModularKfReconstructor( 00066 new CombinatorialSeedGeneratorFromPixel(0.8,0.1,15.), 00067 new CombinatorialTrajectoryBuilder, 00068 new KFFittingSmoother, 00069 new TrajectoryCleanerBySharedHits); 00070 trackReconstructor_ = 00071 new TrackReconstructor(myTrackFinder,trackReconstructorName_.value().c_str()) ; 00072 } |
|
Definition at line 33 of file XANAVertex.cpp. Referenced by VertexObserver, and ~VertexObserver. |
|
Definition at line 36 of file XANAVertex.cpp. Referenced by upDate, VertexObserver, and ~VertexObserver. |
|
Definition at line 35 of file XANAVertex.cpp. Referenced by upDate, and VertexObserver. |
|
Definition at line 34 of file XANAVertex.cpp. Referenced by upDate, and VertexObserver. |