]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/Correlations/JCORRAN/AliJEfficiencyTask.cxx
Fixing compilation issues after merging
[u/mrichter/AliRoot.git] / PWGCF / Correlations / JCORRAN / AliJEfficiencyTask.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 //______________________________________________________________________________
17 // Analysis task for high pt particle correlations 
18 // author: R.Diaz, J. Rak,  D.J. Kim
19 // ALICE Group University of Jyvaskyla 
20 // Finland 
21 // Fill the analysis containers for ESD or AOD
22 // Adapted for AliAnalysisTaskSE and AOD objects  
23 //////////////////////////////////////////////////////////////////////////////
24
25 #include "AliAnalysisTaskSE.h"
26 #include "AliAODHandler.h"
27 #include "AliAnalysisManager.h"
28 #include "AliLog.h"
29
30 #include "AliJEfficiencyTask.h" 
31 #include "AliJEventHeader.h"
32 #include "AliJRunHeader.h"
33 #include "AliJCORRANTask.h"
34
35 //______________________________________________________________________________
36 AliJEfficiencyTask::AliJEfficiencyTask() :   
37     AliAnalysisTaskSE("JEfficiencyTask"),
38         fFilterTask(NULL),
39         fFilterTaskName(""),
40     fEfficiencyScanner(0x0),
41     fEffHistDir(0x0)
42 {
43   DefineOutput (1, TDirectory::Class());
44 }
45
46 //______________________________________________________________________________
47 AliJEfficiencyTask::AliJEfficiencyTask(const char *name, TString inputformat):
48     AliAnalysisTaskSE(name), 
49         fFilterTask(NULL),
50         fFilterTaskName(""),
51     fEfficiencyScanner(0x0),
52     fEffHistDir(0x0)
53 {
54   // Constructor
55   AliInfo("---- AliJEfficiencyTask Constructor ----");
56
57   JUNUSED(inputformat);
58   DefineOutput (1, TDirectory::Class());
59   fEfficiencyScanner = new AliJEfficiencyScanner( Form("%sEffScanner",name ));
60 }
61
62 //____________________________________________________________________________
63 AliJEfficiencyTask::AliJEfficiencyTask(const AliJEfficiencyTask& ap) :
64     AliAnalysisTaskSE(ap.GetName()), 
65         fFilterTask(ap.fFilterTask),
66         fFilterTaskName(ap.fFilterTaskName),
67     fEfficiencyScanner( ap.fEfficiencyScanner ),
68     fEffHistDir( ap.fEffHistDir )
69
70
71   AliInfo("----DEBUG AliJEfficiencyTask COPY ----");
72
73 }
74
75 //_____________________________________________________________________________
76 AliJEfficiencyTask& AliJEfficiencyTask::operator = (const AliJEfficiencyTask& ap)
77 {
78   // assignment operator
79
80   AliInfo("----DEBUG AliJEfficiencyTask operator= ----");
81   this->~AliJEfficiencyTask();
82   new(this) AliJEfficiencyTask(ap);
83   return *this;
84 }
85
86 //______________________________________________________________________________
87 AliJEfficiencyTask::~AliJEfficiencyTask()
88 {
89   // destructor 
90
91    delete fEfficiencyScanner;
92
93 }
94
95 //________________________________________________________________________
96
97 void AliJEfficiencyTask::UserCreateOutputObjects()
98 {  
99   //=== create the jcorran outputs objects
100   if(fDebug > 1) printf("AliJEfficiencyTask::UserCreateOutPutData() \n");
101   
102   //=== Get AnalysisManager
103   AliAnalysisManager *man = AliAnalysisManager::GetAnalysisManager();
104   if(!man->GetOutputEventHandler()) {
105     Fatal("UserCreateOutputObjects", "This task needs an AOD handler");
106     return;
107   }
108
109    fFilterTask = (AliJCORRANTask*)(man->GetTask( fFilterTaskName ));
110
111    OpenFile(1);
112
113    fEfficiencyScanner->SetJRunHeader( fFilterTask->GetJRunHeader() );//TODO
114    fEfficiencyScanner->SetJTrackList( fFilterTask->GetFilter()->GetTrackList()     );
115    fEfficiencyScanner->SetJMCTrackList( fFilterTask->GetFilter()->GetMCTrackList()    );
116    fEffHistDir = gDirectory;//->mkdir("EffHist"); // no need
117    fEffHistDir->cd();
118    fEfficiencyScanner->UserCreateOutputObjects();
119    PostData( 1, fEffHistDir );
120
121    cout << "Add(fAliRunHeader) in UserCreateObject() ======= " << endl;
122
123 }
124
125 //______________________________________________________________________________
126 void AliJEfficiencyTask::UserExec(Option_t* /*option*/) 
127 {
128
129         // Processing of one event
130         if(fDebug > 5) cout << "------- AliJEfficiencyTask Exec-------"<<endl;
131         if(!((Entry()-1)%100))  AliInfo(Form(" Processing event # %lld",  Entry())); 
132
133         if( fFilterTask->GetFilter()->GetEventSuccess() ){
134                 fEfficiencyScanner->SetJEventHeader( (AliJEventHeader*) fFilterTask->GetFilter()->GetHeaderList()->At(0) );
135                 fEfficiencyScanner->UserExec("");
136                 PostData(1, fEffHistDir );
137         }
138
139
140         if(fDebug > 5) cout << "\t------- End UserExec "<<endl;
141 }
142
143 //______________________________________________________________________________
144 void AliJEfficiencyTask::Init()
145 {
146         // Intialisation of parameters
147         AliInfo("Doing initialization") ; 
148         fEfficiencyScanner->Init();
149 }
150
151 //______________________________________________________________________________
152 void AliJEfficiencyTask::Terminate(Option_t *)
153 {
154
155         //fEfficiencyScanner->Terminate();
156         //OpenFile(1);
157         //fEffHistDir->Write();
158         cout<<"JEfficiency Analysis DONE !!"<<endl; 
159
160 }