+
+ fPMDcontin->Delete();
+ fPMDcontout->Delete();
+
+}
+//--------------------------------------------------------------------//
+void AliPMDtracker::AssignTrPidToCluster(Int_t nentry, Int_t *itra,
+ Int_t *ipid, Float_t *cadc,
+ Int_t &trackno, Int_t &trackpid)
+{
+ // assign the track number and the corresponding pid to a cluster
+ // split cluster part will be done at the time of calculating eff/pur
+
+ Int_t *phentry = new Int_t [nentry];
+ Int_t *trenergy = 0x0;
+ Int_t *sortcoord = 0x0;
+
+ Int_t ngtrack = 0;
+ for (Int_t i = 0; i < nentry; i++)
+ {
+ phentry[i] = -1;
+ if (ipid[i] == 22)
+ {
+ phentry[ngtrack] = i;
+ ngtrack++;
+ }
+ }
+
+ if (ngtrack == 0)
+ {
+ // hadron track
+ // no need of track number, set to -1
+ trackpid = 8;
+ trackno = -1;
+ }
+ else if (ngtrack == 1)
+ {
+ // only one photon track
+ // track number set to photon track
+ trackpid = 1;
+ trackno = itra[phentry[0]];
+ }
+ else if (ngtrack > 1)
+ {
+ // more than one photon track
+
+ trenergy = new Int_t [ngtrack];
+ sortcoord = new Int_t [ngtrack];
+ for (Int_t i = 0; i < ngtrack; i++)
+ {
+ trenergy[i] = 0.;
+ for (Int_t j = 0; j < nentry; j++)
+ {
+ if (ipid[j] == 22 && itra[j] == itra[phentry[i]])
+ {
+ trenergy[i] += cadc[j];
+ }
+ }
+ }
+
+ Bool_t jsort = true;
+ TMath::Sort(ngtrack,trenergy,sortcoord,jsort);
+
+ Int_t gtr = sortcoord[0];
+ trackno = itra[phentry[gtr]]; // highest adc track
+ trackpid = 1;
+
+ delete [] trenergy;
+ delete [] sortcoord;
+
+ } // end of ngtrack > 1
+
+
+