CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
TTStubAlgorithm_cbc3< T > Class Template Reference

Class for "cbc3" algorithm to be used in TTStubBuilder. More...

#include <TTStubAlgorithm_cbc3.h>

Inheritance diagram for TTStubAlgorithm_cbc3< T >:
TTStubAlgorithm< T >

Public Member Functions

template<>
void PatternHitCorrelation (bool &aConfirmation, int &aDisplacement, int &anOffset, float &anROffset, float &anHardBend, const TTStub< Ref_Phase2TrackerDigi_ > &aTTStub) const
 Implementation of methods of TTStubAlgorithm_cbc3. More...
 
void PatternHitCorrelation (bool &aConfirmation, int &aDisplacement, int &anOffset, float &anROffset, float &anHardBend, const TTStub< T > &aTTStub) const override
 Matching operations. More...
 
template<>
void PatternHitCorrelation (bool &aConfirmation, int &aDisplacement, int &anOffset, float &anROffset, float &anHardBend, const TTStub< Ref_Phase2TrackerDigi_ > &aTTStub) const
 Close class. More...
 
 TTStubAlgorithm_cbc3 (const TrackerGeometry *const theTrackerGeom, const TrackerTopology *const theTrackerTopo, bool aPerformZMatching2S)
 Constructor. More...
 
 ~TTStubAlgorithm_cbc3 () override
 Destructor. More...
 
- Public Member Functions inherited from TTStubAlgorithm< T >
virtual std::string AlgorithmName () const
 Algorithm name. More...
 
 TTStubAlgorithm (const TrackerGeometry *const theTrackerGeom, const TrackerTopology *const theTrackerTopo, std::string fName)
 Constructors. More...
 
virtual ~TTStubAlgorithm ()
 Destructor. More...
 

Private Attributes

std::string className_
 
bool mPerformZMatching2S
 Data members. More...
 

Additional Inherited Members

- Protected Attributes inherited from TTStubAlgorithm< T >
std::string className_
 
const TrackerGeometry *const theTrackerGeom_
 Data members. More...
 
const TrackerTopology *const theTrackerTopo_
 

Detailed Description

template<typename T>
class TTStubAlgorithm_cbc3< T >

Class for "cbc3" algorithm to be used in TTStubBuilder.

HW emulation.

Author
Ivan Reid
Date
2013, Oct 16

Definition at line 31 of file TTStubAlgorithm_cbc3.h.

Constructor & Destructor Documentation

template<typename T>
TTStubAlgorithm_cbc3< T >::TTStubAlgorithm_cbc3 ( const TrackerGeometry *const  theTrackerGeom,
const TrackerTopology *const  theTrackerTopo,
bool  aPerformZMatching2S 
)
inline

Constructor.

Definition at line 40 of file TTStubAlgorithm_cbc3.h.

40  :
41  TTStubAlgorithm< T >( theTrackerGeom, theTrackerTopo, __func__ )
42  {
43  mPerformZMatching2S = aPerformZMatching2S;
44  }
Base class for any algorithm to be used in TTStubBuilder.
bool mPerformZMatching2S
Data members.
template<typename T>
TTStubAlgorithm_cbc3< T >::~TTStubAlgorithm_cbc3 ( )
inlineoverride

Destructor.

Definition at line 47 of file TTStubAlgorithm_cbc3.h.

References TTStubAlgorithm_cbc3< T >::PatternHitCorrelation().

47 {}

Member Function Documentation

template<>
void TTStubAlgorithm_cbc3< Ref_Phase2TrackerDigi_ >::PatternHitCorrelation ( bool &  aConfirmation,
int &  aDisplacement,
int &  anOffset,
float &  anROffset,
float &  anHardBend,
const TTStub< Ref_Phase2TrackerDigi_ > &  aTTStub 
) const

Implementation of methods of TTStubAlgorithm_cbc3.

Here, in the source file, the methods which do depend on the specific type <T> that can fit the template.

Author
Ivan Reid
Date
2013, Oct 16Matching operations

Definition at line 14 of file TTStubAlgorithm_cbc3.cc.

