]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/FEMTOSCOPY/macros/AddTaskFourPion.C
Include Reading of EAs
[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   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;
63   TFile *inputFileMuon = 0;
64   TFile *inputFileEA = 0;
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 );
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 );
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
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     ////////////////////////////////////////////////////
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
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   }  
145   TH1D *FSIss[12];
146   TH1D *FSIos[12];
147   for(Int_t index=0; index<12; index++) {
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 }