X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=HMPID%2FAliHMPIDDigit.cxx;h=01380fbb6b69bf7717909c30cc3f47a020a0d21d;hb=5e2a2ffa0e6d9fe424ad41d94558663b4bcfaf2a;hp=4c052c9520ced712d12e05701556f5a3c9c029d9;hpb=b512598c10b7fa676da0c1cc7394a58960ddf356;p=u%2Fmrichter%2FAliRoot.git diff --git a/HMPID/AliHMPIDDigit.cxx b/HMPID/AliHMPIDDigit.cxx index 4c052c9520c..01380fbb6b6 100644 --- a/HMPID/AliHMPIDDigit.cxx +++ b/HMPID/AliHMPIDDigit.cxx @@ -18,23 +18,12 @@ #include //Draw() #include //Draw() #include //WriteRaw() +#include "AliHMPIDParam.h" #include //WriteRaw() -#include //WriteRaw() -ClassImp(AliHMPIDDigit) - -const Float_t AliHMPIDDigit::fMinPcX[]={ 0.00 , 66.60 , 0.00 , 66.60 , 0.00 , 66.60}; -const Float_t AliHMPIDDigit::fMaxPcX[]={64.00 , 130.60 , 64.00 , 130.60 , 64.00 , 130.60}; - -const Float_t AliHMPIDDigit::fMinPcY[]={ 0.00 , 0.00 , 42.92 , 42.92, 85.84, 85.84}; -const Float_t AliHMPIDDigit::fMaxPcY[]={40.32 , 40.32, 83.24 , 83.24, 126.16, 126.16}; - -const Float_t AliHMPIDDigit::k1 =0.28278796; -const Float_t AliHMPIDDigit::k2 =0.96242952; -const Float_t AliHMPIDDigit::kSqrtK3 =0.77459667; -const Float_t AliHMPIDDigit::k4 =0.37932926; - -Int_t AliHMPIDDigit::fSigmas=4; +#include "Riostream.h" //WriteRaw() +#include "AliFstream.h" +ClassImp(AliHMPIDDigit) /* Preface: all geometrical information (like left-right sides) is reported as seen from electronic side. @@ -106,13 +95,15 @@ HMPID raw word is 32 bits with the structure: void AliHMPIDDigit::Draw(Option_t*) { // TMarker *pMark=new TMarker(LorsX(),LorsY(),25); pMark->SetMarkerColor(kGreen);pMark->Draw(); - TBox *pad = new TBox(LorsX()-0.5*SizePadX(),LorsY()-0.5*SizePadY(),LorsX()+0.5*SizePadX(),LorsY()+0.5*SizePadY()); + TBox *pad = new + +TBox(LorsX()-0.5*AliHMPIDParam::SizePadX(),LorsY()-0.5*AliHMPIDParam::SizePadY(),LorsX()+0.5*AliHMPIDParam::SizePadX(),LorsY()+0.5*AliHMPIDParam::SizePadY()); TPolyLine *line=new TPolyLine(5); - line->SetPoint(0,LorsX()-0.5*SizePadX(),LorsY()-0.5*SizePadY()); - line->SetPoint(1,LorsX()-0.5*SizePadX(),LorsY()+0.5*SizePadY()); - line->SetPoint(2,LorsX()+0.5*SizePadX(),LorsY()+0.5*SizePadY()); - line->SetPoint(3,LorsX()+0.5*SizePadX(),LorsY()-0.5*SizePadY()); - line->SetPoint(4,LorsX()-0.5*SizePadX(),LorsY()-0.5*SizePadY()); + line->SetPoint(0,LorsX()-0.5*AliHMPIDParam::SizePadX(),LorsY()-0.5*AliHMPIDParam::SizePadY()); + line->SetPoint(1,LorsX()-0.5*AliHMPIDParam::SizePadX(),LorsY()+0.5*AliHMPIDParam::SizePadY()); + line->SetPoint(2,LorsX()+0.5*AliHMPIDParam::SizePadX(),LorsY()+0.5*AliHMPIDParam::SizePadY()); + line->SetPoint(3,LorsX()+0.5*AliHMPIDParam::SizePadX(),LorsY()-0.5*AliHMPIDParam::SizePadY()); + line->SetPoint(4,LorsX()-0.5*AliHMPIDParam::SizePadX(),LorsY()-0.5*AliHMPIDParam::SizePadY()); Int_t slice=(Int_t)fQ/20; switch(slice){ case 0: pad->SetFillColor(kBlue); break; @@ -137,40 +128,7 @@ void AliHMPIDDigit::Print(Option_t *opt)const UInt_t w32; Int_t ddl,r,d,a; Raw(w32,ddl,r,d,a); Printf("%sDIG:(ch=%1i,pc=%1i,x=%2i,y=%2i) (%7.3f,%7.3f) Q=%8.3f TID=(%5i,%5i,%5i) raw=0x%x (ddl=%2i,r=%2i,d=%2i,a=%2i) %s", - opt, A2C(fPad),A2P(fPad),A2X(fPad),A2Y(fPad),LorsX(),LorsY(), Q(), fTracks[0],fTracks[1],fTracks[2],w32,ddl,r,d,a, (IsOverTh(Q()))?"":"below thr"); + opt, AliHMPIDParam::A2C(fPad),AliHMPIDParam::A2P(fPad),AliHMPIDParam::A2X(fPad),AliHMPIDParam::A2Y(fPad),LorsX(),LorsY(), Q(), + fTracks[0],fTracks[1],fTracks[2],w32,ddl,r,d,a, (AliHMPIDParam::IsOverTh(Q()))?"":"below thr"); } //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -void AliHMPIDDigit::WriteRaw(TObjArray *pDigAll) -{ -// Write a list of digits for a given chamber in raw data stream -// Arguments: pDigAll- list of digits -// Returns: none - for(Int_t iCh=kMinCh;iCh<=kMaxCh;iCh++){//chambers loop - ofstream ddlL,ddlR; //output streams, 2 per chamber - Int_t cntL=0,cntR=0; //data words counters for DDLs - AliRawDataHeader header; header.SetAttribute(0); //empty DDL header - - ddlL.open(AliDAQ::DdlFileName("HMPID",2*iCh)); - ddlR.open(AliDAQ::DdlFileName("HMPID",2*iCh+1)); //open both DDL of this chamber in parallel - ddlL.write((char*)&header,sizeof(header)); //write dummy header as place holder, actual - ddlR.write((char*)&header,sizeof(header)); //will be rewritten later when total size of DDL is known - - UInt_t w32=0; //32 bits data word - TClonesArray *pDigCh=(TClonesArray *)pDigAll->At(iCh); //list of digits for current chamber - for(Int_t iDig=0;iDigGetEntriesFast();iDig++){//digits loop - AliHMPIDDigit *pDig=(AliHMPIDDigit*)pDigCh->At(iDig); - if(pDig->Q() < 1) continue; - Int_t ddl,r,d,a; //32 bits data word - pDig->Raw(w32,ddl,r,d,a); - if(ddl%2){ - ddlL.write((char*)&w32,sizeof(w32)); cntL++; - }else{ - ddlR.write((char*)&w32,sizeof(w32)); cntR++; - } - }//digits loop - - header.fSize=sizeof(header)+cntL*sizeof(w32); ddlL.seekp(0); ddlL.write((char*)&header,sizeof(header)); ddlL.close(); //rewrite header with size set to - header.fSize=sizeof(header)+cntR*sizeof(w32); ddlR.seekp(0); ddlR.write((char*)&header,sizeof(header)); ddlR.close(); //number of bytes and close file - }//chambers loop -}//WriteRaw() -//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++