IlcAODHandler* AddAODOutputHandler() { IlcAnalysisManager *mgr = IlcAnalysisManager::GetAnalysisManager(); if (!mgr) { ::Error("AddAODOutputHandler", "No analysis manager to connect to."); return NULL; } IlcAODHandler* handler = new IlcAODHandler(); handler->SetOutputFileName("IlcAOD.root"); mgr->SetOutputEventHandler(handler); IlcAnalysisDataContainer* cout_aod = mgr->GetCommonOutputContainer(); cout_aod->SetSpecialOutput(); return handler; }
void JetAnalysisManagerKine() { gSystem->Load("libTree.so"); gSystem->Load("libPhysics.so"); gSystem->Load("libGeom.so"); gSystem->Load("libVMC.so"); gSystem->Load("libANALYSIS.so"); gSystem->Load("libSTEERBase.so"); gSystem->Load("libAOD.so"); gSystem->Load("libESD.so"); gSystem->Load("libANALYSISilc.so"); gSystem->Load("libJETAN.so"); // if (gApplication) gApplication->InitializeGraphics(); // Create the chain // gROOT->LoadMacro("CreateESDChain.C"); TChain* chain = new TChain("TE"); chain->Add("/Users/kleinb/ilc/sim/PDC_08/LHC08v/280039/999/gilc.root"); /////////////////////////////////////////////////////////////////////////////////// // Create the analysis manager // // Output IlcAODHandler* aodHandler = new IlcAODHandler(); aodHandler->SetOutputFileName("aod.root"); // MC Truth IlcMCEventHandler* mcHandler = new IlcMCEventHandler(); IlcAnalysisManager *mgr = new IlcAnalysisManager("Jet Manager", "Jet Manager"); mgr->SetOutputEventHandler (aodHandler); mgr->SetMCtruthEventHandler(mcHandler); mgr->SetDebugLevel(10); IlcAnalysisTaskKineFilter *kinefilter = new IlcAnalysisTaskKineFilter("Kine Filter"); mgr->AddTask(kinefilter); IlcAnalysisTaskJets *jetana = new IlcAnalysisTaskJets("JetAnalysis"); jetana->SetConfigFile("ConfigJetAnalysisMC.C"); jetana->SetDebugLevel(10); mgr->AddTask(jetana); // // Create containers for input/output IlcAnalysisDataContainer *cinput1 = mgr->CreateContainer("cchain",TChain::Class(), IlcAnalysisManager::kInputContainer); IlcAnalysisDataContainer *coutput1 = mgr->CreateContainer("tree", TTree::Class(), IlcAnalysisManager::kOutputContainer, "default"); IlcAnalysisDataContainer *coutput2 = mgr->CreateContainer("histos", TList::Class(), IlcAnalysisManager::kOutputContainer, "histos.root"); mgr->ConnectInput (kinefilter, 0, cinput1 ); mgr->ConnectOutput (kinefilter, 0, coutput1 ); mgr->ConnectInput (jetana, 0, cinput1 ); mgr->ConnectOutput (jetana, 0, coutput1 ); mgr->ConnectOutput (jetana, 1, coutput2 ); // // Run the analysis // mgr->InitAnalysis(); mgr->PrintStatus(); mgr->StartAnalysis("local",chain); }
//______________________________________________________________________________ void AODtrain(Int_t merge=0) { // Main analysis train macro. if (merge) { TGrid::Connect("alien://"); if (!gGrid || !gGrid->IsConnected()) { ::Error("QAtrain", "No grid connection"); return; } } // Set temporary merging directory to current one gSystem->Setenv("TMPDIR", gSystem->pwd()); // Set temporary compilation directory to current one gSystem->SetBuildDir(gSystem->pwd(), kTRUE); printf("==================================================================\n"); printf("=========== RUNNING FILTERING TRAIN ==========\n"); printf("==================================================================\n"); printf("= Configuring analysis train for: =\n"); if (usePhysicsSelection) printf("= Physics selection =\n"); if (useTender) printf("= TENDER =\n"); if (iESDfilter) printf("= ESD filter =\n"); if (iMUONcopyAOD) printf("= MUON copy AOD =\n"); if (iJETAN) printf("= Jet analysis =\n"); if (iJETANdelta) printf("= Jet delta AODs =\n"); if (iPWGHFvertexing) printf("= PWGHF vertexing =\n"); if (iPWGDQJPSIfilter) printf("= PWGDQ j/psi filter =\n"); if (iPWGHFd2h) printf("= PWGHF D0->2 hadrons QA =\n"); // Load common libraries and set include path if (!LoadCommonLibraries()) { ::Error("AnalysisTrain", "Could not load common libraries"); return; } // Make the analysis manager and connect event handlers IlcAnalysisManager *mgr = new IlcAnalysisManager("Analysis Train", "Production train"); if (useSysInfo) mgr->SetNSysInfo(100); // Load analysis specific libraries if (!LoadAnalysisLibraries()) { ::Error("AnalysisTrain", "Could not load analysis libraries"); return; } // Create input handler (input container created automatically) // ESD input handler IlcESDInputHandler *esdHandler = new IlcESDInputHandler(); mgr->SetInputEventHandler(esdHandler); // Monte Carlo handler if (useMC) { IlcMCEventHandler* mcHandler = new IlcMCEventHandler(); mgr->SetMCtruthEventHandler(mcHandler); mcHandler->SetReadTR(useTR); } // AOD output container, created automatically when setting an AOD handler if (iAODhandler) { // AOD output handler IlcAODHandler* aodHandler = new IlcAODHandler(); aodHandler->SetOutputFileName("IlcAOD.root"); mgr->SetOutputEventHandler(aodHandler); } // Debugging if needed if (useDBG) mgr->SetDebugLevel(3); AddAnalysisTasks(); if (merge) { AODmerge(); mgr->InitAnalysis(); mgr->SetGridHandler(new IlcAnalysisAlien); mgr->StartAnalysis("gridterminate",0); return; } // Run the analysis // TChain *chain = CreateChain(); if (!chain) return; TStopwatch timer; timer.Start(); mgr->SetSkipTerminate(kTRUE); if (mgr->InitAnalysis()) { mgr->PrintStatus(); mgr->StartAnalysis("local", chain); } timer.Print(); }