+void AliHFEsecVtx::Process(AliVTrack *signalTrack){
+ if(signalTrack->Pt() < 1.0) return;
+ AliESDtrack *track = dynamic_cast<AliESDtrack *>(signalTrack);
+ InitHFEpairs();
+ InitHFEsecvtxs();
+ AliESDtrack *htrack = 0x0;
+ fFilter->Flush();
+ fFilter->FilterTracks(fESD1);
+ TObjArray *candidates = fFilter->GetFilteredTracks();
+ TIterator *trackIter = candidates->MakeIterator();
+ while((htrack = dynamic_cast<AliESDtrack *>(trackIter->Next()))){
+ if(track->GetID() == htrack->GetID()) continue; // since it is for tagging single electron, don't need additional condition
+ if (htrack->Pt()<1.0) continue;
+ PairAnalysis(track, htrack, htrack->GetID()); // e-h pairing
+ }
+ delete trackIter;
+ /*for(int ip=0; ip<fSecVtx->HFEpairs()->GetEntriesFast(); ip++){
+ if(HasMCData()){
+ AliHFEpairs *pair = (AliHFEpairs*) (fSecVtx->HFEpairs()->UncheckedAt(ip));
+ if(!(pair->GetPairCode()>1. && pair->GetPairCode()<4.)) // apply various cuts
+ fSecVtx->HFEpairs()->RemoveAt(ip);
+ }
+ }*/
+ HFEpairs()->Compress();
+ RunSECVTX(track); // secondary vertexing with e,h1,h2,.. tracks
+ for(int ip=0; ip<HFEsecvtxs()->GetEntriesFast(); ip++){
+ AliHFEsecVtxs *secvtx=0x0;
+ secvtx = (AliHFEsecVtxs*) (HFEsecvtxs()->UncheckedAt(ip));
+ // here you apply cuts, then if it doesn't pass the cut, remove it from the fSecVtx->HFEsecvtxs()
+ }
+ DeleteHFEpairs();
+ DeleteHFEsecvtxs();
+}
+