#include "AliRawReader.h"
#include "AliACORDEReconstructor.h"
#include "AliACORDERawStream.h"
#include "AliESDEvent.h"
#include "AliACORDEdigit.h"
#include "AliACORDERecoParam.h"
ClassImp(AliACORDEReconstructor)
AliACORDEReconstructor:: AliACORDEReconstructor():
AliReconstructor(),
fESDACORDE(0x0),
fAcordeRecoParam(0x0),
fCalibData(0x0),
fDigitsArray(0)
{
fCalibData = GetCalibData();
fAcordeRecoParam = GetRecoParam();
}
AliACORDECalibData *AliACORDEReconstructor::GetCalibData() const
{
return 0x0;
}
AliACORDERecoParam *AliACORDEReconstructor::GetRecoParam() const
{
return 0x0;
}
AliACORDEReconstructor& AliACORDEReconstructor::operator =
(const AliACORDEReconstructor& )
{
Fatal("operator =", "assignment operator not implemented");
return *this;
}
AliACORDEReconstructor::~AliACORDEReconstructor()
{
delete fESDACORDE;
delete fDigitsArray;
}
void AliACORDEReconstructor::Init()
{
fESDACORDE = new AliESDACORDE;
}
void AliACORDEReconstructor::ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const
{
if (!digitsTree) {
AliError("No digits tree!");
return;
}
if (!fDigitsArray)
fDigitsArray = new TClonesArray("AliACORDEdigit", 60);
digitsTree->Branch("ACORDEdigit", &fDigitsArray);
rawReader->Reset();
AliACORDERawStream rawStream(rawReader);
if (rawStream.Next()) {
for(Int_t iChannel = 0; iChannel < 60; iChannel++) {
Int_t index = iChannel / 30;
Int_t bit = iChannel % 30;
if (rawStream.GetWord(index) & (1 << bit))
new ((*fDigitsArray)[fDigitsArray->GetEntriesFast()]) AliACORDEdigit(iChannel,0);
}
}
digitsTree->Fill();
fDigitsArray->Clear();
}
void AliACORDEReconstructor::FillESD(TTree* digitsTree, TTree* ,AliESDEvent* esd) const
{
if (!digitsTree)
{
AliError("No digits tree!");
return;
}
TBranch* digitBranch = digitsTree->GetBranch("ACORDEdigit");
if (!digitBranch) {
AliError("No ACORDE digits branch found!");
return;
}
digitBranch->SetAddress(&fDigitsArray);
digitsTree->GetEvent(0);
Bool_t AcoHitSingle[60],AcoHitMulti[60];
for(Int_t i = 0; i < 60; i++) { AcoHitSingle[i] = AcoHitMulti[i] = kFALSE; }
Int_t nDigits = fDigitsArray->GetEntriesFast();
for (Int_t d=0; d<nDigits; d++) {
AliACORDEdigit* digit = (AliACORDEdigit*) fDigitsArray->At(d);
Int_t module = digit->GetModule();
AcoHitSingle[module] = kTRUE;
AcoHitMulti[module] = kTRUE;
}
if (!esd) {
AliError("NO ACORDE ESD branch found!");
return;
}
TString ActiveTriggerDetector = esd->GetFiredTriggerClasses();
if (ActiveTriggerDetector.Contains("ASL")) fESDACORDE->SetACORDEBitPattern(AcoHitSingle);
else if (ActiveTriggerDetector.Contains("AMU")) fESDACORDE->SetACORDEBitPattern(AcoHitMulti);
else fESDACORDE->SetACORDEBitPattern(AcoHitSingle);
if (esd)
{
AliDebug(1, Form("Writing ACORDE data to ESD Tree"));
esd->SetACORDEData(fESDACORDE);
}
fDigitsArray->Clear();
}
AliACORDEReconstructor.cxx:1 AliACORDEReconstructor.cxx:2 AliACORDEReconstructor.cxx:3 AliACORDEReconstructor.cxx:4 AliACORDEReconstructor.cxx:5 AliACORDEReconstructor.cxx:6 AliACORDEReconstructor.cxx:7 AliACORDEReconstructor.cxx:8 AliACORDEReconstructor.cxx:9 AliACORDEReconstructor.cxx:10 AliACORDEReconstructor.cxx:11 AliACORDEReconstructor.cxx:12 AliACORDEReconstructor.cxx:13 AliACORDEReconstructor.cxx:14 AliACORDEReconstructor.cxx:15 AliACORDEReconstructor.cxx:16 AliACORDEReconstructor.cxx:17 AliACORDEReconstructor.cxx:18 AliACORDEReconstructor.cxx:19 AliACORDEReconstructor.cxx:20 AliACORDEReconstructor.cxx:21 AliACORDEReconstructor.cxx:22 AliACORDEReconstructor.cxx:23 AliACORDEReconstructor.cxx:24 AliACORDEReconstructor.cxx:25 AliACORDEReconstructor.cxx:26 AliACORDEReconstructor.cxx:27 AliACORDEReconstructor.cxx:28 AliACORDEReconstructor.cxx:29 AliACORDEReconstructor.cxx:30 AliACORDEReconstructor.cxx:31 AliACORDEReconstructor.cxx:32 AliACORDEReconstructor.cxx:33 AliACORDEReconstructor.cxx:34 AliACORDEReconstructor.cxx:35 AliACORDEReconstructor.cxx:36 AliACORDEReconstructor.cxx:37 AliACORDEReconstructor.cxx:38 AliACORDEReconstructor.cxx:39 AliACORDEReconstructor.cxx:40 AliACORDEReconstructor.cxx:41 AliACORDEReconstructor.cxx:42 AliACORDEReconstructor.cxx:43 AliACORDEReconstructor.cxx:44 AliACORDEReconstructor.cxx:45 AliACORDEReconstructor.cxx:46 AliACORDEReconstructor.cxx:47 AliACORDEReconstructor.cxx:48 AliACORDEReconstructor.cxx:49 AliACORDEReconstructor.cxx:50 AliACORDEReconstructor.cxx:51 AliACORDEReconstructor.cxx:52 AliACORDEReconstructor.cxx:53 AliACORDEReconstructor.cxx:54 AliACORDEReconstructor.cxx:55 AliACORDEReconstructor.cxx:56 AliACORDEReconstructor.cxx:57 AliACORDEReconstructor.cxx:58 AliACORDEReconstructor.cxx:59 AliACORDEReconstructor.cxx:60 AliACORDEReconstructor.cxx:61 AliACORDEReconstructor.cxx:62 AliACORDEReconstructor.cxx:63 AliACORDEReconstructor.cxx:64 AliACORDEReconstructor.cxx:65 AliACORDEReconstructor.cxx:66 AliACORDEReconstructor.cxx:67 AliACORDEReconstructor.cxx:68 AliACORDEReconstructor.cxx:69 AliACORDEReconstructor.cxx:70 AliACORDEReconstructor.cxx:71 AliACORDEReconstructor.cxx:72 AliACORDEReconstructor.cxx:73 AliACORDEReconstructor.cxx:74 AliACORDEReconstructor.cxx:75 AliACORDEReconstructor.cxx:76 AliACORDEReconstructor.cxx:77 AliACORDEReconstructor.cxx:78 AliACORDEReconstructor.cxx:79 AliACORDEReconstructor.cxx:80 AliACORDEReconstructor.cxx:81 AliACORDEReconstructor.cxx:82 AliACORDEReconstructor.cxx:83 AliACORDEReconstructor.cxx:84 AliACORDEReconstructor.cxx:85 AliACORDEReconstructor.cxx:86 AliACORDEReconstructor.cxx:87 AliACORDEReconstructor.cxx:88 AliACORDEReconstructor.cxx:89 AliACORDEReconstructor.cxx:90 AliACORDEReconstructor.cxx:91 AliACORDEReconstructor.cxx:92 AliACORDEReconstructor.cxx:93 AliACORDEReconstructor.cxx:94 AliACORDEReconstructor.cxx:95 AliACORDEReconstructor.cxx:96 AliACORDEReconstructor.cxx:97 AliACORDEReconstructor.cxx:98 AliACORDEReconstructor.cxx:99 AliACORDEReconstructor.cxx:100 AliACORDEReconstructor.cxx:101 AliACORDEReconstructor.cxx:102 AliACORDEReconstructor.cxx:103 AliACORDEReconstructor.cxx:104 AliACORDEReconstructor.cxx:105 AliACORDEReconstructor.cxx:106 AliACORDEReconstructor.cxx:107 AliACORDEReconstructor.cxx:108 AliACORDEReconstructor.cxx:109 AliACORDEReconstructor.cxx:110 AliACORDEReconstructor.cxx:111 AliACORDEReconstructor.cxx:112 AliACORDEReconstructor.cxx:113 AliACORDEReconstructor.cxx:114 AliACORDEReconstructor.cxx:115 AliACORDEReconstructor.cxx:116 AliACORDEReconstructor.cxx:117 AliACORDEReconstructor.cxx:118 AliACORDEReconstructor.cxx:119 AliACORDEReconstructor.cxx:120 AliACORDEReconstructor.cxx:121 AliACORDEReconstructor.cxx:122 AliACORDEReconstructor.cxx:123 AliACORDEReconstructor.cxx:124 AliACORDEReconstructor.cxx:125 AliACORDEReconstructor.cxx:126 AliACORDEReconstructor.cxx:127 AliACORDEReconstructor.cxx:128 AliACORDEReconstructor.cxx:129 AliACORDEReconstructor.cxx:130 AliACORDEReconstructor.cxx:131 AliACORDEReconstructor.cxx:132 AliACORDEReconstructor.cxx:133 AliACORDEReconstructor.cxx:134 AliACORDEReconstructor.cxx:135 AliACORDEReconstructor.cxx:136 AliACORDEReconstructor.cxx:137 AliACORDEReconstructor.cxx:138 AliACORDEReconstructor.cxx:139 AliACORDEReconstructor.cxx:140 AliACORDEReconstructor.cxx:141 AliACORDEReconstructor.cxx:142 AliACORDEReconstructor.cxx:143 AliACORDEReconstructor.cxx:144 AliACORDEReconstructor.cxx:145 AliACORDEReconstructor.cxx:146 AliACORDEReconstructor.cxx:147 AliACORDEReconstructor.cxx:148 AliACORDEReconstructor.cxx:149 AliACORDEReconstructor.cxx:150 AliACORDEReconstructor.cxx:151 AliACORDEReconstructor.cxx:152 AliACORDEReconstructor.cxx:153 AliACORDEReconstructor.cxx:154 AliACORDEReconstructor.cxx:155 AliACORDEReconstructor.cxx:156 AliACORDEReconstructor.cxx:157 AliACORDEReconstructor.cxx:158 AliACORDEReconstructor.cxx:159 AliACORDEReconstructor.cxx:160