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",
10 TString StEAName="alien:///alice/cern.ch/user/d/dgangadh/c3EAfile.root"
13 //===========================================================================
14 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
16 ::Error("AddTaskFourPion", "No analysis manager to connect to.");
21 //____________________________________________//
23 AliFourPion *FourPionTask = new AliFourPion("FourPionTask");
24 if(!FourPionTask) return NULL;
25 FourPionTask->SetLEGOCase(kTRUE);
26 FourPionTask->SetMCdecision(MCcase);
27 FourPionTask->SetCollisionType(0);
28 FourPionTask->SetGenerateSignal(kFALSE);
29 FourPionTask->SetTabulatePairs(TabulatePairs);
30 FourPionTask->SetInterpolationType(kFALSE);
31 FourPionTask->SetCentBinRange(CentBinLowLimit, CentBinHighLimit);
32 FourPionTask->SetRMax(11);
33 FourPionTask->SetfcSq(0.7);
34 FourPionTask->SetFilterBit(7);
35 FourPionTask->SetMaxChi2NDF(10);
36 FourPionTask->SetMinTPCncls(0);
37 FourPionTask->SetPairSeparationCutEta(0.02);
38 FourPionTask->SetPairSeparationCutPhi(0.045);
39 FourPionTask->SetNsigmaTPC(2.0);
40 FourPionTask->SetNsigmaTOF(2.0);
42 FourPionTask->SetMixedChargeCut(kFALSE);
43 FourPionTask->SetMinPt(0.16);
44 FourPionTask->SetMaxPt(1.0);
45 FourPionTask->SetKT3transition(0.3);
46 FourPionTask->SetKT4transition(0.3);
47 mgr->AddTask(FourPionTask);
50 // Create ONLY the output containers for the data produced by the task.
51 // Get and connect other common input/output containers via the manager as below
52 //==============================================================================
53 TString outputFileName = AliAnalysisManager::GetCommonFileName();
54 outputFileName += ":PWGCF.outputFourPionAnalysis.root";
55 AliAnalysisDataContainer *coutFourPion = mgr->CreateContainer("FourPionOutput", TList::Class(),AliAnalysisManager::kOutputContainer,outputFileName.Data());
56 mgr->ConnectInput(FourPionTask, 0, mgr->GetCommonInputContainer());
57 mgr->ConnectOutput(FourPionTask, 1, coutFourPion);
60 TFile *inputFileWeight = 0;
61 TFile *inputFileMomRes = 0;
62 TFile *inputFileFSI = 0;
63 TFile *inputFileMuon = 0;
64 TFile *inputFileEA = 0;
67 inputFileWeight = TFile::Open(StWeightName,"OLD");
68 if (!inputFileWeight){
69 cout << "Requested file:" << inputFileWeight << " was not opened. ABORT." << endl;
72 ////////////////////////////////////////////////////
74 const Int_t ktbins_temp = FourPionTask->GetNumKtBins();
75 const Int_t cbins_temp = FourPionTask->GetNumCentBins();
76 const Int_t ktbins = ktbins_temp;
77 const Int_t cbins = cbins_temp;
79 TH3F *weightHisto[ktbins][cbins];
80 for(Int_t i=0; i<ktbins; i++){
81 for(Int_t j=0; j<cbins; j++){
82 TString name = "Weight_Kt_";
88 weightHisto[i][j] = (TH3F*)inputFileWeight->Get(name);
91 FourPionTask->SetWeightArrays( kTRUE, weightHisto );
94 inputFileEA = TFile::Open(StEAName,"OLD");
96 cout << "Requested file:" << inputFileEA << " was not opened. ABORT." << endl;
102 PbPbEA = (TH3D*)inputFileEA->Get("PbPbEA");
103 pPbEA = (TH3D*)inputFileEA->Get("pPbEA");
104 ppEA = (TH3D*)inputFileEA->Get("ppEA");
105 FourPionTask->Setc3FitEAs( kTRUE, PbPbEA, pPbEA, ppEA );
106 ////////////////////////////////////////////////////
107 }// TabulatePairs check
109 if(!MCcase && !TabulatePairs){
111 inputFileMomRes = TFile::Open(StMomResName,"OLD");
112 if (!inputFileMomRes){
113 cout << "Requested file:" << inputFileMomRes << " was not opened. ABORT." << endl;
116 ////////////////////////////////////////////////////
117 // Momentum Resolution File
118 TH2D *momResHisto2DSC = 0;
119 TH2D *momResHisto2DMC = 0;
120 momResHisto2DSC = (TH2D*)inputFileMomRes->Get("MRC_C2_SC");
121 momResHisto2DMC = (TH2D*)inputFileMomRes->Get("MRC_C2_MC");
122 FourPionTask->SetMomResCorrections( kTRUE, momResHisto2DSC, momResHisto2DMC );
123 ////////////////////////////////////////////////////
126 inputFileMuon = TFile::Open(StMuonName,"OLD");
128 cout << "Requested file:" << inputFileMuon << " was not opened. ABORT." << endl;
131 TH2D *muonHisto2D = 0;
132 muonHisto2D = (TH2D*)inputFileMuon->Get("WeightmuonCorrection");
133 FourPionTask->SetMuonCorrections( kTRUE, muonHisto2D);
135 }// MCcase and TabulatePairs check
138 ////////////////////////////////////////////////////
140 inputFileFSI = TFile::Open(StKName,"OLD");
142 cout << "Requested file:" << inputFileFSI << " was not opened. ABORT." << endl;
147 for(Int_t index=0; index<12; index++) {
148 TString *nameSS=new TString("K2ss_");
150 FSIss[index] = (TH1D*)inputFileFSI->Get(nameSS->Data());
151 TString *nameOS=new TString("K2os_");
153 FSIos[index] = (TH1D*)inputFileFSI->Get(nameOS->Data());
155 FSIss[index]->SetDirectory(0);
156 FSIos[index]->SetDirectory(0);
159 FourPionTask->SetFSICorrelations( kTRUE, FSIss, FSIos );
160 ////////////////////////////////////////////////////
163 // Return the task pointer