#include "AliEmcalTrackPropagatorTask.h"
#include <TClonesArray.h>
#include "AliAODEvent.h"
#include "AliAnalysisManager.h"
#include "AliEMCALRecoUtils.h"
#include "AliESDEvent.h"
ClassImp(AliEmcalTrackPropagatorTask)
AliEmcalTrackPropagatorTask::AliEmcalTrackPropagatorTask() :
AliAnalysisTaskSE("AliEmcalTrackPropagatorTask"),
fTracksInName(),
fTracksOutName(),
fDist(440),
fOnlyIfNotSet(kTRUE),
fTracksIn(0),
fTracksOut(0)
{
}
AliEmcalTrackPropagatorTask::AliEmcalTrackPropagatorTask(const char *name) :
AliAnalysisTaskSE("AliEmcalTrackPropagatorTask"),
fTracksInName(),
fTracksOutName(),
fDist(440),
fOnlyIfNotSet(kTRUE),
fTracksIn(0),
fTracksOut(0)
{
if (!name)
return;
SetName(name);
fBranchNames = "ESD:AliESDHeader.,Tracks";
}
AliEmcalTrackPropagatorTask::~AliEmcalTrackPropagatorTask()
{
}
void AliEmcalTrackPropagatorTask::UserCreateOutputObjects()
{
}
void AliEmcalTrackPropagatorTask::UserExec(Option_t *)
{
AliESDEvent *esdev = dynamic_cast<AliESDEvent*>(InputEvent());
AliAODEvent *aodev = 0;
if (!esdev) {
aodev = dynamic_cast<AliAODEvent*>(InputEvent());
if (!aodev) {
AliError("Task needs AOD or ESD event, returning");
return;
}
}
if (fTracksInName.Length()==0) {
if (esdev) {
fTracksInName = "Tracks";
} else {
fTracksInName = "tracks";
}
}
AliAnalysisManager *am = AliAnalysisManager::GetAnalysisManager();
if (!am) {
AliError("Manager zero, returning");
return;
}
if (fTracksInName == "Tracks")
am->LoadBranch("Tracks");
else if (fTracksInName == "tracks")
am->LoadBranch("tracks");
if (!fTracksIn) {
fTracksIn = dynamic_cast<TClonesArray*>((InputEvent()->FindListObject(fTracksInName)));
if (!fTracksIn) {
AliError(Form("Could not get tracks %s, returning", fTracksInName.Data()));
return;
}
}
if ((fTracksOutName.Length()>0) && !fTracksOut) {
if ((InputEvent()->FindListObject(fTracksOutName))) {
AliError(Form("Could not add tracks %s to event, returning", fTracksOutName.Data()));
return;
}
if (esdev)
fTracksOut = new TClonesArray("AliESDtrack");
else
fTracksOut = new TClonesArray("AliAODTrack");
fTracksOut->SetName(fTracksOutName);
InputEvent()->AddObject(fTracksOut);
}
const Int_t ntr = fTracksIn->GetEntries();
for (Int_t i=0; i<ntr; ++i) {
AliVTrack *inTrack = dynamic_cast<AliVTrack*>(fTracksIn->At(i));
if (!inTrack)
continue;
if (inTrack->IsExtrapolatedToEMCAL() && fOnlyIfNotSet)
continue;
AliVTrack *outTrack = inTrack;
if (fTracksOut) {
if (esdev)
outTrack = new ((*fTracksOut)[i]) AliESDtrack(*((AliESDtrack*)inTrack));
else
outTrack = new ((*fTracksOut)[i]) AliAODTrack(*((AliAODTrack*)inTrack));
}
AliEMCALRecoUtils::ExtrapolateTrackToEMCalSurface(outTrack,fDist);
}
}
AliEmcalTrackPropagatorTask.cxx:1 AliEmcalTrackPropagatorTask.cxx:2 AliEmcalTrackPropagatorTask.cxx:3 AliEmcalTrackPropagatorTask.cxx:4 AliEmcalTrackPropagatorTask.cxx:5 AliEmcalTrackPropagatorTask.cxx:6 AliEmcalTrackPropagatorTask.cxx:7 AliEmcalTrackPropagatorTask.cxx:8 AliEmcalTrackPropagatorTask.cxx:9 AliEmcalTrackPropagatorTask.cxx:10 AliEmcalTrackPropagatorTask.cxx:11 AliEmcalTrackPropagatorTask.cxx:12 AliEmcalTrackPropagatorTask.cxx:13 AliEmcalTrackPropagatorTask.cxx:14 AliEmcalTrackPropagatorTask.cxx:15 AliEmcalTrackPropagatorTask.cxx:16 AliEmcalTrackPropagatorTask.cxx:17 AliEmcalTrackPropagatorTask.cxx:18 AliEmcalTrackPropagatorTask.cxx:19 AliEmcalTrackPropagatorTask.cxx:20 AliEmcalTrackPropagatorTask.cxx:21 AliEmcalTrackPropagatorTask.cxx:22 AliEmcalTrackPropagatorTask.cxx:23 AliEmcalTrackPropagatorTask.cxx:24 AliEmcalTrackPropagatorTask.cxx:25 AliEmcalTrackPropagatorTask.cxx:26 AliEmcalTrackPropagatorTask.cxx:27 AliEmcalTrackPropagatorTask.cxx:28 AliEmcalTrackPropagatorTask.cxx:29 AliEmcalTrackPropagatorTask.cxx:30 AliEmcalTrackPropagatorTask.cxx:31 AliEmcalTrackPropagatorTask.cxx:32 AliEmcalTrackPropagatorTask.cxx:33 AliEmcalTrackPropagatorTask.cxx:34 AliEmcalTrackPropagatorTask.cxx:35 AliEmcalTrackPropagatorTask.cxx:36 AliEmcalTrackPropagatorTask.cxx:37 AliEmcalTrackPropagatorTask.cxx:38 AliEmcalTrackPropagatorTask.cxx:39 AliEmcalTrackPropagatorTask.cxx:40 AliEmcalTrackPropagatorTask.cxx:41 AliEmcalTrackPropagatorTask.cxx:42 AliEmcalTrackPropagatorTask.cxx:43 AliEmcalTrackPropagatorTask.cxx:44 AliEmcalTrackPropagatorTask.cxx:45 AliEmcalTrackPropagatorTask.cxx:46 AliEmcalTrackPropagatorTask.cxx:47 AliEmcalTrackPropagatorTask.cxx:48 AliEmcalTrackPropagatorTask.cxx:49 AliEmcalTrackPropagatorTask.cxx:50 AliEmcalTrackPropagatorTask.cxx:51 AliEmcalTrackPropagatorTask.cxx:52 AliEmcalTrackPropagatorTask.cxx:53 AliEmcalTrackPropagatorTask.cxx:54 AliEmcalTrackPropagatorTask.cxx:55 AliEmcalTrackPropagatorTask.cxx:56 AliEmcalTrackPropagatorTask.cxx:57 AliEmcalTrackPropagatorTask.cxx:58 AliEmcalTrackPropagatorTask.cxx:59 AliEmcalTrackPropagatorTask.cxx:60 AliEmcalTrackPropagatorTask.cxx:61 AliEmcalTrackPropagatorTask.cxx:62 AliEmcalTrackPropagatorTask.cxx:63 AliEmcalTrackPropagatorTask.cxx:64 AliEmcalTrackPropagatorTask.cxx:65 AliEmcalTrackPropagatorTask.cxx:66 AliEmcalTrackPropagatorTask.cxx:67 AliEmcalTrackPropagatorTask.cxx:68 AliEmcalTrackPropagatorTask.cxx:69 AliEmcalTrackPropagatorTask.cxx:70 AliEmcalTrackPropagatorTask.cxx:71 AliEmcalTrackPropagatorTask.cxx:72 AliEmcalTrackPropagatorTask.cxx:73 AliEmcalTrackPropagatorTask.cxx:74 AliEmcalTrackPropagatorTask.cxx:75 AliEmcalTrackPropagatorTask.cxx:76 AliEmcalTrackPropagatorTask.cxx:77 AliEmcalTrackPropagatorTask.cxx:78 AliEmcalTrackPropagatorTask.cxx:79 AliEmcalTrackPropagatorTask.cxx:80 AliEmcalTrackPropagatorTask.cxx:81 AliEmcalTrackPropagatorTask.cxx:82 AliEmcalTrackPropagatorTask.cxx:83 AliEmcalTrackPropagatorTask.cxx:84 AliEmcalTrackPropagatorTask.cxx:85 AliEmcalTrackPropagatorTask.cxx:86 AliEmcalTrackPropagatorTask.cxx:87 AliEmcalTrackPropagatorTask.cxx:88 AliEmcalTrackPropagatorTask.cxx:89 AliEmcalTrackPropagatorTask.cxx:90 AliEmcalTrackPropagatorTask.cxx:91 AliEmcalTrackPropagatorTask.cxx:92 AliEmcalTrackPropagatorTask.cxx:93 AliEmcalTrackPropagatorTask.cxx:94 AliEmcalTrackPropagatorTask.cxx:95 AliEmcalTrackPropagatorTask.cxx:96 AliEmcalTrackPropagatorTask.cxx:97 AliEmcalTrackPropagatorTask.cxx:98 AliEmcalTrackPropagatorTask.cxx:99 AliEmcalTrackPropagatorTask.cxx:100 AliEmcalTrackPropagatorTask.cxx:101 AliEmcalTrackPropagatorTask.cxx:102 AliEmcalTrackPropagatorTask.cxx:103 AliEmcalTrackPropagatorTask.cxx:104 AliEmcalTrackPropagatorTask.cxx:105 AliEmcalTrackPropagatorTask.cxx:106 AliEmcalTrackPropagatorTask.cxx:107 AliEmcalTrackPropagatorTask.cxx:108 AliEmcalTrackPropagatorTask.cxx:109 AliEmcalTrackPropagatorTask.cxx:110 AliEmcalTrackPropagatorTask.cxx:111 AliEmcalTrackPropagatorTask.cxx:112 AliEmcalTrackPropagatorTask.cxx:113 AliEmcalTrackPropagatorTask.cxx:114 AliEmcalTrackPropagatorTask.cxx:115 AliEmcalTrackPropagatorTask.cxx:116 AliEmcalTrackPropagatorTask.cxx:117 AliEmcalTrackPropagatorTask.cxx:118 AliEmcalTrackPropagatorTask.cxx:119 AliEmcalTrackPropagatorTask.cxx:120 AliEmcalTrackPropagatorTask.cxx:121 AliEmcalTrackPropagatorTask.cxx:122 AliEmcalTrackPropagatorTask.cxx:123 AliEmcalTrackPropagatorTask.cxx:124 AliEmcalTrackPropagatorTask.cxx:125 AliEmcalTrackPropagatorTask.cxx:126 AliEmcalTrackPropagatorTask.cxx:127 AliEmcalTrackPropagatorTask.cxx:128 AliEmcalTrackPropagatorTask.cxx:129 AliEmcalTrackPropagatorTask.cxx:130 AliEmcalTrackPropagatorTask.cxx:131