1 AliFourPion *AddTaskFourPion(
3 Bool_t TabulatePairs=kFALSE,
4 Int_t CentBinLowLimit=0,
5 Int_t CentBinHighLimit=1,
6 TString StWeightName="alien:///alice/cern.ch/user/d/dgangadh/WeightFile_FourPion.root",
7 TString StMomResName="alien:///alice/cern.ch/user/d/dgangadh/MomResFile_FourPion.root",
8 TString StKName="alien:///alice/cern.ch/user/d/dgangadh/KFile_FourPion.root",
9 TString StMuonName="alien:///alice/cern.ch/user/d/dgangadh/MuonCorrection_FourPion.root"
12 //===========================================================================
13 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
15 ::Error("AddTaskFourPion", "No analysis manager to connect to.");
20 //____________________________________________//
22 AliFourPion *FourPionTask = new AliFourPion("FourPionTask");
23 if(!FourPionTask) return NULL;
24 FourPionTask->SetLEGOCase(kTRUE);
25 FourPionTask->SetMCdecision(MCcase);
26 FourPionTask->SetCollisionType(0);
27 FourPionTask->SetGenerateSignal(kFALSE);
28 FourPionTask->SetTabulatePairs(TabulatePairs);
29 FourPionTask->SetInterpolationType(kFALSE);
30 FourPionTask->SetCentBinRange(CentBinLowLimit, CentBinHighLimit);
31 FourPionTask->SetRMax(11);
32 FourPionTask->SetfcSq(0.7);
33 FourPionTask->SetFilterBit(7);
34 FourPionTask->SetMaxChi2NDF(10);
35 FourPionTask->SetMinTPCncls(0);
36 FourPionTask->SetPairSeparationCutEta(0.02);
37 FourPionTask->SetPairSeparationCutPhi(0.045);
38 FourPionTask->SetNsigmaTPC(2.0);
39 FourPionTask->SetNsigmaTOF(2.0);
41 FourPionTask->SetMixedChargeCut(kFALSE);
42 FourPionTask->SetMinPt(0.16);
43 FourPionTask->SetMaxPt(1.0);
44 FourPionTask->SetKT3transition(0.3);
45 FourPionTask->SetKT4transition(0.3);
46 mgr->AddTask(FourPionTask);
49 // Create ONLY the output containers for the data produced by the task.
50 // Get and connect other common input/output containers via the manager as below
51 //==============================================================================
52 TString outputFileName = AliAnalysisManager::GetCommonFileName();
53 outputFileName += ":PWGCF.outputFourPionAnalysis.root";
54 AliAnalysisDataContainer *coutFourPion = mgr->CreateContainer("FourPionOutput", TList::Class(),AliAnalysisManager::kOutputContainer,outputFileName.Data());
55 mgr->ConnectInput(FourPionTask, 0, mgr->GetCommonInputContainer());
56 mgr->ConnectOutput(FourPionTask, 1, coutFourPion);
59 TFile *inputFileWeight = 0;
60 TFile *inputFileMomRes = 0;
61 TFile *inputFileFSI = 0;
65 inputFileWeight = TFile::Open(StWeightName,"OLD");
66 if (!inputFileWeight){
67 cout << "Requested file:" << inputFileWeight << " was not opened. ABORT." << endl;
70 ////////////////////////////////////////////////////
72 const Int_t ktbins_temp = FourPionTask->GetNumKtBins();
73 const Int_t cbins_temp = FourPionTask->GetNumCentBins();
74 const Int_t ktbins = ktbins_temp;
75 const Int_t cbins = cbins_temp;
77 TH3F *weightHisto[ktbins][cbins];
78 for(Int_t i=0; i<ktbins; i++){
79 for(Int_t j=0; j<cbins; j++){
80 TString name = "Weight_Kt_";
86 weightHisto[i][j] = (TH3F*)inputFileWeight->Get(name);
89 FourPionTask->SetWeightArrays( kTRUE, weightHisto );
90 ////////////////////////////////////////////////////
91 }// TabulatePairs check
93 if(!MCcase && !TabulatePairs){
95 inputFileMomRes = TFile::Open(StMomResName,"OLD");
96 if (!inputFileMomRes){
97 cout << "Requested file:" << inputFileMomRes << " was not opened. ABORT." << endl;
100 ////////////////////////////////////////////////////
101 // Momentum Resolution File
102 TH2D *momResHisto2DSC = 0;
103 TH2D *momResHisto2DMC = 0;
104 momResHisto2DSC = (TH2D*)inputFileMomRes->Get("MRC_C2_SC");
105 momResHisto2DMC = (TH2D*)inputFileMomRes->Get("MRC_C2_MC");
106 FourPionTask->SetMomResCorrections( kTRUE, momResHisto2DSC, momResHisto2DMC );
107 ////////////////////////////////////////////////////
110 inputFileMuon = TFile::Open(StMuonName,"OLD");
112 cout << "Requested file:" << inputFileMuon << " was not opened. ABORT." << endl;
115 TH2D *muonHisto2D = 0;
116 muonHisto2D = (TH2D*)inputFileMuon->Get("WeightmuonCorrection");
117 FourPionTask->SetMuonCorrections( kTRUE, muonHisto2D);
119 }// MCcase and TabulatePairs check
122 ////////////////////////////////////////////////////
124 inputFileFSI = TFile::Open(StKName,"OLD");
126 cout << "Requested file:" << inputFileFSI << " was not opened. ABORT." << endl;
131 for(Int_t index=0; index<12; index++) {
132 TString *nameSS=new TString("K2ss_");
134 FSIss[index] = (TH1D*)inputFileFSI->Get(nameSS->Data());
135 TString *nameOS=new TString("K2os_");
137 FSIos[index] = (TH1D*)inputFileFSI->Get(nameOS->Data());
139 FSIss[index]->SetDirectory(0);
140 FSIos[index]->SetDirectory(0);
143 FourPionTask->SetFSICorrelations( kTRUE, FSIss, FSIos );
144 ////////////////////////////////////////////////////
147 // Return the task pointer