]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG/DevNanoAOD/AliNanoAODReplicator.cxx
Merge remote-tracking branch 'origin/master' into TPCdev
[u/mrichter/AliRoot.git] / PWG / DevNanoAOD / AliNanoAODReplicator.cxx
index 2512d6277cf27b991eb80ebd53664f625bf63b59..15838fbefed960bab7ceef10a6b36cd8b631bf6e 100644 (file)
@@ -409,7 +409,7 @@ TList* AliNanoAODReplicator::GetList() const
       fTracks->SetName("tracks"); // TODO: consider the possibility to use a different name to distinguish in AliAODEvent
       fList->Add(fTracks);    
 
-      fHeader = new AliNanoAODHeader(3);// TODO: to be customized
+      fHeader = new AliNanoAODHeader(2);// TODO: to be customized
       fHeader->SetName("header"); // TODO: consider the possibility to use a different name to distinguish in AliAODEvent
       fList->Add(fHeader);    
 
@@ -448,9 +448,16 @@ void AliNanoAODReplicator::ReplicateAndFilter(const AliAODEvent& source)
   fTracks->Clear("C");                 
   assert(fVertices!=0x0);
   fVertices->Clear("C");
-  fMCHeader->Reset();
-  fMCParticles->Clear("C");
-  
+  if (fMCMode > 0){
+    if(!fMCHeader) {
+      AliFatal(Form("fMCMode = %d, but MC header not found", fMCMode));
+    }
+    fMCHeader->Reset();
+    if(!fMCParticles){
+      AliFatal(Form("fMCMode = %d, but MC particles not found", fMCMode));
+    }
+    fMCParticles->Clear("C");
+  }
   Int_t ntracks(0);
   Int_t input(0);
 
@@ -490,11 +497,9 @@ void AliNanoAODReplicator::ReplicateAndFilter(const AliAODEvent& source)
     AliAODTrack *aodtrack =(AliAODTrack*)track;// FIXME DYNAMIC CAST?
     if(!fTrackCut->IsSelected(aodtrack)) continue;
 
-    AliNanoAODTrack * special = new  AliNanoAODTrack (aodtrack, fVarList);
+    AliNanoAODTrack * special = new((*fTracks)[ntracks++]) AliNanoAODTrack (aodtrack, fVarList);
     
     if(fCustomSetter) fCustomSetter->SetNanoAODTrack(aodtrack, special);
-    (*fTracks)[ntracks++] = special;
-    //new((*fTracks)[ntrac\ks++])
   }  
   //----------------------------------------------------------
   
@@ -507,15 +512,8 @@ void AliNanoAODReplicator::ReplicateAndFilter(const AliAODEvent& source)
       AliAODVertex* tmp = v->CloneWithoutRefs();
       AliAODVertex* copiedVertex = new((*fVertices)[nvertices++]) AliAODVertex(*tmp);
       
-      // to insure the main vertex retains the ncontributors information
-      // (which is otherwise computed dynamically from
-      // references to tracks, which we do not keep in muon aods...)
-      // we set it here
-      
       copiedVertex->SetNContributors(v->GetNContributors()); 
       
-      //  fVertices->Delete();
-      //         delete copiedVertex;
       delete tmp;
     }