diff --git a/StRoot/StEvent/StFttCluster.cxx b/StRoot/StEvent/StFttCluster.cxx index 932a78f6380..8fb507c13b5 100644 --- a/StRoot/StEvent/StFttCluster.cxx +++ b/StRoot/StEvent/StFttCluster.cxx @@ -19,7 +19,10 @@ mSumAdc(0.0), mX(0.0), mSigma(0.0), mRawHits(0), -mNeighbors(0) +mNeighbors(0), +mPoints(0), +mIdTruth(0), +mQaTruth(0) { } @@ -58,6 +61,8 @@ operator<<( std::ostream &os, const StFttCluster& rh ) os << "\tsumAdc = " << rh.sumAdc() << endl; os << "\tx = " << rh.x() << endl; os << "\tsigma = " << rh.sigma() << endl; + os << "\tidTruth = " << rh.idTruth() << endl; + os << "\tqaTruth = " << rh.qaTruth() << endl; os << ")" << endl; return os; } diff --git a/StRoot/StEvent/StFttCluster.h b/StRoot/StEvent/StFttCluster.h index d478c798f32..8fcc4341901 100644 --- a/StRoot/StEvent/StFttCluster.h +++ b/StRoot/StEvent/StFttCluster.h @@ -28,6 +28,7 @@ class StFttCluster : public StObject { float x() const; // Mean x ("center of gravity") in local grid coordinate (1st moment). float sigma() const; // Maximum 2nd moment (along major axis). UShort_t idTruth() const { return mIdTruth; } // Get the truth ID + UShort_t qaTruth() const { return mQaTruth; } // Get the truth quality void setId(int cluid); void setPlane(UChar_t plane); @@ -39,6 +40,7 @@ class StFttCluster : public StObject { void setX(float x0); void setSigma(float sigma); void setIdTruth(UShort_t id) { mIdTruth = id; } + void setQaTruth(UShort_t qa) { mQaTruth = qa; } StPtrVecFttRawHit& rawHits(); const StPtrVecFttRawHit& rawHits() const; @@ -65,8 +67,9 @@ class StFttCluster : public StObject { StPtrVecFttCluster mNeighbors; // Neighbor clusters StPtrVecFttPoint mPoints; // Fitted points (photons) in the cluster UShort_t mIdTruth=0; // Truth ID + UShort_t mQaTruth=0; // Truth Quality - ClassDef(StFttCluster, 3) + ClassDef(StFttCluster, 4) }; std::ostream& operator << ( std::ostream&, const StFttCluster& clu ); // Printing operator diff --git a/StRoot/StEvent/StFttPoint.cxx b/StRoot/StEvent/StFttPoint.cxx index c9441860543..a06d4f8e72a 100644 --- a/StRoot/StEvent/StFttPoint.cxx +++ b/StRoot/StEvent/StFttPoint.cxx @@ -20,8 +20,8 @@ void StFttPoint::print(int opt) { } -int StFttPoint::nClusters() const { - int n = 0; +size_t StFttPoint::nClusters() const { + size_t n = 0; for ( size_t i = 0; i < 4; i++ ){ if ( mClusters[i] != nullptr ) n++; diff --git a/StRoot/StEvent/StFttPoint.h b/StRoot/StEvent/StFttPoint.h index bab29a1971f..4add9090ef0 100644 --- a/StRoot/StEvent/StFttPoint.h +++ b/StRoot/StEvent/StFttPoint.h @@ -28,10 +28,11 @@ class StFttPoint : public StObject { UChar_t quadrant() const; // detector quadrant. float x() const; // x position in cell unit at which point intersects the sub-detector in local coordinate float y() const; // y position in cell unit at which point intersects the sub-detector in local coordinate - int nClusters() const; // Number of points in the parent cluster. + size_t nClusters() const; // Number of points in the parent cluster. StFttCluster* cluster( size_t i); // Parent cluster of the photon. const StThreeVectorD& xyz() const; // XYZ position in global STAR coordinate UShort_t idTruth() const { return mIdTruth; } // Get the truth ID + UShort_t qaTruth() const { return mQaTruth; } // Get the truth quality void setPlane(UChar_t plane); void setQuadrant(UChar_t quad); @@ -40,6 +41,7 @@ class StFttPoint : public StObject { void addCluster(StFttCluster* cluster, UChar_t dir); void setXYZ(const StThreeVectorD& p3); void setIdTruth(UShort_t id) { mIdTruth = id; } + void setQaTruth(UShort_t qa) { mQaTruth = qa; } void print(int option=0); @@ -51,8 +53,9 @@ class StFttPoint : public StObject { StFttCluster *mClusters[4]; StThreeVectorD mXYZ; // Photon position in STAR coordinate UShort_t mIdTruth=0; // Truth ID + UShort_t mQaTruth=0; // Truth quality - ClassDef(StFttPoint, 2) + ClassDef(StFttPoint, 3) }; inline UChar_t StFttPoint::plane() const { return mPlane; } diff --git a/StRoot/StEvent/StFttRawHit.cxx b/StRoot/StEvent/StFttRawHit.cxx index b92f3a08f1c..d32f4018c8e 100644 --- a/StRoot/StEvent/StFttRawHit.cxx +++ b/StRoot/StEvent/StFttRawHit.cxx @@ -27,7 +27,9 @@ mPlane(255), mQuadrant(kFttUnknownQuadrant), mRow(255), mStrip(255), -mOrientation(kFttUnknownOrientation) +mOrientation(kFttUnknownOrientation), +mIdTruth(0), +mQaTruth(0) { /*noop*/ } StFttRawHit::StFttRawHit( UChar_t mSector, UChar_t mRDO, UChar_t mFEB, @@ -79,7 +81,10 @@ operator<<( ostream &os, const StFttRawHit& rh ) os << "\tmQuadrant = " << (int)rh.quadrant() << endl; os << "\tmRow = " << (int)rh.row() << endl; os << "\tmStrip = " << (int)rh.strip() << endl; - os << "\tmOrientation = " << (int)rh.orientation() << " ) " << endl; + os << "\tmOrientation = " << (int)rh.orientation() << endl; + os << "\tidTruth = " << (int)rh.idTruth() << endl; + os << "\tqaTruth = " << (int)rh.qaTruth() << endl; + os << " ) " << endl; return os; diff --git a/StRoot/StEvent/StFttRawHit.h b/StRoot/StEvent/StFttRawHit.h index 8d7e2820254..12928994fd0 100644 --- a/StRoot/StEvent/StFttRawHit.h +++ b/StRoot/StEvent/StFttRawHit.h @@ -36,8 +36,10 @@ class StFttRawHit : public StObject { void setMapping( UChar_t mPlane, UChar_t mQuadrant, UChar_t mRow, UChar_t mStrip, UChar_t mOrientation ); void setTime( Short_t mTime ) { this->mTime = mTime; } - // consant getters + void setIdTruth( UShort_t id ) { mIdTruth = id; } + void setQaTruth( UShort_t qa ) { mQaTruth = qa; } + // consant getters UChar_t sector() const; UChar_t rdo() const; UChar_t feb() const; @@ -54,6 +56,8 @@ class StFttRawHit : public StObject { UChar_t row() const; UChar_t strip() const; UChar_t orientation() const; + UShort_t idTruth() const { return mIdTruth; } + UShort_t qaTruth() const { return mQaTruth; } protected: UChar_t mSector; @@ -74,10 +78,10 @@ class StFttRawHit : public StObject { UChar_t mStrip; UChar_t mOrientation; - // StFttCluster *mCluster; - // StFttPoint *mPoint; + UShort_t mIdTruth=0; // Truth ID + UShort_t mQaTruth=0; // Truth Quality - ClassDef( StFttRawHit, 3 ); + ClassDef( StFttRawHit, 4 ); }; ostream& operator << ( ostream&, const StFttRawHit& digi ); // Printing operator diff --git a/StRoot/StMuDSTMaker/COMMON/StMuFttCluster.cxx b/StRoot/StMuDSTMaker/COMMON/StMuFttCluster.cxx index 05bdc6992fb..720d045095f 100644 --- a/StRoot/StMuDSTMaker/COMMON/StMuFttCluster.cxx +++ b/StRoot/StMuDSTMaker/COMMON/StMuFttCluster.cxx @@ -22,7 +22,10 @@ mSumAdc(0.0), mX(0.0), mSigma(0.0), mRawHits(0), -mNeighbors(0) +mNeighbors(0), +mPoints(0), +mIdTruth(0), +mQaTruth(0) { } @@ -53,4 +56,6 @@ void StMuFttCluster::set( StFttCluster * clu ){ mSumAdc = clu->sumAdc(); mX = clu->x(); mSigma = clu->sigma(); + mIdTruth = clu->idTruth(); + mQaTruth = clu->qaTruth(); } \ No newline at end of file diff --git a/StRoot/StMuDSTMaker/COMMON/StMuFttCluster.h b/StRoot/StMuDSTMaker/COMMON/StMuFttCluster.h index 7780afc9c8f..5288024131b 100644 --- a/StRoot/StMuDSTMaker/COMMON/StMuFttCluster.h +++ b/StRoot/StMuDSTMaker/COMMON/StMuFttCluster.h @@ -25,6 +25,8 @@ class StMuFttCluster : public TObject { float sumAdc() const; float x() const; // Mean x ("center of gravity") in local grid coordinate (1st moment). float sigma() const; // Maximum 2nd moment (along major axis). + UShort_t idTruth() const { return mIdTruth; } // Get the truth ID + UShort_t qaTruth() const { return 0; } // Get the truth quality void setId(int cluid); void setPlane(UChar_t plane); @@ -34,6 +36,8 @@ class StMuFttCluster : public TObject { void setSumAdc(int theSumAdc); void setX(float x0); void setSigma(float sigma); + void setIdTruth(UShort_t id) { mIdTruth = id; } + void setQaTruth(UShort_t qa) { mQaTruth = qa; } TRefArray* rawHits(); const TRefArray* rawHits() const; @@ -60,8 +64,10 @@ class StMuFttCluster : public TObject { TRefArray mRawHits; // Tower hits of the current cluster TRefArray mNeighbors; // Neighbor clusters TRefArray mPoints; // Fitted points (photons) in the cluster + UShort_t mIdTruth=0; // Truth ID + UShort_t mQaTruth=0; // Truth quality - ClassDef(StMuFttCluster, 1) + ClassDef(StMuFttCluster, 3) }; diff --git a/StRoot/StMuDSTMaker/COMMON/StMuFttPoint.cxx b/StRoot/StMuDSTMaker/COMMON/StMuFttPoint.cxx index 99657086170..8e6685b62fd 100644 --- a/StRoot/StMuDSTMaker/COMMON/StMuFttPoint.cxx +++ b/StRoot/StMuDSTMaker/COMMON/StMuFttPoint.cxx @@ -27,4 +27,6 @@ void StMuFttPoint::set( StFttPoint *point ){ mX = point->x(); mY = point->y(); mXYZ = TVector3( point->xyz().x(), point->xyz().y(), point->xyz().z() ); + mIdTruth = point->idTruth(); + mQaTruth = point->qaTruth(); } // set from StEvent \ No newline at end of file diff --git a/StRoot/StMuDSTMaker/COMMON/StMuFttPoint.h b/StRoot/StMuDSTMaker/COMMON/StMuFttPoint.h index d5c10651ad8..88703f29ae6 100644 --- a/StRoot/StMuDSTMaker/COMMON/StMuFttPoint.h +++ b/StRoot/StMuDSTMaker/COMMON/StMuFttPoint.h @@ -32,6 +32,8 @@ class StMuFttPoint : public TObject { int nParentClusters() const; // Number of points in the parent cluster. // StMuFttCluster* cluster( size_t i); // Parent cluster of the photon. const TVector3& xyz() const; // XYZ position in global STAR coordinate + UShort_t idTruth() const { return mIdTruth; } // Get the truth ID + UShort_t qaTruth() const { return mQaTruth; } // Get the truth quality void setPlane(UChar_t plane); void setQuadrant(UChar_t quad); @@ -39,6 +41,8 @@ class StMuFttPoint : public TObject { void setY(float y); // void addCluster(StMuFttCluster* cluster); void setXYZ(const TVector3& p3); + void setIdTruth(UShort_t id) { mIdTruth = id; } + void setQaTruth(UShort_t qa) { mQaTruth = qa; } void print(int option=0); @@ -52,8 +56,10 @@ class StMuFttPoint : public TObject { Float_t mY=0.0; // y-position in local coordinate TRefArray mClusters=0; // parent clusters (could be up to 3?) TVector3 mXYZ; // Photon position in STAR coordinate + UShort_t mIdTruth=0; // Truth ID + UShort_t mQaTruth=0; // Truth quality - ClassDef(StMuFttPoint, 1) + ClassDef(StMuFttPoint, 3) }; inline UChar_t StMuFttPoint::plane() const { return mPlane; } diff --git a/StRoot/StMuDSTMaker/COMMON/StMuFttRawHit.cxx b/StRoot/StMuDSTMaker/COMMON/StMuFttRawHit.cxx index 980b2a335f7..89be88c5aef 100644 --- a/StRoot/StMuDSTMaker/COMMON/StMuFttRawHit.cxx +++ b/StRoot/StMuDSTMaker/COMMON/StMuFttRawHit.cxx @@ -27,7 +27,9 @@ mPlane(255), mQuadrant(kFttUnknownQuadrant), mRow(255), mStrip(255), -mOrientation(kFttUnknownOrientation) +mOrientation(kFttUnknownOrientation), +mIdTruth(0), +mQaTruth(0) { /*noop*/ } StMuFttRawHit::StMuFttRawHit( StFttRawHit * stHit ){ @@ -66,6 +68,8 @@ void StMuFttRawHit::setMapping( UChar_t mPlane, UChar_t mQuadrant, void StMuFttRawHit::set( StFttRawHit * stHit ){ setRaw( stHit->sector(), stHit->rdo(), stHit->feb(), stHit->vmm(), stHit->channel(), stHit->adc(), stHit->bcid(), stHit->tb(), stHit->dbcid()); setMapping( stHit->plane(), stHit->quadrant(), stHit->row(), stHit->strip(), stHit->orientation() ); + setIdTruth( stHit->idTruth() ); + setQaTruth( stHit->qaTruth() ); } // set from StEvent object @@ -88,6 +92,9 @@ operator<<( ostream &os, const StMuFttRawHit& rh ) os << "\tmQuadrant = " << (int)rh.quadrant() << endl; os << "\tmRow = " << (int)rh.row() << endl; os << "\tmStrip = " << (int)rh.strip() << endl; - os << "\tmOrientation = " << (int)rh.orientation() << " ) " << endl; + os << "\tmOrientation = " << (int)rh.orientation() << endl; + os << "\tidTruth = " << (int)rh.idTruth() << endl; + os << "\tqaTruth = " << (int)rh.qaTruth() << endl; + os << " ) " << endl; return os; } // operator<< ostream \ No newline at end of file diff --git a/StRoot/StMuDSTMaker/COMMON/StMuFttRawHit.h b/StRoot/StMuDSTMaker/COMMON/StMuFttRawHit.h index 7d049fb66ee..c15e562aa49 100644 --- a/StRoot/StMuDSTMaker/COMMON/StMuFttRawHit.h +++ b/StRoot/StMuDSTMaker/COMMON/StMuFttRawHit.h @@ -37,9 +37,10 @@ class StMuFttRawHit : public TObject { void setMapping( UChar_t mPlane, UChar_t mQuadrant, UChar_t mRow, UChar_t mStrip, UChar_t mOrientation ); void set( StFttRawHit * stHit ); + void setIdTruth( UShort_t id ) { mIdTruth = id; } + void setQaTruth( UShort_t qa ) { mQaTruth = qa; } // consant getters - UChar_t sector() const; UChar_t rdo() const; UChar_t feb() const; @@ -55,6 +56,8 @@ class StMuFttRawHit : public TObject { UChar_t row() const; UChar_t strip() const; UChar_t orientation() const; + UShort_t idTruth() const { return mIdTruth; } + UShort_t qaTruth() const { return mQaTruth; } protected: UChar_t mSector; @@ -74,10 +77,10 @@ class StMuFttRawHit : public TObject { UChar_t mStrip; UChar_t mOrientation; - // StFttCluster *mCluster; - // StFttPoint *mPoint; + UShort_t mIdTruth; + UShort_t mQaTruth; - ClassDef( StMuFttRawHit, 2 ); + ClassDef( StMuFttRawHit, 3 ); }; std::ostream& operator << ( std::ostream&, const StMuFttRawHit& hit ); // Printing operator