/* *==================================================================== * * CBM Level 1 Reconstruction * * Authors: I.Kisel, S.Gorbunov * * e-mail : ikisel@kip.uni-heidelberg.de * *==================================================================== * * STS hit description for L1 * *==================================================================== */ #ifndef _CbmL1StsHit_h_ #define _CbmL1StsHit_h_ #include "CbmKFStsHit.h" #include using namespace std; #include "CbmL1TrackPar.h" struct CbmL1StsHit; struct CbmL1StsStrip { int iStation; int iSector, iStrip; bool isFront; vector vHits; }; struct CbmL1StsHit { CbmKFStsHit KFStsHit; CbmKFHit *GetKFHit(){ return &KFStsHit; } void Filter( CbmL1TrackPar &track, bool downstream ){ double qp0 = track.GetTrack()[4]; GetKFHit()->Filter( track, downstream, qp0 ); } // hit information int iStation; // STS station bool isStrip; int ExtIndex; // = (index in STS???Hit aray) int iPileUp; int iSector, iStripF, iStripB ; int indStripF, indStripB; // fit information //CbmL1KFPixelMeasurement FitPoint; //CbmL1KFUMeasurement FitStripF, FitStripB; // Monte Carlo information int MC_Point; // tracking information int first_hit, last_hit; int first_triplet, last_triplet; int level; bool used; double X, Y, Z; // double x() { return X; } double y() { return Y; } double z() { return Z; } static bool compareStation( CbmL1StsHit a, CbmL1StsHit b ) { return ( a.iStation < b.iStation ) || ( ( a.iStation == b.iStation ) && ( a.y() < b.y() ) ); } static bool pcompareStation( CbmL1StsHit *a, CbmL1StsHit *b ) { return ( a->iStation < b->iStation ) || ( ( a->iStation == b->iStation ) && ( a->y() < b->y() ) ); } static bool comparePDown( CbmL1StsHit *a, CbmL1StsHit *b ) { return ( a->iStation < b->iStation ) ; } static bool comparePUp( CbmL1StsHit *a, CbmL1StsHit *b ) { return ( a->iStation > b->iStation ) ; } }; #endif