ROOT logo
// $Id$

AliAnalysisTaskEMCALClusterizeFast* AddTaskClusterizerFW(
  const char* trigType = "L0",   // Trigger type: it can be "L0" (4x4, with 2x2 sliding inside SM), 
                                 //"L1GAMMA" (4x4, with 2x2 sliding through SMs), "L1JET" (32x32 with 4x4 sliding through SMs)
  const Bool_t fOR = kFALSE,
  const TString & geomName = "EMCAL_COMPLETEV1",
  Double_t minE = -1
) 
{
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    ::Error("AddTaskClusterizerFW", "No analysis manager found.");
    return 0;
  }
  
  Bool_t ismc=kFALSE;
  ismc = (mgr->GetMCtruthEventHandler())?kTRUE:kFALSE;
  if (ismc)
    ::Warning("AddTaskClusterizerFW", "Task was Never tested on MC data");
  
  TString name("ClusterizerFW");
  TString nameout("Clusters");
  Int_t n, s;
  Float_t minE, minT, maxT;
  Bool_t slidingTRU;
  Bool_t cutL0time;
  UInt_t inputCellType = AliAnalysisTaskEMCALClusterizeFast::kFEEData;
  
  name += trigType;
  nameout += trigType;

  if (!strcmp(trigType, "L0")) {
    n = 4;
    s = 2;
    slidingTRU = 0;
    if (fOR) inputCellType = AliAnalysisTaskEMCALClusterizeFast::kL0FastORsTC;
  } else if (!strcmp(trigType, "L1GAMMA")) {
    n = 4;
    s = 2;
    slidingTRU = 1;
    if (fOR) inputCellType = AliAnalysisTaskEMCALClusterizeFast::kL1FastORs;
  } else if (!strcmp(trigType, "L1JET")) {
    n = 32;
    s = 4;
    slidingTRU = 1;
    if (fOR) inputCellType = AliAnalysisTaskEMCALClusterizeFast::kL1FastORs;
  } else {
    printf("trigType not valid, returning...");
    return 0;
  }
  
  if (fOR) {
    name += "FOR";
    nameout += "FOR";
    if (minE < 0) minE = 3;
    minT = -20;
    maxT = 20;
  } else {
    name += "FEE";
    nameout += "FEE";
    if (minE < 0) minE = .045;
    minT = -1.;
    maxT = +1.;
  }
  
  AliAnalysisTaskEMCALClusterizeFast *task = new AliAnalysisTaskEMCALClusterizeFast(name);
  AliEMCALRecParam *recparam = task->GetRecParam();
  recparam->SetClusterizerFlag(AliEMCALRecParam::kClusterizerFW);
  recparam->SetMinECut(minE);
  recparam->SetTimeMax(maxT);
  recparam->SetTimeMin(minT);
  task->SetGeometryName(geomName);
  task->SetAttachClusters(kTRUE);
  task->SetOverwrite(kFALSE);
  task->SetNewClusterArrayName(nameout);
  task->SetnPhi(n);
  task->SetnEta(n);
  task->SetShiftPhi(s);
  task->SetShiftEta(s);
  task->SetTRUShift(!slidingTRU);
  task->SetInputCellType(inputCellType);
  task->SetLoadPed(kFALSE);
  task->SetLoadCalib(kFALSE);
  task->SetRecalibrateCellsOnly(kFALSE);

  mgr->AddTask(task);
  mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());

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