ROOT logo
// $Id$

AliAnalysisTaskDcalDijetPerf* AddTaskDcalDijetPerf(
						   const char *ntracks            = "Tracks",
						   const char *nclusters          = "CaloClusters",
						   const char *njets              = "Jets",
						   const char *njets2             = "Jets2",
                           const char *njets3             = "Jets3",
						   const char *nrho               = "Rho",
						   Int_t       nCentBins          = 1,
						   Double_t    jetradius          = 0.2,
						   Double_t    jetradius2         = 0.2,
                           Double_t    jetradius3         = 0.2,
						   Double_t    jetptcut           = 1,
						   Double_t    jetareacut         = 0.6,
						   const char *type               = "TPC",
						   Int_t       leadhadtype        = 0,
						   const char *taskname           = "AliAnalysisTaskDcalDijetPerf"
)
{  
  // Get the pointer to the existing analysis manager via the static access method.
  //==============================================================================
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr)
  {
    ::Error("AddTaskDcalDijetPerf", "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("AddTaskDcalDijetPerf", "This task requires an input event handler");
    return NULL;
  }
  
  //-------------------------------------------------------
  // Init the task and do settings
  //-------------------------------------------------------

  TString name(taskname);
  if (strcmp(njets,"")) {
    name += "_";
    name += njets;
  }
  if (strcmp(njets2,"")) {
    name += "_";
    name += njets2;
  }
  if (strcmp(njets3,"")) {
    name += "_";
    name += njets3;
  }

  if (strcmp(nrho,"")) {
    name += "_";
    name += nrho;
  }
  if (strcmp(type,"")) {
    name += "_";
    name += type;
  }

  Printf("name: %s",name.Data());

  AliAnalysisTaskDcalDijetPerf* jetTask = new AliAnalysisTaskDcalDijetPerf(name);
  jetTask->SetCentRange(0.,100.);
  jetTask->SetNCentBins(nCentBins);

  AliParticleContainer *trackCont  = jetTask->AddParticleContainer(ntracks);
  trackCont->SetClassName("AliVTrack");
  AliClusterContainer *clusterCont = jetTask->AddClusterContainer(nclusters);

  TString strType(type);
  AliJetContainer *jetCont = jetTask->AddJetContainer(njets,strType,jetradius);
  AliJetContainer *jetCont2 = jetTask->AddJetContainer(njets2,strType,jetradius2);
  AliJetContainer *jetCont3 = jetTask->AddJetContainer(njets3,strType,jetradius3);
  if(jetCont) {
    jetCont->SetRhoName(nrho);
    jetCont->ConnectParticleContainer(trackCont);
    jetCont->ConnectClusterContainer(clusterCont);
    //jetCont->SetZLeadingCut(0.98,0.98);
    //jetCont->SetPercAreaCut(0.6);
    jetCont->SetJetPtCut(jetptcut);    
    jetCont->SetLeadingHadronType(leadhadtype);
  }
  if(jetCont2) {
    jetCont2->SetRhoName(nrho);
    jetCont2->ConnectParticleContainer(trackCont);
    jetCont2->ConnectClusterContainer(clusterCont);
    //jetCont->SetZLeadingCut(0.98,0.98);
    //jetCont->SetPercAreaCut(0.6);
    jetCont2->SetJetPtCut(jetptcut);
    jetCont2->SetLeadingHadronType(leadhadtype);
  }
    
  if(jetCont3) {
        jetCont3->SetRhoName(nrho);
        jetCont3->ConnectParticleContainer(trackCont);
        jetCont3->ConnectClusterContainer(clusterCont);
        //jetCont->SetZLeadingCut(0.98,0.98);
        //jetCont->SetPercAreaCut(0.6);
        jetCont3->SetJetPtCut(jetptcut);
        jetCont3->SetLeadingHadronType(leadhadtype);
    }
  
  //-------------------------------------------------------
  // Final settings, pass to manager and set the containers
  //-------------------------------------------------------
  
  mgr->AddTask(jetTask);
  
  // Create containers for input/output
  AliAnalysisDataContainer *cinput1  = mgr->GetCommonInputContainer()  ;
  TString contname(name);
  contname += "_histos";
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname.Data(), 
							    TList::Class(),AliAnalysisManager::kOutputContainer,
							    Form("%s", AliAnalysisManager::GetCommonFileName()));
  mgr->ConnectInput  (jetTask, 0,  cinput1 );
  mgr->ConnectOutput (jetTask, 1, coutput1 );
  
  return jetTask;
}

