StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | Static Public Member Functions | List of all members
StSsdWafer Class Reference

#include <StSsdWafer.hh>

Inheritance diagram for StSsdWafer:

Public Member Functions

 StSsdWafer (Int_t id)
 
 StSsdWafer (const StSsdWafer &originalWafer)
 
StSsdWaferoperator= (const StSsdWafer originalWafer)
 
void init (Int_t rId, Double_t *rD, Double_t *rT, Double_t *rN, Double_t *rX)
 
void setID (Int_t i)
 
void setDriftDirection (Double_t x1, Double_t x2, Double_t x3)
 
void setTransverseDirection (Double_t x1, Double_t x2, Double_t x3)
 
void setNormalDirection (Double_t x1, Double_t x2, Double_t x3)
 
void setCenterPosition (Double_t x1, Double_t x2, Double_t x3)
 
StSsdClusterListgetClusterP ()
 Returns the P-side cluster list attached to this wafer.
 
StSsdClusterListgetClusterN ()
 Returns the N-side cluster list attached to this wafer.
 
StSsdPointListgetDeadHits (Float_t ActiveLargeEdge, Float_t ActiveSmallEdge, Float_t Test)
 
StSsdPointListgetNonActivePointBorder (Float_t ActiveLargeEdge, Float_t ActiveSmallEdge)
 
StSsdPointListgetNonActivePointTriangle (Float_t Test)
 
StSsdStripListgetStripP ()
 Returns the P-side strip list attached to this wafer.
 
StSsdStripListgetStripN ()
 Returns the N-side strip list attached to this wafer.
 
StSsdPackageListgetPackage ()
 Returns the package list attached to this wafer.
 
StSsdPointListgetPoint ()
 Returns the point list attached to this wafer.
 
Int_t getIdWafer ()
 
Int_t getId ()
 
Double_t d (Int_t i)
 
Double_t t (Int_t i)
 
Double_t n (Int_t i)
 
Double_t x (Int_t i)
 
void addCluster (StSsdCluster *ptr, Int_t iSide)
 Attaches the ptr cluster on the iSide of the wafer. More...
 
void addHit (Int_t rNId, Int_t rMcHit, Int_t rMcTrack, Float_t *rXg, Float_t rDe, Float_t *p)
 
void addNoiseToStripSignal (StSpaNoise *ptr, Int_t iSide)
 
void addNoiseToStripSignal (long nElectronInAMip, long adcDynamic)
 
void addPackage (StSsdPackage *ptr)
 Attaches the ptr package on that wafer. More...
 
void addPoint (StSsdPoint *ptr)
 Attaches the ptr point on that wafer. More...
 
void addStrip (StSsdStrip *ptr, Int_t iSide)
 
Int_t geoMatched (ssdDimensions_st *dimensions, StSsdCluster *ptr1, StSsdCluster *ptr2)
 Determines if two clusters are geometricaly compatible. More...
 
Double_t matchDistr (StSsdClusterControl *clusterControl, Double_t x)
 
void setIsActive (Int_t rIsActive, Int_t iSide, Int_t rNStrip)
 
Int_t setMatcheds (ssdDimensions_st *dimensions, StSsdPoint *Point, StSsdCluster *pMatched, StSsdCluster *nMatched)
 
void setPedestalSigmaStrip (Int_t iStrip, Int_t iSide, Int_t iPedestal, Int_t iSigma, StSsdDynamicControl *dynamicControl)
 
void Reset ()
 
void sortCluster ()
 
void sortNoise ()
 
void sortPoint ()
 
void sortStrip ()
 
void doClusterisation (Int_t *numberOfCluster, StSsdClusterControl *clusterControl)
 
Int_t doClusterSplitting (StSsdClusterControl *clusterControl, Int_t iSide)
 
Int_t doFindCluster (StSsdClusterControl *clusterControl, Int_t iSide)
 Does the cluster finding. More...
 
Int_t doFindPackage (ssdDimensions_st *dimensions, StSsdClusterControl *clusterControl)
 
Int_t doSolvePackage (ssdDimensions_st *dimensions, StSsdClusterControl *clusterControl, Float_t CalibArray)
 
Int_t doSolvePerfect (ssdDimensions_st *dimensions, StSsdClusterControl *clusterControl, Float_t CalibArray)
 
void doStatPerfect (Int_t nPerfectPoint, StSsdClusterControl *clusterControl)
 
void doLorentzShift (ssdDimensions_st *dimensions, Float_t mShift_hole, Float_t mShift_elec)
 
Int_t doLorentzShiftSide (Int_t side, Float_t shift, ssdDimensions_st *dimensions)
 
void convertAnalogToDigit (Double_t pairCreationEnergy)
 
void convertAnalogToDigit (Long_t nElectronInAMip, Long_t adcDynamic, Long_t nbitEncoding, Float_t daqCutValue)
 
Int_t convertDigitToAnalog (Double_t pairCreationEnergy)
 
Int_t convertUFrameToLocal (ssdDimensions_st *dimensions)
 
Int_t convertLocalToGlobal ()
 
Int_t convertGlobalToLocal ()
 
Int_t convertLocalToUFrame (Float_t ActiveLargeEdge, Float_t ActiveSmallEdge, Float_t Theta)
 
void convertHitToStrip (Float_t Pitch, Int_t nStripPerSide, Int_t nstripInACluster, Double_t parDiffP, Double_t parDiffN, Double_t parIndRightP, Double_t parIndRightN, Double_t parIndLeftP, Double_t parIndLeftN, Float_t mShift_hole, Float_t mShift_elec)
 
void convertToStrip (Float_t Pitch, Int_t nStripPerSide, Double_t pairCreationEnergy, Int_t nstripInACluster, Double_t parDiffP, Double_t parDiffN, Double_t parIndRightP, Double_t parIndRightN, Double_t parIndLeftP, Double_t parIndLeftN, Float_t mShift_hole, Float_t mShift_elec)
 
