ROOT logo
AliAnalysisTaskJetChem *AddTaskJetChem(const char* recJetsBranch = "clustersAOD_ANTIKT02_B2_Filter00768_Cut00150_Skip00", TString cutVar = "noCutVar", Int_t eventClass = 1, Int_t K0type = AliAnalysisTaskJetChem::kOffl, Int_t Latype = AliAnalysisTaskJetChem::kOffl, Int_t ALatype = AliAnalysisTaskJetChem::kOffl, Bool_t IsArmenterosSelected = kTRUE, Bool_t IsJetPtBiasSelected = kTRUE, Double_t jetradius = 0.2, Double_t V0EtaCut = 0.7, Double_t jetEtaCut = 0.5, Bool_t IsMC = kFALSE, Double_t DeltaVtxZCut = 0.1, Int_t filtermask = 768, Int_t fdebug = -1)
{
  // Creates a JetChem task,
  // configures it and adds it to the analysis manager.
  //for cut variations, set TString cutVar either to "noCutVar", "CPAMin", "CPAMax", "DCADMin", "DCADMax", "LifetMin" or "LifetMax"
   
  // Get the pointer to the existing analysis manager via the static access method.
  //==============================================================================
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    ::Error("AddTaskJetChem", "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("AddTaskJetChem", "This task requires an input event handler");
    return NULL;
  }
  
  TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD", or "MC"?
  Printf("Data Type: %s", type.Data());
  
  
  // Create the task and configure it.
  //===========================================================================
  AliAnalysisTaskJetChem *task = new AliAnalysisTaskJetChem("TaskJetChem");

  Int_t debug = fdebug; // debug level
  if(debug>=0) task->SetDebugLevel(debug);
  
  TString branchRecJets(recJetsBranch);
  if(!branchRecJets.Contains("noRecJets")) task->SetBranchRecJets(branchRecJets);

  // Double_t V0EtaCut, Double_t jetEtaCut, Bool_t IsMC, Double_t DeltaVtxZCut can be set externally

  fJetAreaMin = 0.6*TMath::Pi()*jetradius*jetradius;//calculate jetareamin cut value for FF task
  task->SetJetMinArea(fJetAreaMin);//cut on jet area, applied together with all other jet cuts in jet finding by AliAnalysisTaskFragmentationFunction.cxx
  task->SetCutJetEta(jetEtaCut);
  task->SetDeltaZVertexCut(DeltaVtxZCut);
  task->SetBranchRecBackClusters("clustersAOD_KT04_B0_Filter00768_Cut00150_Skip00"); 
  //task->SetEventSelectionMask(AliVEvent::kMB); //for 2010 Pb-Pb data !!
  task->SetEventSelectionMask(AliVEvent::kAnyINT | AliVEvent::kCentral | AliVEvent::kSemiCentral); //event selection for 2011 Pb-Pb data
  task->SetEventClass(eventClass);
  task->SetK0Type(K0type);
  task->SetLaType(Latype); 
  task->SetALaType(ALatype); 
  task->SetSelectArmenteros(IsArmenterosSelected);
  task->SetAnalysisMC(IsMC); // 0: real data, 1: MC data

  if(K0type == AliAnalysisTaskJetChem::kOnFlyPrim || AliAnalysisTaskJetChem::kOfflPrim) task->SetFilterMaskK0(768);
  if(Latype == AliAnalysisTaskJetChem::kOnFlyPrim || AliAnalysisTaskJetChem::kOfflPrim) task->SetFilterMaskLa(768);
  if(ALatype == AliAnalysisTaskJetChem::kOnFlyPrim || AliAnalysisTaskJetChem::kOfflPrim) task->SetFilterMaskALa(768);

  task->SetFFRadius(jetradius); //jet cone size
  task->SetFilterMask(filtermask);//2011 Track FilterMask

  //Cuts---------------------------------

  
  task->SetTrackCuts(0.15, -0.9, 0.9, 0., 2*TMath::Pi());// (pt Cut, daughtertrack rap's, phi min max cuts)
  task->SetJetCuts(5., (-1)*jetEtaCut, jetEtaCut, 0., 2*TMath::Pi());//(jet pt Cut, jet acceptance, phi min max cuts)
  task->SetCuttrackPosEta(0.8);
  task->SetCuttrackNegEta(0.8);
  task->SetCutV0Eta(V0EtaCut); //pseudorapidity cut, dont use 0.5, because too many tracks would fall out of the acceptance; recommended cut for jet analysis of strange particles: 0.75
  task->SetCosOfPointingAngle(0.998);
  task->SetAcceptKinkDaughters(kFALSE);//accept kink daughters -> dont use this cut anymore
  task->SetRequireTPCRefit(kTRUE);
  task->SetCutV0DecayMin(0.);//multiples of ctau, cut on 2D decay distance over transverse mom. (for K0s, Lambda, Antilambda)
  task->SetCutV0DecayMax(5.);//multiples of ctau (for K0s, Lambda, Antilambda) Lee Barnby uses 3.0, use 5.0!!!!!
  task->SetCutDcaV0Daughters(1.);//cut value in multiples of sigma default: 1.
  task->SetCutDcaPosToPrimVertex(0.1); //cut value in cm 
  task->SetCutDcaNegToPrimVertex(0.1); //cut value in cm
  task->SetCutV0RadiusMin(5.);//in cm previous value was 0.9 cm
  task->SetCutV0RadiusMax(100.);//in cm
  task->SetCutBetheBloch(3.);//in units of sigma

  //task->SetCutRatioTPC(0.8);//Cut on Ratio of crossed Rows over findable clusters in TPC -> not used anymore by Strangeness PAG group
   //task->SetCuttrackPosNcls(70);
  //task->SetCuttrackNegNcls(70);
  //task->SetCuttrackPosRap(100000.0);
  //task->SetCuttrackNegRap(100000.0);
  //task->SetCutV0Rap(0.5);
  //task->SetCutV0totMom(10000.);//tot Mom of V0s 

  //Armenteros Cut:
 
  if(IsArmenterosSelected == 1){
    task->SetCutArmenteros(0.2);
  } else {
    task->SetCutArmenteros(0.);
  }
  
  if(IsJetPtBiasSelected == 1){
    task->SetFFMinLTrackPt(5.);//at least one track must have a track-pt higher or equal than this JetMinPt value
  } else {
    task->SetFFMinLTrackPt(-1.);
  }
  
  //------------------------------------
  // Define histo bins
  task->SetFFHistoBins();
  task->SetQAJetHistoBins();
  task->SetQATrackHistoBins();
  task->SetFFInvMassHistoBins();
  task->SetFFInvMassLaHistoBins();
  
  mgr->AddTask(task);
  
   // 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
   //==============================================================================

   TString strK0type;
   if(K0type ==  AliAnalysisTaskJetChem::kOnFly)     strK0type = "OnFly";
   if(K0type ==  AliAnalysisTaskJetChem::kOnFlyPID)  strK0type = "OnFlyPID";
   if(K0type ==  AliAnalysisTaskJetChem::kOnFlydEdx) strK0type = "OnFlydEdx";
   if(K0type ==  AliAnalysisTaskJetChem::kOnFlyPrim) strK0type = "OnFlyPrim";
   if(K0type ==  AliAnalysisTaskJetChem::kOffl)      strK0type = "Offl";
   if(K0type ==  AliAnalysisTaskJetChem::kOfflPID)   strK0type = "OfflPID";
   if(K0type ==  AliAnalysisTaskJetChem::kOffldEdx)  strK0type = "OffldEdx";
   if(K0type ==  AliAnalysisTaskJetChem::kOfflPrim)  strK0type = "OfflPrim";

   TString strLatype;
   if(Latype ==  AliAnalysisTaskJetChem::kOnFly)     strLatype = "OnFly";
   if(Latype ==  AliAnalysisTaskJetChem::kOnFlyPID)  strLatype = "OnFlyPID";
   if(Latype ==  AliAnalysisTaskJetChem::kOnFlydEdx) strLatype = "OnFlydEdx";
   if(Latype ==  AliAnalysisTaskJetChem::kOnFlyPrim) strLatype = "OnFlyPrim";
   if(Latype ==  AliAnalysisTaskJetChem::kOffl)      strLatype = "Offl";
   if(Latype ==  AliAnalysisTaskJetChem::kOfflPID)   strLatype = "OfflPID";
   if(Latype ==  AliAnalysisTaskJetChem::kOffldEdx)  strLatype = "OffldEdx";
   if(Latype ==  AliAnalysisTaskJetChem::kOfflPrim)  strLatype = "OfflPrim";

   TString strALatype;
   if(ALatype ==  AliAnalysisTaskJetChem::kOnFly)     strALatype = "OnFly";
   if(ALatype ==  AliAnalysisTaskJetChem::kOnFlyPID)  strALatype = "OnFlyPID";
   if(ALatype ==  AliAnalysisTaskJetChem::kOnFlydEdx) strALatype = "OnFlydEdx";
   if(ALatype ==  AliAnalysisTaskJetChem::kOnFlyPrim) strALatype = "OnFlyPrim";
   if(ALatype ==  AliAnalysisTaskJetChem::kOffl)      strALatype = "Offl";
   if(ALatype ==  AliAnalysisTaskJetChem::kOfflPID)   strALatype = "OfflPID";
   if(ALatype ==  AliAnalysisTaskJetChem::kOffldEdx)  strALatype = "OffldEdx";
   if(ALatype ==  AliAnalysisTaskJetChem::kOfflPrim)  strALatype = "OfflPrim";
   
   if((IsArmenterosSelected == 0) && (IsJetPtBiasSelected == 0)){
       TString listName1(Form("PWG4_JetChem_%s_%s_cl%d_%s",branchRecJets.Data(),strK0type.Data(),eventClass,cutVar.Data()));
       AliAnalysisDataContainer *coutput_JetChem = mgr->CreateContainer(listName1, 
									TList::Class(),
									AliAnalysisManager::kOutputContainer,
									Form("%s:PWG4_zimmerma_JetChem",AliAnalysisManager::GetCommonFileName()));
       
     }

   if((IsArmenterosSelected == 1) && (IsJetPtBiasSelected == 0)){
     TString listName2(Form("PWG4_JetChem_%s_%s_cl%d_Armenteros_%s",branchRecJets.Data(),strK0type.Data(),eventClass,cutVar.Data()));
       AliAnalysisDataContainer *coutput_JetChem = mgr->CreateContainer(listName2, 
									TList::Class(),
									AliAnalysisManager::kOutputContainer,
									Form("%s:PWG4_zimmerma_JetChem_Armenteros",AliAnalysisManager::GetCommonFileName()));
       
     }
      
   
   if((IsArmenterosSelected == 0) && (IsJetPtBiasSelected == 1)) {
     TString listName3(Form("PWG4_JetChem_%s_%s_cl%d_JetPtbias_%s",branchRecJets.Data(),strK0type.Data(),eventClass,cutVar.Data()));
       AliAnalysisDataContainer *coutput_JetChem = mgr->CreateContainer(listName3, 
									TList::Class(),
									AliAnalysisManager::kOutputContainer,
									Form("%s:PWG4_zimmerma_JetChem_JetPtBias",AliAnalysisManager::GetCommonFileName()));
     }
   
   if((IsArmenterosSelected == 1) && (IsJetPtBiasSelected == 1)) {
       TString listName4(Form("PWG4_JetChem_%s_%s_cl%d_Armenteros_JetPtBias_%s",branchRecJets.Data(),strK0type.Data(),eventClass,cutVar.Data()));
       AliAnalysisDataContainer *coutput_JetChem = mgr->CreateContainer(listName4, 
									TList::Class(),
									AliAnalysisManager::kOutputContainer,
									Form("%s:PWG4_zimmerma_JetChem_Armenteros_JetPtBias",AliAnalysisManager::GetCommonFileName()));
     } 
   




   mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
   mgr->ConnectOutput(task, 1, coutput_JetChem);
   
   return task;
}
 AddTaskJetChem.C:1
 AddTaskJetChem.C:2
 AddTaskJetChem.C:3
 AddTaskJetChem.C:4
 AddTaskJetChem.C:5
 AddTaskJetChem.C:6
 AddTaskJetChem.C:7
 AddTaskJetChem.C:8
 AddTaskJetChem.C:9
 AddTaskJetChem.C:10
 AddTaskJetChem.C:11
 AddTaskJetChem.C:12
 AddTaskJetChem.C:13
 AddTaskJetChem.C:14
 AddTaskJetChem.C:15
 AddTaskJetChem.C:16
 AddTaskJetChem.C:17
 AddTaskJetChem.C:18
 AddTaskJetChem.C:19
 AddTaskJetChem.C:20
 AddTaskJetChem.C:21
 AddTaskJetChem.C:22
 AddTaskJetChem.C:23
 AddTaskJetChem.C:24
 AddTaskJetChem.C:25
 AddTaskJetChem.C:26
 AddTaskJetChem.C:27
 AddTaskJetChem.C:28
 AddTaskJetChem.C:29
 AddTaskJetChem.C:30
 AddTaskJetChem.C:31
 AddTaskJetChem.C:32
 AddTaskJetChem.C:33
 AddTaskJetChem.C:34
 AddTaskJetChem.C:35
 AddTaskJetChem.C:36
 AddTaskJetChem.C:37
 AddTaskJetChem.C:38
 AddTaskJetChem.C:39
 AddTaskJetChem.C:40
 AddTaskJetChem.C:41
 AddTaskJetChem.C:42
 AddTaskJetChem.C:43
 AddTaskJetChem.C:44
 AddTaskJetChem.C:45
 AddTaskJetChem.C:46
 AddTaskJetChem.C:47
 AddTaskJetChem.C:48
 AddTaskJetChem.C:49
 AddTaskJetChem.C:50
 AddTaskJetChem.C:51
 AddTaskJetChem.C:52
 AddTaskJetChem.C:53
 AddTaskJetChem.C:54
 AddTaskJetChem.C:55
 AddTaskJetChem.C:56
 AddTaskJetChem.C:57
 AddTaskJetChem.C:58
 AddTaskJetChem.C:59
 AddTaskJetChem.C:60
 AddTaskJetChem.C:61
 AddTaskJetChem.C:62
 AddTaskJetChem.C:63
 AddTaskJetChem.C:64
 AddTaskJetChem.C:65
 AddTaskJetChem.C:66
 AddTaskJetChem.C:67
 AddTaskJetChem.C:68
 AddTaskJetChem.C:69
 AddTaskJetChem.C:70
 AddTaskJetChem.C:71
 AddTaskJetChem.C:72
 AddTaskJetChem.C:73
 AddTaskJetChem.C:74
 AddTaskJetChem.C:75
 AddTaskJetChem.C:76
 AddTaskJetChem.C:77
 AddTaskJetChem.C:78
 AddTaskJetChem.C:79
 AddTaskJetChem.C:80
 AddTaskJetChem.C:81
 AddTaskJetChem.C:82
 AddTaskJetChem.C:83
 AddTaskJetChem.C:84
 AddTaskJetChem.C:85
 AddTaskJetChem.C:86
 AddTaskJetChem.C:87
 AddTaskJetChem.C:88
 AddTaskJetChem.C:89
 AddTaskJetChem.C:90
 AddTaskJetChem.C:91
 AddTaskJetChem.C:92
 AddTaskJetChem.C:93
 AddTaskJetChem.C:94
 AddTaskJetChem.C:95
 AddTaskJetChem.C:96
 AddTaskJetChem.C:97
 AddTaskJetChem.C:98
 AddTaskJetChem.C:99
 AddTaskJetChem.C:100
 AddTaskJetChem.C:101
 AddTaskJetChem.C:102
 AddTaskJetChem.C:103
 AddTaskJetChem.C:104
 AddTaskJetChem.C:105
 AddTaskJetChem.C:106
 AddTaskJetChem.C:107
 AddTaskJetChem.C:108
 AddTaskJetChem.C:109
 AddTaskJetChem.C:110
 AddTaskJetChem.C:111
 AddTaskJetChem.C:112
 AddTaskJetChem.C:113
 AddTaskJetChem.C:114
 AddTaskJetChem.C:115
 AddTaskJetChem.C:116
 AddTaskJetChem.C:117
 AddTaskJetChem.C:118
 AddTaskJetChem.C:119
 AddTaskJetChem.C:120
 AddTaskJetChem.C:121
 AddTaskJetChem.C:122
 AddTaskJetChem.C:123
 AddTaskJetChem.C:124
 AddTaskJetChem.C:125
 AddTaskJetChem.C:126
 AddTaskJetChem.C:127
 AddTaskJetChem.C:128
 AddTaskJetChem.C:129
 AddTaskJetChem.C:130
 AddTaskJetChem.C:131
 AddTaskJetChem.C:132
 AddTaskJetChem.C:133
 AddTaskJetChem.C:134
 AddTaskJetChem.C:135
 AddTaskJetChem.C:136
 AddTaskJetChem.C:137
 AddTaskJetChem.C:138
 AddTaskJetChem.C:139
 AddTaskJetChem.C:140
 AddTaskJetChem.C:141
 AddTaskJetChem.C:142
 AddTaskJetChem.C:143
 AddTaskJetChem.C:144
 AddTaskJetChem.C:145
 AddTaskJetChem.C:146
 AddTaskJetChem.C:147
 AddTaskJetChem.C:148
 AddTaskJetChem.C:149
 AddTaskJetChem.C:150
 AddTaskJetChem.C:151
 AddTaskJetChem.C:152
 AddTaskJetChem.C:153
 AddTaskJetChem.C:154
 AddTaskJetChem.C:155
 AddTaskJetChem.C:156
 AddTaskJetChem.C:157
 AddTaskJetChem.C:158
 AddTaskJetChem.C:159
 AddTaskJetChem.C:160
 AddTaskJetChem.C:161
 AddTaskJetChem.C:162
 AddTaskJetChem.C:163
 AddTaskJetChem.C:164
 AddTaskJetChem.C:165
 AddTaskJetChem.C:166
 AddTaskJetChem.C:167
 AddTaskJetChem.C:168
 AddTaskJetChem.C:169
 AddTaskJetChem.C:170
 AddTaskJetChem.C:171
 AddTaskJetChem.C:172
 AddTaskJetChem.C:173
 AddTaskJetChem.C:174
 AddTaskJetChem.C:175
 AddTaskJetChem.C:176
 AddTaskJetChem.C:177
 AddTaskJetChem.C:178
 AddTaskJetChem.C:179
 AddTaskJetChem.C:180
 AddTaskJetChem.C:181
 AddTaskJetChem.C:182
 AddTaskJetChem.C:183
 AddTaskJetChem.C:184
 AddTaskJetChem.C:185
 AddTaskJetChem.C:186
 AddTaskJetChem.C:187
 AddTaskJetChem.C:188
 AddTaskJetChem.C:189