X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PWGJE%2FFlavourJetTasks%2Fmacros%2FAddTaskDFilterAndCorrelations.C;h=662476280fc83aca451e4b34be0467eda036ea1a;hb=0a4aaa59d495424238d2103f33a3dfcbf1228108;hp=c5141e30a1593b5cfd647c88c4550e15ac18839f;hpb=555f79c46d0cdb26c00d50f8318c74c55f30935e;p=u%2Fmrichter%2FAliRoot.git diff --git a/PWGJE/FlavourJetTasks/macros/AddTaskDFilterAndCorrelations.C b/PWGJE/FlavourJetTasks/macros/AddTaskDFilterAndCorrelations.C index c5141e30a15..662476280fc 100644 --- a/PWGJE/FlavourJetTasks/macros/AddTaskDFilterAndCorrelations.C +++ b/PWGJE/FlavourJetTasks/macros/AddTaskDFilterAndCorrelations.C @@ -5,11 +5,13 @@ void *AddTaskDFilterAndCorrelations( Bool_t reco = kTRUE /*must be true if theMCon is false*/, TString suffix = "", TString jetArrname = "", + TString trackArrname = "PicoTracks", Bool_t triggerOnLeadingJet = kFALSE, Int_t leadingHadType = 0 /*0 = charged, 1 = neutral, 2 = both*/, Float_t R = 0.4, Float_t jptcut = 10., const char *cutType = "TPC", + Int_t thnsparse=1, /*-1 = no thnsparse, 0 = heavy, 1 = light*/ Double_t percjetareacut = 1., AliAnalysisTaskEmcal::TriggerType trType=AliAnalysisTaskEmcal::kND, Int_t typeDjet=2 @@ -56,7 +58,8 @@ void *AddTaskDFilterAndCorrelations( TString candname="DStar"; if(cand==0) candname="D0"; - + TString sR = Form("R%.1f",R); + TString taskFiltername="DmesonsFilterCJ"; taskFiltername+=candname; taskFiltername+=suffix; @@ -64,13 +67,15 @@ void *AddTaskDFilterAndCorrelations( if(!reco) taskFiltername+="gen"; AliAnalysisTaskSEDmesonsFilterCJ* taskFilter = mgr->GetTask(taskFiltername.Data()); + Bool_t bTaskFilter=kTRUE; if (!taskFilter){ + bTaskFilter=kFALSE; taskFilter = new AliAnalysisTaskSEDmesonsFilterCJ(taskFiltername.Data(),analysiscuts,cand); if(!theMCon) reco=kTRUE; taskFilter->SetMC(theMCon); //D meson settings taskFilter->SetUseReco(reco); mgr->AddTask(taskFilter); - } + } else Printf("Task %s already exist, continue",taskFiltername.Data()); // create the task TString taskCorrName="TaskFlavourJetCorrelations"; @@ -80,23 +85,36 @@ void *AddTaskDFilterAndCorrelations( if(!reco) taskCorrName+="gen"; taskCorrName+=cutType; taskCorrName+=Form("PTj%.0f",jptcut); - taskCorrName+=""; + taskCorrName+=sR; AliAnalysisTaskFlavourJetCorrelations *taskCorr = new AliAnalysisTaskFlavourJetCorrelations(taskCorrName.Data(), analysiscuts, cand); - taskCorr->SetJetsName(jetArrname); + taskCorr->SetJetArrayName(jetArrname); + taskCorr->SetTrackArrayName(trackArrname); + //taskCorr->SetRadius(R); + AliParticleContainer *trackCont = taskCorr->AddParticleContainer(trackArrname); + trackCont->SetClassName("AliVTrack"); + + AliJetContainer *jetCont = taskCorr->AddJetContainer(jetArrname,cutType,R); + if(jetCont) { + jetCont->ConnectParticleContainer(trackCont); + //jetCont->SetJetAcceptanceType(cutType); + jetCont->SetJetPtCut(jptcut); + jetCont->SetPercAreaCut(percjetareacut); + } taskCorr->SetMC(theMCon); taskCorr->SetUseReco(reco); taskCorr->SetTriggerOnLeadingJet(triggerOnLeadingJet); - taskCorr->SetJetAcceptanceType(cutType); - taskCorr->SetJetPtCut(jptcut); - taskCorr->SetPercAreaCut(percjetareacut); taskCorr->SetTypeDJetSelection(typeDjet); if(theMCon && trType!=AliAnalysisTaskEmcal::kND){ taskCorr->SetCaloTriggerPatchInfoName("EmcalTriggers"); taskCorr->SetTriggerTypeSel(trType); } + if(thnsparse==-1)taskCorr->TurnOffTHnSparse(); + if(thnsparse==0) taskCorr->HeavyTHnSparse(); + if(thnsparse==1) taskCorr->LightTHnSparse(); + mgr->AddTask(taskCorr); if(theMCon) { @@ -137,25 +155,41 @@ void *AddTaskDFilterAndCorrelations( nameContainerFC2 += suffix; nameContainerFC3 += suffix; - + nameContainerC0+=sR; + nameContainerC1+=sR; + // ------ input data ------ AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer(); cinput0->SetName(Form("in%s%s",candname.Data(),suffix.Data())); // ----- output data ----- + AliAnalysisDataContainer *coutputF0; + AliAnalysisDataContainer *coutputF1; + AliAnalysisDataContainer *coutputFC2; + AliAnalysisDataContainer *coutputFC3; - AliAnalysisDataContainer *coutputF0 = mgr->CreateContainer(nameContainerF0, TList::Class(),AliAnalysisManager::kOutputContainer,outputfileF.Data()); + if(!bTaskFilter){ + coutputF0 = mgr->CreateContainer(nameContainerF0, TList::Class(),AliAnalysisManager::kOutputContainer,outputfileF.Data()); - AliAnalysisDataContainer *coutputF1 = mgr->CreateContainer(nameContainerF1, AliRDHFCuts::Class(),AliAnalysisManager::kOutputContainer, outputfileF.Data()); + coutputF1 = mgr->CreateContainer(nameContainerF1, AliRDHFCuts::Class(),AliAnalysisManager::kOutputContainer, outputfileF.Data()); + + coutputFC2 = mgr->CreateContainer(nameContainerFC2, TClonesArray::Class(),AliAnalysisManager::kExchangeContainer, outputfileF.Data()); // exchange + + coutputFC3 = mgr->CreateContainer(nameContainerFC3, TClonesArray::Class(),AliAnalysisManager::kExchangeContainer, outputfileF.Data()); // exchange + + } else { + TObjArray * cnt = mgr->GetContainers(); + coutputF0 = (AliAnalysisDataContainer*)cnt->FindObject(nameContainerF0); + coutputF1 = (AliAnalysisDataContainer*)cnt->FindObject(nameContainerF1); + coutputFC2= (AliAnalysisDataContainer*)cnt->FindObject(nameContainerFC2); + coutputFC3= (AliAnalysisDataContainer*)cnt->FindObject(nameContainerFC3); + } AliAnalysisDataContainer *coutputC0 = mgr->CreateContainer(nameContainerC0, TList::Class(),AliAnalysisManager::kOutputContainer,outputfileC.Data()); AliAnalysisDataContainer *coutputC1 = mgr->CreateContainer(nameContainerC1, AliRDHFCuts::Class(),AliAnalysisManager::kOutputContainer, outputfileC.Data()); - AliAnalysisDataContainer *coutputFC2 = mgr->CreateContainer(nameContainerFC2, TClonesArray::Class(),AliAnalysisManager::kExchangeContainer, outputfileF.Data()); // - - AliAnalysisDataContainer *coutputFC3 = mgr->CreateContainer(nameContainerFC3, TClonesArray::Class(),AliAnalysisManager::kExchangeContainer, outputfileF.Data()); // - + mgr->ConnectInput(taskFilter,0,cinput0); mgr->ConnectInput(taskCorr,0,cinput0);