void debugStrips ()
 
void debugClusters ()
 
Float_t * findAngle (Float_t *p, Float_t *alpha)
 
void pedestalSubstraction ()
 
Int_t printborder ()
 
void updateStripList ()
 
void zeroSubstraction ()
 
void UndoLorentzShift (StSsdPoint *ptr, Int_t iSide, Float_t mShift_hole, Float_t mShift_elec, Float_t pitch)
 
void doCleanListStrip (StSsdStripList *myListStrip)
 
void SetDebug (Int_t k=0)
 
Int_t Debug ()
 

Static Public Member Functions

static Double_t myErf (Double_t x)
 

Detailed Description

Author
to be filled - doc by L.Martin
Date
02/27/04 for the documentation

This class is the description of the SSD wafer objects. A wafer is made of :

The Clusters are first found on both sides of the wafer. The clusters are then combined into packages. The packages are then solved and the points deduced from the packages. The point coordinates can be transformed from the UV frame to the local (wafer) frame and the global frame.

Definition at line 80 of file StSsdWafer.hh.

Member Function Documentation

void StSsdWafer::addCluster ( StSsdCluster ptr,
Int_t  iSide 
)

Attaches the ptr cluster on the iSide of the wafer.

A new cluster is added to the wafer by calling the ClusterList method.

Definition at line 212 of file StSsdWafer.cc.

void StSsdWafer::addPackage ( StSsdPackage ptr)

Attaches the ptr package on that wafer.

A new package is added to the wafer by calling the PackageList method.

Definition at line 223 of file StSsdWafer.cc.

void StSsdWafer::addPoint ( StSsdPoint ptr)

Attaches the ptr point on that wafer.

A new point is added to the wafer by calling the PointList method.

Definition at line 229 of file StSsdWafer.cc.

void StSsdWafer::addStrip ( StSsdStrip ptr,
Int_t  iSide 
)

Attaches the ptr strip on the iSide of the wafer

A new strip is added to the wafer by calling the StripList method.

Definition at line 201 of file StSsdWafer.cc.

void StSsdWafer::doClusterisation ( Int_t *  NClusterPerSide,
StSsdClusterControl clusterControl 
)

Does the cluster finding in two steps for both sides :

  • a cluster finding
  • a cluster splitting

Definition at line 270 of file StSsdWafer.cc.

References doClusterSplitting(), and doFindCluster().

Int_t StSsdWafer::doClusterSplitting ( StSsdClusterControl clusterControl,
Int_t  iSide 
)

Does the cluster splitting on the side iSide. For each cluster in the cluster list, the array of signal values is built and transmitted to the splitCluster method. This method seems to remove clusters and not to add new clusters resulting from a cluster splitting into several.

Definition at line 395 of file StSsdWafer.cc.

Referenced by doClusterisation().

Int_t StSsdWafer::doFindCluster ( StSsdClusterControl clusterControl,
Int_t  iSide 
)

Does the cluster finding.

Does the cluster finding on the iSide. The strip list is scanned by increasing order (the list is assumed to be sorted). For a given strip (CurrentStrip) if its signal is above a given number of time its noise value a cluster list is formed. The strip list is scanned backward then forward to add the consecutive strips with a signal. The new cluster is updated each time a new strip is added. The scan starts with the first strip of the list and ends with the last strip. The threshold for the creation of a new cluster is given by SsdClusterControl.highCut. The SsdClusterControl table seems to be useless in this method (cleaning needed ?)

Definition at line 309 of file StSsdWafer.cc.

Referenced by doClusterisation().

Int_t StSsdWafer::doFindPackage ( ssdDimensions_st *  dimensions,
StSsdClusterControl clusterControl 
)

Determines the packages by comparing the cluster lists built for both sides. Still a mystery for me...

Definition at line 492 of file StSsdWafer.cc.

References geoMatched().

void StSsdWafer::doLorentzShift ( ssdDimensions_st *  dimensions,
Float_t  mShift_hole,
Float_t  mShift_elec 
)

Does the loretnz shift of the mean strip of the cluster Up->Up+2.47um Un->Un+12,45 um

Definition at line 446 of file StSsdWafer.cc.

Int_t StSsdWafer::geoMatched ( ssdDimensions_st *  dimensions,
StSsdCluster ptr1,
StSsdCluster ptr2 
)

Determines if two clusters are geometricaly compatible.

Determines if two clusters can be matched based on geometrical considerations

Definition at line 2674 of file StSsdWafer.cc.

Referenced by doFindPackage().

void StSsdWafer::init ( Int_t  rId,
Double_t *  rD,
Double_t *  rT,
Double_t *  rN,
Double_t *  rX 
)

The wafer initialisation. The geom info is taken from the method arguments. The lists are built. Only the WafersPosition are used at the moment. This part should be updated to take into account the relative position of the ladders, sectors and barrel.

Definition at line 126 of file StSsdWafer.cc.

Int_t StSsdWafer::setMatcheds ( ssdDimensions_st *  dimensions,
StSsdPoint Point,
StSsdCluster pMatched,
StSsdCluster nMatched 
)

Must be useful but for what ???

Definition at line 2689 of file StSsdWafer.cc.

void StSsdWafer::sortCluster ( )

The clusters of both sides are sorted

Definition at line 252 of file StSsdWafer.cc.

void StSsdWafer::sortPoint ( )

The points are sorted by what ??

Definition at line 261 of file StSsdWafer.cc.

void StSsdWafer::sortStrip ( )

The strips of both sides are sorted

Definition at line 243 of file StSsdWafer.cc.


The documentation for this class was generated from the following files: