ROOT logo
/*************************************************************************
* Copyright(c) 1998-2008, 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.                  * 
**************************************************************************/

#include <stdlib.h>

#include "Riostream.h" //needed as include
#include "TChain.h"
#include "TTree.h"
#include "TProfile.h"
#include "TFile.h"
#include "TList.h"

class AliAnalysisTaskSE;
#include "AliAnalysisManager.h"
#include "AliFlowEventSimple.h"
#include "AliAnalysisTaskLYZEventPlane.h"
#include "AliFlowCommonHist.h"
#include "AliFlowCommonHistResults.h"
#include "AliFlowLYZEventPlane.h"
#include "AliFlowAnalysisWithLYZEventPlane.h"

// AliAnalysisTaskLYZEventPlane:
//
// analysis task for Lee Yang Zeros Event Plane
//
// Author: Naomi van der Kolk (kolk@nikhef.nl)

using std::cout;
using std::endl;
ClassImp(AliAnalysisTaskLYZEventPlane)

//________________________________________________________________________
AliAnalysisTaskLYZEventPlane::AliAnalysisTaskLYZEventPlane(const char *name) : 
  AliAnalysisTaskSE(name), 
  fEvent(NULL), 
  fLyzEp(NULL),
  fLyz(NULL),
  fListHistos(NULL),
  fSecondRunFile(NULL)
{
  // Constructor
  cout<<"AliAnalysisTaskLYZEventPlane::AliAnalysisTaskLYZEventPlane(const char *name)"<<endl;

  // Define input and output slots here
  // Input slot #0 works with an AliFlowEventSimple
  DefineInput(0, AliFlowEventSimple::Class());
  DefineInput(1, TList::Class());
  // Output slot #0 writes into a TList container
  DefineOutput(1, TList::Class());
  
}

//________________________________________________________________________
AliAnalysisTaskLYZEventPlane::AliAnalysisTaskLYZEventPlane() : 
  AliAnalysisTaskSE(),
  fEvent(NULL), 
  fLyzEp(NULL),
  fLyz(NULL),
  fListHistos(NULL),
  fSecondRunFile(NULL)
{
  // Constructor
  cout<<"AliAnalysisTaskLYZEventPlane::AliAnalysisTaskLYZEventPlane()"<<endl;
}


//________________________________________________________________________
AliAnalysisTaskLYZEventPlane::~AliAnalysisTaskLYZEventPlane() 
{
  //destructor

}

//________________________________________________________________________
void AliAnalysisTaskLYZEventPlane::UserCreateOutputObjects() 
{
  // Called once
  cout<<"AliAnalysisTaskLYZEventPlane::CreateOutputObjects()"<<endl;
  
  //lee yang zeros event plane
  fLyzEp = new AliFlowLYZEventPlane() ;
  //Analyser
  fLyz = new AliFlowAnalysisWithLYZEventPlane() ;
     
  // Get data from input slot
  TList* pSecondRunList = (TList*)GetInputData(1);
  if (pSecondRunList) {
    fLyzEp -> SetSecondRunList(pSecondRunList);
    fLyz -> SetSecondRunList(pSecondRunList);
  } else { cout<<"No Second run List!"<<endl; exit(0); }

  fLyzEp-> Init();
  fLyz-> Init();

  if (fLyz->GetHistList()) {
    fListHistos = fLyz->GetHistList();
    //fListHistos->Print();
  }
  else { cout<<"ERROR: Could not retrieve histogram list"<<endl;}

 PostData(1,fListHistos);

}

//________________________________________________________________________
void AliAnalysisTaskLYZEventPlane::UserExec(Option_t *) 
{
  // Main loop
  // Called for each event

  fEvent = dynamic_cast<AliFlowEventSimple*>(GetInputData(0));
  if (fEvent) {
    fLyz->Make(fEvent,fLyzEp);
  }
  else {
    cout << "Warning no input data!!!" << endl;}
    
  PostData(1,fListHistos);
  
}      

//________________________________________________________________________
void AliAnalysisTaskLYZEventPlane::Terminate(Option_t *) 
{
  // Called once at the end of the query
  AliFlowAnalysisWithLYZEventPlane* lyzTerm = new AliFlowAnalysisWithLYZEventPlane() ;
  fListHistos = (TList*)GetOutputData(1);
  //cout << "histogram list in Terminate" << endl;
   if (fListHistos) {
      lyzTerm -> GetOutputHistograms(fListHistos);
      lyzTerm -> Finish();
      PostData(1,fListHistos);
      //fListHistos->Print(); 
  } else { cout << "histogram list pointer is empty" << endl;}

  //cout<<".....finished LYZ EventPlane"<<endl;  
   delete lyzTerm;
}


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