StRoot
1
|
#include <StSsdWafer.hh>
Public Member Functions | |
StSsdWafer (Int_t id) | |
StSsdWafer (const StSsdWafer &originalWafer) | |
StSsdWafer & | operator= (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) |
StSsdClusterList * | getClusterP () |
Returns the P-side cluster list attached to this wafer. | |
StSsdClusterList * | getClusterN () |
Returns the N-side cluster list attached to this wafer. | |
StSsdPointList * | getDeadHits (Float_t ActiveLargeEdge, Float_t ActiveSmallEdge, Float_t Test) |
StSsdPointList * | getNonActivePointBorder (Float_t ActiveLargeEdge, Float_t ActiveSmallEdge) |
StSsdPointList * | getNonActivePointTriangle (Float_t Test) |
StSsdStripList * | getStripP () |
Returns the P-side strip list attached to this wafer. | |
StSsdStripList * | getStripN () |
Returns the N-side strip list attached to this wafer. | |
StSsdPackageList * | getPackage () |
Returns the package list attached to this wafer. | |
StSsdPointList * | getPoint () |
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) |
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.
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 :
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.