#include "TROOT.h"
#include "TChain.h"
#include "TH1.h"
#include "TCanvas.h"
#include "TSystem.h"
#include "TFile.h"
#include "TInterpreter.h"
#include "AliAnalysisTaskSE.h"
#include "AliESDEvent.h"
#include "AliFemtoAnalysis.h"
#include "AliAnalysisTaskFemto.h"
#include "AliVHeader.h"
#include "AliGenEventHeader.h"
#include "AliGenHijingEventHeader.h"
#include "AliGenCocktailEventHeader.h"
ClassImp(AliAnalysisTaskFemto)
AliAnalysisTaskFemto::AliAnalysisTaskFemto(TString name, TString aConfigMacro, TString aConfigParams, Bool_t aVerbose):
AliAnalysisTaskSE(name),
fESD(0),
fESDpid(0),
fAOD(0),
fAODpidUtil(0),
fAODheader(0),
fStack(0),
fOutputList(0),
fReader(0x0),
fManager(0x0),
fAnalysisType(0),
fConfigMacro(aConfigMacro),
fConfigParams(aConfigParams),
fVerbose(aVerbose)
{
DefineOutput(0, TList::Class());
}
AliAnalysisTaskFemto::AliAnalysisTaskFemto(TString name, TString aConfigMacro="ConfigFemtoAnalysis.C", Bool_t aVerbose):
AliAnalysisTaskSE(name),
fESD(0),
fESDpid(0),
fAOD(0),
fAODpidUtil(0),
fAODheader(0),
fStack(0),
fOutputList(0),
fReader(0x0),
fManager(0x0),
fAnalysisType(0),
fConfigMacro(aConfigMacro),
fConfigParams(""),
fVerbose(aVerbose)
{
DefineOutput(0, TList::Class());
}
AliAnalysisTaskFemto::AliAnalysisTaskFemto(const AliAnalysisTaskFemto& aFemtoTask):
AliAnalysisTaskSE(aFemtoTask),
fESD(0),
fESDpid(0),
fAOD(0),
fAODpidUtil(0),
fAODheader(0),
fStack(0),
fOutputList(0),
fReader(0x0),
fManager(0x0),
fAnalysisType(0),
fConfigMacro(0),
fConfigParams(0),
fVerbose(kFALSE)
{
fESD = aFemtoTask.fESD;
fESDpid = aFemtoTask.fESDpid;
fAOD = aFemtoTask.fAOD;
fAODpidUtil = aFemtoTask.fAODpidUtil;
fAODheader = aFemtoTask.fAODheader;
fStack = aFemtoTask.fStack;
fOutputList = aFemtoTask.fOutputList;
fReader = aFemtoTask.fReader;
fManager = aFemtoTask.fManager;
fAnalysisType = aFemtoTask.fAnalysisType;
fConfigMacro = aFemtoTask.fConfigMacro;
fConfigParams = aFemtoTask.fConfigParams;
fVerbose = aFemtoTask.fVerbose;
}
AliAnalysisTaskFemto& AliAnalysisTaskFemto::operator=(const AliAnalysisTaskFemto& aFemtoTask){
if (this == &aFemtoTask)
return *this;
fESD = aFemtoTask.fESD;
fESDpid = aFemtoTask.fESDpid;
fAOD = aFemtoTask.fAOD;
fAODpidUtil = aFemtoTask.fAODpidUtil;
fAODheader = aFemtoTask.fAODheader;
fStack = aFemtoTask.fStack;
fOutputList = aFemtoTask.fOutputList;
fReader = aFemtoTask.fReader;
fManager = aFemtoTask.fManager;
fAnalysisType = aFemtoTask.fAnalysisType;
fConfigMacro = aFemtoTask.fConfigMacro;
fConfigParams = aFemtoTask.fConfigParams;
fVerbose = aFemtoTask.fVerbose;
return *this;
}
AliAnalysisTaskFemto::~AliAnalysisTaskFemto()
{
}
void AliAnalysisTaskFemto::ConnectInputData(Option_t *) {
AliInfo(Form(" ConnectInputData %s\n", GetName()));
fESD = 0;
fESDpid = 0;
fAOD = 0;
fAODpidUtil = 0;
fAODheader=0;
fAnalysisType = 0;
TTree* tree = dynamic_cast<TTree*> (GetInputData(0));
if (!tree) {
AliWarning("Could not read chain from input slot 0");
return;
}
AliFemtoEventReaderESDChain *femtoReader = dynamic_cast<AliFemtoEventReaderESDChain *> (fReader);
if ((dynamic_cast<AliFemtoEventReaderESDChain *> (fReader))) {
AliESDInputHandler *esdH = dynamic_cast<AliESDInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
if(esdH) {
if (fVerbose)
AliInfo("Selected ESD analysis");
fAnalysisType = 1;
fESD = esdH->GetEvent();
fESDpid = esdH->GetESDpid();
femtoReader->SetESDPid(fESDpid);
}
}
else if ((dynamic_cast<AliFemtoEventReaderKinematicsChain *> (fReader))) {
AliESDInputHandler *esdH = dynamic_cast<AliESDInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
if(esdH) {
if (fVerbose)
AliInfo("Selected ESD analysis");
fAnalysisType = 1;
fESD = esdH->GetEvent();
}
}
else if ((dynamic_cast<AliFemtoEventReaderKinematicsChainESD *> (fReader))) {
AliESDInputHandler *esdH = dynamic_cast<AliESDInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
if(esdH) {
if (fVerbose)
AliInfo("Selected ESD analysis");
fAnalysisType = 1;
fESD = esdH->GetEvent();
}
}
AliFemtoEventReaderESDChainKine *femtoReaderESDKine = dynamic_cast<AliFemtoEventReaderESDChainKine *> (fReader);
if ((dynamic_cast<AliFemtoEventReaderESDChainKine *> (fReader))) {
AliESDInputHandler *esdH = dynamic_cast<AliESDInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
if(esdH) {
if (fVerbose)
AliInfo("Selected ESD analysis");
fAnalysisType = 1;
fESD = esdH->GetEvent();
fESDpid = esdH->GetESDpid();
femtoReaderESDKine->SetESDPid(fESDpid);
}
}
if ((dynamic_cast<AliFemtoEventReaderKinematicsChain *> (fReader))) {
AliESDInputHandler *esdH = dynamic_cast<AliESDInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
if(esdH) {
if (fVerbose)
AliInfo("Selected ESD analysis");
fAnalysisType = 1;
fESD = esdH->GetEvent();
}
}
AliFemtoEventReaderAODChain *femtoReaderAOD = dynamic_cast<AliFemtoEventReaderAODChain *> (fReader);
if (dynamic_cast<AliFemtoEventReaderAODChain *> (fReader)) {
AliAODInputHandler *aodH = dynamic_cast<AliAODInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
if (!aodH) {
TObject *handler = AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler();
if (fVerbose)
AliInfo("Has output handler ");
if( handler && handler->InheritsFrom("AliAODHandler") ) {
if (fVerbose)
AliInfo("Selected AOD analysis");
fAOD = ((AliAODHandler*)handler)->GetAOD();
fAnalysisType = 2;
}
else {
if (fVerbose)
AliWarning("Selected AOD reader but no AOD handler found");
}
}
else {
if (fVerbose)
AliInfo("Selected AOD analysis");
fAnalysisType = 2;
fAOD = aodH->GetEvent();
fAODpidUtil = aodH->GetAODpidUtil();
if (fVerbose)
cout<<"AliAnalysisTaskFemto::AodpidUtil:"<<fAODpidUtil<<endl;
femtoReaderAOD->SetAODpidUtil(fAODpidUtil);
fAODheader = dynamic_cast<AliAODHeader*>(fAOD->GetHeader());
if(!fAODheader) AliFatal("Not a standard AOD");
femtoReaderAOD->SetAODheader(fAODheader);
}
}
if ((!fAOD) && (!fESD)) {
if (fVerbose)
AliWarning("Wrong analysis type: Only ESD and AOD types are allowed!");
}
}
void AliAnalysisTaskFemto::CreateOutputObjects() {
if (fVerbose)
AliInfo("Creating Femto Analysis objects\n");
gSystem->SetIncludePath("-I$ROOTSYS/include -I./STEERBase/ -I./ESD/ -I./AOD/ -I./ANALYSIS/ -I./ANALYSISalice/ -I./PWG2AOD/AOD -I./PWG2femtoscopy/FEMTOSCOPY/AliFemto -I./PWG2femtoscopyUser/FEMTOSCOPY/AliFemtoUser");
gROOT->LoadMacro(fConfigMacro);
if (!fConfigParams)
SetFemtoManager((AliFemtoManager *) gInterpreter->ProcessLine("ConfigFemtoAnalysis()"));
else
SetFemtoManager((AliFemtoManager *) gInterpreter->ProcessLine(Form("ConfigFemtoAnalysis(%s)", fConfigParams.Data())));
TList *tOL;
fOutputList = fManager->Analysis(0)->GetOutputList();
for (unsigned int ian = 1; ian<fManager->AnalysisCollection()->size(); ian++) {
tOL = fManager->Analysis(ian)->GetOutputList();
TIter nextListCf(tOL);
while (TObject *obj = nextListCf()) {
fOutputList->Add(obj);
}
delete tOL;
}
PostData(0, fOutputList);
}
void AliAnalysisTaskFemto::Exec(Option_t *) {
if(fOfflineTriggerMask){
Bool_t isSelected = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fOfflineTriggerMask);
if(!isSelected) {
if (fVerbose)
cout << "AliAnalysisTaskFemto: is not selected" << endl;
return;
}
}
if (fAnalysisType==1) {
if (!fESD) {
if (fVerbose)
AliWarning("fESD not available");
return;
}
AliMCEventHandler* mctruth = (AliMCEventHandler*)
((AliAnalysisManager::GetAnalysisManager())->GetMCtruthEventHandler());
AliGenHijingEventHeader *hdh = 0;
if(mctruth) {
fStack = mctruth->MCEvent()->Stack();
AliGenCocktailEventHeader *hd = dynamic_cast<AliGenCocktailEventHeader *> (mctruth->MCEvent()->GenEventHeader());
if (hd) {
TList *lhd = hd->GetHeaders();
for (int iterh=0; iterh<lhd->GetEntries(); iterh++)
{
hdh = dynamic_cast<AliGenHijingEventHeader *> (lhd->At(iterh));
}
}
}
AliESDInputHandler *esdH = dynamic_cast<AliESDInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
if (!esdH) {
if (fVerbose)
AliWarning("Could not get ESDInputHandler");
return;
}
else {
fESD = esdH->GetEvent();
fESDpid = esdH->GetESDpid();
}
if (fVerbose)
AliInfo(Form("Tracks in ESD: %d \n",fESD->GetNumberOfTracks()));
if (fESD->GetNumberOfTracks() >= 0) {
if (!fReader) {
if (fVerbose)
AliWarning("No ESD reader for ESD analysis !\n");
}
AliFemtoEventReaderESDChain* fesdc = dynamic_cast<AliFemtoEventReaderESDChain *> (fReader);
if (fesdc)
{
fesdc->SetESDSource(fESD);
fManager->ProcessEvent();
}
}
AliFemtoEventReaderKinematicsChain* fkinec = dynamic_cast<AliFemtoEventReaderKinematicsChain *> (fReader);
if (fkinec)
{
fkinec->SetStackSource(fStack);
fManager->ProcessEvent();
}
AliFemtoEventReaderESDChainKine* fesdck = dynamic_cast<AliFemtoEventReaderESDChainKine *> (fReader);
if (fesdck)
{
fesdck->SetESDSource(fESD);
fesdck->SetStackSource(fStack);
cout<<"Set Stack:"<<fStack<<endl;
fesdck->SetGenEventHeader(hdh);
fManager->ProcessEvent();
}
AliFemtoEventReaderKinematicsChainESD* fkcesd = dynamic_cast<AliFemtoEventReaderKinematicsChainESD *> (fReader);
if (fkcesd)
{
fkcesd->SetESDSource(fESD);
fkcesd->SetStackSource(fStack);
fkcesd->SetGenEventHeader(hdh);
fManager->ProcessEvent();
}
AliFemtoEventReaderStandard* fstd = dynamic_cast<AliFemtoEventReaderStandard *> (fReader);
if (fstd)
{
fstd->SetESDSource(fESD);
if (mctruth) {
fstd->SetStackSource(fStack);
fstd->SetGenEventHeader(hdh);
fstd->SetInputType(AliFemtoEventReaderStandard::kESDKine);
}
else
fstd->SetInputType(AliFemtoEventReaderStandard::kESD);
fManager->ProcessEvent();
}
PostData(0, fOutputList);
}
if (fAnalysisType==2) {
if (!fAOD) {
if (fVerbose)
AliWarning("fAOD not available");
return;
}
if (fVerbose)
AliInfo(Form("Tracks in AOD: %d \n",fAOD->GetNumberOfTracks()));
if (fAOD->GetNumberOfTracks() > 0) {
if (!fReader) {
if (fVerbose)
AliWarning("No AOD reader for AOD analysis! \n");
}
else {
AliFemtoEventReaderAODChain* faodc = dynamic_cast<AliFemtoEventReaderAODChain *> (fReader);
if (faodc) {
faodc->SetAODSource(fAOD);
fManager->ProcessEvent();
}
AliFemtoEventReaderStandard* fstd = dynamic_cast<AliFemtoEventReaderStandard *> (fReader);
if (fstd) {
fstd->SetAODSource(fAOD);
fstd->SetInputType(AliFemtoEventReaderStandard::kAOD);
fManager->ProcessEvent();
}
}
}
PostData(0, fOutputList);
}
}
void AliAnalysisTaskFemto::Terminate(Option_t *) {
if (fManager) {
fManager->Finish();
}
}
void AliAnalysisTaskFemto:: FinishTaskOutput() {
if (fManager) {
fManager->Finish();
}
}
void AliAnalysisTaskFemto::SetFemtoReaderESD(AliFemtoEventReaderESDChain *aReader)
{
if (fVerbose)
AliInfo("Selecting Femto reader for ESD\n");
fReader = aReader;
}
void AliAnalysisTaskFemto::SetFemtoReaderESDKine(AliFemtoEventReaderESDChainKine *aReader)
{
if (fVerbose)
AliInfo("Selecting Femto reader for ESD with Kinematics information\n");
fReader = aReader;
}
void AliAnalysisTaskFemto::SetFemtoReaderAOD(AliFemtoEventReaderAODChain *aReader)
{
if (fVerbose)
AliInfo("Selecting Femto reader for AOD\n");
fReader = aReader;
}
void AliAnalysisTaskFemto::SetFemtoReaderStandard(AliFemtoEventReaderStandard *aReader)
{
if (fVerbose)
AliInfo("Selecting Standard all-purpose Femto reader\n");
fReader = aReader;
}
void AliAnalysisTaskFemto::SetFemtoReaderKinematics(AliFemtoEventReaderKinematicsChain *aReader)
{
if (fVerbose)
printf("Selecting Femto reader for Kinematics (Monte Carlo) information\n");
fReader = aReader;
}
void AliAnalysisTaskFemto::SetFemtoReaderKinematicsESD(AliFemtoEventReaderKinematicsChainESD *aReader)
{
if (fVerbose)
printf("Selecting Femto reader for Kinematics (Monte Carlo) information + ESD\n");
fReader = aReader;
}
void AliAnalysisTaskFemto::SetFemtoManager(AliFemtoManager *aManager)
{
fManager = aManager;
if (fVerbose)
AliInfo(Form("Got reader %p\n", (void *) aManager->EventReader()));
AliFemtoEventReaderESDChain *tReaderESDChain = dynamic_cast<AliFemtoEventReaderESDChain *> (aManager->EventReader());
AliFemtoEventReaderESDChainKine *tReaderESDChainKine = dynamic_cast<AliFemtoEventReaderESDChainKine *> (aManager->EventReader());
AliFemtoEventReaderAODChain *tReaderAODChain = dynamic_cast<AliFemtoEventReaderAODChain *> (aManager->EventReader());
AliFemtoEventReaderStandard *tReaderStandard = dynamic_cast<AliFemtoEventReaderStandard *> (aManager->EventReader());
AliFemtoEventReaderKinematicsChain *tReaderKineChain = dynamic_cast<AliFemtoEventReaderKinematicsChain *> (aManager->EventReader());
AliFemtoEventReaderKinematicsChainESD *tReaderKineChainESD = dynamic_cast<AliFemtoEventReaderKinematicsChainESD *> (aManager->EventReader());
if ((!tReaderESDChain) && (!tReaderESDChainKine) && (!tReaderAODChain) && (!tReaderStandard) && (!tReaderKineChain) && (!tReaderKineChainESD)) {
if (fVerbose)
AliWarning("No AliFemto event reader created. Will not run femto analysis.\n");
return;
}
if (tReaderESDChain) SetFemtoReaderESD(tReaderESDChain);
if (tReaderESDChainKine) SetFemtoReaderESDKine(tReaderESDChainKine);
if (tReaderAODChain) SetFemtoReaderAOD(tReaderAODChain);
if (tReaderStandard) SetFemtoReaderStandard(tReaderStandard);
if (tReaderKineChain) SetFemtoReaderKinematics(tReaderKineChain);
if (tReaderKineChainESD) SetFemtoReaderKinematicsESD(tReaderKineChainESD);
}
AliAnalysisTaskFemto.cxx:1 AliAnalysisTaskFemto.cxx:2 AliAnalysisTaskFemto.cxx:3 AliAnalysisTaskFemto.cxx:4 AliAnalysisTaskFemto.cxx:5 AliAnalysisTaskFemto.cxx:6 AliAnalysisTaskFemto.cxx:7 AliAnalysisTaskFemto.cxx:8 AliAnalysisTaskFemto.cxx:9 AliAnalysisTaskFemto.cxx:10 AliAnalysisTaskFemto.cxx:11 AliAnalysisTaskFemto.cxx:12 AliAnalysisTaskFemto.cxx:13 AliAnalysisTaskFemto.cxx:14 AliAnalysisTaskFemto.cxx:15 AliAnalysisTaskFemto.cxx:16 AliAnalysisTaskFemto.cxx:17 AliAnalysisTaskFemto.cxx:18 AliAnalysisTaskFemto.cxx:19 AliAnalysisTaskFemto.cxx:20 AliAnalysisTaskFemto.cxx:21 AliAnalysisTaskFemto.cxx:22 AliAnalysisTaskFemto.cxx:23 AliAnalysisTaskFemto.cxx:24 AliAnalysisTaskFemto.cxx:25 AliAnalysisTaskFemto.cxx:26 AliAnalysisTaskFemto.cxx:27 AliAnalysisTaskFemto.cxx:28 AliAnalysisTaskFemto.cxx:29 AliAnalysisTaskFemto.cxx:30 AliAnalysisTaskFemto.cxx:31 AliAnalysisTaskFemto.cxx:32 AliAnalysisTaskFemto.cxx:33 AliAnalysisTaskFemto.cxx:34 AliAnalysisTaskFemto.cxx:35 AliAnalysisTaskFemto.cxx:36 AliAnalysisTaskFemto.cxx:37 AliAnalysisTaskFemto.cxx:38 AliAnalysisTaskFemto.cxx:39 AliAnalysisTaskFemto.cxx:40 AliAnalysisTaskFemto.cxx:41 AliAnalysisTaskFemto.cxx:42 AliAnalysisTaskFemto.cxx:43 AliAnalysisTaskFemto.cxx:44 AliAnalysisTaskFemto.cxx:45 AliAnalysisTaskFemto.cxx:46 AliAnalysisTaskFemto.cxx:47 AliAnalysisTaskFemto.cxx:48 AliAnalysisTaskFemto.cxx:49 AliAnalysisTaskFemto.cxx:50 AliAnalysisTaskFemto.cxx:51 AliAnalysisTaskFemto.cxx:52 AliAnalysisTaskFemto.cxx:53 AliAnalysisTaskFemto.cxx:54 AliAnalysisTaskFemto.cxx:55 AliAnalysisTaskFemto.cxx:56 AliAnalysisTaskFemto.cxx:57 AliAnalysisTaskFemto.cxx:58 AliAnalysisTaskFemto.cxx:59 AliAnalysisTaskFemto.cxx:60 AliAnalysisTaskFemto.cxx:61 AliAnalysisTaskFemto.cxx:62 AliAnalysisTaskFemto.cxx:63 AliAnalysisTaskFemto.cxx:64 AliAnalysisTaskFemto.cxx:65 AliAnalysisTaskFemto.cxx:66 AliAnalysisTaskFemto.cxx:67 AliAnalysisTaskFemto.cxx:68 AliAnalysisTaskFemto.cxx:69 AliAnalysisTaskFemto.cxx:70 AliAnalysisTaskFemto.cxx:71 AliAnalysisTaskFemto.cxx:72 AliAnalysisTaskFemto.cxx:73 AliAnalysisTaskFemto.cxx:74 AliAnalysisTaskFemto.cxx:75 AliAnalysisTaskFemto.cxx:76 AliAnalysisTaskFemto.cxx:77 AliAnalysisTaskFemto.cxx:78 AliAnalysisTaskFemto.cxx:79 AliAnalysisTaskFemto.cxx:80 AliAnalysisTaskFemto.cxx:81 AliAnalysisTaskFemto.cxx:82 AliAnalysisTaskFemto.cxx:83 AliAnalysisTaskFemto.cxx:84 AliAnalysisTaskFemto.cxx:85 AliAnalysisTaskFemto.cxx:86 AliAnalysisTaskFemto.cxx:87 AliAnalysisTaskFemto.cxx:88 AliAnalysisTaskFemto.cxx:89 AliAnalysisTaskFemto.cxx:90 AliAnalysisTaskFemto.cxx:91 AliAnalysisTaskFemto.cxx:92 AliAnalysisTaskFemto.cxx:93 AliAnalysisTaskFemto.cxx:94 AliAnalysisTaskFemto.cxx:95 AliAnalysisTaskFemto.cxx:96 AliAnalysisTaskFemto.cxx:97 AliAnalysisTaskFemto.cxx:98 AliAnalysisTaskFemto.cxx:99 AliAnalysisTaskFemto.cxx:100 AliAnalysisTaskFemto.cxx:101 AliAnalysisTaskFemto.cxx:102 AliAnalysisTaskFemto.cxx:103 AliAnalysisTaskFemto.cxx:104 AliAnalysisTaskFemto.cxx:105 AliAnalysisTaskFemto.cxx:106 AliAnalysisTaskFemto.cxx:107 AliAnalysisTaskFemto.cxx:108 AliAnalysisTaskFemto.cxx:109 AliAnalysisTaskFemto.cxx:110 AliAnalysisTaskFemto.cxx:111 AliAnalysisTaskFemto.cxx:112 AliAnalysisTaskFemto.cxx:113 AliAnalysisTaskFemto.cxx:114 AliAnalysisTaskFemto.cxx:115 AliAnalysisTaskFemto.cxx:116 AliAnalysisTaskFemto.cxx:117 AliAnalysisTaskFemto.cxx:118 AliAnalysisTaskFemto.cxx:119 AliAnalysisTaskFemto.cxx:120 AliAnalysisTaskFemto.cxx:121 AliAnalysisTaskFemto.cxx:122 AliAnalysisTaskFemto.cxx:123 AliAnalysisTaskFemto.cxx:124 AliAnalysisTaskFemto.cxx:125 AliAnalysisTaskFemto.cxx:126 AliAnalysisTaskFemto.cxx:127 AliAnalysisTaskFemto.cxx:128 AliAnalysisTaskFemto.cxx:129 AliAnalysisTaskFemto.cxx:130 AliAnalysisTaskFemto.cxx:131 AliAnalysisTaskFemto.cxx:132 AliAnalysisTaskFemto.cxx:133 AliAnalysisTaskFemto.cxx:134 AliAnalysisTaskFemto.cxx:135 AliAnalysisTaskFemto.cxx:136 AliAnalysisTaskFemto.cxx:137 AliAnalysisTaskFemto.cxx:138 AliAnalysisTaskFemto.cxx:139 AliAnalysisTaskFemto.cxx:140 AliAnalysisTaskFemto.cxx:141 AliAnalysisTaskFemto.cxx:142 AliAnalysisTaskFemto.cxx:143 AliAnalysisTaskFemto.cxx:144 AliAnalysisTaskFemto.cxx:145 AliAnalysisTaskFemto.cxx:146 AliAnalysisTaskFemto.cxx:147 AliAnalysisTaskFemto.cxx:148 AliAnalysisTaskFemto.cxx:149 AliAnalysisTaskFemto.cxx:150 AliAnalysisTaskFemto.cxx:151 AliAnalysisTaskFemto.cxx:152 AliAnalysisTaskFemto.cxx:153 AliAnalysisTaskFemto.cxx:154 AliAnalysisTaskFemto.cxx:155 AliAnalysisTaskFemto.cxx:156 AliAnalysisTaskFemto.cxx:157 AliAnalysisTaskFemto.cxx:158 AliAnalysisTaskFemto.cxx:159 AliAnalysisTaskFemto.cxx:160 AliAnalysisTaskFemto.cxx:161 AliAnalysisTaskFemto.cxx:162 AliAnalysisTaskFemto.cxx:163 AliAnalysisTaskFemto.cxx:164 AliAnalysisTaskFemto.cxx:165 AliAnalysisTaskFemto.cxx:166 AliAnalysisTaskFemto.cxx:167 AliAnalysisTaskFemto.cxx:168 AliAnalysisTaskFemto.cxx:169 AliAnalysisTaskFemto.cxx:170 AliAnalysisTaskFemto.cxx:171 AliAnalysisTaskFemto.cxx:172 AliAnalysisTaskFemto.cxx:173 AliAnalysisTaskFemto.cxx:174 AliAnalysisTaskFemto.cxx:175 AliAnalysisTaskFemto.cxx:176 AliAnalysisTaskFemto.cxx:177 AliAnalysisTaskFemto.cxx:178 AliAnalysisTaskFemto.cxx:179 AliAnalysisTaskFemto.cxx:180 AliAnalysisTaskFemto.cxx:181 AliAnalysisTaskFemto.cxx:182 AliAnalysisTaskFemto.cxx:183 AliAnalysisTaskFemto.cxx:184 AliAnalysisTaskFemto.cxx:185 AliAnalysisTaskFemto.cxx:186 AliAnalysisTaskFemto.cxx:187 AliAnalysisTaskFemto.cxx:188 AliAnalysisTaskFemto.cxx:189 AliAnalysisTaskFemto.cxx:190 AliAnalysisTaskFemto.cxx:191 AliAnalysisTaskFemto.cxx:192 AliAnalysisTaskFemto.cxx:193 AliAnalysisTaskFemto.cxx:194 AliAnalysisTaskFemto.cxx:195 AliAnalysisTaskFemto.cxx:196 AliAnalysisTaskFemto.cxx:197 AliAnalysisTaskFemto.cxx:198 AliAnalysisTaskFemto.cxx:199 AliAnalysisTaskFemto.cxx:200 AliAnalysisTaskFemto.cxx:201 AliAnalysisTaskFemto.cxx:202 AliAnalysisTaskFemto.cxx:203 AliAnalysisTaskFemto.cxx:204 AliAnalysisTaskFemto.cxx:205 AliAnalysisTaskFemto.cxx:206 AliAnalysisTaskFemto.cxx:207 AliAnalysisTaskFemto.cxx:208 AliAnalysisTaskFemto.cxx:209 AliAnalysisTaskFemto.cxx:210 AliAnalysisTaskFemto.cxx:211 AliAnalysisTaskFemto.cxx:212 AliAnalysisTaskFemto.cxx:213 AliAnalysisTaskFemto.cxx:214 AliAnalysisTaskFemto.cxx:215 AliAnalysisTaskFemto.cxx:216 AliAnalysisTaskFemto.cxx:217 AliAnalysisTaskFemto.cxx:218 AliAnalysisTaskFemto.cxx:219 AliAnalysisTaskFemto.cxx:220 AliAnalysisTaskFemto.cxx:221 AliAnalysisTaskFemto.cxx:222 AliAnalysisTaskFemto.cxx:223 AliAnalysisTaskFemto.cxx:224 AliAnalysisTaskFemto.cxx:225 AliAnalysisTaskFemto.cxx:226 AliAnalysisTaskFemto.cxx:227 AliAnalysisTaskFemto.cxx:228 AliAnalysisTaskFemto.cxx:229 AliAnalysisTaskFemto.cxx:230 AliAnalysisTaskFemto.cxx:231 AliAnalysisTaskFemto.cxx:232 AliAnalysisTaskFemto.cxx:233 AliAnalysisTaskFemto.cxx:234 AliAnalysisTaskFemto.cxx:235 AliAnalysisTaskFemto.cxx:236 AliAnalysisTaskFemto.cxx:237 AliAnalysisTaskFemto.cxx:238 AliAnalysisTaskFemto.cxx:239 AliAnalysisTaskFemto.cxx:240 AliAnalysisTaskFemto.cxx:241 AliAnalysisTaskFemto.cxx:242 AliAnalysisTaskFemto.cxx:243 AliAnalysisTaskFemto.cxx:244 AliAnalysisTaskFemto.cxx:245 AliAnalysisTaskFemto.cxx:246 AliAnalysisTaskFemto.cxx:247 AliAnalysisTaskFemto.cxx:248 AliAnalysisTaskFemto.cxx:249 AliAnalysisTaskFemto.cxx:250 AliAnalysisTaskFemto.cxx:251 AliAnalysisTaskFemto.cxx:252 AliAnalysisTaskFemto.cxx:253 AliAnalysisTaskFemto.cxx:254 AliAnalysisTaskFemto.cxx:255 AliAnalysisTaskFemto.cxx:256 AliAnalysisTaskFemto.cxx:257 AliAnalysisTaskFemto.cxx:258 AliAnalysisTaskFemto.cxx:259 AliAnalysisTaskFemto.cxx:260 AliAnalysisTaskFemto.cxx:261 AliAnalysisTaskFemto.cxx:262 AliAnalysisTaskFemto.cxx:263 AliAnalysisTaskFemto.cxx:264 AliAnalysisTaskFemto.cxx:265 AliAnalysisTaskFemto.cxx:266 AliAnalysisTaskFemto.cxx:267 AliAnalysisTaskFemto.cxx:268 AliAnalysisTaskFemto.cxx:269 AliAnalysisTaskFemto.cxx:270 AliAnalysisTaskFemto.cxx:271 AliAnalysisTaskFemto.cxx:272 AliAnalysisTaskFemto.cxx:273 AliAnalysisTaskFemto.cxx:274 AliAnalysisTaskFemto.cxx:275 AliAnalysisTaskFemto.cxx:276 AliAnalysisTaskFemto.cxx:277 AliAnalysisTaskFemto.cxx:278 AliAnalysisTaskFemto.cxx:279 AliAnalysisTaskFemto.cxx:280 AliAnalysisTaskFemto.cxx:281 AliAnalysisTaskFemto.cxx:282 AliAnalysisTaskFemto.cxx:283 AliAnalysisTaskFemto.cxx:284 AliAnalysisTaskFemto.cxx:285 AliAnalysisTaskFemto.cxx:286 AliAnalysisTaskFemto.cxx:287 AliAnalysisTaskFemto.cxx:288 AliAnalysisTaskFemto.cxx:289 AliAnalysisTaskFemto.cxx:290 AliAnalysisTaskFemto.cxx:291 AliAnalysisTaskFemto.cxx:292 AliAnalysisTaskFemto.cxx:293 AliAnalysisTaskFemto.cxx:294 AliAnalysisTaskFemto.cxx:295 AliAnalysisTaskFemto.cxx:296 AliAnalysisTaskFemto.cxx:297 AliAnalysisTaskFemto.cxx:298 AliAnalysisTaskFemto.cxx:299 AliAnalysisTaskFemto.cxx:300 AliAnalysisTaskFemto.cxx:301 AliAnalysisTaskFemto.cxx:302 AliAnalysisTaskFemto.cxx:303 AliAnalysisTaskFemto.cxx:304 AliAnalysisTaskFemto.cxx:305 AliAnalysisTaskFemto.cxx:306 AliAnalysisTaskFemto.cxx:307 AliAnalysisTaskFemto.cxx:308 AliAnalysisTaskFemto.cxx:309 AliAnalysisTaskFemto.cxx:310 AliAnalysisTaskFemto.cxx:311 AliAnalysisTaskFemto.cxx:312 AliAnalysisTaskFemto.cxx:313 AliAnalysisTaskFemto.cxx:314 AliAnalysisTaskFemto.cxx:315 AliAnalysisTaskFemto.cxx:316 AliAnalysisTaskFemto.cxx:317 AliAnalysisTaskFemto.cxx:318 AliAnalysisTaskFemto.cxx:319 AliAnalysisTaskFemto.cxx:320 AliAnalysisTaskFemto.cxx:321 AliAnalysisTaskFemto.cxx:322 AliAnalysisTaskFemto.cxx:323 AliAnalysisTaskFemto.cxx:324 AliAnalysisTaskFemto.cxx:325 AliAnalysisTaskFemto.cxx:326 AliAnalysisTaskFemto.cxx:327 AliAnalysisTaskFemto.cxx:328 AliAnalysisTaskFemto.cxx:329 AliAnalysisTaskFemto.cxx:330 AliAnalysisTaskFemto.cxx:331 AliAnalysisTaskFemto.cxx:332 AliAnalysisTaskFemto.cxx:333 AliAnalysisTaskFemto.cxx:334 AliAnalysisTaskFemto.cxx:335 AliAnalysisTaskFemto.cxx:336 AliAnalysisTaskFemto.cxx:337 AliAnalysisTaskFemto.cxx:338 AliAnalysisTaskFemto.cxx:339 AliAnalysisTaskFemto.cxx:340 AliAnalysisTaskFemto.cxx:341 AliAnalysisTaskFemto.cxx:342 AliAnalysisTaskFemto.cxx:343 AliAnalysisTaskFemto.cxx:344 AliAnalysisTaskFemto.cxx:345 AliAnalysisTaskFemto.cxx:346 AliAnalysisTaskFemto.cxx:347 AliAnalysisTaskFemto.cxx:348 AliAnalysisTaskFemto.cxx:349 AliAnalysisTaskFemto.cxx:350 AliAnalysisTaskFemto.cxx:351 AliAnalysisTaskFemto.cxx:352 AliAnalysisTaskFemto.cxx:353 AliAnalysisTaskFemto.cxx:354 AliAnalysisTaskFemto.cxx:355 AliAnalysisTaskFemto.cxx:356 AliAnalysisTaskFemto.cxx:357 AliAnalysisTaskFemto.cxx:358 AliAnalysisTaskFemto.cxx:359 AliAnalysisTaskFemto.cxx:360 AliAnalysisTaskFemto.cxx:361 AliAnalysisTaskFemto.cxx:362 AliAnalysisTaskFemto.cxx:363 AliAnalysisTaskFemto.cxx:364 AliAnalysisTaskFemto.cxx:365 AliAnalysisTaskFemto.cxx:366 AliAnalysisTaskFemto.cxx:367 AliAnalysisTaskFemto.cxx:368 AliAnalysisTaskFemto.cxx:369 AliAnalysisTaskFemto.cxx:370 AliAnalysisTaskFemto.cxx:371 AliAnalysisTaskFemto.cxx:372 AliAnalysisTaskFemto.cxx:373 AliAnalysisTaskFemto.cxx:374 AliAnalysisTaskFemto.cxx:375 AliAnalysisTaskFemto.cxx:376 AliAnalysisTaskFemto.cxx:377 AliAnalysisTaskFemto.cxx:378 AliAnalysisTaskFemto.cxx:379 AliAnalysisTaskFemto.cxx:380 AliAnalysisTaskFemto.cxx:381 AliAnalysisTaskFemto.cxx:382 AliAnalysisTaskFemto.cxx:383 AliAnalysisTaskFemto.cxx:384 AliAnalysisTaskFemto.cxx:385 AliAnalysisTaskFemto.cxx:386 AliAnalysisTaskFemto.cxx:387 AliAnalysisTaskFemto.cxx:388 AliAnalysisTaskFemto.cxx:389 AliAnalysisTaskFemto.cxx:390 AliAnalysisTaskFemto.cxx:391 AliAnalysisTaskFemto.cxx:392 AliAnalysisTaskFemto.cxx:393 AliAnalysisTaskFemto.cxx:394 AliAnalysisTaskFemto.cxx:395 AliAnalysisTaskFemto.cxx:396 AliAnalysisTaskFemto.cxx:397 AliAnalysisTaskFemto.cxx:398 AliAnalysisTaskFemto.cxx:399 AliAnalysisTaskFemto.cxx:400 AliAnalysisTaskFemto.cxx:401 AliAnalysisTaskFemto.cxx:402 AliAnalysisTaskFemto.cxx:403 AliAnalysisTaskFemto.cxx:404 AliAnalysisTaskFemto.cxx:405 AliAnalysisTaskFemto.cxx:406 AliAnalysisTaskFemto.cxx:407 AliAnalysisTaskFemto.cxx:408 AliAnalysisTaskFemto.cxx:409 AliAnalysisTaskFemto.cxx:410 AliAnalysisTaskFemto.cxx:411 AliAnalysisTaskFemto.cxx:412 AliAnalysisTaskFemto.cxx:413 AliAnalysisTaskFemto.cxx:414 AliAnalysisTaskFemto.cxx:415 AliAnalysisTaskFemto.cxx:416 AliAnalysisTaskFemto.cxx:417 AliAnalysisTaskFemto.cxx:418 AliAnalysisTaskFemto.cxx:419 AliAnalysisTaskFemto.cxx:420 AliAnalysisTaskFemto.cxx:421 AliAnalysisTaskFemto.cxx:422 AliAnalysisTaskFemto.cxx:423 AliAnalysisTaskFemto.cxx:424 AliAnalysisTaskFemto.cxx:425 AliAnalysisTaskFemto.cxx:426 AliAnalysisTaskFemto.cxx:427 AliAnalysisTaskFemto.cxx:428 AliAnalysisTaskFemto.cxx:429 AliAnalysisTaskFemto.cxx:430 AliAnalysisTaskFemto.cxx:431 AliAnalysisTaskFemto.cxx:432 AliAnalysisTaskFemto.cxx:433 AliAnalysisTaskFemto.cxx:434 AliAnalysisTaskFemto.cxx:435 AliAnalysisTaskFemto.cxx:436 AliAnalysisTaskFemto.cxx:437 AliAnalysisTaskFemto.cxx:438 AliAnalysisTaskFemto.cxx:439 AliAnalysisTaskFemto.cxx:440 AliAnalysisTaskFemto.cxx:441 AliAnalysisTaskFemto.cxx:442 AliAnalysisTaskFemto.cxx:443 AliAnalysisTaskFemto.cxx:444 AliAnalysisTaskFemto.cxx:445 AliAnalysisTaskFemto.cxx:446 AliAnalysisTaskFemto.cxx:447 AliAnalysisTaskFemto.cxx:448 AliAnalysisTaskFemto.cxx:449 AliAnalysisTaskFemto.cxx:450 AliAnalysisTaskFemto.cxx:451 AliAnalysisTaskFemto.cxx:452 AliAnalysisTaskFemto.cxx:453 AliAnalysisTaskFemto.cxx:454 AliAnalysisTaskFemto.cxx:455 AliAnalysisTaskFemto.cxx:456 AliAnalysisTaskFemto.cxx:457 AliAnalysisTaskFemto.cxx:458 AliAnalysisTaskFemto.cxx:459 AliAnalysisTaskFemto.cxx:460 AliAnalysisTaskFemto.cxx:461 AliAnalysisTaskFemto.cxx:462 AliAnalysisTaskFemto.cxx:463 AliAnalysisTaskFemto.cxx:464 AliAnalysisTaskFemto.cxx:465 AliAnalysisTaskFemto.cxx:466 AliAnalysisTaskFemto.cxx:467 AliAnalysisTaskFemto.cxx:468 AliAnalysisTaskFemto.cxx:469 AliAnalysisTaskFemto.cxx:470 AliAnalysisTaskFemto.cxx:471 AliAnalysisTaskFemto.cxx:472 AliAnalysisTaskFemto.cxx:473 AliAnalysisTaskFemto.cxx:474 AliAnalysisTaskFemto.cxx:475 AliAnalysisTaskFemto.cxx:476 AliAnalysisTaskFemto.cxx:477 AliAnalysisTaskFemto.cxx:478 AliAnalysisTaskFemto.cxx:479 AliAnalysisTaskFemto.cxx:480 AliAnalysisTaskFemto.cxx:481 AliAnalysisTaskFemto.cxx:482 AliAnalysisTaskFemto.cxx:483 AliAnalysisTaskFemto.cxx:484 AliAnalysisTaskFemto.cxx:485 AliAnalysisTaskFemto.cxx:486 AliAnalysisTaskFemto.cxx:487 AliAnalysisTaskFemto.cxx:488 AliAnalysisTaskFemto.cxx:489 AliAnalysisTaskFemto.cxx:490 AliAnalysisTaskFemto.cxx:491 AliAnalysisTaskFemto.cxx:492 AliAnalysisTaskFemto.cxx:493 AliAnalysisTaskFemto.cxx:494 AliAnalysisTaskFemto.cxx:495 AliAnalysisTaskFemto.cxx:496 AliAnalysisTaskFemto.cxx:497 AliAnalysisTaskFemto.cxx:498 AliAnalysisTaskFemto.cxx:499 AliAnalysisTaskFemto.cxx:500 AliAnalysisTaskFemto.cxx:501 AliAnalysisTaskFemto.cxx:502 AliAnalysisTaskFemto.cxx:503 AliAnalysisTaskFemto.cxx:504 AliAnalysisTaskFemto.cxx:505 AliAnalysisTaskFemto.cxx:506 AliAnalysisTaskFemto.cxx:507 AliAnalysisTaskFemto.cxx:508 AliAnalysisTaskFemto.cxx:509 AliAnalysisTaskFemto.cxx:510 AliAnalysisTaskFemto.cxx:511 AliAnalysisTaskFemto.cxx:512 AliAnalysisTaskFemto.cxx:513 AliAnalysisTaskFemto.cxx:514 AliAnalysisTaskFemto.cxx:515 AliAnalysisTaskFemto.cxx:516 AliAnalysisTaskFemto.cxx:517 AliAnalysisTaskFemto.cxx:518 AliAnalysisTaskFemto.cxx:519 AliAnalysisTaskFemto.cxx:520 AliAnalysisTaskFemto.cxx:521 AliAnalysisTaskFemto.cxx:522 AliAnalysisTaskFemto.cxx:523 AliAnalysisTaskFemto.cxx:524 AliAnalysisTaskFemto.cxx:525 AliAnalysisTaskFemto.cxx:526 AliAnalysisTaskFemto.cxx:527 AliAnalysisTaskFemto.cxx:528 AliAnalysisTaskFemto.cxx:529 AliAnalysisTaskFemto.cxx:530 AliAnalysisTaskFemto.cxx:531 AliAnalysisTaskFemto.cxx:532 AliAnalysisTaskFemto.cxx:533 AliAnalysisTaskFemto.cxx:534 AliAnalysisTaskFemto.cxx:535 AliAnalysisTaskFemto.cxx:536 AliAnalysisTaskFemto.cxx:537 AliAnalysisTaskFemto.cxx:538 AliAnalysisTaskFemto.cxx:539 AliAnalysisTaskFemto.cxx:540 AliAnalysisTaskFemto.cxx:541 AliAnalysisTaskFemto.cxx:542 AliAnalysisTaskFemto.cxx:543 AliAnalysisTaskFemto.cxx:544 AliAnalysisTaskFemto.cxx:545 AliAnalysisTaskFemto.cxx:546 AliAnalysisTaskFemto.cxx:547 AliAnalysisTaskFemto.cxx:548 AliAnalysisTaskFemto.cxx:549 AliAnalysisTaskFemto.cxx:550 AliAnalysisTaskFemto.cxx:551 AliAnalysisTaskFemto.cxx:552 AliAnalysisTaskFemto.cxx:553 AliAnalysisTaskFemto.cxx:554 AliAnalysisTaskFemto.cxx:555 AliAnalysisTaskFemto.cxx:556 AliAnalysisTaskFemto.cxx:557 AliAnalysisTaskFemto.cxx:558 AliAnalysisTaskFemto.cxx:559 AliAnalysisTaskFemto.cxx:560 AliAnalysisTaskFemto.cxx:561 AliAnalysisTaskFemto.cxx:562 AliAnalysisTaskFemto.cxx:563 AliAnalysisTaskFemto.cxx:564 AliAnalysisTaskFemto.cxx:565 AliAnalysisTaskFemto.cxx:566 AliAnalysisTaskFemto.cxx:567 AliAnalysisTaskFemto.cxx:568 AliAnalysisTaskFemto.cxx:569