Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:19:46

0001 #include "L1Trigger/DTTriggerPhase2/interface/DTprimitive.h"
0002 #include "L1Trigger/DTTriggerPhase2/interface/constants.h"
0003 #include <iostream>
0004 #include <iomanip>
0005 
0006 using namespace cmsdt;
0007 //------------------------------------------------------------------
0008 //--- Constructors and destructor
0009 //------------------------------------------------------------------
0010 DTPrimitive::DTPrimitive() {
0011   cameraId_ = -1;
0012   superLayerId_ = -1;
0013   layerId_ = -1;
0014   channelId_ = -1;
0015   tdcTimeStamp_ = -1;
0016   orbit_ = -1;
0017   timeCorrection_ = 0;
0018   laterality_ = NONE;
0019 
0020   for (int i = 0; i < PAYLOAD_ENTRIES; i++)
0021     setPayload(0.0, i);
0022 }
0023 
0024 DTPrimitive::DTPrimitive(DTPrimitivePtr& ptr) {
0025   setTimeCorrection(ptr->timeCorrection());
0026   setTDCTimeStamp(ptr->tdcTimeStamp());
0027   setOrbit(ptr->orbit());
0028   setChannelId(ptr->channelId());
0029   setLayerId(ptr->layerId());
0030   setCameraId(ptr->cameraId());
0031   setSuperLayerId(ptr->superLayerId());
0032   setLaterality(ptr->laterality());
0033 
0034   for (int i = 0; i < PAYLOAD_ENTRIES; i++)
0035     setPayload(ptr->payLoad(i), i);
0036 }
0037 
0038 DTPrimitive::DTPrimitive(DTPrimitive* ptr) {
0039   setTimeCorrection(ptr->timeCorrection());
0040   setTDCTimeStamp(ptr->tdcTimeStamp());
0041   setOrbit(ptr->orbit());
0042   setChannelId(ptr->channelId());
0043   setLayerId(ptr->layerId());
0044   setCameraId(ptr->cameraId());
0045   setSuperLayerId(ptr->superLayerId());
0046   setLaterality(ptr->laterality());
0047 
0048   for (int i = 0; i < PAYLOAD_ENTRIES; i++)
0049     setPayload(ptr->payLoad(i), i);
0050 }
0051 
0052 DTPrimitive::~DTPrimitive() {}
0053 
0054 //------------------------------------------------------------------
0055 //--- Public Methods
0056 //------------------------------------------------------------------
0057 bool DTPrimitive::isValidTime(void) { return (tdcTimeStamp_ >= 0 ? true : false); }
0058 
0059 float DTPrimitive::wireHorizPos(void) {
0060   // For layers with odd-number
0061   float wireHorizPos = CELL_LENGTH * channelId();
0062   // If layer is even, you must correct by half a cell
0063   if (layerId() == 0 || layerId() == 2)
0064     wireHorizPos += CELL_SEMILENGTH;
0065   return wireHorizPos;
0066 }