#include <TDirectory.h>
#include <TFile.h>
#include "AliRawReaderDate.h"
#include "AliRawReader.h"
#include "AliRawEventHeaderBase.h"
#include "AliAltroMapping.h"
#include "AliAltroRawStream.h"
#include "AliTPCROC.h"
#include "AliTPCRawStreamV3.h"
#include "AliLog.h"
#include "TTreeStream.h"
#include "event.h"
#include "AliTPCCalibRawBase.h"
ClassImp(AliTPCCalibRawBase)
AliTPCCalibRawBase::AliTPCCalibRawBase() :
TNamed(),
fFirstTimeBin(0),
fLastTimeBin(1000),
fNevents(0),
fDebugLevel(0),
fStreamLevel(0),
fRunNumber(0),
fFirstTimeStamp(0),
fLastTimeStamp(0),
fTimeStamp(0),
fEventType(0),
fAltroL1Phase(0),
fAltroL1PhaseTB(0),
fCurrRCUId(-1),
fPrevRCUId(-1),
fCurrDDLNum(-1),
fPrevDDLNum(-1),
fUseL1Phase(kTRUE),
fDebugStreamer(0x0),
fAltroRawStream(0x0),
fMapping(0x0),
fROC(AliTPCROC::Instance())
{
}
AliTPCCalibRawBase::AliTPCCalibRawBase(const AliTPCCalibRawBase &calib) :
TNamed(calib),
fFirstTimeBin(calib.fFirstTimeBin),
fLastTimeBin(calib.fLastTimeBin),
fNevents(calib.fNevents),
fDebugLevel(calib.fDebugLevel),
fStreamLevel(calib.fStreamLevel),
fRunNumber(calib.fRunNumber),
fFirstTimeStamp(calib.fFirstTimeStamp),
fLastTimeStamp(calib.fLastTimeStamp),
fTimeStamp(0),
fEventType(0),
fAltroL1Phase(0),
fAltroL1PhaseTB(0),
fCurrRCUId(-1),
fPrevRCUId(-1),
fCurrDDLNum(-1),
fPrevDDLNum(-1),
fUseL1Phase(kTRUE),
fDebugStreamer(0x0),
fAltroRawStream(0x0),
fMapping(0x0),
fROC(AliTPCROC::Instance())
{
}
AliTPCCalibRawBase::~AliTPCCalibRawBase()
{
if (fDebugStreamer) delete fDebugStreamer;
}
AliTPCCalibRawBase& AliTPCCalibRawBase::operator = (const AliTPCCalibRawBase &source)
{
if (&source == this) return *this;
new (this) AliTPCCalibRawBase(source);
return *this;
}
Bool_t AliTPCCalibRawBase::ProcessEvent(AliTPCRawStreamV3 * const rawStreamV3)
{
ResetEvent();
Bool_t withInput = kFALSE;
fAltroL1Phase=0;
fAltroL1PhaseTB=0;
while ( rawStreamV3->NextDDL() ){
if (AliLog::GetGlobalDebugLevel()>2) rawStreamV3->PrintRCUTrailer();
fPrevDDLNum=-1;
fCurrRCUId=rawStreamV3->GetRCUId();
fCurrDDLNum=rawStreamV3->GetDDLNumber();
if (fUseL1Phase){
fAltroL1Phase = rawStreamV3->GetL1Phase();
fAltroL1PhaseTB = (fAltroL1Phase*1e09/100.);
AliDebug(1, Form("L1Phase: %.2e (%03d)\n",fAltroL1PhaseTB,fCurrDDLNum));
}
UpdateDDL();
while ( rawStreamV3->NextChannel() ){
Int_t isector = rawStreamV3->GetSector();
Int_t iRow = rawStreamV3->GetRow();
Int_t iPad = rawStreamV3->GetPad();
while ( rawStreamV3->NextBunch() ){
UInt_t startTbin = rawStreamV3->GetStartTimeBin();
Int_t bunchlength = rawStreamV3->GetBunchLength();
const UShort_t *sig = rawStreamV3->GetSignals();
ProcessBunch(isector,iRow,iPad,bunchlength,startTbin,sig);
for (Int_t iTimeBin = 0; iTimeBin<bunchlength; iTimeBin++){
Float_t signal=(Float_t)sig[iTimeBin];
Update(isector,iRow,iPad,startTbin--,signal);
fPrevRCUId=fCurrRCUId;
fPrevDDLNum=fCurrDDLNum;
withInput = kTRUE;
}
}
}
}
if (withInput){
EndEvent();
}
return withInput;
}
Bool_t AliTPCCalibRawBase::ProcessEvent(AliRawReader * const rawReader)
{
AliRawEventHeaderBase* eventHeader = (AliRawEventHeaderBase*)rawReader->GetEventHeader();
if (eventHeader){
fTimeStamp = eventHeader->Get("Timestamp");
fRunNumber = eventHeader->Get("RunNb");
fEventType = eventHeader->Get("Type");
}
if (!fFirstTimeStamp) fFirstTimeStamp=fTimeStamp;
AliTPCRawStreamV3 *rawStreamV3 = new AliTPCRawStreamV3(rawReader, (AliAltroMapping**)fMapping);
Bool_t res=ProcessEvent(rawStreamV3);
fLastTimeStamp=fTimeStamp;
delete rawStreamV3;
return res;
}
Bool_t AliTPCCalibRawBase::ProcessEvent(eventHeaderStruct * const event)
{
fRunNumber=event->eventRunNb;
fTimeStamp=event->eventTimestamp;
if (!fFirstTimeStamp) fFirstTimeStamp=fTimeStamp;
fLastTimeStamp=fTimeStamp;
fEventType=event->eventType;
AliRawReader *rawReader = new AliRawReaderDate((void*)event);
AliTPCRawStreamV3 *rawStreamV3 = new AliTPCRawStreamV3(rawReader, (AliAltroMapping**)fMapping);
Bool_t result=ProcessEvent(rawStreamV3);
delete rawStreamV3;
delete rawReader;
return result;
}
void AliTPCCalibRawBase::DumpToFile(const Char_t *filename, const Char_t *dir, Bool_t append)
{
TString sDir(dir);
TString option;
if ( append )
option = "update";
else
option = "recreate";
TDirectory *backup = gDirectory;
TFile f(filename,option.Data());
f.cd();
if ( !sDir.IsNull() ){
f.mkdir(sDir.Data());
f.cd(sDir);
}
this->Write();
f.Close();
if ( backup ) backup->cd();
}
TTreeSRedirector *AliTPCCalibRawBase::GetDebugStreamer(){
if (fStreamLevel==0) return 0;
if (fDebugStreamer) return fDebugStreamer;
TString dsName;
dsName=GetName();
dsName+="Debug.root";
dsName.ReplaceAll(" ","");
fDebugStreamer = new TTreeSRedirector(dsName.Data());
return fDebugStreamer;
}
void AliTPCCalibRawBase::MergeBase(const AliTPCCalibRawBase *calib)
{
if (calib->fFirstTimeStamp<fFirstTimeStamp) fFirstTimeStamp=calib->fFirstTimeStamp;
if (calib->fLastTimeStamp>fLastTimeStamp) fLastTimeStamp =calib->fLastTimeStamp;
}
AliTPCCalibRawBase.cxx:10 AliTPCCalibRawBase.cxx:11 AliTPCCalibRawBase.cxx:12 AliTPCCalibRawBase.cxx:13 AliTPCCalibRawBase.cxx:14 AliTPCCalibRawBase.cxx:15 AliTPCCalibRawBase.cxx:16 AliTPCCalibRawBase.cxx:17 AliTPCCalibRawBase.cxx:18 AliTPCCalibRawBase.cxx:19 AliTPCCalibRawBase.cxx:20 AliTPCCalibRawBase.cxx:21 AliTPCCalibRawBase.cxx:22 AliTPCCalibRawBase.cxx:23 AliTPCCalibRawBase.cxx:24 AliTPCCalibRawBase.cxx:25 AliTPCCalibRawBase.cxx:26 AliTPCCalibRawBase.cxx:27 AliTPCCalibRawBase.cxx:28 AliTPCCalibRawBase.cxx:29 AliTPCCalibRawBase.cxx:30 AliTPCCalibRawBase.cxx:31 AliTPCCalibRawBase.cxx:32 AliTPCCalibRawBase.cxx:33 AliTPCCalibRawBase.cxx:34 AliTPCCalibRawBase.cxx:35 AliTPCCalibRawBase.cxx:36 AliTPCCalibRawBase.cxx:37 AliTPCCalibRawBase.cxx:38 AliTPCCalibRawBase.cxx:39 AliTPCCalibRawBase.cxx:40 AliTPCCalibRawBase.cxx:41 AliTPCCalibRawBase.cxx:42 AliTPCCalibRawBase.cxx:43 AliTPCCalibRawBase.cxx:44 AliTPCCalibRawBase.cxx:45 AliTPCCalibRawBase.cxx:46 AliTPCCalibRawBase.cxx:47 AliTPCCalibRawBase.cxx:48 AliTPCCalibRawBase.cxx:49 AliTPCCalibRawBase.cxx:50 AliTPCCalibRawBase.cxx:51 AliTPCCalibRawBase.cxx:52 AliTPCCalibRawBase.cxx:53 AliTPCCalibRawBase.cxx:54 AliTPCCalibRawBase.cxx:55 AliTPCCalibRawBase.cxx:56 AliTPCCalibRawBase.cxx:57 AliTPCCalibRawBase.cxx:58 AliTPCCalibRawBase.cxx:59 AliTPCCalibRawBase.cxx:60 AliTPCCalibRawBase.cxx:61 AliTPCCalibRawBase.cxx:62 AliTPCCalibRawBase.cxx:63 AliTPCCalibRawBase.cxx:64 AliTPCCalibRawBase.cxx:65 AliTPCCalibRawBase.cxx:66 AliTPCCalibRawBase.cxx:67 AliTPCCalibRawBase.cxx:68 AliTPCCalibRawBase.cxx:69 AliTPCCalibRawBase.cxx:70 AliTPCCalibRawBase.cxx:71 AliTPCCalibRawBase.cxx:72 AliTPCCalibRawBase.cxx:73 AliTPCCalibRawBase.cxx:74 AliTPCCalibRawBase.cxx:75 AliTPCCalibRawBase.cxx:76 AliTPCCalibRawBase.cxx:77 AliTPCCalibRawBase.cxx:78 AliTPCCalibRawBase.cxx:79 AliTPCCalibRawBase.cxx:80 AliTPCCalibRawBase.cxx:81 AliTPCCalibRawBase.cxx:82 AliTPCCalibRawBase.cxx:83 AliTPCCalibRawBase.cxx:84 AliTPCCalibRawBase.cxx:85 AliTPCCalibRawBase.cxx:86 AliTPCCalibRawBase.cxx:87 AliTPCCalibRawBase.cxx:88 AliTPCCalibRawBase.cxx:89 AliTPCCalibRawBase.cxx:90 AliTPCCalibRawBase.cxx:91 AliTPCCalibRawBase.cxx:92 AliTPCCalibRawBase.cxx:93 AliTPCCalibRawBase.cxx:94 AliTPCCalibRawBase.cxx:95 AliTPCCalibRawBase.cxx:96 AliTPCCalibRawBase.cxx:97 AliTPCCalibRawBase.cxx:98 AliTPCCalibRawBase.cxx:99 AliTPCCalibRawBase.cxx:100 AliTPCCalibRawBase.cxx:101 AliTPCCalibRawBase.cxx:102 AliTPCCalibRawBase.cxx:103 AliTPCCalibRawBase.cxx:104 AliTPCCalibRawBase.cxx:105 AliTPCCalibRawBase.cxx:106 AliTPCCalibRawBase.cxx:107 AliTPCCalibRawBase.cxx:108 AliTPCCalibRawBase.cxx:109 AliTPCCalibRawBase.cxx:110 AliTPCCalibRawBase.cxx:111 AliTPCCalibRawBase.cxx:112 AliTPCCalibRawBase.cxx:113 AliTPCCalibRawBase.cxx:114 AliTPCCalibRawBase.cxx:115 AliTPCCalibRawBase.cxx:116 AliTPCCalibRawBase.cxx:117 AliTPCCalibRawBase.cxx:118 AliTPCCalibRawBase.cxx:119 AliTPCCalibRawBase.cxx:120 AliTPCCalibRawBase.cxx:121 AliTPCCalibRawBase.cxx:122 AliTPCCalibRawBase.cxx:123 AliTPCCalibRawBase.cxx:124 AliTPCCalibRawBase.cxx:125 AliTPCCalibRawBase.cxx:126 AliTPCCalibRawBase.cxx:127 AliTPCCalibRawBase.cxx:128 AliTPCCalibRawBase.cxx:129 AliTPCCalibRawBase.cxx:130 AliTPCCalibRawBase.cxx:131 AliTPCCalibRawBase.cxx:132 AliTPCCalibRawBase.cxx:133 AliTPCCalibRawBase.cxx:134 AliTPCCalibRawBase.cxx:135 AliTPCCalibRawBase.cxx:136 AliTPCCalibRawBase.cxx:137 AliTPCCalibRawBase.cxx:138 AliTPCCalibRawBase.cxx:139 AliTPCCalibRawBase.cxx:140 AliTPCCalibRawBase.cxx:141 AliTPCCalibRawBase.cxx:142 AliTPCCalibRawBase.cxx:143 AliTPCCalibRawBase.cxx:144 AliTPCCalibRawBase.cxx:145 AliTPCCalibRawBase.cxx:146 AliTPCCalibRawBase.cxx:147 AliTPCCalibRawBase.cxx:148 AliTPCCalibRawBase.cxx:149 AliTPCCalibRawBase.cxx:150 AliTPCCalibRawBase.cxx:151 AliTPCCalibRawBase.cxx:152 AliTPCCalibRawBase.cxx:153 AliTPCCalibRawBase.cxx:154 AliTPCCalibRawBase.cxx:155 AliTPCCalibRawBase.cxx:156 AliTPCCalibRawBase.cxx:157 AliTPCCalibRawBase.cxx:158 AliTPCCalibRawBase.cxx:159 AliTPCCalibRawBase.cxx:160 AliTPCCalibRawBase.cxx:161 AliTPCCalibRawBase.cxx:162 AliTPCCalibRawBase.cxx:163 AliTPCCalibRawBase.cxx:164 AliTPCCalibRawBase.cxx:165 AliTPCCalibRawBase.cxx:166 AliTPCCalibRawBase.cxx:167 AliTPCCalibRawBase.cxx:168 AliTPCCalibRawBase.cxx:169 AliTPCCalibRawBase.cxx:170 AliTPCCalibRawBase.cxx:171 AliTPCCalibRawBase.cxx:172 AliTPCCalibRawBase.cxx:173 AliTPCCalibRawBase.cxx:174 AliTPCCalibRawBase.cxx:175 AliTPCCalibRawBase.cxx:176 AliTPCCalibRawBase.cxx:177 AliTPCCalibRawBase.cxx:178 AliTPCCalibRawBase.cxx:179 AliTPCCalibRawBase.cxx:180 AliTPCCalibRawBase.cxx:181 AliTPCCalibRawBase.cxx:182 AliTPCCalibRawBase.cxx:183 AliTPCCalibRawBase.cxx:184 AliTPCCalibRawBase.cxx:185 AliTPCCalibRawBase.cxx:186 AliTPCCalibRawBase.cxx:187 AliTPCCalibRawBase.cxx:188 AliTPCCalibRawBase.cxx:189 AliTPCCalibRawBase.cxx:190 AliTPCCalibRawBase.cxx:191 AliTPCCalibRawBase.cxx:192 AliTPCCalibRawBase.cxx:193 AliTPCCalibRawBase.cxx:194 AliTPCCalibRawBase.cxx:195 AliTPCCalibRawBase.cxx:196 AliTPCCalibRawBase.cxx:197 AliTPCCalibRawBase.cxx:198 AliTPCCalibRawBase.cxx:199 AliTPCCalibRawBase.cxx:200 AliTPCCalibRawBase.cxx:201 AliTPCCalibRawBase.cxx:202 AliTPCCalibRawBase.cxx:203 AliTPCCalibRawBase.cxx:204 AliTPCCalibRawBase.cxx:205 AliTPCCalibRawBase.cxx:206 AliTPCCalibRawBase.cxx:207 AliTPCCalibRawBase.cxx:208 AliTPCCalibRawBase.cxx:209 AliTPCCalibRawBase.cxx:210 AliTPCCalibRawBase.cxx:211 AliTPCCalibRawBase.cxx:212 AliTPCCalibRawBase.cxx:213 AliTPCCalibRawBase.cxx:214 AliTPCCalibRawBase.cxx:215 AliTPCCalibRawBase.cxx:216 AliTPCCalibRawBase.cxx:217 AliTPCCalibRawBase.cxx:218 AliTPCCalibRawBase.cxx:219 AliTPCCalibRawBase.cxx:220 AliTPCCalibRawBase.cxx:221 AliTPCCalibRawBase.cxx:222 AliTPCCalibRawBase.cxx:223 AliTPCCalibRawBase.cxx:224 AliTPCCalibRawBase.cxx:225 AliTPCCalibRawBase.cxx:226 AliTPCCalibRawBase.cxx:227 AliTPCCalibRawBase.cxx:228 AliTPCCalibRawBase.cxx:229 AliTPCCalibRawBase.cxx:230 AliTPCCalibRawBase.cxx:231 AliTPCCalibRawBase.cxx:232 AliTPCCalibRawBase.cxx:233 AliTPCCalibRawBase.cxx:234 AliTPCCalibRawBase.cxx:235 AliTPCCalibRawBase.cxx:236 AliTPCCalibRawBase.cxx:237 AliTPCCalibRawBase.cxx:238 AliTPCCalibRawBase.cxx:239 AliTPCCalibRawBase.cxx:240 AliTPCCalibRawBase.cxx:241 AliTPCCalibRawBase.cxx:242 AliTPCCalibRawBase.cxx:243 AliTPCCalibRawBase.cxx:244 AliTPCCalibRawBase.cxx:245 AliTPCCalibRawBase.cxx:246 AliTPCCalibRawBase.cxx:247 AliTPCCalibRawBase.cxx:248 AliTPCCalibRawBase.cxx:249 AliTPCCalibRawBase.cxx:250 AliTPCCalibRawBase.cxx:251 AliTPCCalibRawBase.cxx:252 AliTPCCalibRawBase.cxx:253 AliTPCCalibRawBase.cxx:254 AliTPCCalibRawBase.cxx:255 AliTPCCalibRawBase.cxx:256 AliTPCCalibRawBase.cxx:257 AliTPCCalibRawBase.cxx:258 AliTPCCalibRawBase.cxx:259 AliTPCCalibRawBase.cxx:260 AliTPCCalibRawBase.cxx:261 AliTPCCalibRawBase.cxx:262 AliTPCCalibRawBase.cxx:263 AliTPCCalibRawBase.cxx:264 AliTPCCalibRawBase.cxx:265 AliTPCCalibRawBase.cxx:266