]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/correlationHF/macros/AddTaskDStarCorrelations.C
b657814e98f74c3f08708c4c9c91e2aa60b6af95
[u/mrichter/AliRoot.git] / PWGHF / correlationHF / macros / AddTaskDStarCorrelations.C
1  //DEFINITION OF A FEW CONSTANTS
2 //----------------------------------------------------
3
4 /* $Id$ */
5
6 AliAnalysisTaskDStarCorrelations *AddTaskDStarCorrelations(Int_t theMCon =5, Int_t mixing=4, Int_t trackselect =1)
7 {
8
9   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
10   if (!mgr) {
11     ::Error("AliAnalysisTaskDStarCorrelations", "No analysis manager to connect to.");
12     return NULL;
13   } 
14
15   TFile* filecuts=new TFile("DStartoKpipiCuts_corr.root");
16   if(!filecuts->IsOpen()){
17     cout<<"Input file not found: exit"<<endl;
18     return;
19   }  
20           TFile* filecuts2=new TFile("AssocPartCuts.root");
21           if(!filecuts2->IsOpen()){
22                   cout<<"Input file2 not found: exit"<<endl;
23                   return;
24   }
25
26   AliRDHFCutsDStartoKpipi* RDHFDStartoKpipi=new AliRDHFCutsDStartoKpipi();
27   RDHFDStartoKpipi = (AliRDHFCutsDStartoKpipi*)filecuts->Get("DStartoKpipiCuts");
28   RDHFDStartoKpipi->SetName("DStartoKpipiCuts");
29         
30         
31         AliHFAssociatedTrackCuts* corrCuts=new AliHFAssociatedTrackCuts();
32         corrCuts = (AliHFAssociatedTrackCuts*)filecuts2->Get("AssociatedCuts");
33         corrCuts->SetName("AssociatedCuts");
34         corrCuts->PrintAll();
35
36   // mm let's see if everything is ok
37   if(!RDHFDStartoKpipi){
38     cout<<"Specific AliRDHFCuts not found"<<endl;
39     return;
40   } 
41
42   //CREATE THE TASK
43   printf("CREATE TASK \n");
44   // create the task
45   AliAnalysisTaskDStarCorrelations *task = new AliAnalysisTaskDStarCorrelations("AliAnalysisTaskDStarCorrelations",RDHFDStartoKpipi,corrCuts);
46         
47         // Setters
48
49         task->SetMonteCarlo(theMCon);
50         task->SetUseMixing(mixing);
51         task->SetCorrelator(trackselect) ;
52         //task->SetDebugLevel(0);
53         
54
55         if(trackselect == 1) Info("AliAnalysisTaskDStarCorrelations","Correlating D* with charged hadrons \n");
56         else if(trackselect == 2) Info("AliAnalysisTaskDStarCorrelations","Correlating D* with charged kaons \n");
57         else if(trackselect == 3) Info("AliAnalysisTaskDStarCorrelations","Correlating D* with reconstructed K0s \n");
58         else Fatal("AliAnalysisTaskDStarCorrelations","Nothing to correlate with!");
59         if(mixing) Info ("AliAnalysisTaskDStarCorrelations","Event Mixing Analysis\n");
60         if(!mixing) Info ("AliAnalysisTaskDStarCorrelations","Single Event Analysis \n");
61
62   // Create and connect containers for input/output
63         //TString dcavalue = " ";
64         if(!theMCon) TString contname = "Data";
65         if(theMCon) TString contname = "MonteCarlo";
66         if(trackselect ==1) TString particle = "Hadron";
67         if(trackselect ==2) TString particle = "Kaon";
68         if(trackselect ==3) TString particle = "KZero";
69         
70         TString cutname = "cuts" ;
71         TString cutname2 = "hadroncuts" ;
72    TString outputfile = AliAnalysisManager::GetCommonFileName();
73         TString counter = "NormCounter";
74    outputfile += ":PWGHF_D2H_";
75         if(!mixing) {
76                 outputfile += "SE";
77                 contname += "SE";
78                 cutname += "SE";
79                 cutname2 += "SE";
80                 counter+= "SE";
81         }
82         if(mixing){
83                 outputfile += "ME";
84                 contname += "ME";
85                 cutname += "ME";
86                 cutname2 += "ME";
87                 counter+= "ME";
88         }
89         outputfile += "Dphi_DStar";
90         outputfile += particle;
91         cutname += particle;
92         cutname2 += particle;
93         contname += particle;
94         counter+= particle;
95
96         
97         //cout << "Contname = " << contname << endl;
98   mgr->AddTask(task);
99   // ------ input data ------
100   AliAnalysisDataContainer *cinput0  = mgr->GetCommonInputContainer();
101   
102   // ----- output data -----
103   
104   // output TH1I for event counting
105   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname, TList::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
106   AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(cutname,AliRDHFCutsDStartoKpipi::Class(),AliAnalysisManager::kOutputContainer, outputfile.Data()); //cuts
107   AliAnalysisDataContainer *coutputDstarNorm = mgr->CreateContainer(counter,AliNormalizationCounter::Class(),AliAnalysisManager::kOutputContainer, outputfile.Data());
108   AliAnalysisDataContainer *coutput4 = mgr->CreateContainer(cutname2,AliHFAssociatedTrackCuts::Class(),AliAnalysisManager::kOutputContainer, outputfile.Data()); //cuts
109   
110   mgr->ConnectInput(task,0,mgr->GetCommonInputContainer());
111   mgr->ConnectOutput(task,1,coutput1);
112   mgr->ConnectOutput(task,2,coutput2);
113   mgr->ConnectOutput(task,3,coutputDstarNorm);
114   mgr->ConnectOutput(task,4,coutput4);
115
116   return task ;
117
118 }
119