ROOT logo
AliAnalysisTaskJetServices* serv = 0;
Bool_t ConfigWithFlagsJetServices();
AliAnalysisTaskJetServices *AddTaskJetServices()
{
   // Get the pointer to the existing analysis manager via the static access method.
   //==============================================================================
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
   if (!mgr) {
      ::Error("AddTaskJetServices", "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("AddTaskJetServices", "This task requires an input event handler");
      return NULL;
   }

   TString type = mgr->GetInputEventHandler()->GetDataType();
   type.ToUpper();
   // Create the task and configure it.
   //===========================================================================
   
   serv = new AliAnalysisTaskJetServices("JetServices");
      

   if(type == "AOD"){
     serv->SetAODInput(kTRUE);
   }
   mgr->AddTask(serv);

   // evaluate global variables 
   Bool_t bGood1 = false;
   Bool_t bGood2 = false;


   if(!ConfigWithFlagsJetServices())return 0;
   serv->SetUsePhysicsSelection(kTRUE);
     
   // Create ONLY the output containers for the data produced by the task.
   // Get and connect other common input/output containers via the manager as below
   //==============================================================================
   AliAnalysisDataContainer *coutput1_Serv = mgr->CreateContainer("pwgje_services", TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:PWGJE_services",AliAnalysisManager::GetCommonFileName()));

   mgr->ConnectInput  (serv, 0, mgr->GetCommonInputContainer());
   mgr->ConnectOutput (serv, 0, mgr->GetCommonOutputContainer());
   mgr->ConnectOutput (serv,  1, coutput1_Serv );
   
   return serv;
}

Bool_t ConfigWithFlagsJetServices(){
    
  Bool_t bGood1 = kFALSE;
  Bool_t bGood2 = kFALSE;


  serv->SetRunRange(AliAnalysisManager::GetGlobalInt("kGridRunRangeLo",bGood1),
		      AliAnalysisManager::GetGlobalInt("kGridRunRangeLo",bGood2));
  
  if(!bGood1||!bGood2){
    Printf("%s:%d Run range not set",(char*)__FILE__,__LINE__);
    serv->SetRunRange(110000,160000);
  }
   

  Int_t nTrigger = AliAnalysisManager::GetGlobalInt("kNTrigger",bGood1);
  
  if(bGood1){
    serv->SetNTrigger(nTrigger);
    for(int it = 0;it < nTrigger;it++){
      serv->SetTrigger(it,
		       AliAnalysisManager::GetGlobalInt(Form("kTriggerBit%d",it),bGood1),
		       AliAnalysisManager::GetGlobalStr(Form("kTriggerName%d",it),bGood2));
     }
   }
     
   AliAnalysisManager::GetGlobalInt("kPhysicsSelectionFlag",bGood1);if(bGood1)serv->SetPhysicsSelectionFlag(AliAnalysisManager::GetGlobalInt("kPhysicsSelectionFlag",bGood1));
   else {Printf("%s%d: kPhysicsSelectionFlag not defined",(char*)__FILE__,__LINE__); return kFALSE; }
   AliAnalysisManager::GetGlobalStr("kDeltaAODJetName",bGood1);if(bGood1)serv->SetNonStdFile(AliAnalysisManager::GetGlobalStr("kDeltaAODJetName",bGood1));
   else {Printf("%s%d: kDeltaAODJetName not defined",(char*)__FILE__,__LINE__); return kFALSE; }

   AliAnalysisManager::GetGlobalDbl("kTrackEtaWindow",bGood1);if(bGood1)serv->SetTrackEtaWindow(AliAnalysisManager::GetGlobalDbl("kTrackEtaWindow",bGood1));
   else {Printf("%s%d: kTrackEtaWindow not defined",(char*)__FILE__,__LINE__); return kFALSE; }
   AliAnalysisManager::GetGlobalDbl("kVertexWindow",bGood1);if(bGood1)serv->SetZVertexCut(AliAnalysisManager::GetGlobalDbl("kVertexWindow",bGood1));
   else {Printf("%s%d: kVertexWindow not defined",(char*)__FILE__,__LINE__); return kFALSE; }
   
   AliAnalysisManager::GetGlobalInt("kHighPtFilterMask",bGood1);if(bGood1)serv->SetFilterMask(AliAnalysisManager::GetGlobalInt("kHighPtFilterMask",bGood1));
   else {Printf("%s%d: kHighPtFilterMask not defined",(char*)__FILE__,__LINE__); return kFALSE; }   

   TString cRun(AliAnalysisManager::GetGlobalStr("kJetRunPeriod",bGood1));
   if(cRun.Contains("10h")||cRun.Contains("11h")){
     serv->SetCollisionType(AliAnalysisTaskJetServices::kPbPb);
   }
   else{
     serv->SetCollisionType(AliAnalysisTaskJetServices::kPP);
   }
   
   return kTRUE;

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