Пример #1
0
AliAnalysisTaskRho* AddTaskRho(
   const char    *nJets       = "Jets",
   const char    *nTracks     = "PicoTracks",
   const char    *nClusters   = "CaloClusters",  
   const char    *nRho        = "Rho",
   Double_t       jetradius   = 0.2,
   const char    *cutType     = "TPC",
   Double_t       jetareacut  = 0.01,
   Double_t       emcareacut  = 0,
   const char    *sfuncPath   = "alien:///alice/cern.ch/user/s/saiola/LHC11h_ScaleFactorFunctions.root",
   const char    *sfuncName   = "LHC11h_HadCorr20_ClustersV2",
   const UInt_t   exclJets    = 2,
   const Bool_t   histo       = kFALSE,
   const char    *suffix      = ""
)
{
  TFile *file = TFile::Open(sfuncPath);
  if (!file || file->IsZombie()) {
    ::Error("AddTaskRho", "Could not open scale function file");
    return NULL;
  }

  TF1* sfunc = dynamic_cast<TF1*>(file->Get(sfuncName));

  if (sfunc) {
    ::Info("AddTaskRho", Form("Scale function %s loaded from file %s.", sfuncName, sfuncPath));
  }
  else {
    ::Error("AddTaskRho", Form("Scale function %s not found in file %s.", sfuncName, sfuncPath));
    return NULL;
  }

  AliAnalysisTaskRho *task = AddTaskRho(nJets, nTracks, nClusters, nRho, jetradius, cutType, jetareacut, emcareacut, sfunc, exclJets, histo, suffix);

  file->Close();
  delete file;
  file = 0;

  return task;
}
Пример #2
0
void AddTaskEmcalQA()
{
  enum {
    kMinBias,
    
    //kEMCalL0,
    kEMCalL1G1,
    //kEMCalL1G2,
    kEMCalL1J1,
    //kEMCalL1J2,
    
    //kDCalL0,
    kDCalL1G1,
    //kDCalL1G2,
    kDCalL1J1,
    //kDCalL1J2,
    
    kLastTrig
  };

  TString gCaloTriggerNames[kLastTrig];
  gCaloTriggerNames[kMinBias] = "CINT7-B-NOPF-CENT";
  //gCaloTriggerNames[kEMCalL0] = "CEMC7-B-NOPF-CENTNOPMD";
  gCaloTriggerNames[kEMCalL1G1] = "CINT7EG1-B-NOPF-CENTNOPMD";
  //gCaloTriggerNames[kEMCalL1G2] = "CINT7EG2-B-NOPF-CENTNOPMD";
  gCaloTriggerNames[kEMCalL1J1] = "CINT7EJ1-B-NOPF-CENTNOPMD";
  //gCaloTriggerNames[kEMCalL1J2] = "CINT7EJ2-B-NOPF-CENTNOPMD";
  //gCaloTriggerNames[kDCalL0] = "CDMC7-B-NOPF-CENTNOPMD";
  gCaloTriggerNames[kDCalL1G1] = "CINT7DG1-B-NOPF-CENTNOPMD";
  //gCaloTriggerNames[kDCalL1G2] = "CINT7DG2-B-NOPF-CENTNOPMD";
  gCaloTriggerNames[kDCalL1J1] = "CINT7DJ1-B-NOPF-CENTNOPMD";
  //gCaloTriggerNames[kDCalL1J2] = "CINT7DJ2-B-NOPF-CENTNOPMD";

  TString gCaloTriggerLabels[kLastTrig];
  gCaloTriggerLabels[kMinBias] = "INT7";
  //gCaloTriggerLabels[kEMCalL0] = "EMC7";
  gCaloTriggerLabels[kEMCalL1G1] = "EMCEG1";
  //gCaloTriggerLabels[kEMCalL1G2] = "EMCEG2";
  gCaloTriggerLabels[kEMCalL1J1] = "EMCEJ1";
  //gCaloTriggerLabels[kEMCalL1J2] = "EMCEJ2";
  //gCaloTriggerLabels[kDCalL0] = "DMC7";
  gCaloTriggerLabels[kDCalL1G1] = "DMCEG1";
  //gCaloTriggerLabels[kDCalL1G2] = "DMCEG2";
  gCaloTriggerLabels[kDCalL1J1] = "DMCEJ1";
  //gCaloTriggerLabels[kDCalL1J2] = "DMCEJ2";

  gROOT->LoadMacro("$ALICE_PHYSICS/PWGJE/EMCALJetTasks/macros/AddTaskSAQA.C");
  gROOT->LoadMacro("$ALICE_PHYSICS/PWGJE/EMCALJetTasks/macros/AddTaskSAJF.C");
  gROOT->LoadMacro("$ALICE_PHYSICS/PWG/EMCAL/macros/AddTaskEmcalTriggerQA.C");
  gROOT->LoadMacro("$ALICE_PHYSICS/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");
  gROOT->LoadMacro("$ALICE_PHYSICS/PWGJE/EMCALJetTasks/macros/AddTaskRho.C");

  AliEmcalJetTask* ktJetTask = AddTaskEmcalJet(AliEmcalJetTask::kKT | AliEmcalJetTask::kFullJet | AliEmcalJetTask::kR020Jet,
					       "", "CaloClusters", 0., 0.30, 0.005);

  AliEmcalJetTask* aktJetTask = AddTaskEmcalJet(AliEmcalJetTask::kAKT | AliEmcalJetTask::kFullJet | AliEmcalJetTask::kR020Jet,
						"", "CaloClusters", 0., 0.30, 0.005);

  AliAnalysisTaskRho* rhoTaskEMCal = AddTaskRho(ktJetTask->GetName(), "", "CaloClusters", "NeutralRhoEMCal", 0.2, "EMCAL", 0.01, 0, 0, 1, kTRUE, "EMCal");
  rhoTaskEMCal->SetUseNewCentralityEstimation(kTRUE);
  rhoTaskEMCal->SetNCentBins(5);
  rhoTaskEMCal->SetHistoBins(50, 0, 100);
  rhoTaskEMCal->GetJetContainer(0)->SetJetPtCut(0.1);

  AliAnalysisTaskRho* rhoTaskDCal = AddTaskRho(ktJetTask->GetName(), "", "CaloClusters", "NeutralRhoDCal", 0.2, "DCAL", 0.01, 0, 0, 1, kTRUE, "DCal");
  rhoTaskDCal->SetUseNewCentralityEstimation(kTRUE);
  rhoTaskDCal->SetNCentBins(5);
  rhoTaskDCal->SetHistoBins(50, 0, 100);
  rhoTaskDCal->GetJetContainer(0)->SetJetPtCut(0.1);

  for (Int_t i = 0; i < kLastTrig; i++) {
    TString suffix;

    AliEmcalTriggerQATask* pTriggerQA = AddTaskEmcalTriggerQA("EmcalTriggers", 0, 0, gCaloTriggerLabels[i]);
    pTriggerQA->SetEMCalTriggerMode(AliAnalysisTaskEmcal::kNoSpecialTreatment);
    pTriggerQA->SetTrigClass(gCaloTriggerNames[i]);
    pTriggerQA->SetUseNewCentralityEstimation(kTRUE);
    pTriggerQA->SetNCentBins(5);
    pTriggerQA->SetADCperBin(15);
    
    suffix = gCaloTriggerLabels[i];
    AliAnalysisTaskSAQA *pQATaskAfter = AddTaskSAQA("", "CaloClusters", "EMCALCells", "", "",
						    0, 0, 0, 0., 0., "TPC", suffix);
    pQATaskAfter->GetClusterContainer(0)->SetClusECut(0.);
    pQATaskAfter->GetClusterContainer(0)->SetClusPtCut(0.);
    pQATaskAfter->GetClusterContainer(0)->SetClusNonLinCorrEnergyCut(0.15);
    pQATaskAfter->SetDefaultClusterEnergy(AliVCluster::kNonLinCorr);
    pQATaskAfter->SetHistoBins(150, 0, 150);
    pQATaskAfter->SetEMCalTriggerMode(AliAnalysisTaskEmcal::kNoSpecialTreatment);
    pQATaskAfter->SetTrigClass(gCaloTriggerNames[i]);
    pQATaskAfter->SetVzRange(-999,999);
    pQATaskAfter->SetUseNewCentralityEstimation(kTRUE);
    pQATaskAfter->SetNCentBins(5);

    if (gCaloTriggerLabels[i] == "INT7" || gCaloTriggerLabels[i].BeginsWith("EMCE")) {
      suffix = gCaloTriggerLabels[i];
      AliAnalysisTaskSAJF *pJFTask = AddTaskSAJF("", "CaloClusters", aktJetTask->GetName(), "NeutralRhoDCal", 0.2, 1, 0., "EMCALfid", 1, suffix);
      pJFTask->SetEMCalTriggerMode(AliAnalysisTaskEmcal::kNoSpecialTreatment);
      pJFTask->SetTrigClass(gCaloTriggerNames[i]);
      pJFTask->SetVzRange(-999,999);
      pJFTask->SetUseNewCentralityEstimation(kTRUE);
      pJFTask->SetNCentBins(5);
      pJFTask->SetHistoBins(200,0,200);
    }

    if (gCaloTriggerLabels[i] == "INT7" || gCaloTriggerLabels[i].BeginsWith("DMCE")) {
      suffix = gCaloTriggerLabels[i];
      AliAnalysisTaskSAJF *pJFTask = AddTaskSAJF("", "CaloClusters", aktJetTask->GetName(), "NeutralRhoEMCal", 0.2, 1, 0., "DCALfid", 1, suffix);
      pJFTask->SetEMCalTriggerMode(AliAnalysisTaskEmcal::kNoSpecialTreatment);
      pJFTask->SetTrigClass(gCaloTriggerNames[i]);
      pJFTask->SetVzRange(-999,999);
      pJFTask->SetUseNewCentralityEstimation(kTRUE);
      pJFTask->SetNCentBins(5);
      pJFTask->SetHistoBins(200,0,200);
    }
  }
}