AliAnalysisTask *AddTaskTPCPIDEtaTree(TString period = "", Bool_t isPbpOrpPb = kFALSE, Bool_t storeMultiplicity = kTRUE,
Bool_t correctdEdxEtaDependence = kFALSE, Bool_t correctdEdxMultiplicityDependence = kFALSE,
Bool_t setDoAdditionalQA = kFALSE,
Int_t tpcCutType = AliTPCPIDBase::kTPCCutMIGeo /*AliTPCPIDBase::kTPCnclCut*/,
Bool_t usePhiCut = kFALSE){
//get the current analysis manager
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if (!mgr) {
Error("AddTask_bhess_PIDetaTree", "No analysis manager found.");
return 0;
}
//========= Add task to the ANALYSIS manager =====
AliTPCPIDEtaTree *task = new AliTPCPIDEtaTree("TPCPIDEtaTree");
task->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kINT7);
//
// Add track filters
//
AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
AliESDtrackCuts* esdTrackCutsL = 0x0;
printf("\nSettings:\n");
if (period.Contains("LHC11") || period.Contains("LHC12") || period.Contains("LHC13")) {
esdTrackCutsL = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE);
printf("Using standard ITS-TPC track cuts 2011.\n");
}
else if (period.Contains("LHC10")) {
esdTrackCutsL = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE);
printf("Using standard ITS-TPC track cuts 2010.\n");
}
else {
esdTrackCutsL = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE);
printf("WARNING: Cuts not configured for this period!!! Using standard ITS-TPC track cuts 2011\n");
}
task->SetStoreMultiplicity(storeMultiplicity);
if (task->GetStoreMultiplicity()) {
printf("Storing multiplicity in tree!\n");
}
else {
printf("NOT storing multiplicity in tree!\n");
}
task->SetIsPbpOrpPb(isPbpOrpPb);
if (task->GetIsPbpOrpPb()) {
printf("Collision type pPb/Pbp set -> Adapting vertex cuts!\n");
}
else {
printf("Collision type different from pPb/Pbp -> Using standard vertex cuts!\n");
}
trackFilter->AddCuts(esdTrackCutsL);
task->SetTrackFilter(trackFilter);
task->SetUsePhiCut(usePhiCut);
task->SetTPCcutType(tpcCutType);
printf("UsePhiCut: %d\n", task->GetUsePhiCut());
printf("UseTPCCutMIGeo: %d\n", task->GetUseTPCCutMIGeo());
printf("UseTPCnclCut: %d\n", task->GetUseTPCnclCut());
task->SetDoAdditionalQA(setDoAdditionalQA);
if (task->GetDoAdditionalQA())
printf("Storing histos for additional QA!\n");
else
printf("NOT storing histos for additional QA!\n");
task->SetZvtxCutEvent(10.0);
printf("Cut on z position of vertex: %.2f cm\n", task->GetZvtxCutEvent());
task->SetEtaCut(0.9);
printf("EtaCut: %.2f\n", task->GetEtaCut());
task->SetPtpcPionCut(0.6);
printf("P_TPC_Pion cut: %.2f\n", task->GetPtpcPionCut());
task->SetStoreNumOfSubthresholdclusters(kTRUE);
printf("Store num subthreshold clusters: %d\n", task->GetStoreNumOfSubthresholdclusters());
task->SetStoreNumClustersInActiveVolume(kTRUE);
printf("Store num clusters in active volume: %d\n", task->GetStoreNumClustersInActiveVolume());
task->SetCorrectdEdxEtaDependence(correctdEdxEtaDependence);
task->SetCorrectdEdxMultiplicityDependence(correctdEdxMultiplicityDependence);
printf("Eta correction: %s for this task\n",
task->GetCorrectdEdxEtaDependence() ? "enabled (only works if enabled in PIDresponse!)" : "explicitly disabled");
printf("Multiplicity correction: %s for this task\n\n",
task->GetCorrectdEdxMultiplicityDependence() ? "enabled (only works if enabled in PIDresponse!)" : "explicitly disabled");
mgr->AddTask(task);
//================================================
// data containers
//================================================
// find input container
//below the trunk version
AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
//dumm output container
AliAnalysisDataContainer *coutput0 =
mgr->CreateContainer("TPCPIDEtaTree_tree",
TTree::Class(),
AliAnalysisManager::kExchangeContainer,
"TPCPIDEtaTree_default");
//define output containers, please use 'username'_'somename'
AliAnalysisDataContainer *coutput1 =
mgr->CreateContainer("TPCPIDEtaTree", TTree::Class(),
AliAnalysisManager::kOutputContainer,"TPCPIDEtaTree.root");
AliAnalysisDataContainer *coutput2 =
mgr->CreateContainer("TPCPIDEtaTreePions", TTree::Class(),
AliAnalysisManager::kOutputContainer,"TPCPIDEtaTreePions.root");
AliAnalysisDataContainer *coutput3 =
mgr->CreateContainer("TPCPIDEtaTreeAdditionalQA", TObjArray::Class(),
AliAnalysisManager::kOutputContainer,"TPCPIDEtaTreeAddionalQA.root");
//connect containers
mgr->ConnectInput(task, 0, cinput );
mgr->ConnectOutput(task, 0, coutput0);
mgr->ConnectOutput(task, 1, coutput1);
mgr->ConnectOutput(task, 2, coutput2);
mgr->ConnectOutput(task, 3, coutput3);
return task;
}
AddTaskTPCPIDEtaTree.C:10 AddTaskTPCPIDEtaTree.C:11 AddTaskTPCPIDEtaTree.C:12 AddTaskTPCPIDEtaTree.C:13 AddTaskTPCPIDEtaTree.C:14 AddTaskTPCPIDEtaTree.C:15 AddTaskTPCPIDEtaTree.C:16 AddTaskTPCPIDEtaTree.C:17 AddTaskTPCPIDEtaTree.C:18 AddTaskTPCPIDEtaTree.C:19 AddTaskTPCPIDEtaTree.C:20 AddTaskTPCPIDEtaTree.C:21 AddTaskTPCPIDEtaTree.C:22 AddTaskTPCPIDEtaTree.C:23 AddTaskTPCPIDEtaTree.C:24 AddTaskTPCPIDEtaTree.C:25 AddTaskTPCPIDEtaTree.C:26 AddTaskTPCPIDEtaTree.C:27 AddTaskTPCPIDEtaTree.C:28 AddTaskTPCPIDEtaTree.C:29 AddTaskTPCPIDEtaTree.C:30 AddTaskTPCPIDEtaTree.C:31 AddTaskTPCPIDEtaTree.C:32 AddTaskTPCPIDEtaTree.C:33 AddTaskTPCPIDEtaTree.C:34 AddTaskTPCPIDEtaTree.C:35 AddTaskTPCPIDEtaTree.C:36 AddTaskTPCPIDEtaTree.C:37 AddTaskTPCPIDEtaTree.C:38 AddTaskTPCPIDEtaTree.C:39 AddTaskTPCPIDEtaTree.C:40 AddTaskTPCPIDEtaTree.C:41 AddTaskTPCPIDEtaTree.C:42 AddTaskTPCPIDEtaTree.C:43 AddTaskTPCPIDEtaTree.C:44 AddTaskTPCPIDEtaTree.C:45 AddTaskTPCPIDEtaTree.C:46 AddTaskTPCPIDEtaTree.C:47 AddTaskTPCPIDEtaTree.C:48 AddTaskTPCPIDEtaTree.C:49 AddTaskTPCPIDEtaTree.C:50 AddTaskTPCPIDEtaTree.C:51 AddTaskTPCPIDEtaTree.C:52 AddTaskTPCPIDEtaTree.C:53 AddTaskTPCPIDEtaTree.C:54 AddTaskTPCPIDEtaTree.C:55 AddTaskTPCPIDEtaTree.C:56 AddTaskTPCPIDEtaTree.C:57 AddTaskTPCPIDEtaTree.C:58 AddTaskTPCPIDEtaTree.C:59 AddTaskTPCPIDEtaTree.C:60 AddTaskTPCPIDEtaTree.C:61 AddTaskTPCPIDEtaTree.C:62 AddTaskTPCPIDEtaTree.C:63 AddTaskTPCPIDEtaTree.C:64 AddTaskTPCPIDEtaTree.C:65 AddTaskTPCPIDEtaTree.C:66 AddTaskTPCPIDEtaTree.C:67 AddTaskTPCPIDEtaTree.C:68 AddTaskTPCPIDEtaTree.C:69 AddTaskTPCPIDEtaTree.C:70 AddTaskTPCPIDEtaTree.C:71 AddTaskTPCPIDEtaTree.C:72 AddTaskTPCPIDEtaTree.C:73 AddTaskTPCPIDEtaTree.C:74 AddTaskTPCPIDEtaTree.C:75 AddTaskTPCPIDEtaTree.C:76 AddTaskTPCPIDEtaTree.C:77 AddTaskTPCPIDEtaTree.C:78 AddTaskTPCPIDEtaTree.C:79 AddTaskTPCPIDEtaTree.C:80 AddTaskTPCPIDEtaTree.C:81 AddTaskTPCPIDEtaTree.C:82 AddTaskTPCPIDEtaTree.C:83 AddTaskTPCPIDEtaTree.C:84 AddTaskTPCPIDEtaTree.C:85 AddTaskTPCPIDEtaTree.C:86 AddTaskTPCPIDEtaTree.C:87 AddTaskTPCPIDEtaTree.C:88 AddTaskTPCPIDEtaTree.C:89 AddTaskTPCPIDEtaTree.C:90 AddTaskTPCPIDEtaTree.C:91 AddTaskTPCPIDEtaTree.C:92 AddTaskTPCPIDEtaTree.C:93 AddTaskTPCPIDEtaTree.C:94 AddTaskTPCPIDEtaTree.C:95 AddTaskTPCPIDEtaTree.C:96 AddTaskTPCPIDEtaTree.C:97 AddTaskTPCPIDEtaTree.C:98 AddTaskTPCPIDEtaTree.C:99 AddTaskTPCPIDEtaTree.C:100 AddTaskTPCPIDEtaTree.C:101 AddTaskTPCPIDEtaTree.C:102 AddTaskTPCPIDEtaTree.C:103 AddTaskTPCPIDEtaTree.C:104 AddTaskTPCPIDEtaTree.C:105 AddTaskTPCPIDEtaTree.C:106 AddTaskTPCPIDEtaTree.C:107 AddTaskTPCPIDEtaTree.C:108 AddTaskTPCPIDEtaTree.C:109 AddTaskTPCPIDEtaTree.C:110 AddTaskTPCPIDEtaTree.C:111 AddTaskTPCPIDEtaTree.C:112 AddTaskTPCPIDEtaTree.C:113 AddTaskTPCPIDEtaTree.C:114 AddTaskTPCPIDEtaTree.C:115 AddTaskTPCPIDEtaTree.C:116 AddTaskTPCPIDEtaTree.C:117 AddTaskTPCPIDEtaTree.C:118 AddTaskTPCPIDEtaTree.C:119 AddTaskTPCPIDEtaTree.C:120 AddTaskTPCPIDEtaTree.C:121 AddTaskTPCPIDEtaTree.C:122 AddTaskTPCPIDEtaTree.C:123 AddTaskTPCPIDEtaTree.C:124 AddTaskTPCPIDEtaTree.C:125 AddTaskTPCPIDEtaTree.C:126 AddTaskTPCPIDEtaTree.C:127 AddTaskTPCPIDEtaTree.C:128 AddTaskTPCPIDEtaTree.C:129 AddTaskTPCPIDEtaTree.C:130 AddTaskTPCPIDEtaTree.C:131 AddTaskTPCPIDEtaTree.C:132