17 file =
new TFile(
"ewq.root",
"RECREATE");
18 tree =
new TTree(
"dy",
"QWE");
19 tree->Branch(
"dtPhi_1_plus",&
dtPhi[0][0],
"dtPhi_1_plus/I");
20 tree->Branch(
"dtPhi_2_plus",&
dtPhi[1][0],
"dtPhi_2_plus/I");
21 tree->Branch(
"dtPhi_3_plus",&
dtPhi[2][0],
"dtPhi_3_plus/I");
22 tree->Branch(
"dtPhi_4_plus",&
dtPhi[3][0],
"dtPhi_4_plus/I");
23 tree->Branch(
"dtPhi_5_plus",&
dtPhi[4][0],
"dtPhi_5_plus/I");
24 tree->Branch(
"dtPhi_6_plus",&
dtPhi[5][0],
"dtPhi_6_plus/I");
25 tree->Branch(
"dtPhi_7_plus",&
dtPhi[6][0],
"dtPhi_7_plus/I");
26 tree->Branch(
"dtPhi_8_plus",&
dtPhi[7][0],
"dtPhi_8_plus/I");
27 tree->Branch(
"dtPhi_9_plus",&
dtPhi[8][0],
"dtPhi_9_plus/I");
28 tree->Branch(
"dtPhi_10_plus",&
dtPhi[9][0],
"dtPhi_10_plus/I");
29 tree->Branch(
"dtPhi_11_plus",&
dtPhi[10][0],
"dtPhi_11_plus/I");
30 tree->Branch(
"dtPhi_12_plus",&
dtPhi[11][0],
"dtPhi_12_plus/I");
31 tree->Branch(
"dtPhi_1_minus",&
dtPhi[0][1],
"dtPhi_1_minus/I");
32 tree->Branch(
"dtPhi_2_minus",&
dtPhi[1][1],
"dtPhi_2_minus/I");
33 tree->Branch(
"dtPhi_3_minus",&
dtPhi[2][1],
"dtPhi_3_minus/I");
34 tree->Branch(
"dtPhi_4_minus",&
dtPhi[3][1],
"dtPhi_4_minus/I");
35 tree->Branch(
"dtPhi_5_minus",&
dtPhi[4][1],
"dtPhi_5_minus/I");
36 tree->Branch(
"dtPhi_6_minus",&
dtPhi[5][1],
"dtPhi_6_minus/I");
37 tree->Branch(
"dtPhi_7_minus",&
dtPhi[6][1],
"dtPhi_7_minus/I");
38 tree->Branch(
"dtPhi_8_minus",&
dtPhi[7][1],
"dtPhi_8_minus/I");
39 tree->Branch(
"dtPhi_9_minus",&
dtPhi[8][1],
"dtPhi_9_minus/I");
40 tree->Branch(
"dtPhi_10_minus",&
dtPhi[9][1],
"dtPhi_10_minus/I");
41 tree->Branch(
"dtPhi_11_minus",&
dtPhi[10][1],
"dtPhi_11_minus/I");
42 tree->Branch(
"dtPhi_12_minus",&
dtPhi[11][1],
"dtPhi_12_minus/I");
70 edm::LogInfo(
"CSCTFAnalyzer") <<
" Unpacking Errors: "<<status->first;
71 for(std::vector<L1CSCSPStatusDigi>::const_iterator
stat=status->second.begin();
75 }
else edm::LogInfo(
"CSCTFAnalyzer")<<
" No valid L1CSCStatusDigiCollection products found";
83 std::vector<csctf::TrackStub> vstubs = dtStubs->get();
84 std::cout<<
"DT size="<<vstubs.end()-vstubs.begin()<<std::endl;
85 for(std::vector<csctf::TrackStub>::const_iterator stub=vstubs.begin(); stub!=vstubs.end(); stub++){
86 int dtSector =(stub->sector()-1)*2 + stub->subsector()-1;
87 int dtEndcap = stub->endcap()-1;
88 if( dtSector>=0 && dtSector<12 && dtEndcap>=0 && dtEndcap<2 ){
89 dtPhi[dtSector][dtEndcap] = stub->phiPacked();
91 edm::LogInfo(
"CSCTFAnalyzer: DT digi are out of range: ")<<
" dtSector="<<dtSector<<
" dtEndcap="<<dtEndcap;
93 edm::LogInfo(
"CSCTFAnalyzer")<<
" DT data: tbin="<<stub->BX()<<
" CSC sector="<<stub->sector()<<
" CSC subsector="<<stub->subsector()<<
" station="<<stub->station()<<
" endcap="<<stub->endcap()
94 <<
" phi="<<stub->phiPacked()<<
" phiBend="<<stub->getBend()<<
" quality="<<stub->getQuality()<<
" mb_bxn="<<stub->cscid();
96 }
else edm::LogInfo(
"CSCTFAnalyzer")<<
" No valid CSCTriggerContainer<csctf::TrackStub> products found";
108 int station = (*csc).first.station()-1;
109 int cscId = (*csc).first.triggerCscId()-1;
110 int sector = (*csc).first.triggerSector()-1;
112 int tbin = lct->getBX();
113 int fpga = ( subSector ? subSector-1 : station+1 );
115 if( sector<0 || sector>11 || station<0 || station>3 || cscId<0 || cscId>8 || lctId<0 || lctId>1){
116 edm::LogInfo(
"CSCTFAnalyzer: CSC digi are out of range: ");
119 edm::LogInfo(
"CSCTFAnalyzer")<<
" Front data endcap: "<<(*csc).first.endcap()<<
" station: "<<(station+1)<<
" sector: "<<(sector+1)<<
" subSector: "<<subSector<<
" tbin: "<<tbin<<
" cscId: "<<(cscId+1)<<
" fpga: "<<(fpga+1)<<
" "<<
120 "LCT(vp="<<lct->isValid()<<
",qual="<<lct->getQuality()<<
",wg="<<lct->getKeyWG()<<
",strip="<<lct->getStrip()<<
",link="<<lct->getMPCLink()<<
")";
123 }
else edm::LogInfo(
"CSCTFAnalyzer")<<
" No valid CSCCorrelatedLCTDigiCollection products found";
131 for(L1CSCTrackCollection::const_iterator trk=tracks->begin(); trk<tracks->end(); trk++,nTrk++){
132 int sector = 6*(trk->first.endcap()-1)+trk->first.sector()-1;
133 int tbin = trk->first.BX();
134 edm::LogInfo(
"CSCTFAnalyzer") <<
" Track sector: "<<(sector+1)<<
" tbin: "<<tbin<<
" "<<
135 "TRK(mode="<<((trk->first.ptLUTAddress()>>16)&0xF)<<
",eta="<<trk->first.eta_packed()<<
",phi="<<trk->first.localPhi()<<
") IDs:" 136 <<
" me1D="<<trk->first.me1ID()<<
" t1="<<trk->first.me1Tbin()
137 <<
" me2D="<<trk->first.me2ID()<<
" t2="<<trk->first.me2Tbin()
138 <<
" me3D="<<trk->first.me3ID()<<
" t3="<<trk->first.me3Tbin()
139 <<
" me4D="<<trk->first.me4ID()<<
" t4="<<trk->first.me4Tbin()
140 <<
" mb1D="<<trk->first.mb1ID()<<
" tb="<<trk->first.mb1Tbin();
146 int station = (*csc).first.station()-1;
147 int cscId = (*csc).first.triggerCscId()-1;
148 int sector = (*csc).first.triggerSector()-1;
150 int tbin = lct->getBX();
151 int fpga = ( subSector ? subSector-1 : station+1 );
153 if( sector<0 || sector>11 || station<0 || station>3 || cscId<0 || cscId>8 || lctId<0 || lctId>1){
157 if( lct->getQuality() < 100 )
158 edm::LogInfo(
"CSCTFAnalyzer")<<
" Linked LCT: "<<(*csc).first.endcap()<<
" station: "<<(station+1)<<
" sector: "<<(sector+1)<<
" subSector: "<<subSector<<
" tbin: "<<tbin
159 <<
" cscId: "<<(cscId+1)<<
" fpga: "<<(fpga+1)<<
" LCT(vp="<<lct->isValid()<<
",qual="<<lct->getQuality()<<
",wg="<<lct->getKeyWG()<<
",strip="<<lct->getStrip()<<
")";
161 edm::LogInfo(
"CSCTFAnalyzer")<<
" Linked MB stub: "<<(*csc).first.endcap()<<
" sector: "<<(sector+1)<<
" subSector: "<<subSector<<
" tbin: "<<tbin
162 <<
" MB(vp="<<lct->isValid()<<
",qual="<<(lct->getQuality()-100)<<
",cal="<<lct->getKeyWG()<<
",flag="<<lct->getStrip()<<
",bc0="<<lct->getPattern()<<
",phiBend="<<lct->getBend()
163 <<
",tbin="<<lct->getBX()<<
",id="<<lct->getMPCLink()<<
",bx0="<<lct->getBX0()<<
",se="<<lct->getSyncErr()<<
",bxn="<<lct->getCSCID()<<
",phi="<<lct->getTrknmb()<<
")";
167 }
else edm::LogInfo(
"CSCTFAnalyzer")<<
" No valid L1CSCTrackCollection products found";
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< CSCTriggerContainer< csctf::TrackStub > > CSCTC_Tok
bool getByToken(EDGetToken token, Handle< PROD > &result) const
CSCTFAnalyzer(const edm::ParameterSet &conf)
edm::InputTag lctProducer
edm::InputTag statusProducer
void analyze(const edm::Event &e, const edm::EventSetup &c) override
edm::InputTag trackProducer
edm::EDGetTokenT< CSCCorrelatedLCTDigiCollection > CSCCDC_Tok
T const * product() const
std::vector< CSCCorrelatedLCTDigi >::const_iterator const_iterator
static int triggerSubSectorFromLabels(int station, int chamber)
std::pair< const_iterator, const_iterator > Range
edm::EDGetTokenT< L1CSCTrackCollection > L1CST_Tok
edm::EDGetTokenT< L1CSCStatusDigiCollection > L1CSCS_Tok