]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/Correlations/JCORRAN/AliJEfficiencyTask.cxx
flat friends update
[u/mrichter/AliRoot.git] / PWGCF / Correlations / JCORRAN / AliJEfficiencyTask.cxx
CommitLineData
66be7134 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//______________________________________________________________________________
36AliJEfficiencyTask::AliJEfficiencyTask() :
37 AliAnalysisTaskSE("JEfficiencyTask"),
38 fFilterTask(NULL),
39 fFilterTaskName(""),
40 fEfficiencyScanner(0x0),
41 fEffHistDir(0x0)
42{
43 DefineOutput (1, TDirectory::Class());
44}
45
46//______________________________________________________________________________
47AliJEfficiencyTask::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//____________________________________________________________________________
63AliJEfficiencyTask::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//_____________________________________________________________________________
76AliJEfficiencyTask& 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//______________________________________________________________________________
87AliJEfficiencyTask::~AliJEfficiencyTask()
88{
89 // destructor
90
91 delete fEfficiencyScanner;
92
93}
94
95//________________________________________________________________________
96
97void 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");
117 fEffHistDir->cd();
118 fEfficiencyScanner->UserCreateOutputObjects();
119 PostData( 1, fEffHistDir );
120
121 cout << "Add(fAliRunHeader) in UserCreateObject() ======= " << endl;
122
123}
124
125//______________________________________________________________________________
126void 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//______________________________________________________________________________
144void AliJEfficiencyTask::Init()
145{
146 // Intialisation of parameters
147 AliInfo("Doing initialization") ;
148 fEfficiencyScanner->Init();
149}
150
151//______________________________________________________________________________
152void AliJEfficiencyTask::Terminate(Option_t *)
153{
154
155 fEfficiencyScanner->Terminate();
156 OpenFile(1);
157 fEffHistDir->Write();
158 cout<<"JEfficiency Analysis DONE !!"<<endl;
159
160}