]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/FEMTOSCOPY/macros/AddTaskFourPion.C
Merge branch 'master_patch'
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / macros / AddTaskFourPion.C
CommitLineData
0bde631d 1AliFourPion *AddTaskFourPion(
13495ce6 2 Bool_t MCcase=kFALSE,
2567800f 3 Bool_t TabulatePairs=kFALSE,
0bde631d 4 Int_t CentBinLowLimit=0,
5 Int_t CentBinHighLimit=1,
0bde631d 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",
b79b516e 8 TString StKName="alien:///alice/cern.ch/user/d/dgangadh/KFile_FourPion.root",
6600b8fb 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"
b79b516e 11 ) {
0bde631d 12
13 //===========================================================================
14 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
15 if (!mgr) {
16 ::Error("AddTaskFourPion", "No analysis manager to connect to.");
17 return NULL;
18 }
19
20
21 //____________________________________________//
22 // Create task
23 AliFourPion *FourPionTask = new AliFourPion("FourPionTask");
24 if(!FourPionTask) return NULL;
2567800f 25 FourPionTask->SetLEGOCase(kTRUE);
13495ce6 26 FourPionTask->SetMCdecision(MCcase);
18fe1cde 27 FourPionTask->SetCollisionType(0);
2567800f 28 FourPionTask->SetGenerateSignal(kFALSE);
0bde631d 29 FourPionTask->SetTabulatePairs(TabulatePairs);
2567800f 30 FourPionTask->SetInterpolationType(kFALSE);
0bde631d 31 FourPionTask->SetCentBinRange(CentBinLowLimit, CentBinHighLimit);
2567800f 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);
01d7aaf2 41 //
42 FourPionTask->SetMixedChargeCut(kFALSE);
43 FourPionTask->SetMinPt(0.16);
44 FourPionTask->SetMaxPt(1.0);
45 FourPionTask->SetKT3transition(0.3);
46 FourPionTask->SetKT4transition(0.3);
0bde631d 47 mgr->AddTask(FourPionTask);
48
49
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);
58
59
60 TFile *inputFileWeight = 0;
61 TFile *inputFileMomRes = 0;
62 TFile *inputFileFSI = 0;
6600b8fb 63 TFile *inputFileMuon = 0;
64 TFile *inputFileEA = 0;
0bde631d 65
66 if(!TabulatePairs){
67 inputFileWeight = TFile::Open(StWeightName,"OLD");
68 if (!inputFileWeight){
69 cout << "Requested file:" << inputFileWeight << " was not opened. ABORT." << endl;
70 return NULL;
71 }
72 ////////////////////////////////////////////////////
73 // C2 Weight File
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;
78
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_";
83 name += i;
84 name += "_Ky_0_M_";
85 name += j;
86 name += "_ED_0";
87
88 weightHisto[i][j] = (TH3F*)inputFileWeight->Get(name);
89 }
90 }
91 FourPionTask->SetWeightArrays( kTRUE, weightHisto );
6600b8fb 92 //
93 //
94 inputFileEA = TFile::Open(StEAName,"OLD");
95 if (!inputFileEA){
96 cout << "Requested file:" << inputFileEA << " was not opened. ABORT." << endl;
97 return NULL;
98 }
99 TH3D *PbPbEA = 0;
100 TH3D *pPbEA = 0;
101 TH3D *ppEA = 0;
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 );
0bde631d 106 ////////////////////////////////////////////////////
107 }// TabulatePairs check
108
109 if(!MCcase && !TabulatePairs){
110
111 inputFileMomRes = TFile::Open(StMomResName,"OLD");
112 if (!inputFileMomRes){
113 cout << "Requested file:" << inputFileMomRes << " was not opened. ABORT." << endl;
114 return NULL;
115 }
116 ////////////////////////////////////////////////////
117 // Momentum Resolution File
03c241ef 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 );
0bde631d 123 ////////////////////////////////////////////////////
b79b516e 124
125 // Muon corrections
126 inputFileMuon = TFile::Open(StMuonName,"OLD");
127 if (!inputFileMuon){
128 cout << "Requested file:" << inputFileMuon << " was not opened. ABORT." << endl;
129 return NULL;
130 }
131 TH2D *muonHisto2D = 0;
132 muonHisto2D = (TH2D*)inputFileMuon->Get("WeightmuonCorrection");
133 FourPionTask->SetMuonCorrections( kTRUE, muonHisto2D);
134
0bde631d 135 }// MCcase and TabulatePairs check
136
137
138 ////////////////////////////////////////////////////
139 // FSI File
140 inputFileFSI = TFile::Open(StKName,"OLD");
141 if (!inputFileFSI){
142 cout << "Requested file:" << inputFileFSI << " was not opened. ABORT." << endl;
143 return NULL;
144 }
b1a93215 145 TH1D *FSIss[13];
146 TH1D *FSIos[13];
147 for(Int_t index=0; index<13; index++) {
0bde631d 148 TString *nameSS=new TString("K2ss_");
149 *nameSS += index;
150 FSIss[index] = (TH1D*)inputFileFSI->Get(nameSS->Data());
151 TString *nameOS=new TString("K2os_");
152 *nameOS += index;
153 FSIos[index] = (TH1D*)inputFileFSI->Get(nameOS->Data());
154 //
155 FSIss[index]->SetDirectory(0);
156 FSIos[index]->SetDirectory(0);
157 }
158 //
159 FourPionTask->SetFSICorrelations( kTRUE, FSIss, FSIos );
160 ////////////////////////////////////////////////////
161
162
163 // Return the task pointer
164 return FourPionTask;
165}