ROOT logo
// $Id$

AliAnalysisTaskSE *AddTaskEMCALTenderUsingDatasetDef(
  const char *perstr  = "LHC11h",
  const char *pass    = 0 /*should not be needed*/
) 
{
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr)
  {
    Error("AddTaskEMCALTenderUsingDatasetDef","No analysis manager found.");
    return 0;
  }

  AliVEventHandler *evhand = mgr->GetInputEventHandler();
  if (!evhand) {
    Error("AddTaskEMCALTenderUsingDatasetDef", "This task requires an input event handler");
    return NULL;
  }

  gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEMCALTender.C");

  Bool_t distBC         = kTRUE;   //distance to bad channel
  Bool_t recalibClus    = kTRUE;   //recalibrate cluster energy
  Bool_t recalcClusPos  = kTRUE;   //recalculate cluster position
  Bool_t nonLinearCorr  = kTRUE;   //apply non-linearity
  Bool_t remExoticCell  = kTRUE;   //remove exotic cells
  Bool_t remExoticClus  = kTRUE;   //remove exotic clusters
  Bool_t fidRegion      = kFALSE;  //apply fiducial cuts
  Bool_t calibEnergy    = kTRUE;   //calibrate energy
  Bool_t calibTime      = kTRUE;   //calibrate timing
  Bool_t remBC          = kTRUE;   //remove bad channels
  UInt_t nonLinFunct    = AliEMCALRecoUtils::kBeamTestCorrected;
  Bool_t reclusterize   = kFALSE;  //reclusterize
  Float_t seedthresh    = 0.100;   //seed threshold
  Float_t cellthresh    = 0.050;   //cell threshold
  UInt_t clusterizer    = AliEMCALRecParam::kClusterizerv2;
  Bool_t trackMatch     = kTRUE;   //track matching
  Bool_t updateCellOnly = kFALSE;  //only change if you run your own clusterizer task
  Float_t timeMin       = -50e6;   //minimum time of physical signal in a cell/digit (s)
  Float_t timeMax       =  50e6;   //maximum time of physical signal in a cell/digit (s)
  Float_t timeCut       =   1e6;   //maximum time difference between the digits inside EMC cluster (s)

  Bool_t isMC = kFALSE;

  TString period(perstr);
  period.ToLower();
  Printf("Configuring tender for run period: %s",period.Data());

  if (period == "lhc11h") {
    trackMatch = kFALSE;
    timeMin = -50e-9;
    timeMax =  50e-9;
    timeCut =  1e6;
  }
  else if (period == "lhc12a15e" || period == "lhc12a15e_fix" || 
	   period == "lhc12a17a_fix" || period == "lhc12a17b_fix" || period == "lhc12a17c_fix" || period == "lhc12a17d_fix" || 
	   period == "lhc12a17e_fix" || period == "lhc12a17f_fix" || period == "lhc12a17g_fix" || period == "lhc12a17h_fix" || 
	   period == "lhc12a17i_fix") {
    nonLinFunct = AliEMCALRecoUtils::kPi0MCv3;
    isMC = kTRUE;
  }
  else if (period == "lhc12a15a") {
    nonLinFunct = AliEMCALRecoUtils::kPi0MCv2;
    isMC = kTRUE;
  }
  else if(period == "lhc12a" || period == "lhc12b" || period == "lhc12c" || period == "lhc12d" || period == "lhc12e" || period == "lhc12f" || period == "lhc12g" || period == "lhc12h" || period == "lhc12i") {
    reclusterize = kTRUE;
    seedthresh = 0.3;
    cellthresh = 0.05;
    timeMin = -50e-9;
    timeMax =  50e-9;
    timeCut =  1e6;
  }
  else if(period == "lhc13b" || period == "lhc13c" || period == "lhc13d" || period == "lhc13e" || period == "lhc13f" || period == "lhc13g" || 
	  period == "lhc13b4" || period == "lhc13b4_fix" || period == "lhc13b4_plus") {
    reclusterize = kTRUE;
    seedthresh = 0.3;
    cellthresh = 0.05;
    if(period == "lhc13b" || period == "lhc13c" || period == "lhc13d" || period == "lhc13e" || period == "lhc13f" || period == "lhc13g") {
      timeMin = -50e-9;
      timeMax =  50e-9;
      timeCut =  1e6;
    }
    else if(period == "lhc13b4" || period == "lhc13b4_fix" || period == "lhc13b4_plus") {
      nonLinFunct = AliEMCALRecoUtils::kPi0MCv3;
      isMC = kTRUE;
    }
  }

  if(isMC) { //no timing cuts when running on MC
    calibEnergy = kFALSE;
    calibTime   = kFALSE;
    timeMin = -1;
    timeMax =  1e6;
    timeCut =  1e6;
  }

  if (!evhand->InheritsFrom("AliESDInputHandler"))
    trackMatch = kFALSE;

  AliAnalysisTaskSE *task = AddTaskEMCALTender(
    distBC, recalibClus, recalcClusPos, nonLinearCorr,
    remExoticCell, remExoticClus, fidRegion, calibEnergy, 
    calibTime, remBC, nonLinFunct, reclusterize, seedthresh, 
    cellthresh, clusterizer, trackMatch, updateCellOnly,
    timeMin, timeMax, timeCut, pass);

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