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