ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. 	*
 *																			*
 * Authors: Friederike Bock													*
 * Version 1.0																*
 *																			*
 * 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.					*
 **************************************************************************/

////////////////////////////////////////////////
//--------------------------------------------- 
// Class reconstructing primary electrons
//---------------------------------------------
////////////////////////////////////////////////


#include "AliPrimaryPionSelector.h"
#include "AliPrimaryPionCuts.h"
#include "AliAODv0.h"
#include "AliESDv0.h"
#include "AliAODEvent.h"
#include "AliESDEvent.h"
#include "TVector.h"
#include "AliESDtrack.h"
#include "AliAnalysisManager.h"
#include "AliInputEventHandler.h"
#include "TChain.h"
#include "AliStack.h"

class iostream;

using namespace std;



ClassImp(AliPrimaryPionSelector)

//________________________________________________________________________
AliPrimaryPionSelector::AliPrimaryPionSelector(const char *name) : AliAnalysisTaskSE(name),
    fPionCuts(0),
    fPosPionsIndex(),
    fNegPionsIndex(),
    fEventIsSelected(kFALSE)
{
    // Default constructor
    DefineInput(0, TChain::Class());
}

//________________________________________________________________________
AliPrimaryPionSelector::~AliPrimaryPionSelector()
{
    // default deconstructor

   
}
//________________________________________________________________________
void AliPrimaryPionSelector::Init()
{
    // Initialize function to be called once before analysis

    if(fPionCuts == 0){
    //  fPionCuts=AliConversionCuts::GetStandardCuts2010PbPb();
        AliError("No Cut Selection initialized");
    }

}

//________________________________________________________________________
void AliPrimaryPionSelector::UserCreateOutputObjects()
{
    // Create User Output Objects
}

//________________________________________________________________________
void AliPrimaryPionSelector::UserExec(Option_t *){
    // User Exec
	fEventIsSelected=ProcessEvent(fInputEvent,fMCEvent);
}

//________________________________________________________________________
Bool_t AliPrimaryPionSelector::ProcessEvent(AliVEvent *inputEvent,AliMCEvent *mcEvent)
{
	//Reset the index

	fPosPionsIndex.clear();
	fNegPionsIndex.clear();


	fInputEvent=inputEvent;
	fMCEvent=mcEvent;

	if(!fInputEvent){
		AliError("No Input event");
		return kFALSE;
	}

	if(!fPionCuts){AliError("No ConversionCuts");return kFALSE;}


	if(fInputEvent->IsA()==AliESDEvent::Class()){
		ProcessESDs();
	}

	//if(fInputEvent->IsA()==AliAODEvent::Class()){
	//GetAODConversionGammas();
	//}


	return kTRUE;
}

///________________________________________________________________________
Bool_t AliPrimaryPionSelector::ProcessESDs(){
	// Process ESD V0s for conversion photon reconstruction
	AliESDEvent *fESDEvent=dynamic_cast<AliESDEvent*>(fInputEvent);
	if(fESDEvent){
		for(Int_t currentTrackIndex=0;currentTrackIndex<fESDEvent->GetNumberOfTracks();currentTrackIndex++){
			AliESDtrack *fCurrentTrack = (AliESDtrack*)(fESDEvent->GetTrack(currentTrackIndex));
			if(!fCurrentTrack){
				printf("Requested Track does not exist");
				continue;
			}
			if (  fPionCuts->PionIsSelected( fCurrentTrack ) ) {
				if( fCurrentTrack->GetSign() > 0.0 ){
					fPosPionsIndex.push_back(currentTrackIndex);
				} else {
					fNegPionsIndex.push_back(currentTrackIndex);
				}
			}
		}
	}
	return kTRUE;
}


//________________________________________________________________________
void AliPrimaryPionSelector::Terminate(Option_t *)
{

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