- Timestamp:
- Jun 26, 2015, 3:13:55 PM (10 years ago)
- Branches:
- ImprovedOutputFile, Timing, dual_readout, llp, master
- Children:
- f3c4047
- Parents:
- f53a4d2 (diff), fe0273c (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- readers
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
readers/DelphesLHEF.cpp
rf53a4d2 r28027d5 63 63 TStopwatch readStopWatch, procStopWatch; 64 64 ExRootTreeWriter *treeWriter = 0; 65 ExRootTreeBranch *branchEvent = 0, *branch Rwgt = 0;65 ExRootTreeBranch *branchEvent = 0, *branchWeight = 0; 66 66 ExRootConfReader *confReader = 0; 67 67 Delphes *modularDelphes = 0; … … 103 103 104 104 branchEvent = treeWriter->NewBranch("Event", LHEFEvent::Class()); 105 branch Rwgt = treeWriter->NewBranch("Rwgt", Weight::Class());105 branchWeight = treeWriter->NewBranch("Weight", Weight::Class()); 106 106 107 107 confReader = new ExRootConfReader; … … 196 196 197 197 reader->AnalyzeEvent(branchEvent, eventCounter, &readStopWatch, &procStopWatch); 198 reader->Analyze Rwgt(branchRwgt);198 reader->AnalyzeWeight(branchWeight); 199 199 200 200 treeWriter->Fill(); -
readers/DelphesPythia8.cpp
rf53a4d2 r28027d5 20 20 #include <iostream> 21 21 #include <sstream> 22 #include <string> 22 23 23 24 #include <signal.h> … … 38 39 #include "classes/DelphesClasses.h" 39 40 #include "classes/DelphesFactory.h" 41 #include "classes/DelphesLHEFReader.h" 40 42 41 43 #include "ExRootAnalysis/ExRootTreeWriter.h" … … 149 151 char appName[] = "DelphesPythia8"; 150 152 stringstream message; 153 FILE *inputFile = 0; 151 154 TFile *outputFile = 0; 152 155 TStopwatch readStopWatch, procStopWatch; 153 156 ExRootTreeWriter *treeWriter = 0; 154 157 ExRootTreeBranch *branchEvent = 0; 158 ExRootTreeBranch *branchEventLHEF = 0, *branchWeightLHEF = 0; 155 159 ExRootConfReader *confReader = 0; 156 160 Delphes *modularDelphes = 0; 157 161 DelphesFactory *factory = 0; 158 162 TObjArray *stableParticleOutputArray = 0, *allParticleOutputArray = 0, *partonOutputArray = 0; 163 TObjArray *stableParticleOutputArrayLHEF = 0, *allParticleOutputArrayLHEF = 0, *partonOutputArrayLHEF = 0; 164 DelphesLHEFReader *reader = 0; 159 165 Long64_t eventCounter, errorCounter; 160 166 Long64_t numberOfEvents, timesAllowErrors; … … 205 211 partonOutputArray = modularDelphes->ExportArray("partons"); 206 212 207 modularDelphes->InitTask(); 208 209 // Initialize pythia 213 // Initialize Pythia 210 214 pythia = new Pythia8::Pythia; 211 215 … … 221 225 numberOfEvents = pythia->mode("Main:numberOfEvents"); 222 226 timesAllowErrors = pythia->mode("Main:timesAllowErrors"); 227 228 inputFile = fopen(pythia->word("Beams:LHEF").c_str(), "r"); 229 if(inputFile) 230 { 231 reader = new DelphesLHEFReader; 232 reader->SetInputFile(inputFile); 233 234 branchEventLHEF = treeWriter->NewBranch("EventLHEF", LHEFEvent::Class()); 235 branchWeightLHEF = treeWriter->NewBranch("WeightLHEF", LHEFWeight::Class()); 236 237 allParticleOutputArrayLHEF = modularDelphes->ExportArray("allParticlesLHEF"); 238 stableParticleOutputArrayLHEF = modularDelphes->ExportArray("stableParticlesLHEF"); 239 partonOutputArrayLHEF = modularDelphes->ExportArray("partonsLHEF"); 240 } 241 242 modularDelphes->InitTask(); 223 243 224 244 pythia->init(); … … 234 254 for(eventCounter = 0; eventCounter < numberOfEvents && !interrupted; ++eventCounter) 235 255 { 256 while(reader && reader->ReadBlock(factory, allParticleOutputArrayLHEF, 257 stableParticleOutputArrayLHEF, partonOutputArrayLHEF) && !reader->EventReady()); 258 236 259 if(!pythia->next()) 237 260 { 238 261 // If failure because reached end of file then exit event loop 239 if 262 if(pythia->info.atEndOfFile()) 240 263 { 241 264 cerr << "Aborted since reached end of Les Houches Event File" << endl; … … 244 267 245 268 // First few failures write off as "acceptable" errors, then quit 246 if (++errorCounter < timesAllowErrors) continue; 247 cerr << "Event generation aborted prematurely, owing to error!" << endl; 248 break; 269 if(++errorCounter > timesAllowErrors) 270 { 271 cerr << "Event generation aborted prematurely, owing to error!" << endl; 272 break; 273 } 274 275 modularDelphes->Clear(); 276 reader->Clear(); 277 continue; 249 278 } 250 279 … … 258 287 procStopWatch.Stop(); 259 288 289 if(reader) 290 { 291 reader->AnalyzeEvent(branchEventLHEF, eventCounter, &readStopWatch, &procStopWatch); 292 reader->AnalyzeWeight(branchWeightLHEF); 293 } 294 260 295 treeWriter->Fill(); 261 296 262 297 treeWriter->Clear(); 263 298 modularDelphes->Clear(); 299 if(reader) reader->Clear(); 264 300 265 301 readStopWatch.Start(); … … 277 313 cout << "** Exiting..." << endl; 278 314 315 delete reader; 279 316 delete pythia; 280 317 delete modularDelphes;
Note:
See TracChangeset
for help on using the changeset viewer.