AliAnalysisTaskDcalDijetPerf* AddTaskDcalDijetPerf( AliEmcalJetTask* jetFinderTask,
						    Int_t       nCentBins          = 1,
						    Double_t    jetareacut         = 0.6,
						    const char *type               = "EMCAL",
						    Int_t       leadhadtype        = 0,
						    const char *taskname           = "AliAnalysisTaskDcalDijetPerf"
						    )
{
  const char* ntracks            = jetFinderTask->GetTracksName();
  const char* nclusters          = jetFinderTask->GetClusName();
  const char* njets              = jetFinderTask->GetJetsName();
  const char* nrho               = jetFinderTask->GetRhoName();
  Double_t    jetradius          = jetFinderTask->GetRadius();
  Double_t    jetptcut           = jetFinderTask->GetMinJetPt();
  
  AliAnalysisTaskDcalDijetPerf* jetTask = AddTaskDcalDijetPerf(ntracks , nclusters, njets, nrho, nCentBins, jetradius, jetptcut, jetareacut, type, leadhadtype, taskname);
  
  return jetTask;
}
 AddTaskDcalDijetPerf.C:1
 AddTaskDcalDijetPerf.C:2
 AddTaskDcalDijetPerf.C:3
 AddTaskDcalDijetPerf.C:4
 AddTaskDcalDijetPerf.C:5
 AddTaskDcalDijetPerf.C:6
 AddTaskDcalDijetPerf.C:7
 AddTaskDcalDijetPerf.C:8
 AddTaskDcalDijetPerf.C:9
 AddTaskDcalDijetPerf.C:10
 AddTaskDcalDijetPerf.C:11
 AddTaskDcalDijetPerf.C:12
 AddTaskDcalDijetPerf.C:13
 AddTaskDcalDijetPerf.C:14
 AddTaskDcalDijetPerf.C:15
 AddTaskDcalDijetPerf.C:16
 AddTaskDcalDijetPerf.C:17
 AddTaskDcalDijetPerf.C:18
 AddTaskDcalDijetPerf.C:19
 AddTaskDcalDijetPerf.C:20
 AddTaskDcalDijetPerf.C:21
 AddTaskDcalDijetPerf.C:22
 AddTaskDcalDijetPerf.C:23
 AddTaskDcalDijetPerf.C:24
 AddTaskDcalDijetPerf.C:25
 AddTaskDcalDijetPerf.C:26
 AddTaskDcalDijetPerf.C:27
 AddTaskDcalDijetPerf.C:28
 AddTaskDcalDijetPerf.C:29
 AddTaskDcalDijetPerf.C:30
 AddTaskDcalDijetPerf.C:31
 AddTaskDcalDijetPerf.C:32
 AddTaskDcalDijetPerf.C:33
 AddTaskDcalDijetPerf.C:34
 AddTaskDcalDijetPerf.C:35
 AddTaskDcalDijetPerf.C:36
 AddTaskDcalDijetPerf.C:37
 AddTaskDcalDijetPerf.C:38
 AddTaskDcalDijetPerf.C:39
 AddTaskDcalDijetPerf.C:40
 AddTaskDcalDijetPerf.C:41
 AddTaskDcalDijetPerf.C:42
 AddTaskDcalDijetPerf.C:43
 AddTaskDcalDijetPerf.C:44
 AddTaskDcalDijetPerf.C:45
 AddTaskDcalDijetPerf.C:46
 AddTaskDcalDijetPerf.C:47
 AddTaskDcalDijetPerf.C:48
 AddTaskDcalDijetPerf.C:49
 AddTaskDcalDijetPerf.C:50
 AddTaskDcalDijetPerf.C:51
 AddTaskDcalDijetPerf.C:52
 AddTaskDcalDijetPerf.C:53
 AddTaskDcalDijetPerf.C:54
 AddTaskDcalDijetPerf.C:55
 AddTaskDcalDijetPerf.C:56
 AddTaskDcalDijetPerf.C:57
 AddTaskDcalDijetPerf.C:58
 AddTaskDcalDijetPerf.C:59
 AddTaskDcalDijetPerf.C:60
 AddTaskDcalDijetPerf.C:61
 AddTaskDcalDijetPerf.C:62
 AddTaskDcalDijetPerf.C:63
 AddTaskDcalDijetPerf.C:64
 AddTaskDcalDijetPerf.C:65
 AddTaskDcalDijetPerf.C:66
 AddTaskDcalDijetPerf.C:67
 AddTaskDcalDijetPerf.C:68
 AddTaskDcalDijetPerf.C:69
 AddTaskDcalDijetPerf.C:70
 AddTaskDcalDijetPerf.C:71
 AddTaskDcalDijetPerf.C:72
 AddTaskDcalDijetPerf.C:73
 AddTaskDcalDijetPerf.C:74
 AddTaskDcalDijetPerf.C:75
 AddTaskDcalDijetPerf.C:76
 AddTaskDcalDijetPerf.C:77
 AddTaskDcalDijetPerf.C:78
 AddTaskDcalDijetPerf.C:79
 AddTaskDcalDijetPerf.C:80
 AddTaskDcalDijetPerf.C:81
 AddTaskDcalDijetPerf.C:82
 AddTaskDcalDijetPerf.C:83
 AddTaskDcalDijetPerf.C:84
 AddTaskDcalDijetPerf.C:85
 AddTaskDcalDijetPerf.C:86
 AddTaskDcalDijetPerf.C:87
 AddTaskDcalDijetPerf.C:88
 AddTaskDcalDijetPerf.C:89
 AddTaskDcalDijetPerf.C:90
 AddTaskDcalDijetPerf.C:91
 AddTaskDcalDijetPerf.C:92
 AddTaskDcalDijetPerf.C:93
 AddTaskDcalDijetPerf.C:94
 AddTaskDcalDijetPerf.C:95
 AddTaskDcalDijetPerf.C:96
 AddTaskDcalDijetPerf.C:97
 AddTaskDcalDijetPerf.C:98
 AddTaskDcalDijetPerf.C:99
 AddTaskDcalDijetPerf.C:100
 AddTaskDcalDijetPerf.C:101
 AddTaskDcalDijetPerf.C:102
 AddTaskDcalDijetPerf.C:103
 AddTaskDcalDijetPerf.C:104
 AddTaskDcalDijetPerf.C:105
 AddTaskDcalDijetPerf.C:106
 AddTaskDcalDijetPerf.C:107
 AddTaskDcalDijetPerf.C:108
 AddTaskDcalDijetPerf.C:109
 AddTaskDcalDijetPerf.C:110
 AddTaskDcalDijetPerf.C:111
 AddTaskDcalDijetPerf.C:112
 AddTaskDcalDijetPerf.C:113
 AddTaskDcalDijetPerf.C:114
 AddTaskDcalDijetPerf.C:115
 AddTaskDcalDijetPerf.C:116
 AddTaskDcalDijetPerf.C:117
 AddTaskDcalDijetPerf.C:118
 AddTaskDcalDijetPerf.C:119
 AddTaskDcalDijetPerf.C:120
 AddTaskDcalDijetPerf.C:121
 AddTaskDcalDijetPerf.C:122
 AddTaskDcalDijetPerf.C:123
 AddTaskDcalDijetPerf.C:124
 AddTaskDcalDijetPerf.C:125
 AddTaskDcalDijetPerf.C:126
 AddTaskDcalDijetPerf.C:127
 AddTaskDcalDijetPerf.C:128
 AddTaskDcalDijetPerf.C:129
 AddTaskDcalDijetPerf.C:130
 AddTaskDcalDijetPerf.C:131
 AddTaskDcalDijetPerf.C:132
 AddTaskDcalDijetPerf.C:133
 AddTaskDcalDijetPerf.C:134
 AddTaskDcalDijetPerf.C:135
 AddTaskDcalDijetPerf.C:136
 AddTaskDcalDijetPerf.C:137
 AddTaskDcalDijetPerf.C:138
 AddTaskDcalDijetPerf.C:139
 AddTaskDcalDijetPerf.C:140
 AddTaskDcalDijetPerf.C:141
 AddTaskDcalDijetPerf.C:142
 AddTaskDcalDijetPerf.C:143
 AddTaskDcalDijetPerf.C:144
 AddTaskDcalDijetPerf.C:145
 AddTaskDcalDijetPerf.C:146