ROOT logo
// Configuration of simple task counting events
// Gets the cross section from file pyxsec if requested

//___________________________________________________________________
AliAnalysisTaskCounter * AddTaskCounter(const TString trigger = "",
                                        Bool_t xsOn = kFALSE)
{
  
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  
  AliAnalysisTaskCounter * counter =  new AliAnalysisTaskCounter(Form("Counter%s",trigger.Data()));
  //if(kRun > 140000 && kRun < 146900) counter ->RejectFastCluster();
  //if     (kCollision=="pp"  )   counter->SetZVertexCut(10.);  //Open cut
  //else if(kCollision=="PbPb")   counter->SetZVertexCut(10.);  //Centrality defined in this range.
  
  if(xsOn) counter->SwitchOnMCCrossSectionCalculation();
  else     counter->SwitchOffMCCrossSectionCalculation();
  
  if(trigger=="EMC8")
  {
    printf("counter trigger EMC8\n");
    counter->SelectCollisionCandidates(AliVEvent::kEMC8);
  }
  else if(trigger=="EMC7")
  {
    printf("counter trigger EMC7\n");
    counter->SelectCollisionCandidates(AliVEvent::kEMC7);
  }
  else if (trigger=="INT7")
  {
    printf("counter trigger INT7\n");
    counter->SelectCollisionCandidates(AliVEvent::kINT7);
  }
  if(trigger=="EMC1")
  {
    printf("counter trigger EMC1\n");
    counter->SelectCollisionCandidates(AliVEvent::kEMC1);
  }
  else if(trigger=="MB")
  {
    printf("counter trigger MB\n");
    counter->SelectCollisionCandidates(AliVEvent::kMB);
  }
  else if(trigger=="PHOS")
  {
    printf("counter trigger PHOS\n");
    counter->SelectCollisionCandidates(AliVEvent::kPHI7);
  }
  else if(trigger=="PHOSPb")
  {
    printf("counter trigger PHOSPb\n");
    counter->SelectCollisionCandidates(AliVEvent::kPHOSPb);
  }
  else if(trigger=="AnyINT")
  {
    printf("counter trigger AnyINT\n");
    counter->SelectCollisionCandidates(AliVEvent::kAnyINT);
  }  
  else if(trigger=="INT")
  {
    printf("counter trigger AnyINT\n");
    counter->SelectCollisionCandidates(AliVEvent::kAny);
  }
  else if(trigger=="EMCEGA")
  {
    printf("counter trigger EMC Gamma\n");
    counter->SelectCollisionCandidates(AliVEvent::kEMCEGA);
  } 
  else if(trigger=="EMCEJE")
  {
    printf("counter trigger EMC Jet\n");
    counter->SelectCollisionCandidates(AliVEvent::kEMCEJE);
  }
  else if(trigger=="Central")
  {
    printf("counter trigger Central\n");
    counter->SelectCollisionCandidates(AliVEvent::kCentral);
  } 
  else if(trigger=="SemiCentral")
  {
    printf("counter trigger SemiCentral\n");
    counter->SelectCollisionCandidates(AliVEvent::kSemiCentral);
  }
  else if(trigger=="SemiOrCentral")
  {
    printf("counter trigger SemiCentral Or Central\n");
    counter->SelectCollisionCandidates(AliVEvent::kSemiCentral | AliVEvent::kCentral);
  }
  
  TString outputFile = AliAnalysisManager::GetCommonFileName(); 
  AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
  
  AliAnalysisDataContainer *coutput = 
  mgr->CreateContainer(Form("Counter%s",trigger.Data()), TList::Class(), AliAnalysisManager::kOutputContainer,  outputFile.Data());
  mgr->AddTask(counter);
  mgr->ConnectInput  (counter, 0, cinput1);
  mgr->ConnectOutput (counter, 1, coutput);
  
  return counter;
  
}

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