#include <TClonesArray.h>
#include "AliEMCalPtTaskTrackSelectionESD.h"
#include <memory>
#include "AliESDEvent.h"
#include "AliESDtrack.h"
#include "AliESDtrackCuts.h"
#include "AliLog.h"
#include "AliPicoTrack.h"
ClassImp(EMCalTriggerPtAnalysis::AliEMCalPtTaskTrackSelectionESD)
namespace EMCalTriggerPtAnalysis {
AliEMCalPtTaskTrackSelectionESD::AliEMCalPtTaskTrackSelectionESD():
AliEMCalPtTaskVTrackSelection(),
fTrackCuts(NULL)
{
}
AliEMCalPtTaskTrackSelectionESD::AliEMCalPtTaskTrackSelectionESD(AliESDtrackCuts* cuts):
AliEMCalPtTaskVTrackSelection(),
fTrackCuts(cuts)
{
}
AliEMCalPtTaskTrackSelectionESD::AliEMCalPtTaskTrackSelectionESD(
const AliEMCalPtTaskTrackSelectionESD& ref):
AliEMCalPtTaskVTrackSelection(ref),
fTrackCuts(NULL)
{
if(ref.fTrackCuts) fTrackCuts = new AliESDtrackCuts(*(ref.fTrackCuts));
}
AliEMCalPtTaskTrackSelectionESD& AliEMCalPtTaskTrackSelectionESD::operator=(
const AliEMCalPtTaskTrackSelectionESD& ref)
{
AliEMCalPtTaskVTrackSelection::operator=(ref);
if(&ref != this){
if(fTrackCuts) {
delete fTrackCuts;
fTrackCuts = NULL;
}
if(ref.fTrackCuts) fTrackCuts = new AliESDtrackCuts(*(ref.fTrackCuts));
}
return *this;
}
AliEMCalPtTaskTrackSelectionESD::~AliEMCalPtTaskTrackSelectionESD() {
if(fTrackCuts) delete fTrackCuts;
}
TObjArray* AliEMCalPtTaskTrackSelectionESD::GetAcceptedTracks(
const TClonesArray* const tracks) {
if(!fListOfTracks) fListOfTracks = new TObjArray;
else fListOfTracks->Clear();
if(!fTrackCuts){
AliError("Track cuts not provided");
return fListOfTracks;
}
TIter trackIter(tracks);
AliESDtrack *track(NULL);
AliPicoTrack *picoTrack(NULL);
TObject *containerObject(NULL);
while((containerObject = dynamic_cast<TObject *>(trackIter()))){
if((picoTrack = dynamic_cast<AliPicoTrack *>(containerObject)))
track = dynamic_cast<AliESDtrack *>(picoTrack->GetTrack());
else
track = dynamic_cast<AliESDtrack *>(containerObject);
if(fTrackCuts->AcceptTrack(track)) fListOfTracks->AddLast(track);
}
return fListOfTracks;
}
TObjArray* AliEMCalPtTaskTrackSelectionESD::GetAcceptedTracks(const AliVEvent* const event) {
if(!fListOfTracks) fListOfTracks = new TObjArray;
else fListOfTracks->Clear();
if(!fTrackCuts){
AliError("Track cuts not provided");
return fListOfTracks;
}
const AliESDEvent *esd = dynamic_cast<const AliESDEvent *>(event);
if(!esd){
AliError("Event not of type AliESDEvent");
return fListOfTracks;
}
std::auto_ptr<TObjArray> accepted(fTrackCuts->GetAcceptedTracks(esd));
TIter trackIter(accepted.get());
AliESDtrack *track(NULL);
while((track = dynamic_cast<AliESDtrack *>(trackIter()))){
fListOfTracks->AddLast(track);
}
return fListOfTracks;
}
bool AliEMCalPtTaskTrackSelectionESD::IsTrackAccepted(AliVTrack* const trk) {
AliESDtrack *esdt = dynamic_cast<AliESDtrack *>(trk);
if(!esdt){
AliPicoTrack *picoTrack = dynamic_cast<AliPicoTrack *>(trk);
if(picoTrack)
esdt = dynamic_cast<AliESDtrack*>(picoTrack->GetTrack());
else{
AliError("Neither Pico nor ESD track");
return kFALSE;
}
}
return fTrackCuts->AcceptTrack(esdt);
}
}
AliEMCalPtTaskTrackSelectionESD.cxx:1 AliEMCalPtTaskTrackSelectionESD.cxx:2 AliEMCalPtTaskTrackSelectionESD.cxx:3 AliEMCalPtTaskTrackSelectionESD.cxx:4 AliEMCalPtTaskTrackSelectionESD.cxx:5 AliEMCalPtTaskTrackSelectionESD.cxx:6 AliEMCalPtTaskTrackSelectionESD.cxx:7 AliEMCalPtTaskTrackSelectionESD.cxx:8 AliEMCalPtTaskTrackSelectionESD.cxx:9 AliEMCalPtTaskTrackSelectionESD.cxx:10 AliEMCalPtTaskTrackSelectionESD.cxx:11 AliEMCalPtTaskTrackSelectionESD.cxx:12 AliEMCalPtTaskTrackSelectionESD.cxx:13 AliEMCalPtTaskTrackSelectionESD.cxx:14 AliEMCalPtTaskTrackSelectionESD.cxx:15 AliEMCalPtTaskTrackSelectionESD.cxx:16 AliEMCalPtTaskTrackSelectionESD.cxx:17 AliEMCalPtTaskTrackSelectionESD.cxx:18 AliEMCalPtTaskTrackSelectionESD.cxx:19 AliEMCalPtTaskTrackSelectionESD.cxx:20 AliEMCalPtTaskTrackSelectionESD.cxx:21 AliEMCalPtTaskTrackSelectionESD.cxx:22 AliEMCalPtTaskTrackSelectionESD.cxx:23 AliEMCalPtTaskTrackSelectionESD.cxx:24 AliEMCalPtTaskTrackSelectionESD.cxx:25 AliEMCalPtTaskTrackSelectionESD.cxx:26 AliEMCalPtTaskTrackSelectionESD.cxx:27 AliEMCalPtTaskTrackSelectionESD.cxx:28 AliEMCalPtTaskTrackSelectionESD.cxx:29 AliEMCalPtTaskTrackSelectionESD.cxx:30 AliEMCalPtTaskTrackSelectionESD.cxx:31 AliEMCalPtTaskTrackSelectionESD.cxx:32 AliEMCalPtTaskTrackSelectionESD.cxx:33 AliEMCalPtTaskTrackSelectionESD.cxx:34 AliEMCalPtTaskTrackSelectionESD.cxx:35 AliEMCalPtTaskTrackSelectionESD.cxx:36 AliEMCalPtTaskTrackSelectionESD.cxx:37 AliEMCalPtTaskTrackSelectionESD.cxx:38 AliEMCalPtTaskTrackSelectionESD.cxx:39 AliEMCalPtTaskTrackSelectionESD.cxx:40 AliEMCalPtTaskTrackSelectionESD.cxx:41 AliEMCalPtTaskTrackSelectionESD.cxx:42 AliEMCalPtTaskTrackSelectionESD.cxx:43 AliEMCalPtTaskTrackSelectionESD.cxx:44 AliEMCalPtTaskTrackSelectionESD.cxx:45 AliEMCalPtTaskTrackSelectionESD.cxx:46 AliEMCalPtTaskTrackSelectionESD.cxx:47 AliEMCalPtTaskTrackSelectionESD.cxx:48 AliEMCalPtTaskTrackSelectionESD.cxx:49 AliEMCalPtTaskTrackSelectionESD.cxx:50 AliEMCalPtTaskTrackSelectionESD.cxx:51 AliEMCalPtTaskTrackSelectionESD.cxx:52 AliEMCalPtTaskTrackSelectionESD.cxx:53 AliEMCalPtTaskTrackSelectionESD.cxx:54 AliEMCalPtTaskTrackSelectionESD.cxx:55 AliEMCalPtTaskTrackSelectionESD.cxx:56 AliEMCalPtTaskTrackSelectionESD.cxx:57 AliEMCalPtTaskTrackSelectionESD.cxx:58 AliEMCalPtTaskTrackSelectionESD.cxx:59 AliEMCalPtTaskTrackSelectionESD.cxx:60 AliEMCalPtTaskTrackSelectionESD.cxx:61 AliEMCalPtTaskTrackSelectionESD.cxx:62 AliEMCalPtTaskTrackSelectionESD.cxx:63 AliEMCalPtTaskTrackSelectionESD.cxx:64 AliEMCalPtTaskTrackSelectionESD.cxx:65 AliEMCalPtTaskTrackSelectionESD.cxx:66 AliEMCalPtTaskTrackSelectionESD.cxx:67 AliEMCalPtTaskTrackSelectionESD.cxx:68 AliEMCalPtTaskTrackSelectionESD.cxx:69 AliEMCalPtTaskTrackSelectionESD.cxx:70 AliEMCalPtTaskTrackSelectionESD.cxx:71 AliEMCalPtTaskTrackSelectionESD.cxx:72 AliEMCalPtTaskTrackSelectionESD.cxx:73 AliEMCalPtTaskTrackSelectionESD.cxx:74 AliEMCalPtTaskTrackSelectionESD.cxx:75 AliEMCalPtTaskTrackSelectionESD.cxx:76 AliEMCalPtTaskTrackSelectionESD.cxx:77 AliEMCalPtTaskTrackSelectionESD.cxx:78 AliEMCalPtTaskTrackSelectionESD.cxx:79 AliEMCalPtTaskTrackSelectionESD.cxx:80 AliEMCalPtTaskTrackSelectionESD.cxx:81 AliEMCalPtTaskTrackSelectionESD.cxx:82 AliEMCalPtTaskTrackSelectionESD.cxx:83 AliEMCalPtTaskTrackSelectionESD.cxx:84 AliEMCalPtTaskTrackSelectionESD.cxx:85 AliEMCalPtTaskTrackSelectionESD.cxx:86 AliEMCalPtTaskTrackSelectionESD.cxx:87 AliEMCalPtTaskTrackSelectionESD.cxx:88 AliEMCalPtTaskTrackSelectionESD.cxx:89 AliEMCalPtTaskTrackSelectionESD.cxx:90 AliEMCalPtTaskTrackSelectionESD.cxx:91 AliEMCalPtTaskTrackSelectionESD.cxx:92 AliEMCalPtTaskTrackSelectionESD.cxx:93 AliEMCalPtTaskTrackSelectionESD.cxx:94 AliEMCalPtTaskTrackSelectionESD.cxx:95 AliEMCalPtTaskTrackSelectionESD.cxx:96 AliEMCalPtTaskTrackSelectionESD.cxx:97 AliEMCalPtTaskTrackSelectionESD.cxx:98 AliEMCalPtTaskTrackSelectionESD.cxx:99 AliEMCalPtTaskTrackSelectionESD.cxx:100 AliEMCalPtTaskTrackSelectionESD.cxx:101 AliEMCalPtTaskTrackSelectionESD.cxx:102 AliEMCalPtTaskTrackSelectionESD.cxx:103 AliEMCalPtTaskTrackSelectionESD.cxx:104 AliEMCalPtTaskTrackSelectionESD.cxx:105 AliEMCalPtTaskTrackSelectionESD.cxx:106 AliEMCalPtTaskTrackSelectionESD.cxx:107 AliEMCalPtTaskTrackSelectionESD.cxx:108 AliEMCalPtTaskTrackSelectionESD.cxx:109 AliEMCalPtTaskTrackSelectionESD.cxx:110 AliEMCalPtTaskTrackSelectionESD.cxx:111 AliEMCalPtTaskTrackSelectionESD.cxx:112 AliEMCalPtTaskTrackSelectionESD.cxx:113 AliEMCalPtTaskTrackSelectionESD.cxx:114 AliEMCalPtTaskTrackSelectionESD.cxx:115 AliEMCalPtTaskTrackSelectionESD.cxx:116 AliEMCalPtTaskTrackSelectionESD.cxx:117 AliEMCalPtTaskTrackSelectionESD.cxx:118 AliEMCalPtTaskTrackSelectionESD.cxx:119 AliEMCalPtTaskTrackSelectionESD.cxx:120 AliEMCalPtTaskTrackSelectionESD.cxx:121 AliEMCalPtTaskTrackSelectionESD.cxx:122 AliEMCalPtTaskTrackSelectionESD.cxx:123 AliEMCalPtTaskTrackSelectionESD.cxx:124 AliEMCalPtTaskTrackSelectionESD.cxx:125 AliEMCalPtTaskTrackSelectionESD.cxx:126 AliEMCalPtTaskTrackSelectionESD.cxx:127 AliEMCalPtTaskTrackSelectionESD.cxx:128 AliEMCalPtTaskTrackSelectionESD.cxx:129 AliEMCalPtTaskTrackSelectionESD.cxx:130 AliEMCalPtTaskTrackSelectionESD.cxx:131 AliEMCalPtTaskTrackSelectionESD.cxx:132 AliEMCalPtTaskTrackSelectionESD.cxx:133 AliEMCalPtTaskTrackSelectionESD.cxx:134 AliEMCalPtTaskTrackSelectionESD.cxx:135 AliEMCalPtTaskTrackSelectionESD.cxx:136 AliEMCalPtTaskTrackSelectionESD.cxx:137 AliEMCalPtTaskTrackSelectionESD.cxx:138 AliEMCalPtTaskTrackSelectionESD.cxx:139 AliEMCalPtTaskTrackSelectionESD.cxx:140 AliEMCalPtTaskTrackSelectionESD.cxx:141 AliEMCalPtTaskTrackSelectionESD.cxx:142 AliEMCalPtTaskTrackSelectionESD.cxx:143 AliEMCalPtTaskTrackSelectionESD.cxx:144 AliEMCalPtTaskTrackSelectionESD.cxx:145 AliEMCalPtTaskTrackSelectionESD.cxx:146 AliEMCalPtTaskTrackSelectionESD.cxx:147 AliEMCalPtTaskTrackSelectionESD.cxx:148 AliEMCalPtTaskTrackSelectionESD.cxx:149 AliEMCalPtTaskTrackSelectionESD.cxx:150 AliEMCalPtTaskTrackSelectionESD.cxx:151 AliEMCalPtTaskTrackSelectionESD.cxx:152 AliEMCalPtTaskTrackSelectionESD.cxx:153 AliEMCalPtTaskTrackSelectionESD.cxx:154 AliEMCalPtTaskTrackSelectionESD.cxx:155 AliEMCalPtTaskTrackSelectionESD.cxx:156 AliEMCalPtTaskTrackSelectionESD.cxx:157 AliEMCalPtTaskTrackSelectionESD.cxx:158 AliEMCalPtTaskTrackSelectionESD.cxx:159 AliEMCalPtTaskTrackSelectionESD.cxx:160 AliEMCalPtTaskTrackSelectionESD.cxx:161 AliEMCalPtTaskTrackSelectionESD.cxx:162 AliEMCalPtTaskTrackSelectionESD.cxx:163 AliEMCalPtTaskTrackSelectionESD.cxx:164 AliEMCalPtTaskTrackSelectionESD.cxx:165 AliEMCalPtTaskTrackSelectionESD.cxx:166 AliEMCalPtTaskTrackSelectionESD.cxx:167 AliEMCalPtTaskTrackSelectionESD.cxx:168 AliEMCalPtTaskTrackSelectionESD.cxx:169 AliEMCalPtTaskTrackSelectionESD.cxx:170 AliEMCalPtTaskTrackSelectionESD.cxx:171 AliEMCalPtTaskTrackSelectionESD.cxx:172 AliEMCalPtTaskTrackSelectionESD.cxx:173 AliEMCalPtTaskTrackSelectionESD.cxx:174 AliEMCalPtTaskTrackSelectionESD.cxx:175 AliEMCalPtTaskTrackSelectionESD.cxx:176 AliEMCalPtTaskTrackSelectionESD.cxx:177