ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

//______________________________________________________________________________
// Analysis task for high pt particle correlations 
// author: R.Diaz, J. Rak,  D.J. Kim
// ALICE Group University of Jyvaskyla 
// Finland 
// Fill the analysis containers for ESD or AOD
// Adapted for AliAnalysisTaskSE and AOD objects  
//////////////////////////////////////////////////////////////////////////////

#include "AliAnalysisTaskSE.h"
#include "AliAODHandler.h"
#include "AliAnalysisManager.h"
#include "AliLog.h"

#include "AliJDiHadronCorrTask.h" 
#include "AliJEventHeader.h"
#include "AliJRunHeader.h"
#include "AliJCORRANTask.h"
#include "AliJCard.h"

//______________________________________________________________________________
AliJDiHadronCorrTask::AliJDiHadronCorrTask() :   
    AliAnalysisTaskSE("AliJDiHadronCorrTaskTask"),
	fFilterTask(NULL),
	fFilterTaskName(""),
    fJCORRAN(0x0),
	fOutput(NULL)
{
  DefineOutput (1, TDirectory::Class());
}

//______________________________________________________________________________
AliJDiHadronCorrTask::AliJDiHadronCorrTask(const char *name, TString inputformat):
    AliAnalysisTaskSE(name), 
	fFilterTask(NULL),
	fFilterTaskName(""),
    fJCORRAN(0x0),
	fOutput(NULL)
{
  // Constructor
  AliInfo("---- AliJDiHadronCorrTask Constructor ----");

  JUNUSED(inputformat);
  DefineOutput (1, TDirectory::Class());
}

//____________________________________________________________________________
AliJDiHadronCorrTask::AliJDiHadronCorrTask(const AliJDiHadronCorrTask& ap) :
    AliAnalysisTaskSE(ap.GetName()), 
	fFilterTask(ap.fFilterTask),
	fFilterTaskName(ap.fFilterTaskName),
    fJCORRAN( ap.fJCORRAN ),
	fOutput( ap.fOutput )
{ 

  AliInfo("----DEBUG AliJDiHadronCorrTask COPY ----");

}

//_____________________________________________________________________________
AliJDiHadronCorrTask& AliJDiHadronCorrTask::operator = (const AliJDiHadronCorrTask& ap)
{
  // assignment operator

  AliInfo("----DEBUG AliJDiHadronCorrTask operator= ----");
  this->~AliJDiHadronCorrTask();
  new(this) AliJDiHadronCorrTask(ap);
  return *this;
}

//______________________________________________________________________________
AliJDiHadronCorrTask::~AliJDiHadronCorrTask()
{
  // destructor 

   delete fJCORRAN;

}

//________________________________________________________________________

void AliJDiHadronCorrTask::UserCreateOutputObjects()
{  
  //=== create the jcorran outputs objects
  if(fDebug > 1) printf("AliJDiHadronCorrTask::UserCreateOutPutData() \n");
  
  //=== Get AnalysisManager
  AliAnalysisManager *man = AliAnalysisManager::GetAnalysisManager();
  if(!man->GetOutputEventHandler()) {
    Fatal("UserCreateOutputObjects", "This task needs an AOD handler");
    return;
  }

   fFilterTask = (AliJCORRANTask*)(man->GetTask( fFilterTaskName ));

   OpenFile(1);
   fOutput = gDirectory;//->mkdir("JDiHadronCorr");
   fOutput->cd();

	// Order should be kept
	// TODO : better implementation
   //bool orignalTH1AdddirectoryStatus=TH1::AddDirectoryStatus();
   // TODO Why? 
   //TH1::AddDirectory(kTRUE);
   //if( !orignalTH1AdddirectoryStatus ) cout<<"DEBUG :: TH1::AddDirectory is turned on"<<endl;
   fJCORRAN->SetRunHeader( fFilterTask->GetJRunHeader() );//TODO
   fJCORRAN->UserCreateOutputObjects();
   fJCORRAN->SetHeaderList(fFilterTask->GetFilter()->GetHeaderList() );
   fJCORRAN->SetTrackList( fFilterTask->GetFilter()->GetTrackList()     );
   fJCORRAN->SetMCTrackList( fFilterTask->GetFilter()->GetMCTrackList()    );
   fJCORRAN->GetCard()->WriteCard(fOutput);

   PostData( 1, fOutput );
   //TH1::AddDirectory( orignalTH1AdddirectoryStatus );
   //cout<<"DEBYG :: TH1::AddDirectory get orignal Value = "<<( orignalTH1AdddirectoryStatus?"True":"False" )<<endl;

   cout << "Add(fAliRunHeader) in UserCreateObject() ======= " << endl;

}

