#include <TParameter.h>
#include "AliRawReader.h"
#include "AliGRPObject.h"
#include "AliCDBManager.h"
#include "AliCDBStorage.h"
#include "AliCDBEntry.h"
#include "AliESDEvent.h"
#include "AliADReconstructor.h"
#include "AliADdigit.h"
#include "AliESDAD.h"
#include "AliADConst.h"
#include "AliADCalibData.h"
#include "AliADRawStream.h"
ClassImp(AliADReconstructor)
AliADReconstructor:: AliADReconstructor():
AliReconstructor(),
fESDAD(0x0),
fCalibData(NULL),
fDigitsArray(0)
{
fCalibData = GetCalibData();
}
AliADReconstructor& AliADReconstructor::operator =
(const AliADReconstructor& )
{
Fatal("operator =", "assignment operator not implemented");
return *this;
}
AliADReconstructor::~AliADReconstructor()
{
delete fESDAD;
delete fDigitsArray;
}
void AliADReconstructor::Init()
{
fESDAD = new AliESDAD;
}
void AliADReconstructor::ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const
{
if (!digitsTree) {
AliError("No digits tree!");
return;
}
if (!fDigitsArray){
fDigitsArray = new TClonesArray("AliADdigit", 16);
digitsTree->Branch("ADDigit", &fDigitsArray);
}
rawReader->Reset();
AliADRawStream rawStream(rawReader);
if (rawStream.Next()) {
for(Int_t iChannel=0; iChannel < 16; ++iChannel) {
Int_t offlineCh = rawStream.GetOfflineChannel(iChannel);
Short_t chargeADC[kNClocks];
for(Int_t iClock=0; iClock < kNClocks; ++iClock) {
chargeADC[iClock] = rawStream.GetPedestal(iChannel,iClock);
}
Bool_t integrator = rawStream.GetIntegratorFlag(iChannel,kNClocks/2);
Bool_t BBflag = rawStream.GetBBFlag(iChannel,kNClocks/2);
Bool_t BGflag = rawStream.GetBGFlag(iChannel,kNClocks/2);
Int_t board = AliADCalibData::GetBoardNumber(offlineCh);
Float_t time = rawStream.GetTime(iChannel)*fCalibData->GetTimeResolution(board);
Float_t width = rawStream.GetWidth(iChannel)*fCalibData->GetWidthResolution(board);
if(!fCalibData->IsChannelDead(iChannel)){
new ((*fDigitsArray)[fDigitsArray->GetEntriesFast()]) AliADdigit(offlineCh, time, width,integrator, chargeADC, BBflag, BGflag);
}
}
digitsTree->Fill();
}
fDigitsArray->Clear();
}
void AliADReconstructor::FillESD(TTree* digitsTree, TTree* ,AliESDEvent* esd) const
{
printf("Running AD Reconstruction \n");
if (!digitsTree)
{
AliError("No digits tree!");
return;
}
TBranch* digitBranch = digitsTree->GetBranch("ADdigit");
if (!digitBranch) {
AliError("No AD digits branch found!");
return;
}
digitBranch->SetAddress(&fDigitsArray);
digitsTree->GetEvent(0);
Bool_t ADHits[16];
for(Int_t i = 0; i < 16; i++) { ADHits[i] = kFALSE; }
Int_t nDigits = fDigitsArray->GetEntriesFast();
for (Int_t d=0; d<nDigits; d++) {
AliADdigit* digit = (AliADdigit*) fDigitsArray->At(d);
Int_t module = digit->PMNumber();
ADHits[module] = kTRUE;
}
if (!esd) {
AliError("NO AD ESD branch found!");
return;
}
fESDAD->SetADBitCell(ADHits);
if (esd)
{
AliDebug(1, Form("Writing AD data to ESD Tree"));
esd->SetADData(fESDAD);
}
fDigitsArray->Clear();
}
AliADCalibData* AliADReconstructor::GetCalibData() const
{
AliCDBManager *man = AliCDBManager::Instance();
AliCDBEntry *entry=0;
man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
man->SetRun(1);
entry = man->Get("AD/Calib/Data");
AliADCalibData *calibdata = 0;
if (entry) calibdata = (AliADCalibData*) entry->GetObject();
if (!calibdata) AliFatal("No calibration data from calibration database !");
return calibdata;
}
AliADReconstructor.cxx:10 AliADReconstructor.cxx:11 AliADReconstructor.cxx:12 AliADReconstructor.cxx:13 AliADReconstructor.cxx:14 AliADReconstructor.cxx:15 AliADReconstructor.cxx:16 AliADReconstructor.cxx:17 AliADReconstructor.cxx:18 AliADReconstructor.cxx:19 AliADReconstructor.cxx:20 AliADReconstructor.cxx:21 AliADReconstructor.cxx:22 AliADReconstructor.cxx:23 AliADReconstructor.cxx:24 AliADReconstructor.cxx:25 AliADReconstructor.cxx:26 AliADReconstructor.cxx:27 AliADReconstructor.cxx:28 AliADReconstructor.cxx:29 AliADReconstructor.cxx:30 AliADReconstructor.cxx:31 AliADReconstructor.cxx:32 AliADReconstructor.cxx:33 AliADReconstructor.cxx:34 AliADReconstructor.cxx:35 AliADReconstructor.cxx:36 AliADReconstructor.cxx:37 AliADReconstructor.cxx:38 AliADReconstructor.cxx:39 AliADReconstructor.cxx:40 AliADReconstructor.cxx:41 AliADReconstructor.cxx:42 AliADReconstructor.cxx:43 AliADReconstructor.cxx:44 AliADReconstructor.cxx:45 AliADReconstructor.cxx:46 AliADReconstructor.cxx:47 AliADReconstructor.cxx:48 AliADReconstructor.cxx:49 AliADReconstructor.cxx:50 AliADReconstructor.cxx:51 AliADReconstructor.cxx:52 AliADReconstructor.cxx:53 AliADReconstructor.cxx:54 AliADReconstructor.cxx:55 AliADReconstructor.cxx:56 AliADReconstructor.cxx:57 AliADReconstructor.cxx:58 AliADReconstructor.cxx:59 AliADReconstructor.cxx:60 AliADReconstructor.cxx:61 AliADReconstructor.cxx:62 AliADReconstructor.cxx:63 AliADReconstructor.cxx:64 AliADReconstructor.cxx:65 AliADReconstructor.cxx:66 AliADReconstructor.cxx:67 AliADReconstructor.cxx:68 AliADReconstructor.cxx:69 AliADReconstructor.cxx:70 AliADReconstructor.cxx:71 AliADReconstructor.cxx:72 AliADReconstructor.cxx:73 AliADReconstructor.cxx:74 AliADReconstructor.cxx:75 AliADReconstructor.cxx:76 AliADReconstructor.cxx:77 AliADReconstructor.cxx:78 AliADReconstructor.cxx:79 AliADReconstructor.cxx:80 AliADReconstructor.cxx:81 AliADReconstructor.cxx:82 AliADReconstructor.cxx:83 AliADReconstructor.cxx:84 AliADReconstructor.cxx:85 AliADReconstructor.cxx:86 AliADReconstructor.cxx:87 AliADReconstructor.cxx:88 AliADReconstructor.cxx:89 AliADReconstructor.cxx:90 AliADReconstructor.cxx:91 AliADReconstructor.cxx:92 AliADReconstructor.cxx:93 AliADReconstructor.cxx:94 AliADReconstructor.cxx:95 AliADReconstructor.cxx:96 AliADReconstructor.cxx:97 AliADReconstructor.cxx:98 AliADReconstructor.cxx:99 AliADReconstructor.cxx:100 AliADReconstructor.cxx:101 AliADReconstructor.cxx:102 AliADReconstructor.cxx:103 AliADReconstructor.cxx:104 AliADReconstructor.cxx:105 AliADReconstructor.cxx:106 AliADReconstructor.cxx:107 AliADReconstructor.cxx:108 AliADReconstructor.cxx:109 AliADReconstructor.cxx:110 AliADReconstructor.cxx:111 AliADReconstructor.cxx:112 AliADReconstructor.cxx:113 AliADReconstructor.cxx:114 AliADReconstructor.cxx:115 AliADReconstructor.cxx:116 AliADReconstructor.cxx:117 AliADReconstructor.cxx:118 AliADReconstructor.cxx:119 AliADReconstructor.cxx:120 AliADReconstructor.cxx:121 AliADReconstructor.cxx:122 AliADReconstructor.cxx:123 AliADReconstructor.cxx:124 AliADReconstructor.cxx:125 AliADReconstructor.cxx:126 AliADReconstructor.cxx:127 AliADReconstructor.cxx:128 AliADReconstructor.cxx:129 AliADReconstructor.cxx:130 AliADReconstructor.cxx:131 AliADReconstructor.cxx:132 AliADReconstructor.cxx:133 AliADReconstructor.cxx:134 AliADReconstructor.cxx:135 AliADReconstructor.cxx:136 AliADReconstructor.cxx:137 AliADReconstructor.cxx:138 AliADReconstructor.cxx:139 AliADReconstructor.cxx:140 AliADReconstructor.cxx:141 AliADReconstructor.cxx:142 AliADReconstructor.cxx:143 AliADReconstructor.cxx:144 AliADReconstructor.cxx:145 AliADReconstructor.cxx:146 AliADReconstructor.cxx:147 AliADReconstructor.cxx:148 AliADReconstructor.cxx:149 AliADReconstructor.cxx:150 AliADReconstructor.cxx:151 AliADReconstructor.cxx:152 AliADReconstructor.cxx:153 AliADReconstructor.cxx:154 AliADReconstructor.cxx:155 AliADReconstructor.cxx:156 AliADReconstructor.cxx:157 AliADReconstructor.cxx:158 AliADReconstructor.cxx:159 AliADReconstructor.cxx:160 AliADReconstructor.cxx:161 AliADReconstructor.cxx:162 AliADReconstructor.cxx:163 AliADReconstructor.cxx:164 AliADReconstructor.cxx:165 AliADReconstructor.cxx:166 AliADReconstructor.cxx:167 AliADReconstructor.cxx:168 AliADReconstructor.cxx:169 AliADReconstructor.cxx:170 AliADReconstructor.cxx:171 AliADReconstructor.cxx:172 AliADReconstructor.cxx:173 AliADReconstructor.cxx:174 AliADReconstructor.cxx:175 AliADReconstructor.cxx:176 AliADReconstructor.cxx:177 AliADReconstructor.cxx:178 AliADReconstructor.cxx:179 AliADReconstructor.cxx:180 AliADReconstructor.cxx:181 AliADReconstructor.cxx:182 AliADReconstructor.cxx:183 AliADReconstructor.cxx:184 AliADReconstructor.cxx:185 AliADReconstructor.cxx:186 AliADReconstructor.cxx:187 AliADReconstructor.cxx:188 AliADReconstructor.cxx:189 AliADReconstructor.cxx:190 AliADReconstructor.cxx:191 AliADReconstructor.cxx:192 AliADReconstructor.cxx:193 AliADReconstructor.cxx:194 AliADReconstructor.cxx:195 AliADReconstructor.cxx:196 AliADReconstructor.cxx:197 AliADReconstructor.cxx:198 AliADReconstructor.cxx:199 AliADReconstructor.cxx:200