]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG4/macros/anaM.C
move PWG4 macros to PWGGA corresponding places
[u/mrichter/AliRoot.git] / PWG4 / macros / anaM.C
diff --git a/PWG4/macros/anaM.C b/PWG4/macros/anaM.C
deleted file mode 100644 (file)
index 2d4f685..0000000
+++ /dev/null
@@ -1,296 +0,0 @@
-/* $Id$ */
-//-------------------------------------------------
-enum anaModes {mLocal, mGRID};
-//mLocal    = 0: Analyze locally files in your computer
-//mGRID     = 3: Analyze files on GRID
-
-//---------------------------------------------------------------------------
-//Settings to read locally several files, only for "mLocal" mode
-//The different values are default, they can be set with environmental 
-//variables: INDIR, PATTERN, NFILES, respectively
-char * kInDir = "/Users/ymao/group/ana/7TeV/corr";
-char * kPattern = ""; // Data are in files kInDir/kPattern+i
-Int_t kFile = 1; // Number of files
-//---------------------------------------------------------------------------
-//Collection file for grid analysis
-char * kXML = "collection.xml";
-
-//---------------------------------------------------------------------------
-
-const Bool_t kMC = kFALSE; //With real data kMC = kFALSE
-TString kInputData = "ESD";//ESD, AOD, MC
-TString kTreeName ;
-const TString calorimeter = "EMCAL" ;
-const Bool_t kUsePAR = kFALSE; //set to kFALSE for libraries
-//const Bool_t kUsePAR = kTRUE; //set to kFALSE for libraries
-const Bool_t kDoESDFilter = kFALSE;  //filter the tracks from the esd
-
-Int_t mode = mGRID;
-
-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");
-    
-    AliAnalysisTaskParticleCorrelationM *taskEMCAL = AddTaskCaloTrackCorrM(kInputData,"EMCAL",kFALSE);
-
-    mgr->AddTask(taskEMCAL);
-    
-    AliAnalysisTaskParticleCorrelationM *taskPHOS  = AddTaskCaloTrackCorrM(kInputData,"PHOS", kFALSE);
-
-    mgr->AddTask(taskPHOS);
-    
-    //gROOT->LoadMacro("AddTaskChargeCorr.C");
-    AliAnalysisTaskParticleCorrelationM *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;
-  
-}
-
-void  LoadLibraries() {
-  //--------------------------------------
-  // Load the needed libraries most of them already loaded by aliroot
-  //--------------------------------------
-  gSystem->Load("libTree.so");
-  gSystem->Load("libGeom.so");
-  gSystem->Load("libVMC.so");
-  gSystem->Load("libXMLIO.so");
-  if(kUsePAR){
-    //--------------------------------------------------------
-    //If you want to use root and par files from aliroot
-    //--------------------------------------------------------  
-    SetupPar("STEERBase");
-    SetupPar("ESD");
-    SetupPar("AOD");
-    SetupPar("ANALYSIS");
-    SetupPar("ANALYSISalice");
-    SetupPar("PHOSUtils");
-    SetupPar("EMCALUtils");
-    
-    SetupPar("PWG4CaloTrackCorrBase");
-    SetupPar("PWG4CaloTrackCorrDep");
-  }
-  else{
-    //--------------------------------------------------------
-    // If you want to use already compiled libraries 
-    // in the aliroot distribution
-    //--------------------------------------------------------
-    gSystem->Load("libSTEERBase");
-    gSystem->Load("libESD");
-    gSystem->Load("libAOD");
-    gSystem->Load("libANALYSIS");
-    gSystem->Load("libANALYSISalice");
-         gSystem->Load("libPHOSUtils");
-         gSystem->Load("libEMCALUtils");
-    gSystem->Load("libPWG4CaloTrackCorrBase");
-    gSystem->Load("libPWG4CaloTrackCorrDep");
-  }
-  
-}
-
-void SetupPar(char* pararchivename)
-{
-  //Load par files, create analysis libraries
-  //For testing, if par file already decompressed and modified
-  //classes then do not decompress.
-  
-  TString cdir(Form("%s", gSystem->WorkingDirectory() )) ; 
-  TString parpar(Form("%s.par", pararchivename)) ; 
-  if ( gSystem->AccessPathName(pararchivename) ) {  
-    TString processline = Form(".! tar xvzf %s",parpar.Data()) ;
-    gROOT->ProcessLine(processline.Data());
-  }
-  
-  TString ocwd = gSystem->WorkingDirectory();
-  gSystem->ChangeDirectory(pararchivename);
-  
-  // check for BUILD.sh and execute
-  if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) {
-    printf("*******************************\n");
-    printf("*** Building PAR archive    ***\n");
-    cout<<pararchivename<<endl;
-    printf("*******************************\n");
-    
-    if (gSystem->Exec("PROOF-INF/BUILD.sh")) {
-      Error("runProcess","Cannot Build the PAR Archive! - Abort!");
-      return -1;
-    }
-  }
-  // check for SETUP.C and execute
-  if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) {
-    printf("*******************************\n");
-    printf("*** Setup PAR archive       ***\n");
-    cout<<pararchivename<<endl;
-    printf("*******************************\n");
-    gROOT->Macro("PROOF-INF/SETUP.C");
-  }
-  
-  gSystem->ChangeDirectory(ocwd.Data());
-  printf("Current dir: %s\n", ocwd.Data());
-}
-
-
-
-void CreateChain(const anaModes mode, TChain * chain){//, TChain * chainxs){
-  //Fills chain with data
-  
-  TString datafileName="";
-  if(kInputData == "ESD") datafileName = "AliESDs.root" ;
-  else if(kInputData == "AOD") datafileName = "AliAOD.root" ;
-  else if(kInputData == "MC")  datafileName = "galice.root" ;
-  
-  TString ocwd = gSystem->WorkingDirectory();
-  
-  //---------------------------------------
-  //Local files analysis
-  //---------------------------------------
-  if(mode == mLocal){
-    //If you want to add several ESD files sitting in a common directory INDIR
-    //Specify as environmental variables the directory (INDIR), the number of files 
-    //to analyze (NFILES) and the pattern name of the directories with files (PATTERN)
-    
-    cout<<"INDIR : "<<kInDir<<endl;
-    cout<<"NFILES : "<<kFile<<endl;
-    cout<<"PATTERN: " <<kPattern<<endl;
-    
-    
-    //Loop on ESD files, add them to chain
-    TString FileName ;      
-    for (Int_t iFile = 0 ; iFile < kFile ; iFile++) {
-      FileName = Form("%s/%s%d/%s", kInDir,kPattern,iFile,datafileName.Data()) ; 
-      //cout << "FileName: " << FileName <<endl ;
-      TFile * dataFile = 0 ; 
-      //Check if file exists and add it, if not skip it
-      if ( dataFile = TFile::Open(FileName.Data())) {
-        if ( dataFile->Get(kTreeName) ) { 
-          Int_t nEventsPerFile = ((TTree*) dataFile->Get(kTreeName)) ->GetEntries();
-          printf(" ++++ Adding %s, with %d events \n", FileName.Data(), nEventsPerFile) ;
-          chain->AddFile(FileName);
-        }
-      }
-    }    
-    printf("number of entries # %lld \n", chain->GetEntries()) ;       
-  }// local files analysis
-  
-  //------------------------------
-  //GRID xml files
-  //-----------------------------
-  else if(mode == mGRID){
-    //Load necessary libraries and connect to the GRID
-    gSystem->Load("libNetx.so") ; 
-    gSystem->Load("libRAliEn.so"); 
-    TGrid::Connect("alien://") ;
-    
-    //Feed Grid with collection file
-    //TGridCollection * collection =  (TGridCollection*)gROOT->ProcessLine(Form("TAlienCollection::Open(\"%s\", 0)", kXML));
-    TGridCollection * collection = (TGridCollection*) TAlienCollection::Open(kXML);
-    if (! collection) {
-      AliError(Form("%s not found", kXML)) ; 
-      return kFALSE ; 
-    }
-    TGridResult* result = collection->GetGridResult("",0 ,0);
-    
-    // Makes the ESD chain 
-    printf("*** Getting the Chain       ***\n");
-    Int_t nEventsPerFile = 0;
-    for (Int_t index = 0; index < result->GetEntries(); index++) {
-      TString alienURL = result->GetKey(index, "turl") ; 
-      cout << "================== " << alienURL << endl ; 
-      chain->Add(alienURL) ; 
-      
-    }
-  }// xml analysis
-  
-  gSystem->ChangeDirectory(ocwd.Data());
-}