X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=HMPID%2FAliHMPIDDigit.cxx;h=80d3670aed57ec39acf65d9f0ae9added63a47e5;hb=54194e95029a7fe4087a60af0c285fc45fd6c86d;hp=f86f0a5b8e6284ec4aab5dc7c3eaeaa51b4745dc;hpb=ae5a42aa7f1a9ab4a7311118878711eb1d5eeb79;p=u%2Fmrichter%2FAliRoot.git diff --git a/HMPID/AliHMPIDDigit.cxx b/HMPID/AliHMPIDDigit.cxx index f86f0a5b8e6..80d3670aed5 100644 --- a/HMPID/AliHMPIDDigit.cxx +++ b/HMPID/AliHMPIDDigit.cxx @@ -21,14 +21,16 @@ #include "AliHMPIDParam.h" #include //WriteRaw() #include "Riostream.h" //WriteRaw() +#include "AliFstream.h" + ClassImp(AliHMPIDDigit) /* Preface: all geometrical information (like left-right sides) is reported as seen from electronic side. - d10 d1 d10 d1 + d1 d10 d1 d10 _______________ _______________ -r24 | | | |126.16 r1 +r1 | | | |126.16 r24 | 4 | | 5 | | | | | |_______________| |_______________|85.84 @@ -41,7 +43,7 @@ r24 | | | |126.16 r1 | | | |40.32 | 0 | | 1 | | | | | -r1 |_______________| |_______________|0 r24 +r24 |_______________| |_______________|0 r1 //updated: 15/02/2008 0 64.0 66.6 130.6 @@ -130,37 +132,3 @@ void AliHMPIDDigit::Print(Option_t *opt)const 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=AliHMPIDParam::kMinCh;iCh<=AliHMPIDParam::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() -//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++