48 |
|
theAnaSiMuDistribution(0), |
49 |
|
theAnaOtfEff(0) |
50 |
|
{ |
51 |
+ |
|
52 |
|
if (theConfig.exists("anaMuonDistribution")) theAnaMuonDistribution = new AnaMuonDistribution( cfg.getParameter<edm::ParameterSet>("anaMuonDistribution")); |
53 |
|
if (theConfig.exists("anaMenu")) theAnaMenu = new AnaMenu(theConfig.getParameter<edm::ParameterSet>("anaMenu")); |
54 |
|
if (theConfig.exists("anaTimingL1")) theAnaTimingL1 = new AnaTimingL1( theConfig.getParameter<edm::ParameterSet>("anaTimingL1") ); |
66 |
|
|
67 |
|
void L1RpcTreeAnalysis::beginJob() |
68 |
|
{ |
69 |
+ |
|
70 |
|
theHistos.SetOwner(); |
71 |
|
|
72 |
|
if (theAnaMuonDistribution) theAnaMuonDistribution->init(theHistos); |
108 |
|
// |
109 |
|
// define input chain |
110 |
|
// |
111 |
+ |
|
112 |
|
TChain chain("tL1Rpc"); |
113 |
|
std::vector<std::string> treeFileNames = theConfig.getParameter<std::vector<std::string> >("treeFileNames"); |
114 |
|
for (std::vector<std::string>::const_iterator it = treeFileNames.begin(); it != treeFileNames.end(); ++it) chain.Add((*it).c_str() ); |
115 |
|
|
113 |
– |
|
116 |
|
// |
117 |
|
// prepare datastructures and branches |
118 |
|
// |
158 |
|
chain.SetBranchAddress("l1ObjColl",&l1ObjColl); |
159 |
|
chain.SetBranchAddress("hitSpec",&hitSpec); |
160 |
|
|
159 |
– |
|
161 |
|
// |
162 |
|
// number of events |
163 |
|
// |
165 |
|
std::cout <<" ENTRIES: " << nentries << std::endl; |
166 |
|
|
167 |
|
|
168 |
+ |
|
169 |
|
// |
170 |
|
// main loop |
171 |
|
// |
175 |
|
if (theAnaMenu) theAnaMenu->updateMenu(bitsL1->names, bitsHLT->names); |
176 |
|
|
177 |
|
// if (ev < 44055) continue; |
178 |
< |
if ( (lastRun != (*event).run) || (ev/1000*1000==ev) ) { |
178 |
> |
if ( (lastRun != (*event).run) || (ev%10000==0) ) { |
179 |
|
// if (true) { |
180 |
|
// if (! ((*event).run==204601 && (*event).id ==109463402)) { continue; |
181 |
|
lastRun = (*event).run; |