]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGJE/EMCALJetTasks/macros/AddTaskRhoVnModulation.C
Protection against re-initialization of histograms if not already
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskRhoVnModulation.C
index 2c88232f22cc7d52e7f090785554f6e43910d748..efb0c9d5e2e01e09889a4f2e6259b1e435215d7c 100644 (file)
@@ -12,16 +12,19 @@ AliAnalysisTaskRhoVnModulation* AddTaskRhoVnModulation(
   const char *nclusters          = "",
   const char *njets              = "Jets",
   const char *nrho               = "Rho",
-  Double_t    jetradius          = 0.2,
-  Double_t    jetptcut           = 1,
-  Double_t    jetareacut         = 0.557,
-  UInt_t      type               = AliAnalysisTaskEmcal::kTPC,
-  Int_t       leadhadtype        = 0,
+  Double_t   jetradius          = 0.2,
+  Double_t   jetptcut           = 1,
+  Double_t   jetareacut         = 0.557,
+  const char* type              = "TPC",
+  Int_t      leadhadtype        = 0,
   const char *taskname           = "AliAnalysisTaskRhoVnModulation",
-  UInt_t      runMode            = AliAnalysisTaskRhoVnModulation::kGrid,
-  Bool_t      fillQA             = kTRUE,
-  TString     fitOpts            = "LWQIM",
-  UInt_t      fitType            = AliAnalysisTaskRhoVnModulation::kFourierSeries
+  UInt_t     runMode            = AliAnalysisTaskRhoVnModulation::kGrid,
+  Bool_t     fillQA             = kTRUE,
+  TString    fitOpts            = "WLQI",
+  UInt_t     fitType            = AliAnalysisTaskRhoVnModulation::kFourierSeries,
+  TArrayI    *centralities      = 0x0,
+  TRandom3   *randomizer        = 0x0,
+  Double_t   trackptcut         = .15
   )
 {  
   // Get the pointer to the existing analysis manager via the static access method.
@@ -54,29 +57,44 @@ AliAnalysisTaskRhoVnModulation* AddTaskRhoVnModulation(
     name += "_";
     name += nrho;
   }
-  if (type == AliAnalysisTaskEmcal::kTPC) 
+  if (!strcmp(type, "TPC"))
     name += "_TPC";
-  else if (type == AliAnalysisTaskEmcal::kEMCAL) 
+  else if (!strcmp(type, "EMCAL"))
     name += "_EMCAL";
-  else if (type == AliAnalysisTaskEmcal::kUser
+  else if (!strcmp(type, "USER")
     name += "_USER";
 
   AliAnalysisTaskRhoVnModulation* jetTask = new AliAnalysisTaskRhoVnModulation(name, runMode);
   // inherited setters
-  jetTask->SetAnaType(type);
-  jetTask->SetTracksName(ntracks);
-  jetTask->SetClusName(nclusters);
-  jetTask->SetJetsName(njets);
-  jetTask->SetRhoName(nrho);
-  jetTask->SetJetRadius(jetradius);
-  jetTask->SetJetPtCut(jetptcut);
-  jetTask->SetPercAreaCut(jetareacut);
-  jetTask->SetLeadingHadronType(leadhadtype);
+  AliParticleContainer* partCont = jetTask->AddParticleContainer(ntracks);
+  if(partCont) {
+      partCont->SetName("Tracks");
+      partCont->SetParticlePtCut(trackptcut);
+  }
+  AliJetContainer* jetCont = jetTask->AddJetContainer(njets, type, jetradius);
+  if(jetCont) {
+      jetCont->SetName("Jets");
+      jetCont->SetPercAreaCut(jetareacut);
+      jetCont->SetRhoName(nrho);
+      jetCont->ConnectParticleContainer(partCont);
+  }
   // task specific setters
   jetTask->SetFillQAHistograms(fillQA);
   jetTask->SetDebugMode(-1);
   jetTask->SetModulationFitType(fitType);
   jetTask->SetModulationFitOptions(fitOpts);
+  jetTask->SetModulationFitMinMaxP(.001, 1);
+  jetTask->SetRandomConeRadius(jetradius);
+  // if centralities haven't been specified use defaults
+  if(!centralities) {
+     Int_t c[] = {0, 10, 30, 50, 70, 90};
+     jetTask->SetCentralityClasses(new TArrayI(sizeof(c)/sizeof(c[0]), c));
+  }
+  // if a randomized hasn't specified use a safe default 
+  if(!randomizer) jetTask->SetRandomSeed(new TRandom3(0));
+
+
+
 
   //-------------------------------------------------------
   // Final settings, pass to manager and set the containers
@@ -87,7 +105,7 @@ AliAnalysisTaskRhoVnModulation* AddTaskRhoVnModulation(
   // Create containers for input/output
   AliAnalysisDataContainer *cinput1  = mgr->GetCommonInputContainer()  ;
   TString contname(name);
-  contname += "_histos";
+  contname+="_PWGJE";
   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname.Data(), 
                                                            TList::Class(),AliAnalysisManager::kOutputContainer,
                                                            Form("%s", AliAnalysisManager::GetCommonFileName()));
@@ -97,10 +115,10 @@ AliAnalysisTaskRhoVnModulation* AddTaskRhoVnModulation(
   switch (runMode) {
       case AliAnalysisTaskRhoVnModulation::kLocal : {
           gStyle->SetOptFit(1);
-          AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("good_fits"
+          AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(Form("good_fits_%s", name.Data())
                                                            TList::Class(),AliAnalysisManager::kOutputContainer,
                                                            Form("%s", AliAnalysisManager::GetCommonFileName()));
-          AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("bad_fits", 
+          AliAnalysisDataContainer *coutput3 = mgr->CreateContainer(Form("bad_fits_%s", name.Data()),
                                                            TList::Class(),AliAnalysisManager::kOutputContainer,
                                                             Form("%s", AliAnalysisManager::GetCommonFileName()));
           mgr->ConnectOutput (jetTask, 2, coutput2);