TClonesArray &pt=*recp;
AliITS *aliITS = (AliITS*)gAlice->GetModule("ITS");
AliITSgeom *gm = aliITS->GetITSgeom();
- const Float_t kdEdXtoQ = 2.778e+8;
+ const Float_t kdEdXtoQ = 1.0e+6; // GeV->KeV
+
+ Int_t lay,lad,det;
+ gm->GetModuleId(module,lay,lad,det);
+ Int_t ind=(lad-1)*gm->GetNdetectors(lay)+(det-1);
+ Int_t lyr=(lay-1);
+
Int_t ihit,flag,numofhits;
Float_t locals[3];
if ( (hitdestep+deltaDe) > thrde ){
locals[0] += deltaXl;
locals[2] += deltaZl;
- AliITSRecPoint rp;
- rp.fTracks[0]=hit->GetTrack();
- // rp.fTracks[0]=mod->GetHitTrackIndex(ihit);
- rp.fTracks[1]=-3;
- rp.fTracks[2]=-3;
- rp.SetX(locals[0]);
- rp.SetZ(locals[2]);
- rp.SetdEdX(hitdestep+deltaDe);
- rp.SetQ(kdEdXtoQ*(hitdestep+deltaDe)); // number of e
- rp.SetSigmaX2(sigmarphi*sigmarphi);
- rp.SetSigmaZ2(sigmaz*sigmaz);
+ Int_t lab[4] = {hit->GetTrack(),-3,-3,ind};
+ Float_t q=kdEdXtoQ*(hitdestep+deltaDe);
+ if(hitlay<3) q=1.; // SPD binary readout
+ Float_t hitv[6] = {locals[0],locals[2],static_cast<Float_t>(sigmarphi*sigmarphi),static_cast<Float_t>(sigmaz*sigmaz),q,q};
+ Int_t info[3] = {0,0,lyr};
+ AliITSRecPoint rp(lab,hitv,info,kTRUE);
+
new (pt[irecp]) AliITSRecPoint(rp);
irecp++;
} // end if ( (hitdestep+deltaDe)