//________________________ /// Main execution method. //________________________ void anaM() { // Main //-------------------------------------------------------------------- // Load analysis libraries // Look at the method below, // change whatever you need for your analysis case // ------------------------------------------------------------------ LoadLibraries() ; //------------------------------------------------------------------------------------------------- // Create chain from ESD and from cross sections files, look below for options. //------------------------------------------------------------------------------------------------- if(kInputData == "ESD") kTreeName = "esdTree" ; else if(kInputData == "AOD") kTreeName = "aodTree" ; else if (kInputData == "MC") kTreeName = "TE" ; else { cout<<"Wrong data type "<<kInputData<<endl; break; } TChain * chain = new TChain(kTreeName) ; CreateChain(mode, chain);//, chainxs); cout<<"Chain created"<<endl; if( chain ) { AliLog::SetGlobalLogLevel(AliLog::kError);//Minimum prints on screen //-------------------------------------- // Make the analysis manager //------------------------------------- AliAnalysisManager *mgr = new AliAnalysisManager("Manager", "Manager"); // MC handler if( (kMC && (kInputData == "ESD")) || kInputData == "MC"){ AliMCEventHandler* mcHandler = new AliMCEventHandler(); mcHandler->SetReadTR(kFALSE);//Do not search TrackRef file mgr->SetMCtruthEventHandler(mcHandler); if( kInputData == "MC") mgr->SetInputEventHandler(NULL); } // // AOD output handler // AliAODHandler* aodoutHandler = new AliAODHandler(); // aodoutHandler->SetOutputFileName("AliAOD.root"); // mgr->SetOutputEventHandler(aodoutHandler); //input Int_t maxiterations = 1; AliEventPoolLoop* pool = new AliEventPoolLoop(maxiterations); pool->SetChain(chain); Int_t eventsInPool = 10; AliMultiEventInputHandler *inpHandler = NULL ; if(kInputData == "ESD"){ // ESD handler printf("ESD MultiInput \n"); inpHandler = new AliMultiEventInputHandler(eventsInPool, 0); } if(kInputData == "AOD"){ // AOD handler inpHandler = new AliMultiEventInputHandler(eventsInPool, 1); } mgr->SetInputEventHandler(inpHandler); cout<<"Input handler "<<mgr->GetInputEventHandler()<<endl; mgr->SetEventPool(pool); inpHandler->SetEventPool(pool); //mgr->SetDebugLevel(-1); // For debugging, do not uncomment if you want no messages. // select triigger events for physics run // if(!kMC){ // gROOT->LoadMacro("AddTaskPhysicsSelection.C"); // AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection(); // mgr->AddTask(physSelTask); // } //------------------------------------------------------------------------- //Define task, put here any other task that you want to use. //------------------------------------------------------------------------- //correlation analysis gROOT->LoadMacro("AddTaskCaloTrackCorrM.C"); AliAnalysisTaskCaloTrackCorrelationM *taskEMCAL = AddTaskCaloTrackCorrM(kInputData,"EMCAL",kFALSE); mgr->AddTask(taskEMCAL); AliAnalysisTaskCaloTrackCorrelationM *taskPHOS = AddTaskCaloTrackCorrM(kInputData,"PHOS", kFALSE); mgr->AddTask(taskPHOS); //gROOT->LoadMacro("AddTaskChargeCorr.C"); AliAnalysisTaskCaloTrackCorrelationM *taskCharge = AddTaskCaloTrackCorrM(kInputData, "CTS",kFALSE); // if(!kMC) // taskCharge->SelectCollisionCandidates(); mgr->AddTask(taskCharge); //----------------------- // Run the analysis //----------------------- //mgr->ResetAnalysis(); mgr->InitAnalysis(); mgr->PrintStatus(); mgr->StartAnalysis("mix",chain); cout <<" Analysis ended sucessfully "<< endl ; } else cout << "Chain was not produced ! "<<endl; }