22 file =
new TFile(
"ewq.root",
"RECREATE");
23 tree =
new TTree(
"dy",
"QWE");
24 tree->Branch(
"dtPhi_1_plus",&
dtPhi[0][0],
"dtPhi_1_plus/I");
25 tree->Branch(
"dtPhi_2_plus",&
dtPhi[1][0],
"dtPhi_2_plus/I");
26 tree->Branch(
"dtPhi_3_plus",&
dtPhi[2][0],
"dtPhi_3_plus/I");
27 tree->Branch(
"dtPhi_4_plus",&
dtPhi[3][0],
"dtPhi_4_plus/I");
28 tree->Branch(
"dtPhi_5_plus",&
dtPhi[4][0],
"dtPhi_5_plus/I");
29 tree->Branch(
"dtPhi_6_plus",&
dtPhi[5][0],
"dtPhi_6_plus/I");
30 tree->Branch(
"dtPhi_7_plus",&
dtPhi[6][0],
"dtPhi_7_plus/I");
31 tree->Branch(
"dtPhi_8_plus",&
dtPhi[7][0],
"dtPhi_8_plus/I");
32 tree->Branch(
"dtPhi_9_plus",&
dtPhi[8][0],
"dtPhi_9_plus/I");
33 tree->Branch(
"dtPhi_10_plus",&
dtPhi[9][0],
"dtPhi_10_plus/I");
34 tree->Branch(
"dtPhi_11_plus",&
dtPhi[10][0],
"dtPhi_11_plus/I");
35 tree->Branch(
"dtPhi_12_plus",&
dtPhi[11][0],
"dtPhi_12_plus/I");
36 tree->Branch(
"dtPhi_1_minus",&
dtPhi[0][1],
"dtPhi_1_minus/I");
37 tree->Branch(
"dtPhi_2_minus",&
dtPhi[1][1],
"dtPhi_2_minus/I");
38 tree->Branch(
"dtPhi_3_minus",&
dtPhi[2][1],
"dtPhi_3_minus/I");
39 tree->Branch(
"dtPhi_4_minus",&
dtPhi[3][1],
"dtPhi_4_minus/I");
40 tree->Branch(
"dtPhi_5_minus",&
dtPhi[4][1],
"dtPhi_5_minus/I");
41 tree->Branch(
"dtPhi_6_minus",&
dtPhi[5][1],
"dtPhi_6_minus/I");
42 tree->Branch(
"dtPhi_7_minus",&
dtPhi[6][1],
"dtPhi_7_minus/I");
43 tree->Branch(
"dtPhi_8_minus",&
dtPhi[7][1],
"dtPhi_8_minus/I");
44 tree->Branch(
"dtPhi_9_minus",&
dtPhi[8][1],
"dtPhi_9_minus/I");
45 tree->Branch(
"dtPhi_10_minus",&
dtPhi[9][1],
"dtPhi_10_minus/I");
46 tree->Branch(
"dtPhi_11_minus",&
dtPhi[10][1],
"dtPhi_11_minus/I");
47 tree->Branch(
"dtPhi_12_minus",&
dtPhi[11][1],
"dtPhi_12_minus/I");
68 edm::LogInfo(
"CSCTFAnalyzer") <<
" Unpacking Errors: "<<status->first;
69 for(std::vector<L1CSCSPStatusDigi>::const_iterator stat=status->second.begin();
70 stat!=status->second.end(); stat++){
73 }
else edm::LogInfo(
"CSCTFAnalyzer")<<
" No valid L1CSCStatusDigiCollection products found";
81 std::vector<csctf::TrackStub> vstubs = dtStubs->get();
82 std::cout<<
"DT size="<<vstubs.end()-vstubs.begin()<<std::endl;
83 for(std::vector<csctf::TrackStub>::const_iterator stub=vstubs.begin(); stub!=vstubs.end(); stub++){
84 int dtSector =(stub->sector()-1)*2 + stub->subsector()-1;
85 int dtEndcap = stub->endcap()-1;
86 if( dtSector>=0 && dtSector<12 && dtEndcap>=0 && dtEndcap<2 ){
87 dtPhi[dtSector][dtEndcap] = stub->phiPacked();
89 edm::LogInfo(
"CSCTFAnalyzer: DT digi are out of range: ")<<
" dtSector="<<dtSector<<
" dtEndcap="<<dtEndcap;
91 edm::LogInfo(
"CSCTFAnalyzer")<<
" DT data: tbin="<<stub->BX()<<
" CSC sector="<<stub->sector()<<
" CSC subsector="<<stub->subsector()<<
" station="<<stub->station()<<
" endcap="<<stub->endcap()
92 <<
" phi="<<stub->phiPacked()<<
" phiBend="<<stub->getBend()<<
" quality="<<stub->getQuality()<<
" mb_bxn="<<stub->cscid();
94 }
else edm::LogInfo(
"CSCTFAnalyzer")<<
" No valid CSCTriggerContainer<csctf::TrackStub> products found";
106 int station = (*csc).first.station()-1;
107 int cscId = (*csc).first.triggerCscId()-1;
108 int sector = (*csc).first.triggerSector()-1;
110 int tbin = lct->getBX();
111 int fpga = ( subSector ? subSector-1 : station+1 );
113 if( sector<0 || sector>11 || station<0 || station>3 || cscId<0 || cscId>8 || lctId<0 || lctId>1){
114 edm::LogInfo(
"CSCTFAnalyzer: CSC digi are out of range: ");
117 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)<<
" "<<
118 "LCT(vp="<<lct->isValid()<<
",qual="<<lct->getQuality()<<
",wg="<<lct->getKeyWG()<<
",strip="<<lct->getStrip()<<
",link="<<lct->getMPCLink()<<
")";
121 }
else edm::LogInfo(
"CSCTFAnalyzer")<<
" No valid CSCCorrelatedLCTDigiCollection products found";
129 for(L1CSCTrackCollection::const_iterator trk=tracks->begin(); trk<tracks->end(); trk++,nTrk++){
130 int sector = 6*(trk->first.endcap()-1)+trk->first.sector()-1;
131 int tbin = trk->first.BX();
132 edm::LogInfo(
"CSCTFAnalyzer") <<
" Track sector: "<<(sector+1)<<
" tbin: "<<tbin<<
" "<<
133 "TRK(mode="<<((trk->first.ptLUTAddress()>>16)&0xF)<<
",eta="<<trk->first.eta_packed()<<
",phi="<<trk->first.localPhi()<<
") IDs:"
134 <<
" me1D="<<trk->first.me1ID()<<
" t1="<<trk->first.me1Tbin()
135 <<
" me2D="<<trk->first.me2ID()<<
" t2="<<trk->first.me2Tbin()
136 <<
" me3D="<<trk->first.me3ID()<<
" t3="<<trk->first.me3Tbin()
137 <<
" me4D="<<trk->first.me4ID()<<
" t4="<<trk->first.me4Tbin()
138 <<
" mb1D="<<trk->first.mb1ID()<<
" tb="<<trk->first.mb1Tbin();
144 int station = (*csc).first.station()-1;
145 int cscId = (*csc).first.triggerCscId()-1;
146 int sector = (*csc).first.triggerSector()-1;
148 int tbin = lct->getBX();
149 int fpga = ( subSector ? subSector-1 : station+1 );
151 if( sector<0 || sector>11 || station<0 || station>3 || cscId<0 || cscId>8 || lctId<0 || lctId>1){
155 if( lct->getQuality() < 100 )
156 edm::LogInfo(
"CSCTFAnalyzer")<<
" Linked LCT: "<<(*csc).first.endcap()<<
" station: "<<(station+1)<<
" sector: "<<(sector+1)<<
" subSector: "<<subSector<<
" tbin: "<<tbin
157 <<
" cscId: "<<(cscId+1)<<
" fpga: "<<(fpga+1)<<
" LCT(vp="<<lct->isValid()<<
",qual="<<lct->getQuality()<<
",wg="<<lct->getKeyWG()<<
",strip="<<lct->getStrip()<<
")";
159 edm::LogInfo(
"CSCTFAnalyzer")<<
" Linked MB stub: "<<(*csc).first.endcap()<<
" sector: "<<(sector+1)<<
" subSector: "<<subSector<<
" tbin: "<<tbin
160 <<
" MB(vp="<<lct->isValid()<<
",qual="<<(lct->getQuality()-100)<<
",cal="<<lct->getKeyWG()<<
",flag="<<lct->getStrip()<<
",bc0="<<lct->getPattern()<<
",phiBend="<<lct->getBend()
161 <<
",tbin="<<lct->getBX()<<
",id="<<lct->getMPCLink()<<
",bx0="<<lct->getBX0()<<
",se="<<lct->getSyncErr()<<
",bxn="<<lct->getCSCID()<<
",phi="<<lct->getTrknmb()<<
")";
165 }
else edm::LogInfo(
"CSCTFAnalyzer")<<
" No valid L1CSCTrackCollection products found";
T getUntrackedParameter(std::string const &, T const &) const
CSCTFAnalyzer(const edm::ParameterSet &conf)
void analyze(const edm::Event &e, const edm::EventSetup &c)
edm::InputTag lctProducer
edm::InputTag statusProducer
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
edm::InputTag trackProducer
std::vector< DigiType >::const_iterator const_iterator
static int triggerSubSectorFromLabels(int station, int chamber)
T const * product() const
std::pair< const_iterator, const_iterator > Range