/* ---- Delphes ---- A Fast Simulator for general purpose LHC detector S. Ovyn ~~~~ severine.ovyn@uclouvain.be Center for Particle Physics and Phenomenology (CP3) Universite Catholique de Louvain (UCL) Louvain-la-Neuve, Belgium */ /// \file Trigger_Only.cpp /// \brief executable for the Trigger running #include "TChain.h" #include "TApplication.h" #include "Utilities/ExRootAnalysis/interface/ExRootTreeReader.h" #include "Utilities/ExRootAnalysis/interface/ExRootTreeWriter.h" #include "Utilities/ExRootAnalysis/interface/ExRootTreeBranch.h" #include "interface/TriggerUtil.h" #include #include #include "Utilities/ExRootAnalysis/interface/BlockClasses.h" #include #include #include using namespace std; //------------------------------------------------------------------------------ void todo(string filename) { ifstream infile(filename.c_str()); cout << "** TODO list ..." << endl; while(infile.good()) { string temp; getline(infile,temp); cout << "*" << temp << endl; } cout << "** done...\n"; } //------------------------------------------------------------------------------ int main(int argc, char *argv[]) { int appargc = 2; char *appName = "Trigger_Only"; char *appargv[] = {appName, "-b"}; TApplication app(appName, &appargc, appargv); if(argc != 2 && argc !=3 ) { cout << " Usage: " << argv[0] << " input_file output_file [detector_card] [trigger_card] " << endl; cout << " input_file - file in Delphe root format," << endl; cout << " trigger_card - Datacard containing the trigger algorithms (optional) "<TriggerCardReader(TrigDatacard.c_str()); TRIGT->PrintTriggerTable(LogName); TClonesArray *branchElecTrig = treeReaderT->UseBranch("Electron"); TClonesArray *branchMuonTrig = treeReaderT->UseBranch("Muon"); TClonesArray *branchJetTrig = treeReaderT->UseBranch("Jet"); TClonesArray *branchTauJetTrig = treeReaderT->UseBranch("TauJet"); TClonesArray *branchPhotonTrig = treeReaderT->UseBranch("Photon"); TClonesArray *branchETmisTrig = treeReaderT->UseBranch("ETmis"); ExRootTreeWriter *treeWriterT = new ExRootTreeWriter(inputFile, "Trigger"); ExRootTreeBranch *branchTrigger = treeWriterT->NewBranch("TrigResult", TRootTrigger::Class()); Long64_t entryT, allEntriesT = treeReaderT->GetEntries(); cout << "** Chain contains " << allEntriesT << " events" << endl; for(entryT = 0; entryT < allEntriesT; ++entryT) { treeWriterT->Clear(); treeReaderT->ReadEntry(entryT); TRIGT->GetGlobalResult(branchElecTrig, branchMuonTrig,branchJetTrig, branchTauJetTrig,branchPhotonTrig, branchETmisTrig,branchTrigger); treeWriterT->Fill(); } treeWriterT->Write(); delete treeWriterT; cout << "** Exiting..." << endl; delete TRIGT; }