void AddEventCounterComponent(EMCalTriggerPtAnalysis::AliEMCalTriggerTaskGroup *group, bool isMC);
void AddMCJetComponent(EMCalTriggerPtAnalysis::AliEMCalTriggerTaskGroup *group, double minJetPt);
void AddRecJetComponent(EMCalTriggerPtAnalysis::AliEMCalTriggerTaskGroup *group, AliESDtrackCuts *trackcuts, double minJetPt, bool isMC, bool isSwapEta);
+void CreateJetPtBinning(EMCalTriggerPtAnalysis::AliAnalysisTaskPtEMCalTriggerV1 *task);
AliESDtrackCuts *CreateDefaultTrackCuts();
AliESDtrackCuts *CreateHybridTrackCuts();
+AliESDtrackCuts *TrackCutsFactory(const char *trackCutsName);
AliAnalysisTask* AddTaskPtEMCalTriggerV1(
bool isMC,
const char *nclusterContainer = "",
const char *njetcontainerData = "",
const char *njetcontainerMC = "",
- double jetradius = 0.5
+ const char *ntriggerContainer = "",
+ double jetradius = 0.5,
+ const char *ntrackcuts = "standard"
)
{
//AliLog::SetClassDebugLevel("EMCalTriggerPtAnalysis::AliAnalysisTaskPtEMCalTrigger", 2);
}
bool isSwapEta = TString(period).CompareTo("LHC13f") ? kFALSE : kTRUE;
- EMCalTriggerPtAnalysis::AliAnalysisTaskPtEMCalTriggerV1 *pttriggertask = new EMCalTriggerPtAnalysis::AliAnalysisTaskPtEMCalTriggerV1("ptemcaltriggertask");
+ EMCalTriggerPtAnalysis::AliAnalysisTaskPtEMCalTriggerV1 *pttriggertask = new EMCalTriggerPtAnalysis::AliAnalysisTaskPtEMCalTriggerV1(Form("ptemcaltriggertask%s", ntrackcuts));
//pttriggertask->SelectCollisionCandidates(AliVEvent::kINT7 | AliVEvent::kEMC7); // Select both INT7 or EMC7 triggered events
pttriggertask->SelectCollisionCandidates(AliVEvent::kAny);
+ if(isMC) pttriggertask->SetSwapThresholds();
+ CreateJetPtBinning(pttriggertask);
mgr->AddTask(pttriggertask);
if(usePythiaHard){
}
// Add components
- EMCalTriggerPtAnalysis::AliEMCalTriggerTaskGroup *noselect = new EMCalTriggerPtAnalysis::AliEMCalTriggerTaskGroup("noselect");
- noselect->AddAnalysisComponent(new EMCalTriggerPtAnalysis::AliEMCalTriggerPatchAnalysisComponent("patchanalysis"));
+ if(strlen(ntriggerContainer)){
+ pttriggertask->SetCaloTriggerPatchInfoName(ntriggerContainer);
+ EMCalTriggerPtAnalysis::AliEMCalTriggerTaskGroup *noselect = new EMCalTriggerPtAnalysis::AliEMCalTriggerTaskGroup("noselect");
+ noselect->AddAnalysisComponent(new EMCalTriggerPtAnalysis::AliEMCalTriggerPatchAnalysisComponent("patchanalysis"));
+ pttriggertask->AddAnalysisGroup(noselect);
+ } else {
+ pttriggertask->SetCaloTriggerPatchInfoName("");
+ }
double jetpt[4] = {40., 60., 80., 100.};
EMCalTriggerPtAnalysis::AliEMCalTriggerTaskGroup *defaultselect = new EMCalTriggerPtAnalysis::AliEMCalTriggerTaskGroup("defaultselect");
AddEventCounterComponent(defaultselect, isMC);
if(isMC){
AddMCParticleComponent(defaultselect);
+ AddMCJetComponent(defaultselect, 20.);
+ /*
for(int ijpt = 0; ijpt < 4; ijpt++)
AddMCJetComponent(defaultselect, jetpt[ijpt]);
+ */
}
AddClusterComponent(defaultselect, isMC);
- AddTrackComponent(defaultselect, CreateDefaultTrackCuts(), isMC, isSwapEta);
- for(int ijpt = 0; ijpt < 4; ijpt++)
- AddRecJetComponent(defaultselect, CreateDefaultTrackCuts(), jetpt[ijpt], isMC, isSwapEta);
+ AddTrackComponent(defaultselect, TrackCutsFactory(ntrackcuts), isMC, isSwapEta);
+ AddRecJetComponent(defaultselect, TrackCutsFactory(ntrackcuts), 20., isMC, isSwapEta);
+ /*
+ * for(int ijpt = 0; ijpt < 4; ijpt++)
+ AddRecJetComponent(defaultselect, TrackCutsFactory(ntrackcuts), jetpt[ijpt], isMC, isSwapEta);
+ */
- pttriggertask->AddAnalysisGroup(noselect);
pttriggertask->AddAnalysisGroup(defaultselect);
// Add containers
// Handle Jet Containers
if(strlen(njetcontainerData)){
- AliJetContainer *jetcontainerData = pttriggertask->AddJetContainer(njetcontainerData, "TPC", jetradius);
+ AliJetContainer *jetcontainerData = pttriggertask->AddJetContainer(njetcontainerData, "EMCAL", jetradius);
pttriggertask->SetDataJetContainerName("PtTriggerTaskJetsData");
jetcontainerData->ConnectParticleContainer(trackContainer);
jetcontainerData->SetName("PtTriggerTaskJetsData");
jetcontainerData->SetJetPtCut(20.);
- jetcontainerData->SetJetEtaPhiEMCAL();
printf("jet container added for Data\n");
}
if(isMC && strlen(njetcontainerMC)){
- AliJetContainer *jetcontainerMC = pttriggertask->AddJetContainer(njetcontainerMC, "TPC", jetradius);
+ AliJetContainer *jetcontainerMC = pttriggertask->AddJetContainer(njetcontainerMC, "EMCAL", jetradius);
pttriggertask->SetMCJetContainerName("PtTriggerTaskJetsMC");
jetcontainerMC->ConnectParticleContainer(mcpartcont);
jetcontainerMC->SetName("PtTriggerTaskJetsMC");
jetcontainerMC->SetJetPtCut(20.);
- jetcontainerMC->SetJetEtaPhiEMCAL();
printf("Jet container added for MC");
}
TString containerName = mgr->GetCommonFileName();
- containerName += ":PtEMCalTriggerTask";
+ containerName += ":PtEMCalTriggerTask" + TString(ntrackcuts);
printf("container name: %s\n", containerName.Data());
AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
- AliAnalysisDataContainer *coutput = mgr->CreateContainer("results", TList::Class(), AliAnalysisManager::kOutputContainer, containerName.Data());
+ AliAnalysisDataContainer *coutput = mgr->CreateContainer(Form("TriggerTracksResults%s", ntrackcuts), TList::Class(), AliAnalysisManager::kOutputContainer, containerName.Data());
//Connect input/output
mgr->ConnectInput(pttriggertask, 0, cinput);
group->AddAnalysisComponent(jetana);
}
+void CreateJetPtBinning(EMCalTriggerPtAnalysis::AliAnalysisTaskPtEMCalTriggerV1 *task){
+ // Linear binning in steps of 10 GeV/c up to 200 GeV/c
+ TArrayD binlimits(21);
+ for(int i = 0; i < 21; i++) binlimits[i] = 10.*i;
+ task->SetBinning("jetpt", binlimits);
+}
+
AliESDtrackCuts *CreateDefaultTrackCuts(){
AliESDtrackCuts *standardTrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(true, 1);
standardTrackCuts->SetName("Standard Track cuts");
hybridTrackCuts->SetMaxFractionSharedTPCClusters(0.4);
return hybridTrackCuts;
}
+
+AliESDtrackCuts* TrackCutsFactory(const char* trackCutsName) {
+ if(!strcmp(trackCutsName, "standard")) return CreateDefaultTrackCuts();
+ else if(!strcmp(trackCutsName, "hybrid")) return CreateHybridTrackCuts();
+ return NULL;
+}