ROOT logo
// $Id$

AliJetResponseMaker* AddTaskJetRespPtHard(  
  const char *ntracks1           = "Tracks",
  const char *nclusters1         = "CaloClusters",
  const char *njets1             = "Jets",
  const char *nrho1              = "Rho",
  Double_t    jetradius1         = 0.2,
  const char *ntracks2           = "MCParticles",
  const char *nclusters2         = "",
  const char *njets2             = "MCJets",
  const char *nrho2              = "",
  Double_t    jetradius2         = 0.2,
  Double_t    jetptcut           = 1,
  Double_t    jetareacut         = 0.557,
  Double_t    jetBias            = 5,
  Int_t       biasType           = 0,   //  0 = charged, 1 = neutral, 2 = both
  UInt_t      matching           = AliJetResponseMaker::kGeometrical,
  Double_t    maxDistance1       = 0.25,
  Double_t    maxDistance2       = 0.25,
  const char *cutType            = "TPC",
  Int_t       minPtHardBin       = -999,
  Int_t       maxPtHardBin       = -999,
  Int_t       ncent              = 0,
  const char *taskname           = "AliJetResponseMaker",
  Bool_t      biggerMatrix       = kFALSE
)
{
  TCollection *funct = gROOT->GetListOfGlobalFunctions();
  if (!funct->Contains("AddTaskJetResponseMaker"))
    gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskJetResponseMaker.C");
  else
    Printf("Function AddTaskJetResponseMaker already loaded, will not load again...");

  Double_t centRanges[5] = {0,10,30,50,100};
 
  if (ncent == 0) {
    ncent = 1;
    centRanges[0] = -999;
    centRanges[1] = -999;
  }

  if (ncent > 4)
    ncent = 4;

  Int_t ntasks = (maxPtHardBin - minPtHardBin + 1) * ncent;

  if (jetBias > 5)
    ntasks *= 3;
  else if (jetBias > 0)
    ntasks *= 2;

  AliJetResponseMaker *jetTask = new AliJetResponseMaker[ntasks];

  Int_t itask = 0;

  for (Int_t i = minPtHardBin; i <= maxPtHardBin; i++) {
    for (Int_t j = 0; j < ncent; j++) {
      Printf("Adding AliJetResponseMaker n. %d", itask);
      AddTaskJetResponseMaker(ntracks1, nclusters1, njets1, nrho1, jetradius1, ntracks2, nclusters2, njets2, nrho2, jetradius2,
			      jetptcut, jetareacut, 0, biasType,
			      matching, maxDistance1, maxDistance2, cutType, i, centRanges[j], centRanges[j+1], taskname, biggerMatrix, jetTask + itask);
      itask++;

      if (jetBias > 5) {
	Printf("Adding AliJetResponseMaker n. %d", itask);
	AddTaskJetResponseMaker(ntracks1, nclusters1, njets1, nrho1, jetradius1, ntracks2, nclusters2, njets2, nrho2, jetradius2,
				jetptcut, jetareacut, 5, biasType,
				0, 1, 1, cutType, i, centRanges[j], centRanges[j+1], taskname, biggerMatrix, jetTask + itask);
	itask++;
      }

      if (jetBias > 0) {
	Printf("Adding AliJetResponseMaker n. %d", itask);
	AddTaskJetResponseMaker(ntracks1, nclusters1, njets1, nrho1, jetradius1, ntracks2, nclusters2, njets2, nrho2, jetradius2,
				jetptcut, jetareacut, jetBias, biasType,
				0, 1, 1, cutType, i, centRanges[j], centRanges[j+1], taskname, biggerMatrix, jetTask + itask);
	itask++;
      }
    }
  }
  
  return jetTask;
}
 AddTaskJetRespPtHard.C:1
 AddTaskJetRespPtHard.C:2
 AddTaskJetRespPtHard.C:3
 AddTaskJetRespPtHard.C:4
 AddTaskJetRespPtHard.C:5
 AddTaskJetRespPtHard.C:6
 AddTaskJetRespPtHard.C:7
 AddTaskJetRespPtHard.C:8
 AddTaskJetRespPtHard.C:9
 AddTaskJetRespPtHard.C:10
 AddTaskJetRespPtHard.C:11
 AddTaskJetRespPtHard.C:12
 AddTaskJetRespPtHard.C:13
 AddTaskJetRespPtHard.C:14
 AddTaskJetRespPtHard.C:15
 AddTaskJetRespPtHard.C:16
 AddTaskJetRespPtHard.C:17
 AddTaskJetRespPtHard.C:18
 AddTaskJetRespPtHard.C:19
 AddTaskJetRespPtHard.C:20
 AddTaskJetRespPtHard.C:21
 AddTaskJetRespPtHard.C:22
 AddTaskJetRespPtHard.C:23
 AddTaskJetRespPtHard.C:24
 AddTaskJetRespPtHard.C:25
 AddTaskJetRespPtHard.C:26
 AddTaskJetRespPtHard.C:27
 AddTaskJetRespPtHard.C:28
 AddTaskJetRespPtHard.C:29
 AddTaskJetRespPtHard.C:30
 AddTaskJetRespPtHard.C:31
 AddTaskJetRespPtHard.C:32
 AddTaskJetRespPtHard.C:33
 AddTaskJetRespPtHard.C:34
 AddTaskJetRespPtHard.C:35
 AddTaskJetRespPtHard.C:36
 AddTaskJetRespPtHard.C:37
 AddTaskJetRespPtHard.C:38
 AddTaskJetRespPtHard.C:39
 AddTaskJetRespPtHard.C:40
 AddTaskJetRespPtHard.C:41
 AddTaskJetRespPtHard.C:42
 AddTaskJetRespPtHard.C:43
 AddTaskJetRespPtHard.C:44
 AddTaskJetRespPtHard.C:45
 AddTaskJetRespPtHard.C:46
 AddTaskJetRespPtHard.C:47
 AddTaskJetRespPtHard.C:48
 AddTaskJetRespPtHard.C:49
 AddTaskJetRespPtHard.C:50
 AddTaskJetRespPtHard.C:51
 AddTaskJetRespPtHard.C:52
 AddTaskJetRespPtHard.C:53
 AddTaskJetRespPtHard.C:54
 AddTaskJetRespPtHard.C:55
 AddTaskJetRespPtHard.C:56
 AddTaskJetRespPtHard.C:57
 AddTaskJetRespPtHard.C:58
 AddTaskJetRespPtHard.C:59
 AddTaskJetRespPtHard.C:60
 AddTaskJetRespPtHard.C:61
 AddTaskJetRespPtHard.C:62
 AddTaskJetRespPtHard.C:63
 AddTaskJetRespPtHard.C:64
 AddTaskJetRespPtHard.C:65
 AddTaskJetRespPtHard.C:66
 AddTaskJetRespPtHard.C:67
 AddTaskJetRespPtHard.C:68
 AddTaskJetRespPtHard.C:69
 AddTaskJetRespPtHard.C:70
 AddTaskJetRespPtHard.C:71
 AddTaskJetRespPtHard.C:72
 AddTaskJetRespPtHard.C:73
 AddTaskJetRespPtHard.C:74
 AddTaskJetRespPtHard.C:75
 AddTaskJetRespPtHard.C:76
 AddTaskJetRespPtHard.C:77
 AddTaskJetRespPtHard.C:78
 AddTaskJetRespPtHard.C:79
 AddTaskJetRespPtHard.C:80
 AddTaskJetRespPtHard.C:81
 AddTaskJetRespPtHard.C:82
 AddTaskJetRespPtHard.C:83
 AddTaskJetRespPtHard.C:84
 AddTaskJetRespPtHard.C:85