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, const TTStub< Ref_Phase2TrackerDigi_ > &aTTStub) const
 Implementation of methods of TTStubAlgorithm_cbc3. More...
 
void PatternHitCorrelation (bool &aConfirmation, int &aDisplacement, int &anOffset, const TTStub< T > &aTTStub) const
 Matching operations. More...
 
template<>
void PatternHitCorrelation (bool &aConfirmation, int &aDisplacement, int &anOffset, 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 ()
 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 ( )
inline

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,
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.

18 {
19  /*
22  MeasurementPoint mp0 = aTTStub.getClusterRef(0)->findAverageLocalCoordinates();
23  MeasurementPoint mp1 = aTTStub.getClusterRef(1)->findAverageLocalCoordinates();
24 
26  StackedTrackerDetId stDetId( aTTStub.getDetId() );
27 
28  //bool isPS = TTStubAlgorithm< Ref_Phase2TrackerDigi_ >::theStackedTracker->isPSModule( stDetId );
29 
31  const GeomDetUnit* det0 = TTStubAlgorithm< Ref_Phase2TrackerDigi_ >::theStackedTracker->idToDetUnit( stDetId, 0 );
32 
34  const PixelGeomDetUnit* pix0 = dynamic_cast< const PixelGeomDetUnit* >( det0 );
35  const PixelTopology* top0 = dynamic_cast< const PixelTopology* >( &(pix0->specificTopology()) );
36 
38  int myPosition = mp0.x();
39 
41  int chipSize = top0->rowsperroc();
42  int asicNumber = myPosition / chipSize; /// ASIC in module
43  int partitionSize = ceil( float(chipSize) / float( TTStubAlgorithm< Ref_Phase2TrackerDigi_ >::theStackedTracker->getPartitionsPerRoc() ) );
44  int partitionNumber = (myPosition % chipSize) / partitionSize; /// Partition in ASIC
45 
47  anOffset = TTStubAlgorithm< Ref_Phase2TrackerDigi_ >::theStackedTracker->getASICOffset( stDetId, asicNumber, partitionNumber );
48 
50  int aPosition = 2 * mp0.x();
51  int aBend = (2 * mp1.x()) - aPosition - anOffset;
52 
54  aDisplacement = (2 * mp1.x()) - aPosition;
55 
57  aConfirmation = ( (abs(4 * aBend - 1)) <= (2 * TTStubAlgorithm< Ref_Phase2TrackerDigi_ >::theStackedTracker->getDetUnitWindow(stDetId) ) );
58 
60  if ( !mPerformZMatching2S ) // && !isPS
61  return;
62 
63  //if ( !mPerformZMatchingPS && isPS )
64  // return;
65 
67  const GeomDetUnit* det1 = TTStubAlgorithm< Ref_Phase2TrackerDigi_ >::theStackedTracker->idToDetUnit( stDetId, 1 );
68  const PixelGeomDetUnit* pix1 = dynamic_cast< const PixelGeomDetUnit* >( det1 );
69  const PixelTopology* top1 = dynamic_cast< const PixelTopology* >( &(pix1->specificTopology()) );
70  int cols0 = top0->ncolumns();
71  int cols1 = top1->ncolumns();
72  int ratio = cols0/cols1; /// This assumes the ratio is integer!
73  int segment0 = floor( mp0.y() / ratio );
74  if ( segment0 != floor( mp1.y() ) )
75  aConfirmation = false;
76  */
77 }
template<typename T>
void TTStubAlgorithm_cbc3< T >::PatternHitCorrelation ( bool &  aConfirmation,
int &  aDisplacement,
int &  anOffset,
const TTStub< T > &  aTTStub 
) const
virtual

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,
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().