+ word = 0; // Packing Status [0;3]
+ AliBitPacking::PackWord(word,baseWord,29,30);
+ word = 1; // TRM TDC digit ID
+ AliBitPacking::PackWord(word,baseWord,31,31);
+
+ localIndex++; fWordsPerTRM++;
+ localBuffer[localIndex]=baseWord;
+
+ baseWord=0;
+
+ if ( fFakeOrphaneProduction &&
+ percentFilledCells<0.12 && gRandom->Rndm()<(0.12-percentFilledCells) ) {
+
+ percentFilledCells+=kOneMoreFilledCell;
+
+ trailingSpurious = Int_t(2097152*gRandom->Rndm());
+ leadingSpurious = Int_t(2097152*gRandom->Rndm());
+
+ Int_t dummyPS = 0;
+
+ if (outOut) {
+ word = trailingSpurious; // trailing edge measurement
+ dummyPS = 2;
+ }
+ else {
+ word = leadingSpurious; // leading edge measurement
+ dummyPS = 1;
+ }
+
+ if (fVerbose==2) {
+ if (nDDL<10) ftxt << " " << nDDL;
+ else ftxt << " " << nDDL;
+ if (nTRM<10) ftxt << " " << nTRM;
+ else ftxt << " " << nTRM;
+ ftxt << " " << iChain;
+ if (nTDC<10) ftxt << " " << nTDC;
+ else ftxt << " " << nTDC;
+ ftxt << " " << iCH;
+ if (volume[0]<10) ftxt << " -> " << volume[0];
+ else ftxt << " -> " << volume[0];
+ ftxt << " " << volume[1];
+ if (volume[2]<10) ftxt << " " << volume[2];
+ else ftxt << " " << volume[2];
+ ftxt << " " << volume[4];
+ if (volume[3]<10) ftxt << " " << volume[3];
+ else ftxt << " " << volume[3];
+ ftxt << " " << -1;
+ if (word<10) ftxt << " " << word;
+ else if (word>=10 && word<100) ftxt << " " << word;
+ else if (word>=100 && word<1000) ftxt << " " << word;
+ else if (word>=1000 && word<10000) ftxt << " " << word;
+ else if (word>=10000 && word<100000) ftxt << " " << word;
+ else if (word>=100000 && word<1000000) ftxt << " " << word;
+ else ftxt << " " << word;
+ ftxt << " " << dummyPS << endl;
+ }
+
+ AliBitPacking::PackWord(word,baseWord, 0,20);
+ word = iCH; // TDC channel ID [0;7]
+ AliBitPacking::PackWord(word,baseWord,21,23);
+ word = nTDC; // TDC ID [0;14]
+ AliBitPacking::PackWord(word,baseWord,24,27);
+ word = 0; // error flag
+ AliBitPacking::PackWord(word,baseWord,28,28);
+ word = dummyPS; // Packing Status [0;3]
+ AliBitPacking::PackWord(word,baseWord,29,30);
+ word = 1; // TRM TDC digit ID
+ AliBitPacking::PackWord(word,baseWord,31,31);
+
+ localIndex++; fWordsPerTRM++;
+ localBuffer[localIndex]=baseWord;
+ psArray[localIndex]=dummyPS;
+
+ baseWord=0;
+
+ } // if ( fFakeOrphaneProduction && percentFilledCells<0.12 && gRandom->Rndm()<(0.12-percentFilledCells) )
+
+
+ } // if (fPackedAcquisition)
+ else { // if (!fPackedAcquisition)
+
+ if ( fFakeOrphaneProduction &&
+ percentFilledCells<0.24 && gRandom->Rndm()<(0.24-percentFilledCells) && outOut ) {
+
+ percentFilledCells+=kOneMoreFilledCell;
+
+ trailingSpurious = Int_t(2097152*gRandom->Rndm());
+ word = trailingSpurious;
+ Int_t dummyPS = 2;
+
+ if (fVerbose==2) {
+ if (nDDL<10) ftxt << " " << nDDL;
+ else ftxt << " " << nDDL;
+ if (nTRM<10) ftxt << " " << nTRM;
+ else ftxt << " " << nTRM;
+ ftxt << " " << iChain;
+ if (nTDC<10) ftxt << " " << nTDC;
+ else ftxt << " " << nTDC;
+ ftxt << " " << iCH;
+ if (volume[0]<10) ftxt << " -> " << volume[0];
+ else ftxt << " -> " << volume[0];
+ ftxt << " " << volume[1];
+ if (volume[2]<10) ftxt << " " << volume[2];
+ else ftxt << " " << volume[2];
+ ftxt << " " << volume[4];
+ if (volume[3]<10) ftxt << " " << volume[3];
+ else ftxt << " " << volume[3];
+ ftxt << " " << -1;
+ if (word<10) ftxt << " " << word;
+ else if (word>=10 && word<100) ftxt << " " << word;
+ else if (word>=100 && word<1000) ftxt << " " << word;
+ else if (word>=1000 && word<10000) ftxt << " " << word;
+ else if (word>=10000 && word<100000) ftxt << " " << word;
+ else if (word>=100000 && word<1000000) ftxt << " " << word;
+ else ftxt << " " << word;
+ ftxt << " " << dummyPS << endl;
+ }
+
+ AliBitPacking::PackWord(word,baseWord, 0,20);
+ word = iCH; // TDC channel ID [0;7]
+ AliBitPacking::PackWord(word,baseWord,21,23);
+ word = nTDC; // TDC ID [0;14]
+ AliBitPacking::PackWord(word,baseWord,24,27);
+ word = 0; // error flag
+ AliBitPacking::PackWord(word,baseWord,28,28);
+ word = dummyPS; // Packing Status [0;3]
+ AliBitPacking::PackWord(word,baseWord,29,30);
+ word = 1; // TRM TDC digit ID
+ AliBitPacking::PackWord(word,baseWord,31,31);
+
+ localIndex++; fWordsPerTRM++;
+ localBuffer[localIndex]=baseWord;
+ psArray[localIndex]=dummyPS;
+
+ baseWord=0;
+
+ } // if ( fFakeOrphaneProduction && percentFilledCells<0.24 && gRandom->Rndm()<(0.24-percentFilledCells) && outOut )
+
+
+ word = (timeOfFlight + Int_t(totCharge*AliTOFGeometry::ToTBinWidth()/AliTOFGeometry::TdcBinWidth()))%2097152; // trailing edge measurement
+
+ if (fVerbose==2) {
+ if (nDDL<10) ftxt << " " << nDDL;
+ else ftxt << " " << nDDL;
+ if (nTRM<10) ftxt << " " << nTRM;
+ else ftxt << " " << nTRM;
+ ftxt << " " << iChain;
+ if (nTDC<10) ftxt << " " << nTDC;
+ else ftxt << " " << nTDC;
+ ftxt << " " << iCH;
+ if (volume[0]<10) ftxt << " -> " << volume[0];
+ else ftxt << " -> " << volume[0];
+ ftxt << " " << volume[1];
+ if (volume[2]<10) ftxt << " " << volume[2];
+ else ftxt << " " << volume[2];
+ ftxt << " " << volume[4];
+ if (volume[3]<10) ftxt << " " << volume[3];
+ else ftxt << " " << volume[3];
+ ftxt << " " << -1;
+ if (word<10) ftxt << " " << word;
+ else if (word>=10 && word<100) ftxt << " " << word;
+ else if (word>=100 && word<1000) ftxt << " " << word;
+ else if (word>=1000 && word<10000) ftxt << " " << word;
+ else if (word>=10000 && word<100000) ftxt << " " << word;
+ else if (word>=100000 && word<1000000) ftxt << " " << word;
+ else ftxt << " " << word;
+ ftxt << " " << 2 << endl;
+ }
+
+ AliBitPacking::PackWord(word,baseWord, 0,20);
+
+ word = iCH; // TDC channel ID [0;7]
+ AliBitPacking::PackWord(word,baseWord,21,23);
+ word = nTDC; // TDC ID [0;14]
+ AliBitPacking::PackWord(word,baseWord,24,27);
+ word = 0; // error flag
+ AliBitPacking::PackWord(word,baseWord,28,28);
+ word = 2; // Packing Status [0;3]