//if like define a different number of signal for TPC PID //by default the task is anyway computing 1, 2 and 3 sigmas const Bool_t theRareOn = kTRUE; const Bool_t anaType = 1;//0 HD; 1 UU; const Bool_t doImp = kFALSE;// imp par studies //---------------------------------------------------- AliAnalysisTaskSEDStarSpectra *AddTaskDStarSpectra(Int_t system=0/*0=pp,1=PbPb*/, Float_t minC=0, Float_t maxC=100, TString cutsfile="", TString usercomment = "username", Bool_t theMCon=kFALSE, Bool_t doDStarVsY=kFALSE) { AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); if (!mgr) { ::Error("AddTaskDStarSpectra", "No analysis manager to connect to."); return NULL; } // cuts are stored in a TFile generated by makeTFile4CutsDStartoKpipi.C in ./macros/ // set there the cuts!!!!! Bool_t stdcuts=kFALSE; TFile* filecuts; if( cutsfile.EqualTo("") ) { stdcuts=kTRUE; } else { filecuts=TFile::Open(cutsfile.Data()); if(!filecuts ||(filecuts&& !filecuts->IsOpen())){ AliFatal("Input file not found : check your cut object"); } } AliRDHFCutsDStartoKpipi* RDHFDStartoKpipi=new AliRDHFCutsDStartoKpipi(); if(stdcuts) { if(system==0) RDHFDStartoKpipi->SetStandardCutsPP2010(); else if(system==1) { RDHFDStartoKpipi->SetStandardCutsPbPb2010(); RDHFDStartoKpipi->SetMinCentrality(minC); RDHFDStartoKpipi->SetMinCentrality(maxC); RDHFDStartoKpipi->SetUseAOD049(kTRUE); RDHFDStartoKpipi->SetUseCentrality(AliRDHFCuts::kCentV0M); } } else RDHFDStartoKpipi = (AliRDHFCutsDStartoKpipi*)filecuts->Get("DStartoKpipiCuts"); RDHFDStartoKpipi->SetName("DStartoKpipiCuts"); // mm let's see if everything is ok if(!RDHFDStartoKpipi){ cout<<"Specific AliRDHFCuts not found"<SetAnalysisType(anaType); task->SetMC(theMCon); task->SetRareSearch(theRareOn); task->SetDoImpactParameterHistos(doImp); task->SetDebugLevel(0); task->SetDoDStarVsY(doDStarVsY); mgr->AddTask(task); // Create and connect containers for input/output usercomment = "_" + usercomment; TString outputfile = AliAnalysisManager::GetCommonFileName(); outputfile += ":PWG3_D2H_DStarSpectra"; outputfile += usercomment; // ------ input data ------ TString input = "indstar"; input += usercomment; TString output1 = "chist1"; output1 += usercomment; TString output2 = "DStarAll"; output2 += usercomment; TString output3 = "DStarPID"; output3 += usercomment; TString output4 = "cuts"; output4 += usercomment; TString output5 = "coutputDstarNorm"; output5 += usercomment; //AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer(); AliAnalysisDataContainer *cinput0 = mgr->CreateContainer(input,TChain::Class(), AliAnalysisManager::kInputContainer); // ----- output data ----- AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(output1,TList::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data()); AliAnalysisDataContainer *coutputDStar1 = mgr->CreateContainer(output2,TList::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data()); AliAnalysisDataContainer *coutputDStar2 = mgr->CreateContainer(output3,TList::Class(),AliAnalysisManager::kOutputContainer, outputfile.Data()); AliAnalysisDataContainer *coutputDStar3 = mgr->CreateContainer(output4,AliRDHFCutsDStartoKpipi::Class(),AliAnalysisManager::kOutputContainer, outputfile.Data()); //cuts AliAnalysisDataContainer *coutputDstarNorm = mgr->CreateContainer(output5,AliNormalizationCounter::Class(),AliAnalysisManager::kOutputContainer, outputfile.Data()); mgr->ConnectInput(task,0,mgr->GetCommonInputContainer()); mgr->ConnectOutput(task,1,coutput1); mgr->ConnectOutput(task,2,coutputDStar1); mgr->ConnectOutput(task,3,coutputDStar2); mgr->ConnectOutput(task,4,coutputDStar3); mgr->ConnectOutput(task,5,coutputDstarNorm); return task; }