ROOT logo
#include "AliPhysicsSelection.h"
#include "AliAnalysisEtSelectionContainer.h"
#include "TFile.h"
#include "TSystem.h"
#include <iostream>

int Init()
{
}

int CreatePhysicsSelection(Int_t runNumber, TString filename);
AliPhysicsSelection* DefaultSelection();


AliPhysicsSelection* GetPhysicsSelection()
{
    //Example of selection CMBS1* triggers (up to 137133), MANUAL SETTINGS REQUIRED
   AliPhysicsSelection * physSel = new AliPhysicsSelection();
   physSel->AddCollisionTriggerClass("+CMBAC-B-NOPF-ALL");
   physSel->AddCollisionTriggerClass("+CMBS1C-B-NOPF-ALL");
   physSel->AddCollisionTriggerClass("+CMBS1A-B-NOPF-ALL");
// This are needed only to fill the statistics tables
   physSel->AddBGTriggerClass("+CMBAC-C-NOPF-ALL");
   physSel->AddBGTriggerClass("+CMBS1C-C-NOPF-ALL");
   physSel->AddBGTriggerClass("+CMBS1A-C-NOPF-ALL");
   physSel->AddBGTriggerClass("+CMBAC-A-NOPF-ALL");
   physSel->AddBGTriggerClass("+CMBS1C-A-NOPF-ALL");
   physSel->AddBGTriggerClass("+CMBS1A-A-NOPF-ALL");
   physSel->AddBGTriggerClass("+CMBAC-E-NOPF-ALL");
   physSel->AddBGTriggerClass("+CMBS1C-E-NOPF-ALL");
   physSel->AddBGTriggerClass("+CMBS1A-E-NOPF-ALL");
   
   return physSel;
   
}

int UpdatePhysicsSelection(Int_t runNumber, TString filename)
{
  
  AliPhysicsSelection *selection = GetPhysicsSelection();
  
  TFile *file = TFile::Open(filename, "UPDATE");
  
  AliAnalysisEtSelectionContainer *container = (dynamic_cast<AliAnalysisEtSelectionContainer*>(file->Get("physicsSelections")));
  if(container)
  {
    container->AddDefaultSelection(DefaultSelection());
    container->AddPhysicsSelection(selection, runNumber);
  
    container->Write();
    file->Close();
  }
  else
  {
    file->Close();
    CreatePhysicsSelection(runNumber, filename);
  }
  return 0;
}

int UpdatePhysicsSelection(AliPhysicsSelection *selection, Int_t runNumber, TString filename)
{
  
  TFile *file = TFile::Open(filename, "UPDATE");
  
  AliAnalysisEtSelectionContainer *container = (dynamic_cast<AliAnalysisEtSelectionContainer*>(file->Get("physicsSelections")));

  if(container)
  {
    container->AddDefaultSelection(DefaultSelection());
    container->AddPhysicsSelection(selection, runNumber);
  
    container->Write();
    file->Close();
  }
  
  else
  {
    file->Close();
    CreatePhysicsSelection(runNumber, filename);
  }
  
  return 0;
}

int CreatePhysicsSelection(Int_t runNumber, TString filename)
{
  TFile *file = TFile::Open(filename, "RECREATE");

  AliAnalysisEtSelectionContainer *container = new AliAnalysisEtSelectionContainer("physicsSelections");
  container->Write();
  file->Close();
  
  UpdatePhysicsSelection(runNumber, filename);
  
  return 0;
}

