int ReadLinkTest()
{
  TFile* file = new TFile("sim_ScanMom3.root");
  FairFileSource* source = new FairFileSource(file,"InputFile");

  FairRootManager* ioman = FairRootManager::Instance();
  ioman->SetSource(source);
  ioman->InitSource();
  
  TClonesArray* fPointArray = (TClonesArray*) ioman->GetObject("EmcPoint");
  if (!fPointArray) { cout<<"no EmcPoint"<<endl; return -1;}
  TClonesArray* fTruthArray = (TClonesArray*) ioman->GetObject("MCTrack");
  if (!fTruthArray) { cout<<"no MCTrack"<<endl; return -2;}


  int maxEvtNo = ioman->CheckMaxEventNo();
  cout<<"maxEvtNo "<<maxEvtNo<<endl;

  double ene=1.0;
  for (int ievt=0; ievt<1; ievt++) {
     ioman->ReadEvent(ievt); // read event by event
	 
     int npoints = fPointArray->GetEntriesFast();
     cout<<"points is "<<npoints<<endl;
     std::map<int, std::vector<int> > TrackPoint;
	 for (int i=0; i<npoints; i++) {
       PndEmcPoint* point = (PndEmcPoint*)fPointArray->At(i);
	   //cout<<"branch id "<<ioman->GetBranchId("MCTrack")<<endl;
	   point->GetLinksWithType(ioman->GetBranchId("MCTrack"));
	   //point->GetLinksWithType(0);
	   //point->GetSortedMCTracks();
	   ////////////////
	   std::set<FairLink> links = point->GetLinks();
	   int idx = links.begin()->GetIndex();
	   //cout<<"FairLink Type "<<links.begin()->GetType()<<endl;

     }
	 
  }

  return 0;
}
