ROOT logo
// $Id$
//
// Class to make PicoTracks from jet 4-vectors
//
// Author: M. Verweij

#include <TClonesArray.h>
#include <TRandom3.h>
#include "AliAODEvent.h"
#include "AliAODTrack.h"
#include "AliAnalysisManager.h"
#include "AliESDtrack.h"
#include "AliESDtrackCuts.h"
#include "AliLog.h"
#include "AliPicoTrack.h"
#include "AliVTrack.h"
#include "AliEmcalJet.h"
#include "AliEmcalPicoTrackFromJetMaker.h"

ClassImp(AliEmcalPicoTrackFromJetMaker)

//________________________________________________________________________
AliEmcalPicoTrackFromJetMaker::AliEmcalPicoTrackFromJetMaker() : 
  AliAnalysisTaskSE("AliEmcalPicoTrackFromJetMaker"),
  fTracksOutName("PicoTracksFromJets"),
  fJetsInName("tracks"),
  fJetsIn(0),
  fTracksOut(0)
{
  // Constructor.
}

//________________________________________________________________________
AliEmcalPicoTrackFromJetMaker::AliEmcalPicoTrackFromJetMaker(const char *name) : 
  AliAnalysisTaskSE(name),
  fTracksOutName("PicoTracksFromJets"),
  fJetsInName("tracks"),
  fJetsIn(0),
  fTracksOut(0)
{
  // Constructor.
}

//________________________________________________________________________
AliEmcalPicoTrackFromJetMaker::~AliEmcalPicoTrackFromJetMaker()
{
  // Destructor.
}

//________________________________________________________________________
void AliEmcalPicoTrackFromJetMaker::UserCreateOutputObjects()
{
  // Create my user objects.

  fTracksOut = new TClonesArray("AliPicoTrack");
  fTracksOut->SetName(fTracksOutName);
}

