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
StSstWafer Class Reference
Inheritance diagram for StSstWafer:

Public Member Functions

 StSstWafer (Int_t id)
 
 StSstWafer (const StSstWafer &originalWafer)
 
StSstWaferoperator= (const StSstWafer &originalWafer)
 
void init (Int_t rId, Double_t *rD, Double_t *rN, Double_t *rT, Double_t *rX)
 
void setID (Int_t i)
 
void setDriftDirection (Double_t x1, Double_t x2, Double_t x3)
 
void setNormalDirection (Double_t x1, Double_t x2, Double_t x3)
 
void setTransverseDirection (Double_t x1, Double_t x2, Double_t x3)
 
void setCenterPosition (Double_t x1, Double_t x2, Double_t x3)
 
StSstClusterListgetClusterP ()
 Returns the P-side cluster list attached to this wafer.
 
StSstClusterListgetClusterN ()
 Returns the N-side cluster list attached to this wafer.
 
StSstPointListgetDeadHits (Float_t ActiveLargeEdge, Float_t ActiveSmallEdge, Float_t Test)
 
StSstPointListgetNonActivePointBorder (Float_t ActiveLargeEdge, Float_t ActiveSmallEdge)
 
StSstPointListgetNonActivePointTriangle (Float_t Test)
 
StSstStripListgetStripP ()
 Returns the P-side strip list attached to this wafer.
 
StSstStripListgetStripN ()
 Returns the N-side strip list attached to this wafer.
 
StSstPackageListgetPackage ()
 Returns the package list attached to this wafer.
 
StSstPointListgetPoint ()
 Returns the point list attached to this wafer.
 
Int_t getIdWafer ()
 
Int_t getId ()
 
Double_t d (Int_t i)
 
Double_t n (Int_t i)
 
Double_t t (Int_t i)
 
Double_t x (Int_t i)
 
void addCluster (StSstCluster *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 (StSstPackage *ptr)
 Attaches the ptr package on that wafer. More...
 
void addPoint (StSstPoint *ptr)
 Attaches the ptr point on that wafer. More...
 
void addStrip (StSstStrip *ptr, Int_t iSide)
 
Int_t geoMatched (sstDimensions_st *dimensions, StSstCluster *ptr1, StSstCluster *ptr2)
 Determines if two clusters are geometricaly compatible. More...
 
Double_t matchDistr (StSstClusterControl *clusterControl, Double_t x)
 
void setIsActive (Int_t rIsActive, Int_t iSide, Int_t rNStrip)
 
void setMatcheds (sstDimensions_st *dimensions, StSstPoint *Point, StSstCluster *pMatched, StSstCluster *nMatched)
 
void setPedestalSigmaStrip (Int_t iStrip, Int_t iSide, Int_t iPedestal, Int_t iSigma, StSstDynamicControl *dynamicControl)
 
void Reset ()
 
void sortCluster ()
 
void sortNoise ()
 
void sortPoint ()
 
void sortStrip ()
 
void doClusterisation (Int_t *numberOfCluster, StSstClusterControl *clusterControl)
 
Int_t doClusterSplitting (StSstClusterControl *clusterControl, Int_t iSide)
 
Int_t doFindCluster (StSstClusterControl *clusterControl, Int_t iSide)
 Does the cluster finding. More...
 
Int_t doFindPackage (sstDimensions_st *dimensions, StSstClusterControl *clusterControl)
 
Int_t doSolvePackage (sstDimensions_st *dimensions, StSstClusterControl *clusterControl, Float_t CalibArray)
 
Int_t doSolvePerfect (sstDimensions_st *dimensions, StSstClusterControl *clusterControl, Float_t CalibArray)
 
void doStatPerfect (Int_t nPerfectPoint, StSstClusterControl *clusterControl)
 
void doLorentzShift (sstDimensions_st *dimensions, Float_t mShift_hole, Float_t mShift_elec)
 
void doLorentzShiftSide (Float_t shift, Float_t pitch, StSstClusterList *currentList)
 
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 (sstDimensions_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 (StSstPoint *ptr, Int_t iSide, Float_t mShift_hole, Float_t mShift_elec, Float_t pitch)
 
void doCleanListStrip (StSstStripList *myListStrip)
 
void SetDebug (Int_t k=0)
 
Int_t Debug ()
 

Static Public Member Functions

static Double_t myErf (Double_t x)
 

Detailed Description

Definition at line 54 of file StSstWafer.hh.

Member Function Documentation

void StSstWafer::addCluster ( StSstCluster 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 176 of file StSstWafer.cc.

void StSstWafer::addPackage ( StSstPackage ptr)

Attaches the ptr package on that wafer.

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

Definition at line 187 of file StSstWafer.cc.

void StSstWafer::addPoint ( StSstPoint ptr)

Attaches the ptr point on that wafer.

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

Definition at line 193 of file StSstWafer.cc.

void StSstWafer::addStrip ( StSstStrip 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 165 of file StSstWafer.cc.

void StSstWafer::doClusterisation ( Int_t *  NClusterPerSide,
StSstClusterControl clusterControl 
)
  • a cluster finding
  • a cluster splitting

Definition at line 232 of file StSstWafer.cc.

References doClusterSplitting(), and doFindCluster().

Int_t StSstWafer::doClusterSplitting ( StSstClusterControl 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 369 of file StSstWafer.cc.

Referenced by doClusterisation().

Int_t StSstWafer::doFindCluster ( StSstClusterControl 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 ?)
  • Update for 2014 data : 1) there are no intrinsic strip rms 2) decision based on (signal/rms) > highCut is somehow obsolete 3) use decision based on (signal) > threshold to decide whether a strip is a clusterSeed 4) use 2 threshold for P and N side separately
  • Update for 2015 data : 1) remove the threshold constants because cut is too strong for run 15 2) instead we use as originally highCut from clusterControl table 3) DB entries have been updated accordingly : 10 for run 14, 5 for run 15

Definition at line 281 of file StSstWafer.cc.

Referenced by doClusterisation().

Int_t StSstWafer::doFindPackage ( sstDimensions_st *  dimensions,
StSstClusterControl clusterControl 
)

Determines the packages by comparing the cluster lists built for both sides.

Definition at line 441 of file StSstWafer.cc.

References geoMatched().

void StSstWafer::doLorentzShift ( sstDimensions_st *  dimensions,
Float_t  mShift_hole,
Float_t  mShift_elec 
)

Does the loretnz shift of the mean strip of the cluster

Definition at line 418 of file StSstWafer.cc.

Int_t StSstWafer::geoMatched ( sstDimensions_st *  dimensions,
StSstCluster ptr1,
StSstCluster ptr2 
)

Determines if two clusters are geometricaly compatible.

Determines if two clusters can be matched based on geometrical considerations

Definition at line 2610 of file StSstWafer.cc.

Referenced by doFindPackage().

void StSstWafer::setMatcheds ( sstDimensions_st *  dimensions,
StSstPoint Point,
StSstCluster pMatched,
StSstCluster nMatched 
)

Must be useful but for what ???

Definition at line 2625 of file StSstWafer.cc.

void StSstWafer::sortCluster ( )

The clusters of both sides are sorted

Definition at line 216 of file StSstWafer.cc.

void StSstWafer::sortPoint ( )

The points are sorted by their oder in the StSstPointList

Definition at line 225 of file StSstWafer.cc.

void StSstWafer::sortStrip ( )

The strips of both sides are sorted

Definition at line 207 of file StSstWafer.cc.


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