void PrintDigs()
{//prints a list of HMPID digits
Printf("List of HMPID digits for event %i",fEvt);
- fDigLst->Print();
- Int_t iTot=0; for(Int_t i=0;i<7;i++) {iTot+=((TClonesArray*)fDigLst->At(i))->GetEntries();}
+// fDigLst->Print();
+
+ Int_t iTot=0;
+ for(Int_t iCh=0;iCh<7;iCh++) {
+ iTot+=((TClonesArray*)fDigLst->At(iCh))->GetEntries();
+
+ TClonesArray *pDigCham=(TClonesArray*)fDigLst->At(iCh); //get digs list for this chamber
+ for(Int_t iDig=0;iDig<pDigCham->GetEntries();iDig++){ //digs loop
+ AliHMPIDDigit *pDig = (AliHMPIDDigit*)pDigCham->At(iDig);
+ pDig->Print();
+ }//Digit loop
+ }//chamber loop
+
Printf("totally %i digits for event %i",iTot,fEvt);
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
{//prints a list of HMPID clusters for a given event
Printf("List of HMPID clusters for event %i",fEvt);
- fCluLst->Print();
- Int_t iTot=0; for(Int_t iCh=0;iCh<7;iCh++) iTot+=((TClonesArray*)fCluLst->At(iCh))->GetEntries();
+// fCluLst->Print();
+
+ Int_t iTot=0; for(Int_t iCh=0;iCh<7;iCh++) {
+ iTot+=((TClonesArray*)fCluLst->At(iCh))->GetEntries();
+ TClonesArray *pClusCham=(TClonesArray*)fCluLst->At(iCh); //get clusters list for this chamber
+ for(Int_t iClu=0;iClu<pClusCham->GetEntries();iClu++){ //clusters loop
+ AliHMPIDCluster *pClu = (AliHMPIDCluster*)pClusCham->At(iClu); //get current cluster
+ pClu->Print();
+ }
+ }
Printf("totally %i clusters for event %i",iTot,fEvt);
}
Printf("List of HMPID ESD summary for event %i",fEvt);
for(Int_t iTrk=0;iTrk<fEsd->GetNumberOfTracks();iTrk++){
AliESDtrack *pTrk = fEsd->GetTrack(iTrk);
+
+ Double_t xout[3],pout[3];
+
+ pTrk->GetOuterPxPyPz(pout);
+ Double_t pMomOut = TMath::Sqrt(pout[0]*pout[0]+pout[1]*pout[1]+pout[2]*pout[2]);
+
Float_t x,y;Int_t q,nacc; pTrk->GetHMPIDmip(x,y,q,nacc);
- Printf("Track %02i with phi %7.2f theta %7.2f p %7.2f with ThetaCer %5.3f with %i photons",iTrk,pTrk->Phi()*TMath::RadToDeg(),
- pTrk->Theta()*TMath::RadToDeg(),
- pTrk->GetP(),pTrk->GetHMPIDsignal(),nacc);
+ Float_t xra,yra,th,ph; pTrk->GetHMPIDtrk(xra,yra,th,ph);
+// Printf("xra %f yra %f th %f phi %f",xra,yra,th,ph);
+ Int_t ch,idx,size;
+ Int_t word = pTrk->GetHMPIDcluIdx();
+ ch = word/1000000;
+ word = word%1000000;
+ size = word/1000;
+ idx = word%1000;
+ Double_t rout[3]; pTrk->GetOuterXYZ(rout);
+ vol = gGeoManager->FindNode(rout[0],rout[1],rout[2]);
+ Printf("Trk %02i Ch.%2i (%5.2f,%5.2f) pOut %7.2f ThCer %7.3f phots %3i QMip %4i size %2i (idx %3i) in vol. %s",iTrk,ch,
+ xra,yra,pMomOut,pTrk->GetHMPIDsignal(),nacc,q,size,idx,vol->GetName());
}
}//PrintEsd()
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void RenderDig(TObjArray *pDigLst)
{//used by ReadEvent() to render digs to Tbox structures, one per chamber
- Printf("RENDERDIG : event n. %i",fEvt);
-
for(Int_t iCh=0;iCh<=6;iCh++){ //chambers loop
TClonesArray *pDigCham=(TClonesArray*)pDigLst->At(iCh); //get digs list for this chamber
nDigs[iCh] = 0;
AliESDtrack *pTrk=pEsd->GetTrack(iTrk); Int_t ch=pTrk->GetHMPIDcluIdx(); //get track and chamber intersected by it
ch/=1000000;
Float_t xPc,yPc,xRa,yRa,thRa,phRa;
- pTrk->GetHMPIDtrk(xRa,yRa,thRa,phRa);;
+ pTrk->GetHMPIDtrk(xPc,yPc,thRa,phRa);;
+
+ xRa = xPc - (fParam->RadThick()+fParam->WinThick()+fParam->GapThick())*TMath::Cos(phRa)*TMath::Tan(thRa); //just linear extrapolation back to RAD
+ yRa = yPc - (fParam->RadThick()+fParam->WinThick()+fParam->GapThick())*TMath::Sin(phRa)*TMath::Tan(thRa);
+
if(ch<AliHMPIDParam::AliHMPIDParam::kMinCh||ch>AliHMPIDParam::kMaxCh) continue;//this track does not intersect any chamber
Int_t npTrk = fRenTxC[ch]->SetNextPoint(xRa,yRa); //add this intersection point
Float_t ckov=pTrk->GetHMPIDsignal(); //get ckov angle stored for this track
void DoZoom(Int_t evt, Int_t px, Int_t py, TObject *)
{
// Printf(" px %i py%i event %i",px,py,evt);
+
+ if(evt== 1) evt = 5; //for laptop with touchpad: zoom in with left button
+ if(evt== 2) evt = 6; //for laptop with touchpad: zoom out with both buttons
+
if(evt==kMouseMotion||evt==kButton1Down) DisplayInfo(evt,px,py);
- if(evt==11) CloseInfo();
+// if(evt==11) CloseInfo();
if(evt!=5 && evt!=6) return; //5- zoom in 6-zoom out
const Int_t minZoom=64;
const Int_t maxZoom=2;
{
ClearRenders();
- Printf("get Event...... event n. %i",fEvt);
ReadEvent();
while(!Trigger()) {
if(fNevt && fEvt>=fNevt) fEvt=0; //loop over max event
if(fNevt && fEvt<0) fEvt=fNevt-1; //loop over max event
- Printf("getting event %i out of %i",fEvt,fNevt);
+// Printf("getting event %i out of %i",fEvt,fNevt);
if(gDL) {