]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGGA/GammaConv/macros/AddTask_GammaConvV1.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / macros / AddTask_GammaConvV1.C
index fec552257ff95e0f5cbbcc4b4956702998522c79..208186d8f01cd0a073f38e3e86819438c3c24511 100644 (file)
 
-void AddTask_GammaConvV1(TString trainConfig = "pp",   Bool_t isMC     = kFALSE, UInt_t triggerMaskpPb = AliVEvent::kINT7 ){
+void AddTask_GammaConvV1(TString mode){
 
-   gSystem->Load("libCore.so");  
-   gSystem->Load("libTree.so");
-   gSystem->Load("libGeom.so");
-   gSystem->Load("libVMC.so");
-   gSystem->Load("libPhysics.so");
+   gSystem->Load("libCore");
+   gSystem->Load("libTree");
+   gSystem->Load("libGeom");
+   gSystem->Load("libVMC");
+   gSystem->Load("libPhysics");
    gSystem->Load("libMinuit");
    gSystem->Load("libSTEERBase");
    gSystem->Load("libESD");
    gSystem->Load("libAOD");
    gSystem->Load("libANALYSIS");
    gSystem->Load("libANALYSISalice");  
-   gSystem->Load("libPWGGAGammaConv.so");
-   gSystem->Load("libCDB.so");
-   gSystem->Load("libSTEER.so");
-   gSystem->Load("libSTEERBase.so");
-   gSystem->Load("libTENDER.so");
-   gSystem->Load("libTENDERSupplies.so");
-      
+   gSystem->Load("libPWGGAGammaConv");
+   gSystem->Load("libEve");
+   gSystem->Load("libCDB");
+   gSystem->Load("libProof");
+   gSystem->Load("libRAWDatabase");
+   gSystem->Load("libSTEER");
+   gSystem->Load("libSTEERBase");
+   gSystem->Load("libTender");
+   gSystem->Load("libTRDbase");
+   gSystem->Load("libVZERObase");
+   gSystem->Load("libVZEROrec");
+   gSystem->Load("libTenderSupplies");
+   
+   Bool_t isMC = kTRUE;
+   Bool_t readTR = kTRUE;
+
+   TString Pattern="*/AliESDs.root";
+   //TString Pattern="*/AliAOD.root";
+   TString Prefix ="";
+
 
-   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+
+   
+//   Int_t run_numbers[100] = {137161, 137162, 137165, 137230, 137231, 137232, 137235, 137236, 137243, 137366, 137430, 137431, 137432, 137434, 137439, 137440, 137441, 137443, 137530, 137531, 137539, 137541, 137544, 137546, 137549, 137595, 137608, 137638, 137639, 137685, 137686, 137691, 137692, 137693, 137704, 137718, 137722, 137724, 137751, 137752, 137844, 137848, 138190, 138192, 138197, 138201, 138225, 138275, 138364, 138396, 138438, 138439, 138442, 138469, 138534, 138578, 138579, 138582, 138583, 138621, 138624, 138638, 138652, 138653, 138662, 138666, 138730, 138732, 138837, 138870, 138871, 138872, 139028, 139029, 139036, 139037, 139038, 139104, 139105, 139107, 139173, 139308, 139309, 139310, 139311, 139314, 139328, 139329, 139360, 139437, 139438, 139439, 139465, 139503, 139504, 139505, 139507, 139510};
+   
+   Int_t run_numbers[10] = {137161, 137162, 137165, 137230, 137231, 137232, 137235, 137236, 137243, 137366};
+   //Int_t run_numbers[10] = {137430, 137431, 137432, 137434, 137439, 137440, 137441, 137443, 137530, 137531};
+   //Int_t run_numbers[10] = {137539, 137541, 137544, 137546, 137549, 137595, 137608, 137638, 137639, 137685};
+   //Int_t run_numbers[10] = {137686, 137691, 137692, 137693, 137704, 137718, 137722, 137724, 137751, 137752};
+   //Int_t run_numbers[10] = {137844, 137848, 138190, 138192, 138197, 138201, 138225, 138275, 138364, 138396};
+   //Int_t run_numbers[10] = {138438, 138439, 138442, 138469, 138534, 138578, 138579, 138582, 138583, 138621};
+   //Int_t run_numbers[10] = {138624, 138638, 138652, 138653, 138662, 138666, 138730, 138732, 138837, 138870};
+   //Int_t run_numbers[10] = {138871, 138872, 139028, 139029, 139036, 139037, 139038, 139104, 139105, 139107};
+   //Int_t run_numbers[10] = {139173, 139308, 139309, 139310, 139311, 139314, 139328, 139329, 139360, 139437};
+   //Int_t run_numbers[10] = {139438, 139439, 139465, 139503, 139504, 139505, 139507, 139510};
+   gSystem->Setenv("alien_CLOSE_SE","ALICE::Grenoble::SE");
+
+   AliAnalysisManager *mgr = new AliAnalysisManager("Analysis");
    if (!mgr) {
       Error("AddTask_GammaConvV1", "No analysis manager found.");
       return 0;
    }
-      
-   Int_t IsHeavyIon=0;
-   if (trainConfig.Contains("PbPb")) IsHeavyIon=1;
-   else if (trainConfig.Contains("pPb")) IsHeavyIon=2;
 
-   Bool_t doEtaShift = kFALSE;
+   gROOT->LoadMacro("CreateAlienHandlerNonPT.C");
+   AliAnalysisAlien *alienHandler = CreateAlienHandler(mode);
+   if (!alienHandler) return;
+
+   TString WorkingDir = "MCPbPb_LHC13d2_v3";
+   TString data = "/alice/sim/2013/LHC13d2/";
    
-   TString cutnumber = "";
-   if(IsHeavyIon == 1){
-      cutnumber = "1000000002084001001500000";
-    } else if (IsHeavyIon==2){
-      cutnumber = "8000000062084001001500000";
-      doEtaShift = kFALSE; // Only needed if Eta Range is small, but default is now +- 5.0
-   } else{
-      cutnumber = "0000000002084000002200000";
+   mgr->SetGridHandler(alienHandler);
+   alienHandler->SetGridWorkingDir(WorkingDir.Data());
+   alienHandler->SetGridOutputDir(Form("OUTPUT_%s",WorkingDir.Data()));
+
+   alienHandler->SetGridDataDir(data);
+   alienHandler->SetDataPattern(Pattern.Data());
+   alienHandler->SetRunPrefix(Prefix.Data());
+   //alienHandler->SetRunRange(137161,139510);
+   for (Int_t i=0; i<10; i++) {
+      if (run_numbers[i]==0) break;
+      alienHandler->AddRunNumber(run_numbers[i]);
+   }
+      
+   AliESDInputHandler * handler;
+   handler = new AliESDInputHandler(); mgr->SetInputEventHandler((AliESDInputHandler*)handler);
+
+   AliMCEventHandler* mcHandler;
+   if(isMC){
+      mcHandler = new AliMCEventHandler();
+      mgr->SetMCtruthEventHandler(mcHandler);
+      mcHandler->SetReadTR(readTR);
    }
 
    //========= Add PID Reponse to ANALYSIS manager ====
    if(!(AliPIDResponse*)mgr->GetTask("PIDResponseTask")){
       gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");
-      AddTaskPIDResponse();
-   }
-      
-   //========= Add V0 Reader to  ANALYSIS manager =====
-   AliV0ReaderV1 *fV0ReaderV1 = new AliV0ReaderV1("V0ReaderV1");
+      AddTaskPIDResponse(isMC);
+   }//========= Add PID Reponse to ANALYSIS manager ====
    
-   fV0ReaderV1->SetUseOwnXYZCalculation(kTRUE);
-   fV0ReaderV1->SetCreateAODs(kFALSE);// AOD Output
-   fV0ReaderV1->SetUseAODConversionPhoton(kTRUE);
-
-   if (!mgr) {
-      Error("AddTask_V0ReaderV1", "No analysis manager found.");
-      return;
-   }
-   AliVEventHandler *inputHandler=mgr->GetInputEventHandler();
-
-   if(inputHandler->IsA()==AliESDInputHandler::Class()){
-      // ESD mode
-   }
-
-   if(inputHandler->IsA()==AliAODInputHandler::Class()){
-      // AOD mode
-      //   task->SetUseSatelliteAODs(kTRUE);
-   }
-
-   // Set AnalysisCut Number
-   AliConversionCuts *fCuts=NULL;
-   if(cutnumber!=""){
-      fCuts= new AliConversionCuts(cutnumber.Data(),cutnumber.Data());
-      if(fCuts->InitializeCutsFromCutString(cutnumber.Data())){
-         if (IsHeavyIon==2){
-            fCuts->SelectCollisionCandidates(triggerMaskpPb);
-            fCuts->DoEtaShift(doEtaShift);
-         }
-         fV0ReaderV1->SetConversionCuts(fCuts);
-         fCuts->SetFillCutHistograms("",kTRUE);
-      }
-   }
-   fV0ReaderV1->Init();
-
-
-
-   AliLog::SetGlobalLogLevel(AliLog::kInfo);
-
-   //================================================
-   //              data containers
-   //================================================
-   //            find input container
-   //below the trunk version
-   AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
-   //connect input V0Reader
-   mgr->AddTask(fV0ReaderV1);
-   mgr->ConnectInput(fV0ReaderV1,0,cinput);
-
-   //================================================
-   //========= Add task to the ANALYSIS manager =====
-   //================================================
-   //              data containers
-   //================================================
-   //            find input container
-   AliAnalysisTaskGammaConvV1 *task=NULL;
-   task= new AliAnalysisTaskGammaConvV1("GammaConvV1");
-   task->SetIsHeavyIon(IsHeavyIon);
-   // Cut Numbers to use in Analysis
-   Int_t numberOfCuts = 2;
-   if(trainConfig.Contains("PbPb")) numberOfCuts = 7;
-   else if(trainConfig.Contains("pPb")) numberOfCuts = 5;
-   else numberOfCuts = 3;
-
-   TString *cutarray = new TString[numberOfCuts];
-   TString *mesonCutArray = new TString[numberOfCuts];
-
-   if(trainConfig.Contains("PbPb")){
-      cutarray[ 0] = "3010001042092970023220000"; mesonCutArray[ 0] = "01522045000";
-      cutarray[ 1] = "1010001042092970023220000"; mesonCutArray[ 1] = "01522045000";
-      cutarray[ 2] = "3120001042092970023220000"; mesonCutArray[ 2] = "01522045000";
-      cutarray[ 3] = "1120001042092970023220000"; mesonCutArray[ 3] = "01522045000";
-      cutarray[ 4] = "1240001042092970023220000"; mesonCutArray[ 4] = "01522045000";
-      cutarray[ 5] = "1460001042092970023220000"; mesonCutArray[ 5] = "01522065000";
-      cutarray[ 6] = "1680001042092970023220000"; mesonCutArray[ 6] = "01522065000";
-   } else if(trainConfig.Contains("pPb")){ //pA needs thighter rapidity cut y < 0.5
-      cutarray[ 0] = "8000000082093172023290000"; mesonCutArray[ 0] = "01629045000"; //shifted Pbp
-      cutarray[ 1] = "8020000082093172023290000"; mesonCutArray[ 1] = "01629045000";
-      cutarray[ 2] = "8240000082093172023290000"; mesonCutArray[ 2] = "01629045000";
-      cutarray[ 3] = "8460000082093172023290000"; mesonCutArray[ 3] = "01629045000";
-      cutarray[ 4] = "8600000082093172023290000"; mesonCutArray[ 4] = "01629045000";
-
-   } else {
-      cutarray[ 0] = "0000012002093663003800000"; mesonCutArray[0] = "01631031009"; //standard cut Pi0 pp 2.76TeV without SDD , only boxes
-      cutarray[ 1] = "0001012002093663003800000"; mesonCutArray[1] = "01631031009"; //standard cut Pi0 pp 2.76TeV without SDD, V0AND , only boxes
-      cutarray[ 2] = "0000012002093260003800000"; mesonCutArray[2] = "01631031009"; //standard cut Gamma pp 2-76TeV , only boxes
-
-   }
-
-   TList *ConvCutList = new TList();
-   TList *MesonCutList = new TList();
-
-   TList *HeaderList = new TList();
-   // TObjString *Header1 = new TObjString("PARAM");
-   // HeaderList->Add(Header1);
-    TObjString *Header2 = new TObjString("BOX");
-    HeaderList->Add(Header2);
-//   TObjString *Header3 = new TObjString("Pythia");
-//   HeaderList->Add(Header3);
-//   TObjString *Header4 = new TObjString("Hijing");
-//   HeaderList->Add(Header4);
-
-
-   ConvCutList->SetOwner(kTRUE);
-   AliConversionCuts **analysisCuts = new AliConversionCuts*[numberOfCuts];
-   MesonCutList->SetOwner(kTRUE);
-   AliConversionMesonCuts **analysisMesonCuts = new AliConversionMesonCuts*[numberOfCuts];
-
-
-   for(Int_t i = 0; i<numberOfCuts; i++){
-      analysisCuts[i] = new AliConversionCuts();
-      analysisCuts[i]->InitializeCutsFromCutString(cutarray[i].Data());
-      if (trainConfig.Contains("pPb")){
-         analysisCuts[i]->SelectCollisionCandidates(triggerMaskpPb);
-         if (i<5){
-            analysisCuts[i]->DoEtaShift(kTRUE);
-            analysisCuts[i]->SetEtaShift("Pbp");
-         }
-      }
-      ConvCutList->Add(analysisCuts[i]);
-
-      analysisCuts[i]->SetFillCutHistograms("",kFALSE);
-      analysisMesonCuts[i] = new AliConversionMesonCuts();
-      analysisMesonCuts[i]->InitializeCutsFromCutString(mesonCutArray[i].Data());
-      MesonCutList->Add(analysisMesonCuts[i]);
-      analysisMesonCuts[i]->SetFillCutHistograms("");
-      analysisCuts[i]->SetAcceptedHeader(HeaderList);
+   gROOT->LoadMacro("$ALICE_ROOT/OADB/macros/AddTaskPhysicsSelection.C");
+   AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection(isMC);
+
+   AliCentralitySelectionTask *taskCentrality;
+   gROOT->LoadMacro("$ALICE_ROOT/OADB/macros/AddTaskCentrality.C");
+   taskCentrality = AddTaskCentrality();
+   if (isMC){
+      taskCentrality->SetMCInput();
+      Info("AddTask_tender_CentralitySelection", "This task has MC.");
    }
+   
+   gROOT->LoadMacro("$ALICE_ROOT/PWGGA/GammaConv/macros/AddTask_GammaConvV1_PbPb.C");
+   
+   cout<<"Connecting to Alien..."<<endl;
+   TGrid::Connect("alien://");
+   cout<<"==============================="<<endl;
+   cout<<"Successfully connected to Alien"<<endl;
+   cout<<"==============================="<<endl;
+
+   AliAnalysisTask *taskA = AddTask_GammaConvV1_PbPb(1,  //change different set of cuts
+                                                     isMC, //run MC 
+                                                     kFALSE, //enable QA in AliAnalysisTaskGammaConvV1
+                                                     kTRUE, // enable additional Photon QA task
+                                                     "alien:///alice/cern.ch/user/f/fbock/MCSpectraInput.root", // path to file for weigting input
+                                                     kTRUE,  //enable Weighting
+                                                     "1000000060084000001500000");
+
+   AliAnalysisTask *taskB = AddTask_GammaConvV1_PbPb(2,  //change different set of cuts
+                                                     isMC, //run MC 
+                                                     kFALSE, //enable QA in AliAnalysisTaskGammaConvV1
+                                                     kTRUE, // enable additional Photon QA task
+                                                     "alien:///alice/cern.ch/user/f/fbock/MCSpectraInput.root", // path to file for weigting input
+                                                     kTRUE,  //enable Weighting
+                                                     "1000000060084000001500000");
+
+   AliAnalysisTask *taskC = AddTask_GammaConvV1_PbPb(5,  //change different set of cuts
+                                                     isMC, //run MC 
+                                                     kFALSE, //enable QA in AliAnalysisTaskGammaConvV1
+                                                     kTRUE, // enable additional Photon QA task
+                                                     "alien:///alice/cern.ch/user/f/fbock/MCSpectraInput.root", // path to file for weigting input
+                                                     kTRUE,  //enable Weighting
+                                                     "1000000060084000001500000");
+
+   AliAnalysisTask *taskD = AddTask_GammaConvV1_PbPb(6,  //change different set of cuts
+                                                     isMC, //run MC 
+                                                     kFALSE, //enable QA in AliAnalysisTaskGammaConvV1
+                                                     kTRUE, // enable additional Photon QA task
+                                                     "alien:///alice/cern.ch/user/f/fbock/MCSpectraInput.root", // path to file for weigting input
+                                                     kTRUE,  //enable Weighting
+                                                     "1000000060084000001500000");
+   
 
-   task->SetConversionCutList(numberOfCuts,ConvCutList);
-   task->SetMesonCutList(numberOfCuts,MesonCutList);
-   task->SetMoveParticleAccordingToVertex(kTRUE);
-   task->SetDoMesonAnalysis(kTRUE);
-   if (trainConfig.Contains("pPb") || trainConfig.Contains("pp") )task->SetDoMesonQA(kTRUE); //Attention new switch for Pi0 QA
-   if (trainConfig.Contains("pPb") || trainConfig.Contains("pp") )task->SetDoPhotonQA(kTRUE);  //Attention new switch small for Photon QA
-
-   //connect containers
-   AliAnalysisDataContainer *coutput =
-      mgr->CreateContainer("GammaConvV1", TList::Class(),
-                           AliAnalysisManager::kOutputContainer,"GammaConvV1.root");
-
-   mgr->AddTask(task);
-   mgr->ConnectInput(task,0,cinput);
-   mgr->ConnectOutput(task,1,coutput);
-
-   return task;
-
+   if (!mgr->InitAnalysis())return;
+   mgr->StartAnalysis("grid");
+}
+Int_t CheckLoadLibrary(const char* library)                                                                                                        
+{                                                                                                                                                  
+   // checks if a library is already loaded, if not loads the library                                                                               
+                                                                                                                                                   
+   if (strlen(gSystem->GetLibraries(library, "", kFALSE)) > 0)                                                                       
+      return 1;                                                                                                                                      
+                                                                                                                                                   
+   return gSystem->Load(library);                                                                                                                   
 }