Changes for reading Embedded tracks in the cluster task
authorkleinb <kleinb@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 14 Jan 2011 15:22:38 +0000 (15:22 +0000)
committerkleinb <kleinb@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 14 Jan 2011 15:22:38 +0000 (15:22 +0000)
JETAN/AliAnalysisTaskJetCluster.cxx
JETAN/AliAnalysisTaskJetCluster.h

index a0144c0..887110a 100644 (file)
@@ -348,7 +348,7 @@ void AliAnalysisTaskJetCluster::UserCreateOutputObjects()
       if(fNonStdFile.Length()!=0){
        // 
        // case that we have an AOD extension we need to fetch the jets from the extended output
-       // we identifay the extension aod event by looking for the branchname
+       // we identify the extension aod event by looking for the branchname
        AliAODHandler *aodH = dynamic_cast<AliAODHandler*>(AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler());
        TObjArray* extArray = aodH->GetExtensions();
        if (extArray) {
@@ -1359,20 +1359,42 @@ Int_t  AliAnalysisTaskJetCluster::GetListOfTracks(TList *list,Int_t type){
   if(fDebug>2)Printf("%s:%d Selecting tracks with %d",(char*)__FILE__,__LINE__,type);
 
   Int_t iCount = 0;
-  if(type==kTrackAOD){
-    AliAODEvent *aod = 0;
-    if(fUseAODTrackInput)aod = dynamic_cast<AliAODEvent*>(InputEvent());
-    else aod = AODEvent();
-    if(!aod){
-      return iCount;
+  if(type==kTrackAOD || type==kTrackAODextra || type==kTrackAODextraonly){
+    if(type!=kTrackAODextraonly) {
+      AliAODEvent *aod = 0;
+      if(fUseAODTrackInput)aod = dynamic_cast<AliAODEvent*>(InputEvent());
+      else aod = AODEvent();
+      if(!aod){
+       return iCount;
+      }
+      for(int it = 0;it < aod->GetNumberOfTracks();++it){
+       AliAODTrack *tr = aod->GetTrack(it);
+       if((fFilterMask>0)&&!(tr->TestFilterBit(fFilterMask)))continue;
+       if(TMath::Abs(tr->Eta())>0.9)continue;
+       if(tr->Pt()<fTrackPtCut)continue;
+       list->Add(tr);
+       iCount++;
+      }
     }
-    for(int it = 0;it < aod->GetNumberOfTracks();++it){
-      AliAODTrack *tr = aod->GetTrack(it);
-      if((fFilterMask>0)&&!(tr->TestFilterBit(fFilterMask)))continue;
-      if(TMath::Abs(tr->Eta())>0.9)continue;
-      if(tr->Pt()<fTrackPtCut)continue;
-      list->Add(tr);
-      iCount++;
+    if(type==kTrackAODextra || type==kTrackAODextraonly) {
+      AliAODEvent *aod = 0;
+      if(fUseAODTrackInput)aod = dynamic_cast<AliAODEvent*>(InputEvent());
+      else aod = AODEvent();
+      
+      if(!aod){
+       return iCount;
+      }
+      TClonesArray *aodExtraTracks = dynamic_cast<TClonesArray*>(aod->FindListObject("aodExtraTracks"));
+      for(int it =0; it<aodExtraTracks->GetEntries(); it++) {
+       AliVParticle *track = dynamic_cast<AliVParticle*> ((*aodExtraTracks)[it]);
+       if (!track) continue;
+
+       AliAODTrack *trackAOD = dynamic_cast<AliAODTrack*> (track);
+       if(trackAOD->Pt()<fTrackPtCut) continue;
+
+       list->Add(trackAOD);
+       iCount++;
+      }
     }
   }
   else if (type ==  kTrackKineAll||type == kTrackKineCharged){
index 41f5d24..75fd1f6 100644 (file)
@@ -5,7 +5,7 @@
  * See cxx source for full Copyright notice                               */
 
 // **************************************
-// task used for comapring different jets D parmaters from fastjet 
+// task used for comparing different jets D parmaters from fastjet 
 // *******************************************
 
 #include  "AliAnalysisTaskSE.h"
@@ -97,7 +97,7 @@ class AliAnalysisTaskJetCluster : public AliAnalysisTaskSE
     // AOD reading -> MC from AOD
     // ESD reading -> MC from Kinematics
     // this has to match with our selection of input events
-    enum {kTrackUndef = 0, kTrackAOD, kTrackKineAll,kTrackKineCharged, kTrackAODMCAll, kTrackAODMCCharged, kTrackAODMCChargedAcceptance};
+    enum {kTrackUndef = 0, kTrackAOD, kTrackKineAll,kTrackKineCharged, kTrackAODMCAll, kTrackAODMCCharged, kTrackAODMCChargedAcceptance, kTrackAODextra, kTrackAODextraonly};
     enum {kMaxJets = 4};
     enum {kMaxCorrelation =  3};
     enum {kMaxRadius =       5};
@@ -219,7 +219,7 @@ class AliAnalysisTaskJetCluster : public AliAnalysisTaskSE
     TList *fHistList; //!leading tracks to be skipped in the randomized event Output list
    
 
-    ClassDef(AliAnalysisTaskJetCluster, 12
+    ClassDef(AliAnalysisTaskJetCluster, 13
 };
  
 #endif