Ejemplo n.º 1
0
IlcCentralitySelectionTask *AddTaskCentrality(Bool_t fillHistos=kTRUE)
{
// Macro to connect a centrality selection task to an existing analysis manager.
  IlcAnalysisManager *mgr = IlcAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    ::Error("AddTaskCentrality", "No analysis manager to connect to.");
    return NULL;
  }    
  // Check the analysis type using the event handlers connected to the analysis manager.
  //==============================================================================
  if (!mgr->GetInputEventHandler()) {
    ::Error("AddTaskCentrality", "This task requires an input event handler");
    return NULL;
  }
  TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
  if (inputDataType != "ESD") {
    ::Error("AddTaskCentrality", "This task works only on ESD analysis");
    return NULL;
  }
  IlcCentralitySelectionTask *centralityTask = new IlcCentralitySelectionTask("CentralitySelection");
  centralityTask->SelectCollisionCandidates(IlcVEvent::kAny);
  mgr->AddTask(centralityTask);
  
  mgr->ConnectInput(centralityTask, 0, mgr->GetCommonInputContainer());
  if (fillHistos) {
    centralityTask->SetFillHistos();
    IlcAnalysisDataContainer *coutput1 = mgr->CreateContainer("CentralityStat",
                                                              TList::Class(), 
                                                              IlcAnalysisManager::kOutputContainer,
                                                              "EventStat_temp.root");
    mgr->ConnectOutput(centralityTask,1,coutput1);
  }

  return centralityTask;
}   
Ejemplo n.º 2
0
Bool_t InputHandlerSetup(TString format = "esd", Bool_t useKine = kTRUE)
{
  format.ToLower();

  IlcAnalysisManager *mgr = IlcAnalysisManager::GetAnalysisManager();

  IlcAnalysisDataContainer *cin = mgr->GetCommonInputContainer();

  if (cin) return;

  if (!format.CompareTo("esd"))
    {
      IlcESDInputHandler *esdInputHandler = 
	dynamic_cast<IlcESDInputHandler*>(IlcAnalysisManager::GetAnalysisManager()->
					  GetInputEventHandler());

      if (!esdInputHandler)
	{
	  Info("CustomAnalysisTaskInputSetup", "Creating esdInputHandler ...");
	  esdInputHandler = new IlcESDInputHandler();
	  mgr->SetInputEventHandler(esdInputHandler);
	}

      if (useKine)
	{
	  IlcMCEventHandler* mcInputHandler = 
	    dynamic_cast<IlcMCEventHandler*>(IlcAnalysisManager::GetAnalysisManager()->
					     GetMCtruthEventHandler());

	  if (!mcInputHandler)
	    {
	      Info("CustomAnalysisTaskInputSetup", "Creating mcInputHandler ...");
	      IlcMCEventHandler* mcInputHandler = new IlcMCEventHandler();
	      mgr->SetMCtruthEventHandler(mcInputHandler);
	    }
	}

    }
  else if (!format.CompareTo("aod"))
    {
      IlcAODInputHandler *aodInputHandler = 
	dynamic_cast<IlcAODInputHandler*>(IlcAnalysisManager::GetAnalysisManager()->
					  GetInputEventHandler());

      if (!aodInputHandler)
	{
	  Info("CustomAnalysisTaskInputSetup", "Creating aodInputHandler ...");
	  aodInputHandler = new IlcAODInputHandler();
	  mgr->SetInputEventHandler(aodInputHandler);
	}
    }
  else
    {
      IlcWarning("Wrong input format!!! Only ESD and AOD are supported. Skipping Task ...");
      return kFALSE;
    }

  return kTRUE;
}
Ejemplo n.º 3
0
void DphiAnalysis()
{
      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");

     //
    if (gApplication) gApplication->InitializeGraphics();
    // Create the chain
    //

    //TString path("/afs/cern.ch/user/m/morsch/public/");
    TString path("./");
    TChain* chain = new TChain("aodTree");
    chain->Add(Form("%s/%s",path.Data(),"IlcAOD.root"));

    /////////////////////////////////////////////////////////////////////////////////// 
    // Create the analysis manager
    //
    // Input 
    IlcMultiEventInputHandler* inpHandler = new IlcMultiEventInputHandler(2, 1);
    // Pool
    IlcEventPoolOTF* pool = new IlcEventPoolOTF("event pool", "AOD");

    pool->SetTagDirectory(path.Data());
    pool->SetMultiplicityBin(0, 100, 100);
    pool->Init();
    
    IlcAnalysisManager *mgr  = new IlcAnalysisManager("Jet Manager", "Jet Manager");
    mgr->SetInputEventHandler  (inpHandler);
    mgr->SetEventPool(pool);
    inpHandler->SetEventPool(pool);
    

    mgr->SetDebugLevel(10);
    /////////////////////////////////////////////////////////////////////////////////// 
    gROOT->LoadMacro("IlcAnalysisTaskPhiCorr.cxx++g");
    IlcAnalysisTaskPhiCorr *dphiana = new IlcAnalysisTaskPhiCorr("Phi Correlation Analysis");
    dphiana->SetDebugLevel(10);
    mgr->AddTask(dphiana);
    
    //
    // Create containers for input/output
    IlcAnalysisDataContainer *cinput1 = mgr->CreateContainer("cchain",TChain::Class(), 
							     IlcAnalysisManager::kInputContainer);

    IlcAnalysisDataContainer *coutput1 = mgr->CreateContainer("tree", TTree::Class(),
							      IlcAnalysisManager::kExchangeContainer, "default");
    IlcAnalysisDataContainer *coutput2 = mgr->CreateContainer("histos", TList::Class(),
							      IlcAnalysisManager::kOutputContainer, "histos.root");


    mgr->ConnectInput  (dphiana,  0,  mgr->GetCommonInputContainer());
    mgr->ConnectOutput (dphiana,  0, coutput1 );
    mgr->ConnectOutput (dphiana,  1, coutput2 );

    // 
    // Run the analysis
    //    
    mgr->InitAnalysis();
    mgr->PrintStatus();
    mgr->StartAnalysis("mix",chain, 1000);
}
void runCentralitySelection(const char *mode="local")
{
  // Load common libraries
  gSystem->Load("libCore.so");  
  gSystem->Load("libTree.so");
  gSystem->Load("libGeom.so");
  gSystem->Load("libVMC.so");
  gSystem->Load("libPhysics.so");
  gSystem->Load("libSTEERBase");
  gSystem->Load("libESD");
  gSystem->Load("libAOD");
  gSystem->Load("libANALYSIS");
  gSystem->Load("libANALYSISilc");   
  gSystem->Load("libCORRFW");   
  gSystem->Load("libPWGHFbase");   
  gSystem->Load("libPWGmuon");   
  // Use IlcRoot includes to compile our task
  gROOT->ProcessLine(".include $ILC_ROOT/include");

  // filename 
  TChain* chain = new TChain("esdTree");
  chain->AddFile("/home/alberica/analysis/centrality/data/ilc/sim/LHC10a12/104157/998/root_archive.zip#IlcESDs.root");
 
 // Create the analysis manager
  IlcAnalysisManager *mgr = new IlcAnalysisManager("AnalysisManager");
  mgr->SetDebugLevel(10);
  
  // My task
  gROOT->LoadMacro("IlcCentralitySelectionTask.cxx++g");   
  IlcCentralitySelectionTask *task = new IlcCentralitySelectionTask("CentralitySelection"); 
  task->SetPercentileFile("test_IlcCentralityBy1D.root");
  task->SetCentralityMethod("V0");
  mgr->AddTask(task);

  // My dummy task
  gROOT->LoadMacro("IlcDummy.cxx++g");   
  IlcDummy *dummytask = new IlcDummy("Dummy"); 
  mgr->AddTask(dummytask);



  IlcMCEventHandler*  mcHandler = new IlcMCEventHandler();
  mgr->SetMCtruthEventHandler(mcHandler);

  IlcESDInputHandler* esdH = new IlcESDInputHandler();
  mgr->SetInputEventHandler(esdH);

  // Create containers for input/output
  mgr->ConnectInput (task,0, mgr->GetCommonInputContainer());
  mgr->ConnectInput (dummytask,0, mgr->GetCommonInputContainer());
  //  mgr->ConnectOutput(task,0, mgr->GetCommonOutputContainer());  

  // Enable debug printouts
  mgr->SetDebugLevel(2);

  if(!mgr->InitAnalysis()) return;

  mgr->PrintStatus();
  // Start analysis in grid.
  mgr->StartAnalysis(mode, chain);

};