20 {
21  /*
24  MeasurementPoint mp0 = aTTStub.getClusterRef(0)->findAverageLocalCoordinates();
25  MeasurementPoint mp1 = aTTStub.getClusterRef(1)->findAverageLocalCoordinates();
26 
28  StackedTrackerDetId stDetId( aTTStub.getDetId() );
29 
30  //bool isPS = TTStubAlgorithm< Ref_Phase2TrackerDigi_ >::theStackedTracker->isPSModule( stDetId );
31 
33  const GeomDetUnit* det0 = TTStubAlgorithm< Ref_Phase2TrackerDigi_ >::theStackedTracker->idToDetUnit( stDetId, 0 );
34 
36  const PixelGeomDetUnit* pix0 = dynamic_cast< const PixelGeomDetUnit* >( det0 );
37  const PixelTopology* top0 = dynamic_cast< const PixelTopology* >( &(pix0->specificTopology()) );
38 
40  int myPosition = mp0.x();
41 
43  int chipSize = top0->rowsperroc();
44  int asicNumber = myPosition / chipSize; /// ASIC in module
45  int partitionSize = ceil( float(chipSize) / float( TTStubAlgorithm< Ref_Phase2TrackerDigi_ >::theStackedTracker->getPartitionsPerRoc() ) );
46  int partitionNumber = (myPosition % chipSize) / partitionSize; /// Partition in ASIC
47 
49  anOffset = TTStubAlgorithm< Ref_Phase2TrackerDigi_ >::theStackedTracker->getASICOffset( stDetId, asicNumber, partitionNumber );
50 
52  int aPosition = 2 * mp0.x();
53  int aBend = (2 * mp1.x()) - aPosition - anOffset;
54 
56  aDisplacement = (2 * mp1.x()) - aPosition;
57 
59  aConfirmation = ( (abs(4 * aBend - 1)) <= (2 * TTStubAlgorithm< Ref_Phase2TrackerDigi_ >::theStackedTracker->getDetUnitWindow(stDetId) ) );
60 
62  if ( !mPerformZMatching2S ) // && !isPS
63  return;
64 
65  //if ( !mPerformZMatchingPS && isPS )
66  // return;
67 
69  const GeomDetUnit* det1 = TTStubAlgorithm< Ref_Phase2TrackerDigi_ >::theStackedTracker->idToDetUnit( stDetId, 1 );
70  const PixelGeomDetUnit* pix1 = dynamic_cast< const PixelGeomDetUnit* >( det1 );
71  const PixelTopology* top1 = dynamic_cast< const PixelTopology* >( &(pix1->specificTopology()) );
72  int cols0 = top0->ncolumns();
73  int cols1 = top1->ncolumns();
74  int ratio = cols0/cols1; /// This assumes the ratio is integer!
75  int segment0 = floor( mp0.y() / ratio );
76  if ( segment0 != floor( mp1.y() ) )
77  aConfirmation = false;
78  */
79 }
template<typename T>
void TTStubAlgorithm_cbc3< T >::PatternHitCorrelation ( bool &  aConfirmation,
int &  aDisplacement,
int &  anOffset,
float &  anROffset,
float &  anHardBend,
const TTStub< T > &  aTTStub 
) const
overridevirtual

Matching operations.

Reimplemented from TTStubAlgorithm< T >.

Referenced by TTStubAlgorithm_cbc3< T >::~TTStubAlgorithm_cbc3().

template<>
void TTStubAlgorithm_cbc3< Ref_Phase2TrackerDigi_ >::PatternHitCorrelation ( bool &  aConfirmation,
int &  aDisplacement,
int &  anOffset,
float &  anROffset,
float &  anHardBend,
const TTStub< Ref_Phase2TrackerDigi_ > &  aTTStub 
) const

Close class.

Implementation of methods

Here, in the header file, the methods which do not depend on the specific type <T> that can fit the template. Other methods, with type-specific features, are implemented in the source file.Matching operations

Member Data Documentation

template<typename T>
std::string TTStubAlgorithm_cbc3< T >::className_
private

Definition at line 36 of file TTStubAlgorithm_cbc3.h.

template<typename T>
bool TTStubAlgorithm_cbc3< T >::mPerformZMatching2S
private

Data members.

Definition at line 35 of file TTStubAlgorithm_cbc3.h.

Referenced by ES_TTStubAlgorithm_cbc3< T >::produce().