//______________________________________________________________________________
void AliJDiHadronCorrTask::UserExec(Option_t* /*option*/) 
{

	// Processing of one event
	if(fDebug > 5) cout << "------- AliJDiHadronCorrTask Exec-------"<<endl;
	//if(!((Entry()-1)%100))  cout << Form(" Processing event # %lld",  Entry()) << endl; 
	if( fFilterTask->GetFilterEntry() != fEntry ) return;

	//cout << "AliJDiHadronCorrTask::UserExec fFilterTask->GetFilter()->GetEventSuccess() = " << fFilterTask->GetFilter()->GetEventSuccess() << endl;
	if( fFilterTask->GetFilter()->GetEventSuccess() ){
		fJCORRAN->UserExec();
		PostData(1, fOutput );
	}


	if(fDebug > 5) cout << "\t------- End UserExec "<<endl;
}

//______________________________________________________________________________
void AliJDiHadronCorrTask::Init()
{
	// Intialisation of parameters
	AliInfo("Doing initialization") ; 
	fJCORRAN->Init();
}

//______________________________________________________________________________
void AliJDiHadronCorrTask::Terminate(Option_t *)
{
	/*
	   fJCORRAN->Terminate();
	   OpenFile(1);
	   fOutput->cd();

	   cout<<"# Write Data "<<endl;
	//write Trigg ID and Assoc ID
	fOutput->Write(0,TObject::kOverwrite);
	PostData(1,fOutput);
	*/
	cout<<"AliJDiHadronCorrTask Analysis DONE !!"<<endl; 

}
 AliJDiHadronCorrTask.cxx:1
 AliJDiHadronCorrTask.cxx:2
 AliJDiHadronCorrTask.cxx:3
 AliJDiHadronCorrTask.cxx:4
 AliJDiHadronCorrTask.cxx:5
 AliJDiHadronCorrTask.cxx:6
 AliJDiHadronCorrTask.cxx:7
 AliJDiHadronCorrTask.cxx:8
 AliJDiHadronCorrTask.cxx:9
 AliJDiHadronCorrTask.cxx:10
 AliJDiHadronCorrTask.cxx:11
 AliJDiHadronCorrTask.cxx:12
 AliJDiHadronCorrTask.cxx:13
 AliJDiHadronCorrTask.cxx:14
 AliJDiHadronCorrTask.cxx:15
 AliJDiHadronCorrTask.cxx:16
 AliJDiHadronCorrTask.cxx:17
 AliJDiHadronCorrTask.cxx:18
 AliJDiHadronCorrTask.cxx:19
 AliJDiHadronCorrTask.cxx:20
 AliJDiHadronCorrTask.cxx:21
 AliJDiHadronCorrTask.cxx:22
 AliJDiHadronCorrTask.cxx:23
 AliJDiHadronCorrTask.cxx:24
 AliJDiHadronCorrTask.cxx:25
 AliJDiHadronCorrTask.cxx:26
 AliJDiHadronCorrTask.cxx:27
 AliJDiHadronCorrTask.cxx:28
 AliJDiHadronCorrTask.cxx:29
 AliJDiHadronCorrTask.cxx:30
 AliJDiHadronCorrTask.cxx:31
 AliJDiHadronCorrTask.cxx:32
 AliJDiHadronCorrTask.cxx:33
 AliJDiHadronCorrTask.cxx:34
 AliJDiHadronCorrTask.cxx:35
 AliJDiHadronCorrTask.cxx:36
 AliJDiHadronCorrTask.cxx:37
 AliJDiHadronCorrTask.cxx:38
 AliJDiHadronCorrTask.cxx:39
 AliJDiHadronCorrTask.cxx:40
 AliJDiHadronCorrTask.cxx:41
 AliJDiHadronCorrTask.cxx:42
 AliJDiHadronCorrTask.cxx:43
 AliJDiHadronCorrTask.cxx:44
 AliJDiHadronCorrTask.cxx:45
 AliJDiHadronCorrTask.cxx:46
 AliJDiHadronCorrTask.cxx:47
 AliJDiHadronCorrTask.cxx:48
 AliJDiHadronCorrTask.cxx:49
 AliJDiHadronCorrTask.cxx:50
 AliJDiHadronCorrTask.cxx:51
 AliJDiHadronCorrTask.cxx:52
 AliJDiHadronCorrTask.cxx:53
 AliJDiHadronCorrTask.cxx:54
 AliJDiHadronCorrTask.cxx:55
 AliJDiHadronCorrTask.cxx:56
 AliJDiHadronCorrTask.cxx:57
 AliJDiHadronCorrTask.cxx:58
 AliJDiHadronCorrTask.cxx:59
 AliJDiHadronCorrTask.cxx:60
 AliJDiHadronCorrTask.cxx:61
 AliJDiHadronCorrTask.cxx:62
 AliJDiHadronCorrTask.cxx:63
 AliJDiHadronCorrTask.cxx:64
 AliJDiHadronCorrTask.cxx:65
 AliJDiHadronCorrTask.cxx:66
 AliJDiHadronCorrTask.cxx:67
 AliJDiHadronCorrTask.cxx:68
 AliJDiHadronCorrTask.cxx:69
 AliJDiHadronCorrTask.cxx:70
 AliJDiHadronCorrTask.cxx:71
 AliJDiHadronCorrTask.cxx:72
 AliJDiHadronCorrTask.cxx:73
 AliJDiHadronCorrTask.cxx:74
 AliJDiHadronCorrTask.cxx:75
 AliJDiHadronCorrTask.cxx:76
 AliJDiHadronCorrTask.cxx:77
 AliJDiHadronCorrTask.cxx:78
 AliJDiHadronCorrTask.cxx:79
 AliJDiHadronCorrTask.cxx:80
 AliJDiHadronCorrTask.cxx:81
 AliJDiHadronCorrTask.cxx:82
 AliJDiHadronCorrTask.cxx:83
 AliJDiHadronCorrTask.cxx:84
 AliJDiHadronCorrTask.cxx:85
 AliJDiHadronCorrTask.cxx:86
 AliJDiHadronCorrTask.cxx:87
 AliJDiHadronCorrTask.cxx:88
 AliJDiHadronCorrTask.cxx:89
 AliJDiHadronCorrTask.cxx:90
 AliJDiHadronCorrTask.cxx:91
 AliJDiHadronCorrTask.cxx:92
 AliJDiHadronCorrTask.cxx:93
 AliJDiHadronCorrTask.cxx:94
 AliJDiHadronCorrTask.cxx:95
 AliJDiHadronCorrTask.cxx:96
 AliJDiHadronCorrTask.cxx:97
 AliJDiHadronCorrTask.cxx:98
 AliJDiHadronCorrTask.cxx:99
 AliJDiHadronCorrTask.cxx:100
 AliJDiHadronCorrTask.cxx:101
 AliJDiHadronCorrTask.cxx:102
 AliJDiHadronCorrTask.cxx:103
 AliJDiHadronCorrTask.cxx:104
 AliJDiHadronCorrTask.cxx:105
 AliJDiHadronCorrTask.cxx:106
 AliJDiHadronCorrTask.cxx:107
 AliJDiHadronCorrTask.cxx:108
 AliJDiHadronCorrTask.cxx:109
 AliJDiHadronCorrTask.cxx:110
 AliJDiHadronCorrTask.cxx:111
 AliJDiHadronCorrTask.cxx:112
 AliJDiHadronCorrTask.cxx:113
 AliJDiHadronCorrTask.cxx:114
 AliJDiHadronCorrTask.cxx:115
 AliJDiHadronCorrTask.cxx:116
 AliJDiHadronCorrTask.cxx:117
 AliJDiHadronCorrTask.cxx:118
 AliJDiHadronCorrTask.cxx:119
 AliJDiHadronCorrTask.cxx:120
 AliJDiHadronCorrTask.cxx:121
 AliJDiHadronCorrTask.cxx:122
 AliJDiHadronCorrTask.cxx:123
 AliJDiHadronCorrTask.cxx:124
 AliJDiHadronCorrTask.cxx:125
 AliJDiHadronCorrTask.cxx:126
 AliJDiHadronCorrTask.cxx:127
 AliJDiHadronCorrTask.cxx:128
 AliJDiHadronCorrTask.cxx:129
 AliJDiHadronCorrTask.cxx:130
 AliJDiHadronCorrTask.cxx:131
 AliJDiHadronCorrTask.cxx:132
 AliJDiHadronCorrTask.cxx:133
 AliJDiHadronCorrTask.cxx:134
 AliJDiHadronCorrTask.cxx:135
 AliJDiHadronCorrTask.cxx:136
 AliJDiHadronCorrTask.cxx:137
 AliJDiHadronCorrTask.cxx:138
 AliJDiHadronCorrTask.cxx:139
 AliJDiHadronCorrTask.cxx:140
 AliJDiHadronCorrTask.cxx:141
 AliJDiHadronCorrTask.cxx:142
 AliJDiHadronCorrTask.cxx:143
 AliJDiHadronCorrTask.cxx:144
 AliJDiHadronCorrTask.cxx:145
 AliJDiHadronCorrTask.cxx:146
 AliJDiHadronCorrTask.cxx:147
 AliJDiHadronCorrTask.cxx:148
 AliJDiHadronCorrTask.cxx:149
 AliJDiHadronCorrTask.cxx:150
 AliJDiHadronCorrTask.cxx:151
 AliJDiHadronCorrTask.cxx:152
 AliJDiHadronCorrTask.cxx:153
 AliJDiHadronCorrTask.cxx:154
 AliJDiHadronCorrTask.cxx:155
 AliJDiHadronCorrTask.cxx:156
 AliJDiHadronCorrTask.cxx:157
 AliJDiHadronCorrTask.cxx:158
 AliJDiHadronCorrTask.cxx:159
 AliJDiHadronCorrTask.cxx:160
 AliJDiHadronCorrTask.cxx:161
 AliJDiHadronCorrTask.cxx:162
 AliJDiHadronCorrTask.cxx:163
 AliJDiHadronCorrTask.cxx:164
 AliJDiHadronCorrTask.cxx:165
 AliJDiHadronCorrTask.cxx:166
 AliJDiHadronCorrTask.cxx:167
 AliJDiHadronCorrTask.cxx:168
 AliJDiHadronCorrTask.cxx:169
 AliJDiHadronCorrTask.cxx:170
 AliJDiHadronCorrTask.cxx:171
 AliJDiHadronCorrTask.cxx:172
 AliJDiHadronCorrTask.cxx:173
 AliJDiHadronCorrTask.cxx:174
 AliJDiHadronCorrTask.cxx:175
 AliJDiHadronCorrTask.cxx:176
 AliJDiHadronCorrTask.cxx:177
 AliJDiHadronCorrTask.cxx:178