//________________________________________________________________________
void AliEmcalPicoTrackFromJetMaker::UserExec(Option_t *) 
{
  // Main loop, called for each event.

  AliAnalysisManager *am = AliAnalysisManager::GetAnalysisManager();
  if (!am) {
    AliError("Manager zero, returning");
    return;
  }

  // retrieve tracks from input.
  if (!fJetsIn) { 
    fJetsIn = dynamic_cast<TClonesArray*>(InputEvent()->FindListObject(fJetsInName));
    if (!fJetsIn) {
      AliError(Form("Could not retrieve jets %s!", fJetsInName.Data())); 
      return;
    }
    if (!fJetsIn->GetClass()->GetBaseClass("AliVParticle")) {
      AliError(Form("%s: Collection %s does not contain AliVParticle objects!", GetName(), fJetsInName.Data())); 
      return;
    }
  }

  // add tracks to event if not yet there
  fTracksOut->Delete();
  if (!(InputEvent()->FindListObject(fTracksOutName))) {
    InputEvent()->AddObject(fTracksOut);
  }

  // loop over tracks
  const Int_t Njets = fJetsIn->GetEntriesFast();
  for (Int_t iJets = 0, nacc = 0; iJets < Njets; ++iJets) {

    AliEmcalJet *jet = static_cast<AliEmcalJet*>(fJetsIn->At(iJets));
    if (!jet)
      continue;

    Bool_t isEmc = kFALSE;
    if (TMath::Abs(jet->Eta()) < 0.75 && 
	jet->Phi() > 70 * TMath::DegToRad() &&jet->Phi() < 190 * TMath::DegToRad())
      isEmc = kTRUE;

    AliPicoTrack *picotrack = new ((*fTracksOut)[nacc]) AliPicoTrack(jet->Pt(), 
								     jet->Eta(), 
								     jet->Phi(), 
								     1, 
								     1,
								     0,
								     jet->Eta(), 
								     jet->Phi(), 
								     jet->Pt(), 
								     isEmc,
								     jet->M());
    picotrack->SetTrackType(0);
    ++nacc;
  }
}
 AliEmcalPicoTrackFromJetMaker.cxx:1
 AliEmcalPicoTrackFromJetMaker.cxx:2
 AliEmcalPicoTrackFromJetMaker.cxx:3
 AliEmcalPicoTrackFromJetMaker.cxx:4
 AliEmcalPicoTrackFromJetMaker.cxx:5
 AliEmcalPicoTrackFromJetMaker.cxx:6
 AliEmcalPicoTrackFromJetMaker.cxx:7
 AliEmcalPicoTrackFromJetMaker.cxx:8
 AliEmcalPicoTrackFromJetMaker.cxx:9
 AliEmcalPicoTrackFromJetMaker.cxx:10
 AliEmcalPicoTrackFromJetMaker.cxx:11
 AliEmcalPicoTrackFromJetMaker.cxx:12
 AliEmcalPicoTrackFromJetMaker.cxx:13
 AliEmcalPicoTrackFromJetMaker.cxx:14
 AliEmcalPicoTrackFromJetMaker.cxx:15
 AliEmcalPicoTrackFromJetMaker.cxx:16
 AliEmcalPicoTrackFromJetMaker.cxx:17
 AliEmcalPicoTrackFromJetMaker.cxx:18
 AliEmcalPicoTrackFromJetMaker.cxx:19
 AliEmcalPicoTrackFromJetMaker.cxx:20
 AliEmcalPicoTrackFromJetMaker.cxx:21
 AliEmcalPicoTrackFromJetMaker.cxx:22
 AliEmcalPicoTrackFromJetMaker.cxx:23
 AliEmcalPicoTrackFromJetMaker.cxx:24
 AliEmcalPicoTrackFromJetMaker.cxx:25
 AliEmcalPicoTrackFromJetMaker.cxx:26
 AliEmcalPicoTrackFromJetMaker.cxx:27
 AliEmcalPicoTrackFromJetMaker.cxx:28
 AliEmcalPicoTrackFromJetMaker.cxx:29
 AliEmcalPicoTrackFromJetMaker.cxx:30
 AliEmcalPicoTrackFromJetMaker.cxx:31
 AliEmcalPicoTrackFromJetMaker.cxx:32
 AliEmcalPicoTrackFromJetMaker.cxx:33
 AliEmcalPicoTrackFromJetMaker.cxx:34
 AliEmcalPicoTrackFromJetMaker.cxx:35
 AliEmcalPicoTrackFromJetMaker.cxx:36
 AliEmcalPicoTrackFromJetMaker.cxx:37
 AliEmcalPicoTrackFromJetMaker.cxx:38
 AliEmcalPicoTrackFromJetMaker.cxx:39
 AliEmcalPicoTrackFromJetMaker.cxx:40
 AliEmcalPicoTrackFromJetMaker.cxx:41
 AliEmcalPicoTrackFromJetMaker.cxx:42
 AliEmcalPicoTrackFromJetMaker.cxx:43
 AliEmcalPicoTrackFromJetMaker.cxx:44
 AliEmcalPicoTrackFromJetMaker.cxx:45
 AliEmcalPicoTrackFromJetMaker.cxx:46
 AliEmcalPicoTrackFromJetMaker.cxx:47
 AliEmcalPicoTrackFromJetMaker.cxx:48
 AliEmcalPicoTrackFromJetMaker.cxx:49
 AliEmcalPicoTrackFromJetMaker.cxx:50
 AliEmcalPicoTrackFromJetMaker.cxx:51
 AliEmcalPicoTrackFromJetMaker.cxx:52
 AliEmcalPicoTrackFromJetMaker.cxx:53
 AliEmcalPicoTrackFromJetMaker.cxx:54
 AliEmcalPicoTrackFromJetMaker.cxx:55
 AliEmcalPicoTrackFromJetMaker.cxx:56
 AliEmcalPicoTrackFromJetMaker.cxx:57
 AliEmcalPicoTrackFromJetMaker.cxx:58
 AliEmcalPicoTrackFromJetMaker.cxx:59
 AliEmcalPicoTrackFromJetMaker.cxx:60
 AliEmcalPicoTrackFromJetMaker.cxx:61
 AliEmcalPicoTrackFromJetMaker.cxx:62
 AliEmcalPicoTrackFromJetMaker.cxx:63
 AliEmcalPicoTrackFromJetMaker.cxx:64
 AliEmcalPicoTrackFromJetMaker.cxx:65
 AliEmcalPicoTrackFromJetMaker.cxx:66
 AliEmcalPicoTrackFromJetMaker.cxx:67
 AliEmcalPicoTrackFromJetMaker.cxx:68
 AliEmcalPicoTrackFromJetMaker.cxx:69
 AliEmcalPicoTrackFromJetMaker.cxx:70
 AliEmcalPicoTrackFromJetMaker.cxx:71
 AliEmcalPicoTrackFromJetMaker.cxx:72
 AliEmcalPicoTrackFromJetMaker.cxx:73
 AliEmcalPicoTrackFromJetMaker.cxx:74
 AliEmcalPicoTrackFromJetMaker.cxx:75
 AliEmcalPicoTrackFromJetMaker.cxx:76
 AliEmcalPicoTrackFromJetMaker.cxx:77
 AliEmcalPicoTrackFromJetMaker.cxx:78
 AliEmcalPicoTrackFromJetMaker.cxx:79
 AliEmcalPicoTrackFromJetMaker.cxx:80
 AliEmcalPicoTrackFromJetMaker.cxx:81
 AliEmcalPicoTrackFromJetMaker.cxx:82
 AliEmcalPicoTrackFromJetMaker.cxx:83
 AliEmcalPicoTrackFromJetMaker.cxx:84
 AliEmcalPicoTrackFromJetMaker.cxx:85
 AliEmcalPicoTrackFromJetMaker.cxx:86
 AliEmcalPicoTrackFromJetMaker.cxx:87
 AliEmcalPicoTrackFromJetMaker.cxx:88
 AliEmcalPicoTrackFromJetMaker.cxx:89
 AliEmcalPicoTrackFromJetMaker.cxx:90
 AliEmcalPicoTrackFromJetMaker.cxx:91
 AliEmcalPicoTrackFromJetMaker.cxx:92
 AliEmcalPicoTrackFromJetMaker.cxx:93
 AliEmcalPicoTrackFromJetMaker.cxx:94
 AliEmcalPicoTrackFromJetMaker.cxx:95
 AliEmcalPicoTrackFromJetMaker.cxx:96
 AliEmcalPicoTrackFromJetMaker.cxx:97
 AliEmcalPicoTrackFromJetMaker.cxx:98
 AliEmcalPicoTrackFromJetMaker.cxx:99
 AliEmcalPicoTrackFromJetMaker.cxx:100
 AliEmcalPicoTrackFromJetMaker.cxx:101
 AliEmcalPicoTrackFromJetMaker.cxx:102
 AliEmcalPicoTrackFromJetMaker.cxx:103
 AliEmcalPicoTrackFromJetMaker.cxx:104
 AliEmcalPicoTrackFromJetMaker.cxx:105
 AliEmcalPicoTrackFromJetMaker.cxx:106
 AliEmcalPicoTrackFromJetMaker.cxx:107
 AliEmcalPicoTrackFromJetMaker.cxx:108
 AliEmcalPicoTrackFromJetMaker.cxx:109
 AliEmcalPicoTrackFromJetMaker.cxx:110
 AliEmcalPicoTrackFromJetMaker.cxx:111
 AliEmcalPicoTrackFromJetMaker.cxx:112
 AliEmcalPicoTrackFromJetMaker.cxx:113
 AliEmcalPicoTrackFromJetMaker.cxx:114
 AliEmcalPicoTrackFromJetMaker.cxx:115
 AliEmcalPicoTrackFromJetMaker.cxx:116