CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
CTPPSDiamondRecHitProducerAlgorithm Class Reference

#include <CTPPSDiamondRecHitProducerAlgorithm.h>

Public Member Functions

void build (const CTPPSGeometry *, const edm::DetSetVector< CTPPSDiamondDigi > &, edm::DetSetVector< CTPPSDiamondRecHit > &)
 
 CTPPSDiamondRecHitProducerAlgorithm (const edm::ParameterSet &conf)
 

Private Attributes

int t_shift_
 
double ts_to_ns_
 Conversion constant between HPTDC time slice and absolute time (in ns) More...
 

Detailed Description

Definition at line 23 of file CTPPSDiamondRecHitProducerAlgorithm.h.

Constructor & Destructor Documentation

CTPPSDiamondRecHitProducerAlgorithm::CTPPSDiamondRecHitProducerAlgorithm ( const edm::ParameterSet conf)

Definition at line 13 of file CTPPSDiamondRecHitProducerAlgorithm.cc.

13  :
14  ts_to_ns_( iConfig.getParameter<double>( "timeSliceNs" ) ),
15  t_shift_( iConfig.getParameter<int>( "timeShift" ) )
16 {}
double ts_to_ns_
Conversion constant between HPTDC time slice and absolute time (in ns)

Member Function Documentation

void CTPPSDiamondRecHitProducerAlgorithm::build ( const CTPPSGeometry geom,
const edm::DetSetVector< CTPPSDiamondDigi > &  input,
edm::DetSetVector< CTPPSDiamondRecHit > &  output 
)

Definition at line 19 of file CTPPSDiamondRecHitProducerAlgorithm.cc.

References edm::DetSetVector< T >::begin(), edm::DetSetVector< T >::end(), edm::DetSetVector< T >::find_or_insert(), CTPPSGeometry::getSensor(), DetGeomDesc::params(), edm::DetSet< T >::push_back(), lumiQTWidget::t, cscNeutronWriter_cfi::t0, t_shift_, DetGeomDesc::translation(), and ts_to_ns_.

Referenced by CTPPSDiamondRecHitProducer::produce().

20 {
21  for ( edm::DetSetVector<CTPPSDiamondDigi>::const_iterator vec = input.begin(); vec != input.end(); ++vec ) {
22  const CTPPSDiamondDetId detid( vec->detId() );
23 
24  if ( detid.channel() > 20 ) continue; // VFAT-like information, to be ignored by CTPPSDiamondRecHitProducer
25 
26  const DetGeomDesc* det = geom->getSensor( detid );
27  const float x_pos = det->translation().x(),
28  x_width = 2.0 * det->params().at( 0 ), // parameters stand for half the size
29  y_pos = det->translation().y(),
30  y_width = 2.0 * det->params().at( 1 );
31 
32  edm::DetSet<CTPPSDiamondRecHit>& rec_hits = output.find_or_insert( detid );
33 
34  for ( edm::DetSet<CTPPSDiamondDigi>::const_iterator digi = vec->begin(); digi != vec->end(); ++digi ) {
35  if ( digi->getLeadingEdge()==0 and digi->getTrailingEdge()==0 ) { continue; }
36 
37  const int t = digi->getLeadingEdge();
38  const int t0 = ( t-t_shift_ ) % 1024;
39  const int time_slice = ( t-t_shift_ ) / 1024;
40 
41  int tot = 0;
42  if ( t!=0 && digi->getTrailingEdge()!=0 ) tot = ( (int) digi->getTrailingEdge() ) - t;
43 
44  rec_hits.push_back( CTPPSDiamondRecHit( x_pos, x_width, y_pos, y_width, // spatial information
45  ( t0 * ts_to_ns_ ),
46  ( tot * ts_to_ns_),
47  time_slice,
48  digi->getHPTDCErrorFlags(),
49  digi->getMultipleHit() ) );
50  }
51  }
52 }
void push_back(const T &t)
Definition: DetSet.h:68
Reconstructed hit in diamond detectors.
reference find_or_insert(det_id_type id)
Definition: DetSetVector.h:254
const DetGeomDesc * getSensor(unsigned int id) const
returns geometry of a detector performs necessary checks, returns NULL if fails
double ts_to_ns_
Conversion constant between HPTDC time slice and absolute time (in ns)
Geometrical description of a sensor.
Definition: DetGeomDesc.h:37
DDTranslation translation() const
Definition: DetGeomDesc.h:84
iterator end()
Return the off-the-end iterator.
Definition: DetSetVector.h:361
std::vector< double > params() const
Definition: DetGeomDesc.h:89
Detector ID class for CTPPS Timing Diamond detectors. Bits [19:31] : Assigend in CTPPSDetId Calss Bit...
iterator begin()
Return an iterator to the first DetSet.
Definition: DetSetVector.h:346
collection_type::const_iterator const_iterator
Definition: DetSet.h:33
collection_type::const_iterator const_iterator
Definition: DetSetVector.h:104

Member Data Documentation

int CTPPSDiamondRecHitProducerAlgorithm::t_shift_
private

Definition at line 33 of file CTPPSDiamondRecHitProducerAlgorithm.h.

Referenced by build().

double CTPPSDiamondRecHitProducerAlgorithm::ts_to_ns_
private

Conversion constant between HPTDC time slice and absolute time (in ns)

Definition at line 32 of file CTPPSDiamondRecHitProducerAlgorithm.h.

Referenced by build().