ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/L1RpcTriggerAnalysis/plugins/L1RpcTreeAnalysis.cc
(Generate patch)

Comparing UserCode/L1RpcTriggerAnalysis/plugins/L1RpcTreeAnalysis.cc (file contents):
Revision 1.7 by konec, Tue Oct 23 20:17:44 2012 UTC vs.
Revision 1.16 by konec, Sat Apr 27 14:12:56 2013 UTC

# Line 16 | Line 16
16  
17   #include "UserCode/L1RpcTriggerAnalysis/interface/L1Obj.h"
18   #include "UserCode/L1RpcTriggerAnalysis/interface/EventObj.h"
19 + #include "UserCode/L1RpcTriggerAnalysis/interface/EventObjBXExtra.h"
20   #include "UserCode/L1RpcTriggerAnalysis/interface/TrackObj.h"
21   #include "UserCode/L1RpcTriggerAnalysis/interface/MuonObj.h"
22   #include "UserCode/L1RpcTriggerAnalysis/interface/L1ObjColl.h"
# Line 23 | Line 24
24   #include "UserCode/L1RpcTriggerAnalysis/interface/DetCluDigiObj.h"
25   #include "UserCode/L1RpcTriggerAnalysis/interface/TriggerMenuResultObj.h"
26  
27 +
28   #include "UserCode/L1RpcTriggerAnalysis/interface/ConverterRPCRawSynchroSynchroCountsObj.h"
29  
30 + L1RpcTreeAnalysis::L1RpcTreeAnalysis(const edm::ParameterSet & cfg)
31 +  : theConfig(cfg),
32 +    theAnaMuonDistribution( cfg.getParameter<edm::ParameterSet>("anaMuonDistribution") ),
33 +    theAnaTimingL1 (cfg.getParameter<edm::ParameterSet>("anaTimingL1") ),
34 +    theAnaMenu(cfg.getParameter<edm::ParameterSet>("anaMenu") ),
35 +    theAnaEvent(cfg.getParameter<edm::ParameterSet>("anaEvent") )
36 + { }
37  
38   void L1RpcTreeAnalysis::beginJob()
39   {
# Line 39 | Line 48 | void L1RpcTreeAnalysis::beginJob()
48    theAnaSynch.init(theHistos);
49    theAnaClu.init(theHistos);
50    theAnaTimingL1.init(theHistos);
51 <
51 >  theAnaEvent.init(theHistos);
52 >  theAnaMenu.init(theHistos);
53   }
54  
55   void L1RpcTreeAnalysis::beginRun(const edm::Run& ru, const edm::EventSetup& es)
# Line 88 | Line 98 | void L1RpcTreeAnalysis::analyze(const ed
98    TBranch *bdetsHitsCompatibleWithMuon = 0;
99    TBranch *bdetsSIMU =0;
100  
101 <  L1ObjColl* l1RpcColl = 0;
92 <  L1ObjColl* l1OtherColl = 0;
93 <  L1ObjColl* l1RpcCollEmu = 0;
94 <  L1ObjColl* l1GmtColl = 0;
101 >  L1ObjColl* l1ObjColl = 0;
102  
103    chain.SetBranchAddress("event",&event);
104    chain.SetBranchAddress("muon",&muon);
# Line 105 | Line 112 | void L1RpcTreeAnalysis::analyze(const ed
112    chain.SetBranchAddress("detsHitsCompatibleWithMuon",&detsHitsCompatibleWithMuon,&bdetsHitsCompatibleWithMuon);
113    chain.SetBranchAddress("detsSIMU",&detsSIMU,&bdetsSIMU);
114  
115 <  chain.SetBranchAddress("l1RpcColl",&l1RpcColl);
109 <  chain.SetBranchAddress("l1OtherColl",&l1OtherColl);
110 <  chain.SetBranchAddress("l1RpcCollEmu",&l1RpcCollEmu);
111 <  chain.SetBranchAddress("l1GmtColl",&l1GmtColl);
115 >  chain.SetBranchAddress("l1ObjColl",&l1ObjColl);
116  
117  
118    //
# Line 124 | Line 128 | void L1RpcTreeAnalysis::analyze(const ed
128    unsigned int lastRun = 0;
129    for (int ev=0; ev<nentries; ev++) {
130      chain.GetEntry(ev);
131 +    theAnaMenu.updateMenu(bitsL1->names, bitsHLT->names);
132  
133      if (lastRun != (*event).run) {
134 + //    if (true) {
135 + //    if (! ((*event).run==204601 && (*event).id ==109463402)) { continue;
136        lastRun = (*event).run;
137        std::cout <<"RUN:"    << std::setw(7) << (*event).run
138                  <<" event:" << std::setw(8) << ev
139 <                <<" done:"  << std::setw(6)<< std::setiosflags(std::ios::fixed) << std::setprecision(2) << ev*100./nentries<<"%"<<std::endl;
139 >                <<" done:"  << std::setw(6)<< std::setiosflags(std::ios::fixed) << std::setprecision(2) << ev*100./nentries<<"%";
140 >      std::cout<<std::endl;
141      }
142  
143 < //    if (ev > 10) break;
144 <
145 < //    if (event->run != 178854) continue;
146 < //    if (lastLumi != (*event).lumi) { lastLumi = (*event).lumi; std::cout <<"lumi: " << (*event).lumi<<std::endl; }
147 < //   theAnaDet.debug = false;
148 < //    if ((*event).id==60422922)theAnaRpcMisc.debug = true;
149 <
150 <   static std::vector<std::string>   namesL1;
151 <   if (bitsL1->names.size() != 0)    namesL1=bitsL1->names;
152 <   static std::vector<std::string>   namesHLT;
153 <   if (bitsHLT->names.size() != 0)   namesHLT=bitsHLT->names;
154 <   const std::vector<unsigned int> & algosL1 = bitsL1->firedAlgos;
155 <   const std::vector<unsigned int> & algosHLT = bitsHLT->firedAlgos;
156 <
157 < /*
158 <   std::cout <<" Number of bits L1: " <<  bitsL1->names.size()<<"/"<<namesL1.size()<<"/"<<bitsL1->firedAlgos.size()
159 <                           <<" HLT: "<< bitsHLT->names.size()<<"/"<<namesHLT.size()<<"/"<<bitsHLT->firedAlgos.size()<<std::endl;
160 <   std::cout <<"----------------------- L1: "<<std::endl;
153 <   for (std::vector<unsigned int>::const_iterator it=algosL1.begin(); it< algosL1.end(); ++it) std::cout <<"L1 idx: "<<*it<<" "<<namesL1[*it]<< std::endl;
154 <   std::cout <<"----------------------- HLT: "<<std::endl;
155 <   for (std::vector<unsigned int>::const_iterator it=algosHLT.begin(); it< algosHLT.end(); ++it) std::cout<<" HLT idx: "<<*it<<" "<<namesHLT[*it]<< std::endl;
143 > /*  
144 >   if (     event->id == 597978012
145 >        ||  event->id == 14791798  
146 >        ||  event->id == 436261807
147 >        ||  event->id == 873776280  
148 >        ||  event->id == 960307389
149 >        ||  event->id == 150097556
150 >        ||  event->id == 42062946
151 >        ||  event->id == 1064121551
152 >        ||  event->id == 1499489591
153 >        ||  event->id == 60161631
154 >        ||  event->id == 624624695
155 >        ||  event->id == 727298833
156 >        ||  event->id == 835600542
157 >        ||  event->id == 216373776
158 >        ||  event->id == 1107585611
159 >        ||  event->id == 197907027
160 >      ) theAnaMenu.debug = true; else theAnaMenu.debug = false;
161   */
162  
163 <   theAnaMuonDistribution.run(muon);
164 <   theAnaRpcVsOth.run(muon,l1RpcColl,l1OtherColl);
165 <   theAnaEff.run(muon,l1RpcColl,l1OtherColl);
166 <   theAnaRpcMisc.run(event,muon,l1RpcColl,l1OtherColl);
167 <   theAnaDet.run( muon, *detsHitsCompatibleWithMuon,  *detsCrossedByMuon, *detsCrossedByMuonDeepInside);
168 <   theAnaEmu.run ( event, muon, l1RpcCollEmu, l1RpcColl);
169 <   theAnaSynch.run( event, muon, ConverterRPCRawSynchroSynchroCountsObj::toRawSynchro( *counts));
170 <   theAnaClu.run( event, muon, l1RpcColl, *detsHitsCompatibleWithMuon);
171 <   theAnaTimingL1.run(event,muon,l1RpcColl,l1OtherColl);
172 <
173 < /*
174 <   std::cout <<"----------------"<<std::endl;
175 <   std::cout <<"GmtColl:"<<std::endl; l1GmtColl->print();
176 <   std::cout <<"RpcColl:"<<std::endl; l1RpcColl->print();
177 <   std::cout <<"OtherColl:"<<std::endl; l1OtherColl->print();
178 < */
179 < //   theAnaEmu.debug =theAnaDet.debug;
175 < //    std::cout <<"----------"<<std::endl;
176 < //   theAnaDet.debug =theAnaEmu.debug;
177 < //    if (anaDet.debug) std::cout <<" Event: "<<(*event).id <<" Lumi: "<<(*event).lumi<< std::endl;
178 <  
163 >   // EVENT NUMBER, BX structure etc.
164 >   EventObjBXExtra eventBx(*event);
165 >   if ( !theAnaEvent.filter(&eventBx) && theConfig.getParameter<bool>("filterByAnaEvent") ) continue;
166 >   // ANALYSE AND FILTER KINEMCTICS
167 >   if ( !theAnaMuonDistribution.filter(muon) && theConfig.getParameter<bool>("filterByAnaMuonDistribution") ) continue;
168 >   // ANALYSE AND FILTER TRIGGER MENU
169 >   if ( !theAnaMenu.filter(event, muon, bitsL1, bitsHLT) && theConfig.getParameter<bool>("filterByAnaMenu") ) continue;
170 >
171 > //   theAnaRpcVsOth.run(muon,l1ObjColl);
172 > //   theAnaEff.run(muon, l1ObjColl);
173 > //   theAnaRpcMisc.run(event,muon,l1ObjColl);
174 > //   theAnaDet.run( muon, *detsHitsCompatibleWithMuon,  *detsCrossedByMuon, *detsCrossedByMuonDeepInside);
175 > //   theAnaEmu.run ( event, muon, l1ObjColl);
176 > //   theAnaSynch.run( event, muon, ConverterRPCRawSynchroSynchroCountsObj::toRawSynchro( *counts));
177 > //   theAnaClu.run( event, muon, l1ObjColl, *detsHitsCompatibleWithMuon);
178 >   theAnaTimingL1.run( &eventBx, muon, l1ObjColl);
179 >
180    }
181   }
182  
# Line 186 | Line 187 | void L1RpcTreeAnalysis::endJob()
187    theAnaRpcMisc.resume(theHistos);
188    TGraph* hGraph_RunClu = theAnaClu.resume();
189    theAnaTimingL1.resume(theHistos);
190 +  theAnaMenu.resume(theHistos);
191 +  theAnaEvent.resume(theHistos);
192  
193    theAnaSynch.endJob();
194  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines