Describes a road found in the muon identifier
Describes a road found in the muon identifier.A road is a set of clusters in muID tubes that we expect to be associated with a single particle traversing the muon arm. (Roads are found by the mMuiRoadFinder module.) Methods include adding clusters, calculating and retrieving the trajectory indicated by the hits, projecting along the trajectory to an arbitrary plane, etc.
HOW TO WRITE A ROAD FINDER Create a road by constructing it with an arm and an optional vertex position:
TMuiRoad* road = new TMuiRoad(0,0.0,0.0,-1.0);Then find clusters in whatever way you choose; add a cluster to the road by passing a pointer to its TMuiCluster object to the AttachCluster() method:
road->AttachCluster(cluster);The AttachCluster() method does not check that the cluster is consistent with the road; it assumes that you have done this. One way of checking is to use the IsClusterOK() method, which checks that the cluster is in the correct arm, and that the cluster is within the search window set by the SetSearchWindow() method, and that the residual of the cluster with the road is smaller than the residual of any previous cluster that may have been attached in that plane. It looks something like this:
road->SetSearchWindow(0,15.0,15.0); // Set windows to +/- 15 cm if (road->IsClusterOK(cluster)) road->AttachCluster(cluster);In order to check residuals, the straight line representing the road reference trajectory needs to have been calculated; this in turn requires that two horizontal and two vertical clusters be attached:
road->CalcReference();Once the clusters have been attached to the road, the various accessor methods of this class provide information about the road.
For more information, see the description of the road finder at http://www.phenix.bnl.gov/WWW/publish/pope/MuID/muid-algorithms/.
TMuiRoad(const short& arm, const Hep3Vector& vertex, const Hep3Vector& sig_vertex)
~TMuiRoad()
void AttachCluster(TMuiCluster* const& cluster)
void GetClusters(TMuiClusterContainer* const& allclusters)
short CalcReference()
void SetSearchWindow(const short& plane, const float& xwin, const float& ywin)
bool IsClusterOK(TMuiCluster* const& cluster) const
bool IsFitOK(const EOrient_t& orient) const
Hep3Vector ClusterDistance(TMuiCluster* const& cluster) const
Hep3Vector Project(const HepPlane3D& plane) const
short Arm() const
short LastPlane() const
short MaxHitsPerPlane() const
short TotalHits() const
bool IsPanelHit(const short& panel) const
vector <long> ClusterIndices() const
Hep3Vector RefPosition() const
Hep3Vector RefDirection() const
Hep3Vector Gap0Position() const
Hep3Vector PositionAtGap(const short& gap) const
short XDegreesOfFreedom() const
short YDegreesOfFreedom() const
float ReducedXChi2() const
float ReducedYChi2() const
alphabetic index hierarchy of classes
this page has been generated automatically by doc++
(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de