@@ -446,7 +446,7 @@ int Trap2CRU::buildDigitRawData(const int digitstartindex, const int digitendind
446446 }
447447 int channel = d->getChannel ();
448448 // set adcmask for the channel we currently have.
449- adcmaskptr->adcmask |= 1UL << channel;
449+ incrementADCMask (*adcmaskptr, channel); // adcmaskptr->adcmask |= 1UL << channel;
450450 for (int timebin = 0 ; timebin < o2::trd::constants::TIMEBINS; timebin += 3 ) {
451451 data.z = adcdata[timebin];
452452 data.y = adcdata[timebin + 1 ];
@@ -538,9 +538,15 @@ int Trap2CRU::buildTrackletRawData(const int trackletindex, const int linkid)
538538 if (!destroytracklets) {
539539 setNumberOfTrackletsInHeader (header, trackletcounter);
540540 if (trackletcounter > 0 ) { // dont write header if there are no tracklets.
541+ if (mVerbosity ) {
542+ LOG (info) << " TTT TrackletMCMHeader : 0x" << std::hex << header;
543+ }
541544 memcpy ((char *)mRawDataPtr , (char *)&header, sizeof (TrackletMCMHeader));
542545 mRawDataPtr += sizeof (TrackletMCMHeader);
543546 for (int i = 0 ; i < trackletcounter; ++i) {
547+ if (mVerbosity ) {
548+ LOG (info) << " TTTx TrackletMCMData : 0x" << std::hex << trackletdata[i];
549+ }
544550 memcpy ((char *)mRawDataPtr , (char *)&trackletdata[i], sizeof (TrackletMCMData));
545551 mRawDataPtr += sizeof (TrackletMCMData);
546552 }
@@ -584,24 +590,23 @@ int Trap2CRU::writeTrackletHCHeader(const int eventcount)
584590{
585591 int wordswritten = 0 ;
586592 // from linkid we can get supermodule, stack, layer, side
587- int linkid = mTracklets [mCurrentTracklet ].getHCID ();
593+ int hcid = mTracklets [mCurrentTracklet ].getHCID ();
588594 int detector = mTracklets [mCurrentTracklet ].getHCID () / 2 ;
589- TrackletHCHeader trackletheader;
590- trackletheader.supermodule = linkid / 60 ;
591- trackletheader.stack = (detector % (o2::trd::constants::NLAYER * o2::trd::constants::NSTACK)) / o2::trd::constants::NLAYER;
592- trackletheader.layer = (detector % o2::trd::constants::NLAYER);
593- trackletheader.one = 1 ;
595+ TrackletHCHeader tracklethcheader;
596+ unsigned int supermodule = hcid / 60 ;
597+ unsigned int stack = (detector % (o2::trd::constants::NLAYER * o2::trd::constants::NSTACK)) / o2::trd::constants::NLAYER;
598+ unsigned int layer = (detector % o2::trd::constants::NLAYER);
599+ unsigned int side = (hcid % 2 ) ? 1 : 0 ;
600+ unsigned int chipclock = eventcount * 42 ; // just has to be a constant increasing number per event for our purposes in sim to raw.
601+ unsigned int format = 12 ;
602+ constructTrackletHCHeader (tracklethcheader, supermodule, stack, layer, side, chipclock, format);
594603 if (mVerbosity ) {
595- LOG (info) << " Tracklet linkid : " << linkid << " :"
596- << " " << trackletheader.supermodule << " :" << trackletheader.stack << " :" << trackletheader.layer << " :" << trackletheader.side ;
604+ printTrackletHCHeader (tracklethcheader);
597605 }
598- trackletheader.side = (linkid % 2 ) ? 1 : 0 ;
599- trackletheader.MCLK = eventcount * 42 ; // just has to be a constant increasing number per event for our purposes in sim to raw.
600- trackletheader.format = 12 ;
601606 if (mUseTrackletHCHeader ) { // run 3 we also have a TrackletHalfChamber.
602- memcpy (mRawDataPtr , (char *)&trackletheader , sizeof (TrackletHCHeader));
607+ memcpy (mRawDataPtr , (char *)&tracklethcheader , sizeof (TrackletHCHeader));
603608 if (mVerbosity ) {
604- LOG (info) << " writing tracklethcheader of 0x" << std::hex << trackletheader .word ;
609+ LOG (info) << " writing tracklethcheader of 0x" << std::hex << tracklethcheader .word ;
605610 }
606611 mRawDataPtr += 4 ;
607612 wordswritten++;
0 commit comments