1 #include "AliSTARTRawReader.h"
2 #include "AliSTARTRawData.h"
3 #include "AliRawReaderFile.h"
12 ClassImp(AliSTARTRawReader)
14 AliSTARTRawReader::AliSTARTRawReader (): TTask("STARTRawReader","read raw data"),
22 // create an object to read STARTraw digits
24 fTimeTDC1 = new TArrayI(24);
25 fChargeADC1 = new TArrayI(24);
26 fTimeTDC2 = new TArrayI(24);
27 fChargeADC2 = new TArrayI(24);
30 AliSTARTRawReader::~AliSTARTRawReader ()
38 //------------------------------------------------------------------------------------------------
40 UInt_t AliSTARTRawReader::UnpackWord(UInt_t packedWord, Int_t startBit, Int_t stopBit)
42 //This method unpacks a words of StopBit-StartBit+1 bits starting from "StopBits"
46 length=stopBit-startBit+1;
47 offSet=(UInt_t)TMath::Power(2,length)-1;
49 word=packedWord&offSet;
53 //---------------------------------------------------------------------------------------
54 Bool_t AliSTARTRawReader::NextThing( AliRawReader *fRawReader)
56 // read the next raw digit
57 // returns kFALSE if there is no digit left
59 UInt_t word, unpackword;
61 fRawReader->Select(13);
63 if (!fRawReader->ReadNextInt(fData)) return kFALSE;
66 Int_t size=fRawReader->GetDataSize();
67 for (Int_t i=0; i<size/32; i++)
71 fRawReader->ReadNextInt(word);
72 unpackword=UnpackWord(word,0,5);
77 fRawReader->ReadNextInt(word);
78 unpackword=UnpackWord(word,8,31);
80 fTimeTDC1->AddAt(fTime,fPMTId);
84 fRawReader->ReadNextInt(word);
85 unpackword=UnpackWord(word,0,5);
90 fRawReader->ReadNextInt(word);
92 unpackword=UnpackWord(word,8,31);
94 fTimeTDC2->AddAt(fTime,fPMTId);
98 fRawReader->ReadNextInt(word);
99 unpackword=UnpackWord(word,0,5);
104 fRawReader->ReadNextInt(word);
105 unpackword= UnpackWord(word,8,31);
107 fChargeADC1 -> AddAt(fADC, fPMTId);
112 fRawReader->ReadNextInt(word);
113 unpackword=UnpackWord(word,0,5);
118 fRawReader->ReadNextInt(word);
120 unpackword= UnpackWord(word,8,31);
122 fChargeADC2 -> AddAt(fADC, fPMTId);
128 //--------------------------------------------
129 void AliSTARTRawReader::GetTime (TArrayI &o)
135 o[i]=fTimeTDC1->At(i);
138 //--------------------------------------------
139 //--------------------------------------------
140 void AliSTARTRawReader::GetADC (TArrayI &o)
146 o[i]=fChargeADC1->At(i);