]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/FEMTOSCOPY/macros/AddTaskFourPion.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / macros / AddTaskFourPion.C
1 AliFourPion *AddTaskFourPion(
2                                  Bool_t MCcase=kFALSE,
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"
11                              ) {
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;
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);
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);
47   FourPionTask->Setq2Binning(kFALSE);
48   FourPionTask->Setq2Index(0);
49   FourPionTask->Setq2CutLow(0.55);
50   FourPionTask->Setq2CutHigh(1.25);
51
52   mgr->AddTask(FourPionTask);
53
54
55   // Create ONLY the output containers for the data produced by the task.
56   // Get and connect other common input/output containers via the manager as below
57   //==============================================================================
58   TString outputFileName = AliAnalysisManager::GetCommonFileName();
59   outputFileName += ":PWGCF.outputFourPionAnalysis.root";
60   AliAnalysisDataContainer *coutFourPion = mgr->CreateContainer("FourPionOutput", TList::Class(),AliAnalysisManager::kOutputContainer,outputFileName.Data());
61   mgr->ConnectInput(FourPionTask, 0, mgr->GetCommonInputContainer());
62   mgr->ConnectOutput(FourPionTask, 1, coutFourPion);
63   
64
65   TFile *inputFileWeight = 0;
66   TFile *inputFileMomRes = 0;
67   TFile *inputFileFSI = 0;
68   TFile *inputFileMuon = 0;
69   TFile *inputFileEA = 0;
70  
71   if(!TabulatePairs){
72     inputFileWeight = TFile::Open(StWeightName,"OLD");
73     if (!inputFileWeight){
74       cout << "Requested file:" << inputFileWeight << " was not opened. ABORT." << endl;
75       return NULL;
76     }
77     ////////////////////////////////////////////////////
78     // C2 Weight File
79     const Int_t ktbins_temp = FourPionTask->GetNumKtBins();
80     const Int_t cbins_temp = FourPionTask->GetNumCentBins(); 
81     const Int_t ktbins = ktbins_temp;
82     const Int_t cbins = cbins_temp;
83
84     TH3F *weightHisto[ktbins][cbins];
85     for(Int_t i=0; i<ktbins; i++){
86       for(Int_t j=0; j<cbins; j++){
87         TString name = "Weight_Kt_";
88         name += i;
89         name += "_Ky_0_M_";
90         name += j;
91         name += "_ED_0";
92         
93         weightHisto[i][j] = (TH3F*)inputFileWeight->Get(name);
94       }
95     }
96     FourPionTask->SetWeightArrays( kTRUE, weightHisto );
97     //
98     //
99     inputFileEA = TFile::Open(StEAName,"OLD");
100     if (!inputFileEA){
101       cout << "Requested file:" << inputFileEA << " was not opened. ABORT." << endl;
102       return NULL;
103     }
104     TH3D *PbPbEA[2];
105     TH3D *pPbEA[2];
106     TH3D *ppEA[2];
107     PbPbEA[0] = (TH3D*)inputFileEA->Get("PbPbEA_c3");
108     pPbEA[0] = (TH3D*)inputFileEA->Get("pPbEA_c3");
109     ppEA[0] = (TH3D*)inputFileEA->Get("ppEA_c3");
110     //
111     PbPbEA[1] = (TH3D*)inputFileEA->Get("PbPbEA_C3");
112     pPbEA[1] = (TH3D*)inputFileEA->Get("pPbEA_C3");
113     ppEA[1] = (TH3D*)inputFileEA->Get("ppEA_C3");
114     //
115     FourPionTask->Setc3FitEAs( kTRUE, PbPbEA, pPbEA, ppEA );
116     ////////////////////////////////////////////////////
117   }// TabulatePairs check
118   
119   if(!MCcase && !TabulatePairs){
120     
121     inputFileMomRes = TFile::Open(StMomResName,"OLD");
122     if (!inputFileMomRes){
123       cout << "Requested file:" << inputFileMomRes << " was not opened. ABORT." << endl;
124       return NULL;
125     }
126     ////////////////////////////////////////////////////
127     // Momentum Resolution File
128     TH2D *momResHisto2DSC = 0;
129     TH2D *momResHisto2DMC = 0;
130     momResHisto2DSC = (TH2D*)inputFileMomRes->Get("MRC_C2_SC");
131     momResHisto2DMC = (TH2D*)inputFileMomRes->Get("MRC_C2_MC");
132     FourPionTask->SetMomResCorrections( kTRUE, momResHisto2DSC, momResHisto2DMC );
133     ////////////////////////////////////////////////////
134
135     // Muon corrections
136     inputFileMuon = TFile::Open(StMuonName,"OLD");
137     if (!inputFileMuon){
138       cout << "Requested file:" << inputFileMuon << " was not opened. ABORT." << endl;
139       return NULL;
140     }
141     TH2D *muonHisto2D = 0;
142     muonHisto2D = (TH2D*)inputFileMuon->Get("WeightmuonCorrection");
143     FourPionTask->SetMuonCorrections( kTRUE, muonHisto2D);
144
145   }// MCcase and TabulatePairs check
146   
147
148   ////////////////////////////////////////////////////
149   // FSI File
150   inputFileFSI = TFile::Open(StKName,"OLD");
151   if (!inputFileFSI){
152     cout << "Requested file:" << inputFileFSI << " was not opened. ABORT." << endl;
153     return NULL;
154   }  
155   TH1D *FSIss[13];
156   TH1D *FSIos[13];
157   for(Int_t index=0; index<13; index++) {
158     TString *nameSS=new TString("K2ss_");
159     *nameSS += index;
160     FSIss[index] = (TH1D*)inputFileFSI->Get(nameSS->Data());
161     TString *nameOS=new TString("K2os_");
162     *nameOS += index;
163     FSIos[index] = (TH1D*)inputFileFSI->Get(nameOS->Data());
164     //
165     FSIss[index]->SetDirectory(0);
166     FSIos[index]->SetDirectory(0);
167   }
168   //
169   FourPionTask->SetFSICorrelations( kTRUE, FSIss, FSIos );
170   ////////////////////////////////////////////////////
171   
172   
173   // Return the task pointer
174   return FourPionTask;
175 }