AliAnalysisTaskSE *AddTaskEmcalPreparation(const char *perstr = "LHC11h",
const char *pass = 0 /*should not be needed; will be recovered from path of AOD/ESD; no need to specify by user; */
) {
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if (!mgr)
{
::Error("AddTaskEmcalPreparation", "No analysis manager to connect to.");
return NULL;
}
TString period(perstr);
period.ToLower();
Bool_t isMC = kFALSE;
if(period.Sizeof()>7) isMC = kTRUE;
// Bool_t isMC = (mgr->GetMCtruthEventHandler() != NULL); //only works for ESD
if(isMC) Printf("AddTaskEmcalPreparation: Running on MC");
else Printf("AddTaskEmcalPreparation: Running on DATA");
//----------------------- Add tender -------------------------------------------------------
Bool_t distBC = kFALSE; //switch for recalculation cluster position from bad channel
Bool_t recalibClus = kFALSE;
Bool_t recalcClusPos = kFALSE;
Bool_t nonLinearCorr = kFALSE;
Bool_t remExoticCell = kFALSE;
Bool_t remExoticClus = kFALSE;
Bool_t fidRegion = kFALSE;
Bool_t calibEnergy = kTRUE;
Bool_t calibTime = kTRUE;
Bool_t remBC = kTRUE;
UInt_t nonLinFunct = 0;
Bool_t reclusterize = kFALSE;
Float_t seedthresh = 0.1; // 100 MeV
Float_t cellthresh = 0.05; // 50 MeV
UInt_t clusterizer = 0;
Bool_t trackMatch = kFALSE;
Bool_t updateCellOnly = kFALSE;
Float_t timeMin = -50e-9; // minimum time of physical signal in a cell/digit
Float_t timeMax = 50e-9; // maximum time of physical signal in a cell/digit
Float_t timeCut = 1e6;
if(period.Contains("lhc11h")) {
timeMin = -50e-9;
timeMax = 100e-9;
}
if(isMC) {
calibEnergy = kFALSE;
calibTime = kFALSE;
timeMin = -1.;
timeMax = 1e6;
}
gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEMCALTender.C");//tendertasks
AliAnalysisTaskSE *tender = AddTaskEMCALTender(distBC, recalibClus, recalcClusPos, nonLinearCorr, remExoticCell, remExoticClus,
fidRegion, calibEnergy, calibTime, remBC, nonLinFunct, reclusterize, seedthresh,
cellthresh, clusterizer, trackMatch, updateCellOnly, timeMin, timeMax, timeCut,pass);
//----------------------- Add clusterizer -------------------------------------------------------
clusterizer = AliEMCALRecParam::kClusterizerv2;
remExoticCell = kTRUE;
TString tmpClusters = "tmpCaloClusters";
gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskClusterizerFast.C");
AliAnalysisTaskEMCALClusterizeFast *clusterizerTask = AddTaskClusterizerFast("ClusterizerFast","",tmpClusters.Data(),clusterizer,cellthresh,seedthresh,
timeMin,timeMax,timeCut,remExoticCell,distBC,
AliAnalysisTaskEMCALClusterizeFast::kFEEData);
//----------------------- Add cluster maker -----------------------------------------------------
gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalClusterMaker.C"); //cluster maker: non-linearity,
UInt_t nonLinFunct = AliEMCALRecoUtils::kBeamTestCorrected;
if(isMC) {
if(period == "lhc12a15a")
nonLinFunct = AliEMCALRecoUtils::kPi0MCv2;
else
nonLinFunct = AliEMCALRecoUtils::kPi0MCv3;
}
remExoticClus = kTRUE;
AliEmcalClusterMaker *clusMaker = AddTaskEmcalClusterMaker(nonLinFunct,remExoticClus,tmpClusters.Data(),"EmcCaloClusters",0.,kTRUE);
return clusterizerTask;
}
AddTaskEmcalPreparation.C:1 AddTaskEmcalPreparation.C:2 AddTaskEmcalPreparation.C:3 AddTaskEmcalPreparation.C:4 AddTaskEmcalPreparation.C:5 AddTaskEmcalPreparation.C:6 AddTaskEmcalPreparation.C:7 AddTaskEmcalPreparation.C:8 AddTaskEmcalPreparation.C:9 AddTaskEmcalPreparation.C:10 AddTaskEmcalPreparation.C:11 AddTaskEmcalPreparation.C:12 AddTaskEmcalPreparation.C:13 AddTaskEmcalPreparation.C:14 AddTaskEmcalPreparation.C:15 AddTaskEmcalPreparation.C:16 AddTaskEmcalPreparation.C:17 AddTaskEmcalPreparation.C:18 AddTaskEmcalPreparation.C:19 AddTaskEmcalPreparation.C:20 AddTaskEmcalPreparation.C:21 AddTaskEmcalPreparation.C:22 AddTaskEmcalPreparation.C:23 AddTaskEmcalPreparation.C:24 AddTaskEmcalPreparation.C:25 AddTaskEmcalPreparation.C:26 AddTaskEmcalPreparation.C:27 AddTaskEmcalPreparation.C:28 AddTaskEmcalPreparation.C:29 AddTaskEmcalPreparation.C:30 AddTaskEmcalPreparation.C:31 AddTaskEmcalPreparation.C:32 AddTaskEmcalPreparation.C:33 AddTaskEmcalPreparation.C:34 AddTaskEmcalPreparation.C:35 AddTaskEmcalPreparation.C:36 AddTaskEmcalPreparation.C:37 AddTaskEmcalPreparation.C:38 AddTaskEmcalPreparation.C:39 AddTaskEmcalPreparation.C:40 AddTaskEmcalPreparation.C:41 AddTaskEmcalPreparation.C:42 AddTaskEmcalPreparation.C:43 AddTaskEmcalPreparation.C:44 AddTaskEmcalPreparation.C:45 AddTaskEmcalPreparation.C:46 AddTaskEmcalPreparation.C:47 AddTaskEmcalPreparation.C:48 AddTaskEmcalPreparation.C:49 AddTaskEmcalPreparation.C:50 AddTaskEmcalPreparation.C:51 AddTaskEmcalPreparation.C:52 AddTaskEmcalPreparation.C:53 AddTaskEmcalPreparation.C:54 AddTaskEmcalPreparation.C:55 AddTaskEmcalPreparation.C:56 AddTaskEmcalPreparation.C:57 AddTaskEmcalPreparation.C:58 AddTaskEmcalPreparation.C:59 AddTaskEmcalPreparation.C:60 AddTaskEmcalPreparation.C:61 AddTaskEmcalPreparation.C:62 AddTaskEmcalPreparation.C:63 AddTaskEmcalPreparation.C:64 AddTaskEmcalPreparation.C:65 AddTaskEmcalPreparation.C:66 AddTaskEmcalPreparation.C:67 AddTaskEmcalPreparation.C:68 AddTaskEmcalPreparation.C:69 AddTaskEmcalPreparation.C:70 AddTaskEmcalPreparation.C:71 AddTaskEmcalPreparation.C:72 AddTaskEmcalPreparation.C:73 AddTaskEmcalPreparation.C:74 AddTaskEmcalPreparation.C:75 AddTaskEmcalPreparation.C:76 AddTaskEmcalPreparation.C:77 AddTaskEmcalPreparation.C:78 AddTaskEmcalPreparation.C:79 AddTaskEmcalPreparation.C:80 AddTaskEmcalPreparation.C:81 AddTaskEmcalPreparation.C:82