AliPhysicsSelection* DefaultSelection()
{
  return new AliPhysicsSelection();
}




 CreatePhysicsSelection.C:1
 CreatePhysicsSelection.C:2
 CreatePhysicsSelection.C:3
 CreatePhysicsSelection.C:4
 CreatePhysicsSelection.C:5
 CreatePhysicsSelection.C:6
 CreatePhysicsSelection.C:7
 CreatePhysicsSelection.C:8
 CreatePhysicsSelection.C:9
 CreatePhysicsSelection.C:10
 CreatePhysicsSelection.C:11
 CreatePhysicsSelection.C:12
 CreatePhysicsSelection.C:13
 CreatePhysicsSelection.C:14
 CreatePhysicsSelection.C:15
 CreatePhysicsSelection.C:16
 CreatePhysicsSelection.C:17
 CreatePhysicsSelection.C:18
 CreatePhysicsSelection.C:19
 CreatePhysicsSelection.C:20
 CreatePhysicsSelection.C:21
 CreatePhysicsSelection.C:22
 CreatePhysicsSelection.C:23
 CreatePhysicsSelection.C:24
 CreatePhysicsSelection.C:25
 CreatePhysicsSelection.C:26
 CreatePhysicsSelection.C:27
 CreatePhysicsSelection.C:28
 CreatePhysicsSelection.C:29
 CreatePhysicsSelection.C:30
 CreatePhysicsSelection.C:31
 CreatePhysicsSelection.C:32
 CreatePhysicsSelection.C:33
 CreatePhysicsSelection.C:34
 CreatePhysicsSelection.C:35
 CreatePhysicsSelection.C:36
 CreatePhysicsSelection.C:37
 CreatePhysicsSelection.C:38
 CreatePhysicsSelection.C:39
 CreatePhysicsSelection.C:40
 CreatePhysicsSelection.C:41
 CreatePhysicsSelection.C:42
 CreatePhysicsSelection.C:43
 CreatePhysicsSelection.C:44
 CreatePhysicsSelection.C:45
 CreatePhysicsSelection.C:46
 CreatePhysicsSelection.C:47
 CreatePhysicsSelection.C:48
 CreatePhysicsSelection.C:49
 CreatePhysicsSelection.C:50
 CreatePhysicsSelection.C:51
 CreatePhysicsSelection.C:52
 CreatePhysicsSelection.C:53
 CreatePhysicsSelection.C:54
 CreatePhysicsSelection.C:55
 CreatePhysicsSelection.C:56
 CreatePhysicsSelection.C:57
 CreatePhysicsSelection.C:58
 CreatePhysicsSelection.C:59
 CreatePhysicsSelection.C:60
 CreatePhysicsSelection.C:61
 CreatePhysicsSelection.C:62
 CreatePhysicsSelection.C:63
 CreatePhysicsSelection.C:64
 CreatePhysicsSelection.C:65
 CreatePhysicsSelection.C:66
 CreatePhysicsSelection.C:67
 CreatePhysicsSelection.C:68
 CreatePhysicsSelection.C:69
 CreatePhysicsSelection.C:70
 CreatePhysicsSelection.C:71
 CreatePhysicsSelection.C:72
 CreatePhysicsSelection.C:73
 CreatePhysicsSelection.C:74
 CreatePhysicsSelection.C:75
 CreatePhysicsSelection.C:76
 CreatePhysicsSelection.C:77
 CreatePhysicsSelection.C:78
 CreatePhysicsSelection.C:79
 CreatePhysicsSelection.C:80
 CreatePhysicsSelection.C:81
 CreatePhysicsSelection.C:82
 CreatePhysicsSelection.C:83
 CreatePhysicsSelection.C:84
 CreatePhysicsSelection.C:85
 CreatePhysicsSelection.C:86
 CreatePhysicsSelection.C:87
 CreatePhysicsSelection.C:88
 CreatePhysicsSelection.C:89
 CreatePhysicsSelection.C:90
 CreatePhysicsSelection.C:91
 CreatePhysicsSelection.C:92
 CreatePhysicsSelection.C:93
 CreatePhysicsSelection.C:94
 CreatePhysicsSelection.C:95
 CreatePhysicsSelection.C:96
 CreatePhysicsSelection.C:97
 CreatePhysicsSelection.C:98
 CreatePhysicsSelection.C:99
 CreatePhysicsSelection.C:100
 CreatePhysicsSelection.C:101
 CreatePhysicsSelection.C:102
 CreatePhysicsSelection.C:103
 CreatePhysicsSelection.C:104
 CreatePhysicsSelection.C:105
 CreatePhysicsSelection.C:106
 CreatePhysicsSelection.C:107