CMS 3D CMS Logo

AlignTrackSegments.cc
Go to the documentation of this file.
1 //-------------------------------------------------
2 //
3 // Class: AlignTrackSegments
4 //
5 // AlignTrackSegments
6 //
7 //
8 // Author :
9 // G. Flouris U Ioannina Mar. 2015
10 //modifications: GKarathanasis U Athens
11 //--------------------------------------------------
12 #include <iostream>
13 #include <iomanip>
14 #include <iterator>
15 #include <memory>
17 
18 using namespace std;
19 
20 AlignTrackSegments::AlignTrackSegments(L1MuDTChambPhContainer inm_phiDigis) :m_phiDigis(inm_phiDigis) {
21 // m_phiDigis = inm_phiDigis;
22 };
23 
24 
26 
27  std::vector<L1MuDTChambPhDigi> l1ttma_out;
28 
29  for(int bx=-3; bx<=3; bx++){
30  for (int wheel=-3;wheel<=3; wheel++ ){
31  for (int sector=0;sector<12; sector++ ){
32  for (int station=1; station<=4; station++){
34  L1MuDTChambPhDigi const* ts1 = m_phiDigis.chPhiSegm1(wheel,station,sector,bx);
36  L1MuDTChambPhDigi const* ts2 = m_phiDigis.chPhiSegm2(wheel,station,sector,bx);
38  if(ts1!=nullptr && ts1->code()!=7) {
39  l1ttma_out.emplace_back(bx , ts1->whNum(), ts1->scNum(), ts1->stNum(),ts1->phi(), ts1->phiB(), ts1->code(), ts1->Ts2Tag(), ts1->BxCnt(),0);
40 
41  }
42  if((ts1==nullptr || ts1->code()==7 ) && ts2 && ts2->code()!=7) {
43  l1ttma_out.emplace_back(ts2->bxNum() , ts2->whNum(), ts2->scNum(), ts2->stNum(),ts2->phi(), ts2->phiB(), ts2->code(), ts2->Ts2Tag(), ts2->BxCnt(),0);
44  }
46  if(ts1!=nullptr && ts1->code()!=7 && ts2 && ts2->code()!=7) {
47  l1ttma_out.emplace_back(ts2->bxNum() - ts2->Ts2Tag() , ts2->whNum(), ts2->scNum(), ts2->stNum(),ts2->phi(), ts2->phiB(), ts2->code(), ts2->Ts2Tag(), ts2->BxCnt(),0);
48  }
49 
50 
51 
52  }}}}
53 
54  m_dt_tsshifted.setContainer(l1ttma_out);
55 }
56 
L1MuDTChambPhDigi const * chPhiSegm1(int wheel, int stat, int sect, int bx) const
L1MuDTChambPhDigi const * chPhiSegm2(int wheel, int stat, int sect, int bx) const
void run(const edm::EventSetup &c)
L1MuDTChambPhContainer m_dt_tsshifted
Output PhContainer.
L1MuDTChambPhContainer m_phiDigis
AlignTrackSegments(L1MuDTChambPhContainer inphiDigis)
void setContainer(const Phi_Container &inputSegments)