- itdc=AliBitPacking::UnpackWord(word,24,27);
- ichannel=AliBitPacking::UnpackWord(word,21,23);
- time=AliBitPacking::UnpackWord(word,0,20);
- // koef = itdc*4 + ichannel/2;
- koef = param->GetChannel(iTRM,itdc,ichain,ichannel);
- // cout<<" RawReader::Next ::"<<iTRM<<" "<<itdc<<" "<<ichain<<" "<<ichannel<<" "<< koef<<" "<<time<<endl;
- if(fAllData[koef][0] == 0) fAllData[koef][0]=time; // yield only 1st particle
+ AliWarning(Form(" !!!! wrong TRM header %x!!!!", word));
+ fRawReader->AddMajorErrorLog(kWrongTRMHeader,Form("w=%x",word));
+ break;
+ }
+ numberOfWordsInTRM=AliBitPacking::UnpackWord(word,4,16);
+ if(fPrintout) {
+ cout<<" TRM header :: event words "<<numberOfWordsInTRM;
+ cout<<" ACQ bits "<<AliBitPacking::UnpackWord(word,17,18);
+ cout<<" L bit "<<AliBitPacking::UnpackWord(word,19,19)<<endl;
+ }
+ iTRM=AliBitPacking::UnpackWord(word,0,3);
+ for( Int_t ichain=0; ichain<2; ichain++)
+ {
+ //chain header
+ word = GetNextWord();
+ // cout<<" chain header "<<word<<endl;
+ uu = word & trm_chain_header;
+ if(uu != trm_chain_header)
+ {
+ AliWarning(Form(" !!!! wrong CHAIN 0 header %x!!!!", word));
+ fRawReader->AddMajorErrorLog(kWrongChain0Header,Form("w=%x",word));
+ break;
+ }
+ fBunchID=AliBitPacking::UnpackWord(word,4,15);
+ if(fPrintout)
+ cout<<" chain "<< ichain<<" header:: BunchID "<<fBunchID;
+ word = GetNextWord();
+ // cout<<" next word "<<word<<endl;
+ tdcTime = AliBitPacking::UnpackWord(word,31,31);
+ // for (; tdcTime==1; tdcTime)
+ while(tdcTime==1)
+ {
+ correct = kTRUE;
+ itdc=AliBitPacking::UnpackWord(word,24,27);
+ ichannel=AliBitPacking::UnpackWord(word,21,23);
+ time=AliBitPacking::UnpackWord(word,0,20);
+
+ koef = fParam->GetChannel(iTRM,itdc,ichain,ichannel);
+ if (koef != 0 )
+ // cout<<"RawReader>> "<<"koef "<<koef<<" trm "<<iTRM<<
+ // " tdc "<<itdc<<" chain "<<ichain<<
+ // " channel "<<ichannel<<" time "<<time<<endl;
+ if (koef ==-1 ){
+ AliWarning(Form("Incorrect lookup table ! "));
+ fRawReader->AddMajorErrorLog(kIncorrectLUT);
+ correct=kFALSE;
+ }
+ if(correct){
+ hit=koefhits[koef];
+ if(hit>4) {
+ AliDebug(10,Form("Too many hits for %i channel - %i ! ",koef,koefhits[koef] ));
+ hit=4;
+ }
+ fAllData[koef][hit]=time;
+ koefhits[koef]++;
+ }
+ word = GetNextWord();
+
+ tdcTime = AliBitPacking::UnpackWord(word,31,31);
+
+ }