ROOT logo


AliAnalysisTaskJetResponseV2* AddTaskJetResponseV2(Char_t* type = "clusters", Char_t* jf = "FASTKT", Float_t radius = 0.4, UInt_t filterMask = 256 , Float_t ptTrackMin = 0.15, Int_t iBack = 1, Int_t eventClassMin = 0, Int_t eventClassMax = 4){

   return AddTaskJetResponseV2(kTRUE, type, jf, radius, filterMask, ptTrackMin, iBack, eventClassMin, eventClassMax);

}


AliAnalysisTaskJetResponseV2* AddTaskJetResponseV2(Bool_t emb = kTRUE, Char_t* type = "clusters", Char_t* jf = "FASTKT", Float_t radius = 0.4, UInt_t filterMask = 256 , Float_t ptTrackMin = 0.15, Int_t iBack = 1, Int_t eventClassMin = 0, Int_t eventClassMax = 4, Char_t *recType = "AOD"){

   Printf("adding task jet response\n");

   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
   if(!mgr){
      ::Error("AddTaskJetResponseV2", "No analysis manager to connect to.");
      return NULL;
   }
   if(!mgr->GetInputEventHandler()){
      ::Error("AddTaskJetResponseV2", "This task requires an input event handler.");
      return NULL;
   }

   TString branch1 = "";
   TString branch2 = "";
   TString suffix  = "";
   TString suffix2 = "";
   
   if(emb){

      // embedding in HI event
      
      suffix += Form("_%s", jf);
      suffix += Form("%02d", (int)((radius+0.01)*10.));
      suffix += Form("_B0");                                // no background subtraction for extra-only
      suffix += Form("_Filter%05d", filterMask);
      suffix += Form("_Cut%05d", (int)((1000.*ptTrackMin)));
      if(type=="clusters") suffix += Form("_Skip00");
      
      suffix2 += Form("_%s", jf);
      suffix2 += Form("%02d", (int)((radius+0.01)*10.));
      suffix2 += Form("_B%d", iBack);
      suffix2 += Form("_Filter%05d", filterMask);
      suffix2 += Form("_Cut%05d", (int)((1000.*ptTrackMin)));
      if(type=="clusters") suffix2 += Form("_Skip00");
      
      branch1 = Form("%s%sextraonly%s",type, recType, suffix.Data());
      branch2 = Form("%s%sextra%s",type, recType, suffix2.Data());
      
   } else {
      
      // p-p detector response
      suffix += Form("_%s", jf);
      suffix += Form("%02d", (int)((radius+0.01)*10.));
      suffix += Form("_B0");                        
      suffix += Form("_Filter%05d", filterMask);
      suffix += Form("_Cut%05d", (int)((1000.*ptTrackMin)));
      if(type=="clusters") suffix += Form("_Skip00");
      
      suffix2 += Form("_%s", jf);
      suffix2 += Form("%02d", (int)((radius+0.01)*10.));
      suffix2 += Form("_B0");
      suffix2 += Form("_Filter%05d", filterMask);
      suffix2 += Form("_Cut%05d", (int)((1000.*ptTrackMin)));
      if(type=="clusters") suffix2 += Form("_Skip02");
      
      branch1 = Form("%sAODMC2%s",type, suffix.Data()); // MC truth
      branch2 = Form("%sAOD%s",type, suffix2.Data());    // MC reconstucted
      
   }
   
   AliAnalysisTaskJetResponseV2 *task = new AliAnalysisTaskJetResponseV2(Form("JetResponseV2%s", suffix2.Data()));
   
   Printf("Branch1: %s",branch1.Data());
   Printf("Branch2: %s",branch2.Data());

   task->SetBranchNames(branch1,branch2);
   //task->SetOfflineTrgMask(AliVEvent::kMB);

   task->SetEvtClassMin(eventClassMin);
   task->SetEvtClassMax(eventClassMax);
   task->SetCentMin(0.);
   task->SetCentMax(100.);

   //task->SetVtxMin(-10.);
   //task->SetVtxMax(10.);
   
   task->SetJetPtMin(0.);   // min jet pt is implicit a cut on delta pT!!

   task->SetKeepJets(kTRUE);

   //task->SetNMatchJets(1); // leading jets only

   if(!emb){
      task->SetIsPbPb(kFALSE);
      task->SetJetPtFractionMin(0.01);
      task->SetNMatchJets(999);
   }


   mgr->AddTask(task);


   AliAnalysisDataContainer *coutputJetResponseV2 = mgr->CreateContainer(
   Form("jetresponseV2_%s%s", type,suffix2.Data()), TList::Class(), AliAnalysisManager::kOutputContainer,
   Form("%s:PWG4_JetResponseV2_%s%s", AliAnalysisManager::GetCommonFileName(), type, suffix2.Data()));

   mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer());
   mgr->ConnectOutput(task, 0, mgr->GetCommonOutputContainer());
   mgr->ConnectOutput(task, 1, coutputJetResponseV2);

   return task;
}


AliAnalysisTaskJetResponseV2* AddTaskJetResponseV2(TString branch1 = "", TString branch2 = "", TString branch3 = "", Int_t iTask = 0, Bool_t emb = kTRUE, Int_t eventClassMin = 0, Int_t eventClassMax = 4 ,const char* nonStdFile = AliAnalysisManager::GetGlobalStr("kJetDeltaAODName", gDebug)){

   Printf("adding task jet response\n");

   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
   if(!mgr){
      ::Error("AddTaskJetResponseV2", "No analysis manager to connect to.");
      return NULL;
   }
   if(!mgr->GetInputEventHandler()){
      ::Error("AddTaskJetResponseV2", "This task requires an input event handler.");
      return NULL;
   }

  

   
   AliAnalysisTaskJetResponseV2 *task = new AliAnalysisTaskJetResponseV2(Form("JetResponseV2_%d", iTask));
   
   Printf("Branch1: %s",branch1.Data());
   Printf("Branch2: %s",branch2.Data());
   Printf("Branch3: %s",branch3.Data());

   task->SetBranchNames(branch1,branch2,branch3);
   task->SetOfflineTrgMask(AliVEvent::kMB);

   task->SetEvtClassMin(eventClassMin);
   task->SetEvtClassMax(eventClassMax);
   task->SetCentMin(0.);
   task->SetCentMax(100.);

   task->SetJetPtMin(0.);   // min jet pt is implicit a cut on delta pT!!

   task->SetKeepJets(kTRUE);

   //task->SetNMatchJets(1); // leading jets only


   if(!emb){
      task->SetIsPbPb(kFALSE);
      task->SetJetPtFractionMin(0.01);
      task->SetNMatchJets(999);
   }

   // to fetch the AOD from the AOD extension ouput 
   if(strlen(nonStdFile)) task->SetNonStdFile(nonStdFile);

   mgr->AddTask(task);


   AliAnalysisDataContainer *coutputJetResponseV2 = mgr->CreateContainer(
	Form("jetresponseV2_%s%s%s", branch1.Data(),branch2.Data(),branch3.Data()), 
        TList::Class(), AliAnalysisManager::kOutputContainer,
         Form("%s:PWG4_JetResponseV2_%s%s%s", AliAnalysisManager::GetCommonFileName(),branch1.Data(),branch2.Data(),branch3.Data()));

   mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer());
   mgr->ConnectOutput(task, 0, mgr->GetCommonOutputContainer());
   mgr->ConnectOutput(task, 1, coutputJetResponseV2);

   return task;
}

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