#include "AliCaloTrackAODReader.h"
#include "AliAODInputHandler.h"
#include "AliMultiEventInputHandler.h"
#include "AliAnalysisManager.h"
#include "AliMixedEvent.h"
#include "AliAODEvent.h"
#include "AliLog.h"
ClassImp(AliCaloTrackAODReader)
AliCaloTrackAODReader::AliCaloTrackAODReader() :
AliCaloTrackReader(), fOrgInputEvent(0x0),
fSelectHybridTracks(0), fSelectPrimaryTracks(0),
fTrackFilterMask(0), fTrackFilterMaskComplementary(0),
fSelectFractionTPCSharedClusters(0), fCutTPCSharedClustersFraction(0)
{
fDataType = kAOD;
fReadStack = kTRUE;
fReadAODMCParticles = kFALSE;
fTrackFilterMask = 128;
fTrackFilterMaskComplementary = 0;
fSelectFractionTPCSharedClusters = kTRUE;
fCutTPCSharedClustersFraction = 0.4;
}
Bool_t AliCaloTrackAODReader::CheckForPrimaryVertex() const
{
AliAODEvent * aodevent = dynamic_cast<AliAODEvent*>(fInputEvent);
if(!aodevent) return kFALSE;
if (aodevent->GetPrimaryVertex() != NULL)
{
if(aodevent->GetPrimaryVertex()->GetNContributors() > 0)
{
return kTRUE;
}
}
if(aodevent->GetPrimaryVertexSPD() != NULL)
{
if(aodevent->GetPrimaryVertexSPD()->GetNContributors() > 0)
{
return kTRUE;
}
else
{
AliWarning(Form("Number of contributors from bad vertex type:: %s",
aodevent->GetPrimaryVertex()->GetName()));
return kFALSE;
}
}
return kFALSE;
}
TClonesArray* AliCaloTrackAODReader::GetAODMCParticles() const
{
TClonesArray * particles = NULL ;
AliAODEvent * aod = dynamic_cast<AliAODEvent*> (fInputEvent) ;
if(aod) particles = (TClonesArray*) aod->FindListObject("mcparticles");
return particles ;
}
AliAODMCHeader* AliCaloTrackAODReader::GetAODMCHeader() const
{
AliAODMCHeader *mch = NULL;
AliAODEvent * aod = dynamic_cast<AliAODEvent*> (fInputEvent);
if(aod) mch = dynamic_cast<AliAODMCHeader*>(aod->FindListObject("mcHeader"));
return mch;
}
Bool_t AliCaloTrackAODReader::SelectTrack(AliVTrack* track, Double_t pTrack[3])
{
AliAODTrack *aodtrack = dynamic_cast <AliAODTrack*>(track);
if(!aodtrack) return kFALSE;
AliDebug(2,Form("AOD track type: %d (primary %d), hybrid? %d",
aodtrack->GetType(),AliAODTrack::kPrimary,
aodtrack->IsHybridGlobalConstrainedGlobal()));
if (fSelectHybridTracks && fTrackFilterMaskComplementary == 0)
{
if (!aodtrack->IsHybridGlobalConstrainedGlobal()) return kFALSE ;
}
else
{
Bool_t accept = aodtrack->TestFilterBit(fTrackFilterMask);
if(!fSelectHybridTracks && !accept) return kFALSE ;
if(fSelectHybridTracks)
{
Bool_t acceptcomplement = aodtrack->TestFilterBit(fTrackFilterMaskComplementary);
if (!accept && !acceptcomplement) return kFALSE ;
}
}
if(fSelectSPDHitTracks)
{
if(!aodtrack->HasPointOnITSLayer(0) && !aodtrack->HasPointOnITSLayer(1)) return kFALSE ;
}
if ( fSelectFractionTPCSharedClusters )
{
Double_t frac = Double_t(aodtrack->GetTPCnclsS()) / Double_t(aodtrack->GetTPCncls());
if (frac > fCutTPCSharedClustersFraction)
{
AliDebug(2,Form("\t Reject track, shared cluster fraction %f > %f",frac, fCutTPCSharedClustersFraction));
return kFALSE ;
}
}
if ( fSelectPrimaryTracks )
{
if ( aodtrack->GetType()!= AliAODTrack::kPrimary )
{
AliDebug(2,"\t Remove not primary track");
return kFALSE ;
}
}
AliDebug(2,"\t accepted track!");
track->GetPxPyPz(pTrack) ;
return kTRUE;
}
void AliCaloTrackAODReader::SetInputOutputMCEvent(AliVEvent* input,
AliAODEvent* aod,
AliMCEvent* mc)
{
Bool_t tesd = kFALSE ;
Bool_t taod = kTRUE ;
if ( strcmp(input->GetName(), "AliMixedEvent") == 0 )
{
AliMultiEventInputHandler* multiEH = dynamic_cast<AliMultiEventInputHandler*>((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
if(multiEH){
if (multiEH->GetFormat() == 0 )
{
tesd = kTRUE ;
} else if (multiEH->GetFormat() == 1)
{
taod = kTRUE ;
}
}
else
{
AliFatal("MultiEventHandler is NULL");
return;
}
}
if (strcmp(input->GetName(),"AliESDEvent") == 0)
{
tesd = kTRUE ;
} else if (strcmp(input->GetName(),"AliAODEvent") == 0)
{
taod = kTRUE ;
}
if(tesd)
{
SetInputEvent(aod);
SetOutputEvent(aod);
fOrgInputEvent = input;
}
else if(taod)
{
AliAODInputHandler* aodIH = dynamic_cast<AliAODInputHandler*>((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
if (aodIH && aodIH->GetMergeEvents())
{
SetInputEvent(aod);
SetOutputEvent(aod);
fOrgInputEvent = input;
}
else
{
SetInputEvent(input);
SetOutputEvent(aod);
}
}
else
{
AliFatal(Form("STOP : Wrong data format: %s",input->GetName()));
}
SetMC(mc);
}
AliCaloTrackAODReader.cxx:1 AliCaloTrackAODReader.cxx:2 AliCaloTrackAODReader.cxx:3 AliCaloTrackAODReader.cxx:4 AliCaloTrackAODReader.cxx:5 AliCaloTrackAODReader.cxx:6 AliCaloTrackAODReader.cxx:7 AliCaloTrackAODReader.cxx:8 AliCaloTrackAODReader.cxx:9 AliCaloTrackAODReader.cxx:10 AliCaloTrackAODReader.cxx:11 AliCaloTrackAODReader.cxx:12 AliCaloTrackAODReader.cxx:13 AliCaloTrackAODReader.cxx:14 AliCaloTrackAODReader.cxx:15 AliCaloTrackAODReader.cxx:16 AliCaloTrackAODReader.cxx:17 AliCaloTrackAODReader.cxx:18 AliCaloTrackAODReader.cxx:19 AliCaloTrackAODReader.cxx:20 AliCaloTrackAODReader.cxx:21 AliCaloTrackAODReader.cxx:22 AliCaloTrackAODReader.cxx:23 AliCaloTrackAODReader.cxx:24 AliCaloTrackAODReader.cxx:25 AliCaloTrackAODReader.cxx:26 AliCaloTrackAODReader.cxx:27 AliCaloTrackAODReader.cxx:28 AliCaloTrackAODReader.cxx:29 AliCaloTrackAODReader.cxx:30 AliCaloTrackAODReader.cxx:31 AliCaloTrackAODReader.cxx:32 AliCaloTrackAODReader.cxx:33 AliCaloTrackAODReader.cxx:34 AliCaloTrackAODReader.cxx:35 AliCaloTrackAODReader.cxx:36 AliCaloTrackAODReader.cxx:37 AliCaloTrackAODReader.cxx:38 AliCaloTrackAODReader.cxx:39 AliCaloTrackAODReader.cxx:40 AliCaloTrackAODReader.cxx:41 AliCaloTrackAODReader.cxx:42 AliCaloTrackAODReader.cxx:43 AliCaloTrackAODReader.cxx:44 AliCaloTrackAODReader.cxx:45 AliCaloTrackAODReader.cxx:46 AliCaloTrackAODReader.cxx:47 AliCaloTrackAODReader.cxx:48 AliCaloTrackAODReader.cxx:49 AliCaloTrackAODReader.cxx:50 AliCaloTrackAODReader.cxx:51 AliCaloTrackAODReader.cxx:52 AliCaloTrackAODReader.cxx:53 AliCaloTrackAODReader.cxx:54 AliCaloTrackAODReader.cxx:55 AliCaloTrackAODReader.cxx:56 AliCaloTrackAODReader.cxx:57 AliCaloTrackAODReader.cxx:58 AliCaloTrackAODReader.cxx:59 AliCaloTrackAODReader.cxx:60 AliCaloTrackAODReader.cxx:61 AliCaloTrackAODReader.cxx:62 AliCaloTrackAODReader.cxx:63 AliCaloTrackAODReader.cxx:64 AliCaloTrackAODReader.cxx:65 AliCaloTrackAODReader.cxx:66 AliCaloTrackAODReader.cxx:67 AliCaloTrackAODReader.cxx:68 AliCaloTrackAODReader.cxx:69 AliCaloTrackAODReader.cxx:70 AliCaloTrackAODReader.cxx:71 AliCaloTrackAODReader.cxx:72 AliCaloTrackAODReader.cxx:73 AliCaloTrackAODReader.cxx:74 AliCaloTrackAODReader.cxx:75 AliCaloTrackAODReader.cxx:76 AliCaloTrackAODReader.cxx:77 AliCaloTrackAODReader.cxx:78 AliCaloTrackAODReader.cxx:79 AliCaloTrackAODReader.cxx:80 AliCaloTrackAODReader.cxx:81 AliCaloTrackAODReader.cxx:82 AliCaloTrackAODReader.cxx:83 AliCaloTrackAODReader.cxx:84 AliCaloTrackAODReader.cxx:85 AliCaloTrackAODReader.cxx:86 AliCaloTrackAODReader.cxx:87 AliCaloTrackAODReader.cxx:88 AliCaloTrackAODReader.cxx:89 AliCaloTrackAODReader.cxx:90 AliCaloTrackAODReader.cxx:91 AliCaloTrackAODReader.cxx:92 AliCaloTrackAODReader.cxx:93 AliCaloTrackAODReader.cxx:94 AliCaloTrackAODReader.cxx:95 AliCaloTrackAODReader.cxx:96 AliCaloTrackAODReader.cxx:97 AliCaloTrackAODReader.cxx:98 AliCaloTrackAODReader.cxx:99 AliCaloTrackAODReader.cxx:100 AliCaloTrackAODReader.cxx:101 AliCaloTrackAODReader.cxx:102 AliCaloTrackAODReader.cxx:103 AliCaloTrackAODReader.cxx:104 AliCaloTrackAODReader.cxx:105 AliCaloTrackAODReader.cxx:106 AliCaloTrackAODReader.cxx:107 AliCaloTrackAODReader.cxx:108 AliCaloTrackAODReader.cxx:109 AliCaloTrackAODReader.cxx:110 AliCaloTrackAODReader.cxx:111 AliCaloTrackAODReader.cxx:112 AliCaloTrackAODReader.cxx:113 AliCaloTrackAODReader.cxx:114 AliCaloTrackAODReader.cxx:115 AliCaloTrackAODReader.cxx:116 AliCaloTrackAODReader.cxx:117 AliCaloTrackAODReader.cxx:118 AliCaloTrackAODReader.cxx:119 AliCaloTrackAODReader.cxx:120 AliCaloTrackAODReader.cxx:121 AliCaloTrackAODReader.cxx:122 AliCaloTrackAODReader.cxx:123 AliCaloTrackAODReader.cxx:124 AliCaloTrackAODReader.cxx:125 AliCaloTrackAODReader.cxx:126 AliCaloTrackAODReader.cxx:127 AliCaloTrackAODReader.cxx:128 AliCaloTrackAODReader.cxx:129 AliCaloTrackAODReader.cxx:130 AliCaloTrackAODReader.cxx:131 AliCaloTrackAODReader.cxx:132 AliCaloTrackAODReader.cxx:133 AliCaloTrackAODReader.cxx:134 AliCaloTrackAODReader.cxx:135 AliCaloTrackAODReader.cxx:136 AliCaloTrackAODReader.cxx:137 AliCaloTrackAODReader.cxx:138 AliCaloTrackAODReader.cxx:139 AliCaloTrackAODReader.cxx:140 AliCaloTrackAODReader.cxx:141 AliCaloTrackAODReader.cxx:142 AliCaloTrackAODReader.cxx:143 AliCaloTrackAODReader.cxx:144 AliCaloTrackAODReader.cxx:145 AliCaloTrackAODReader.cxx:146 AliCaloTrackAODReader.cxx:147 AliCaloTrackAODReader.cxx:148 AliCaloTrackAODReader.cxx:149 AliCaloTrackAODReader.cxx:150 AliCaloTrackAODReader.cxx:151 AliCaloTrackAODReader.cxx:152 AliCaloTrackAODReader.cxx:153 AliCaloTrackAODReader.cxx:154 AliCaloTrackAODReader.cxx:155 AliCaloTrackAODReader.cxx:156 AliCaloTrackAODReader.cxx:157 AliCaloTrackAODReader.cxx:158 AliCaloTrackAODReader.cxx:159 AliCaloTrackAODReader.cxx:160 AliCaloTrackAODReader.cxx:161 AliCaloTrackAODReader.cxx:162 AliCaloTrackAODReader.cxx:163 AliCaloTrackAODReader.cxx:164 AliCaloTrackAODReader.cxx:165 AliCaloTrackAODReader.cxx:166 AliCaloTrackAODReader.cxx:167 AliCaloTrackAODReader.cxx:168 AliCaloTrackAODReader.cxx:169 AliCaloTrackAODReader.cxx:170 AliCaloTrackAODReader.cxx:171 AliCaloTrackAODReader.cxx:172 AliCaloTrackAODReader.cxx:173 AliCaloTrackAODReader.cxx:174 AliCaloTrackAODReader.cxx:175 AliCaloTrackAODReader.cxx:176 AliCaloTrackAODReader.cxx:177 AliCaloTrackAODReader.cxx:178 AliCaloTrackAODReader.cxx:179 AliCaloTrackAODReader.cxx:180 AliCaloTrackAODReader.cxx:181 AliCaloTrackAODReader.cxx:182 AliCaloTrackAODReader.cxx:183 AliCaloTrackAODReader.cxx:184 AliCaloTrackAODReader.cxx:185 AliCaloTrackAODReader.cxx:186 AliCaloTrackAODReader.cxx:187 AliCaloTrackAODReader.cxx:188 AliCaloTrackAODReader.cxx:189 AliCaloTrackAODReader.cxx:190 AliCaloTrackAODReader.cxx:191 AliCaloTrackAODReader.cxx:192 AliCaloTrackAODReader.cxx:193 AliCaloTrackAODReader.cxx:194 AliCaloTrackAODReader.cxx:195 AliCaloTrackAODReader.cxx:196 AliCaloTrackAODReader.cxx:197 AliCaloTrackAODReader.cxx:198 AliCaloTrackAODReader.cxx:199 AliCaloTrackAODReader.cxx:200 AliCaloTrackAODReader.cxx:201 AliCaloTrackAODReader.cxx:202 AliCaloTrackAODReader.cxx:203 AliCaloTrackAODReader.cxx:204 AliCaloTrackAODReader.cxx:205 AliCaloTrackAODReader.cxx:206 AliCaloTrackAODReader.cxx:207 AliCaloTrackAODReader.cxx:208 AliCaloTrackAODReader.cxx:209 AliCaloTrackAODReader.cxx:210 AliCaloTrackAODReader.cxx:211 AliCaloTrackAODReader.cxx:212 AliCaloTrackAODReader.cxx:213 AliCaloTrackAODReader.cxx:214 AliCaloTrackAODReader.cxx:215 AliCaloTrackAODReader.cxx:216 AliCaloTrackAODReader.cxx:217 AliCaloTrackAODReader.cxx:218 AliCaloTrackAODReader.cxx:219 AliCaloTrackAODReader.cxx:220 AliCaloTrackAODReader.cxx:221 AliCaloTrackAODReader.cxx:222 AliCaloTrackAODReader.cxx:223 AliCaloTrackAODReader.cxx:224 AliCaloTrackAODReader.cxx:225 AliCaloTrackAODReader.cxx:226 AliCaloTrackAODReader.cxx:227 AliCaloTrackAODReader.cxx:228 AliCaloTrackAODReader.cxx:229 AliCaloTrackAODReader.cxx:230 AliCaloTrackAODReader.cxx:231 AliCaloTrackAODReader.cxx:232 AliCaloTrackAODReader.cxx:233 AliCaloTrackAODReader.cxx:234 AliCaloTrackAODReader.cxx:235 AliCaloTrackAODReader.cxx:236 AliCaloTrackAODReader.cxx:237 AliCaloTrackAODReader.cxx:238 AliCaloTrackAODReader.cxx:239 AliCaloTrackAODReader.cxx:240 AliCaloTrackAODReader.cxx:241 AliCaloTrackAODReader.cxx:242 AliCaloTrackAODReader.cxx:243 AliCaloTrackAODReader.cxx:244 AliCaloTrackAODReader.cxx:245 AliCaloTrackAODReader.cxx:246 AliCaloTrackAODReader.cxx:247 AliCaloTrackAODReader.cxx:248 AliCaloTrackAODReader.cxx:249 AliCaloTrackAODReader.cxx:250 AliCaloTrackAODReader.cxx:251 AliCaloTrackAODReader.cxx:252 AliCaloTrackAODReader.cxx:253 AliCaloTrackAODReader.cxx:254 AliCaloTrackAODReader.cxx:255 AliCaloTrackAODReader.cxx:256 AliCaloTrackAODReader.cxx:257 AliCaloTrackAODReader.cxx:258 AliCaloTrackAODReader.cxx:259