3 AliEmcalClusterMaker* AddTaskEmcalClusterMaker(
4 const UInt_t nonLinFunct = AliEMCALRecoUtils::kBeamTestCorrected,
5 const Bool_t remExClus = kTRUE,
6 const char *nClusters = 0,
7 const char *outClusName = "EmcCaloClusters",
8 const Double_t emin = 0.3,
9 const Bool_t histo = kFALSE,
10 const char *outputname = "AnalysisResults.root"
13 // Get the pointer to the existing analysis manager via the static access method.
14 //==============================================================================
15 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
18 ::Error("AddTaskHadCorr", "No analysis manager to connect to.");
22 // Check the analysis type using the event handlers connected to the analysis manager.
23 //==============================================================================
24 if (!mgr->GetInputEventHandler())
26 ::Error("AddTaskHadCorr", "This task requires an input event handler");
30 TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
32 if (inputDataType != "ESD")
33 nClusters = "caloClusters";
35 nClusters = "CaloClusters";
38 //-------------------------------------------------------
39 // Init the task and do settings
40 //-------------------------------------------------------
42 TString name(Form("EmcalClusterMaker_%s_%s", nClusters, outClusName));
43 AliEmcalClusterMaker *ecm = new AliEmcalClusterMaker(name, histo);
44 ecm->SetOutClusName(outClusName);
45 AliEMCALRecoUtils *ru = new AliEMCALRecoUtils;
46 ru->SetNonLinearityFunction(nonLinFunct);
47 if(remExClus) ru->SwitchOnRejectExoticCluster();
48 ecm->SetRecoUtils(ru);
49 AliClusterContainer *clusCont = ecm->AddClusterContainer(nClusters);
50 clusCont->SetClusECut(emin);
52 //-------------------------------------------------------
53 // Final settings, pass to manager and set the containers
54 //-------------------------------------------------------
58 // Create containers for input/output
59 mgr->ConnectInput (ecm, 0, mgr->GetCommonInputContainer());
62 AliAnalysisDataContainer *coecm = mgr->CreateContainer(name,
64 AliAnalysisManager::kOutputContainer,
66 mgr->ConnectOutput(ecm,1,coecm);