AliReconstructor(),\r
fESDACORDE(0x0),\r
fAcordeRecoParam(0x0),\r
- fCalibData(0x0)\r
+ fCalibData(0x0),\r
+ fDigitsArray(0)\r
{\r
// Default constructor \r
// Get calibration data\r
AliACORDEReconstructor::~AliACORDEReconstructor()\r
{\r
// destructor\r
- delete fESDACORDE; \r
+ delete fESDACORDE;\r
+ delete fDigitsArray;\r
}\r
\r
//_____________________________________________________________________________\r
return;\r
}\r
\r
- TClonesArray* digitsArray = new TClonesArray("AliACORDEdigit");\r
- digitsTree->Branch("ACORDEdigit", &digitsArray);\r
+ if (!fDigitsArray)\r
+ fDigitsArray = new TClonesArray("AliACORDEdigit", 60);\r
+\r
+ digitsTree->Branch("ACORDEdigit", &fDigitsArray);\r
\r
rawReader->Reset();\r
AliACORDERawStream rawStream(rawReader);\r
Int_t index = iChannel / 30;\r
Int_t bit = iChannel % 30;\r
if (rawStream.GetWord(index) & (1 << bit))\r
- new ((*digitsArray)[digitsArray->GetEntriesFast()]) AliACORDEdigit(iChannel+1,0);\r
+ new ((*fDigitsArray)[fDigitsArray->GetEntriesFast()]) AliACORDEdigit(iChannel,0);\r
}\r
}\r
\r
digitsTree->Fill();\r
- \r
+\r
+ fDigitsArray->Clear();\r
}\r
\r
void AliACORDEReconstructor::FillESD(TTree* digitsTree, TTree* /*clustersTree*/,AliESDEvent* esd) const\r
return;\r
}\r
\r
- TClonesArray* digitsArray = NULL;\r
TBranch* digitBranch = digitsTree->GetBranch("ACORDEdigit");\r
if (!digitBranch) {\r
AliError("No ACORDE digits branch found!");\r
return;\r
}\r
- digitBranch->SetAddress(&digitsArray);\r
+ digitBranch->SetAddress(&fDigitsArray);\r
\r
digitsTree->GetEvent(0);\r
\r
Bool_t AcoHitSingle[60],AcoHitMulti[60];\r
for(Int_t i = 0; i < 60; i++) { AcoHitSingle[i] = AcoHitMulti[i] = kFALSE; }\r
\r
- Int_t nDigits = digitsArray->GetEntriesFast();\r
+ Int_t nDigits = fDigitsArray->GetEntriesFast();\r
\r
for (Int_t d=0; d<nDigits; d++) { \r
- AliACORDEdigit* digit = (AliACORDEdigit*)digitsArray->At(d);\r
+ AliACORDEdigit* digit = (AliACORDEdigit*) fDigitsArray->At(d);\r
Int_t module = digit->GetModule();\r
\r
- AcoHitSingle[module-1] = kTRUE;\r
- AcoHitMulti[module-1] = kTRUE;\r
+ AcoHitSingle[module] = kTRUE;\r
+ AcoHitMulti[module] = kTRUE;\r
} \r
+ if (!esd) {\r
+ AliError("NO ACORDE ESD branch found!");\r
+ return;\r
+}\r
TString ActiveTriggerDetector = esd->GetFiredTriggerClasses();\r
if (ActiveTriggerDetector.Contains("ASL")) fESDACORDE->SetACORDEBitPattern(AcoHitSingle);\r
else if (ActiveTriggerDetector.Contains("AMU")) fESDACORDE->SetACORDEBitPattern(AcoHitMulti);\r
{\r
AliDebug(1, Form("Writing ACORDE data to ESD Tree"));\r
esd->SetACORDEData(fESDACORDE);\r
- } \r
+ }\r
+\r
+ fDigitsArray->Clear();\r
}\r
\r
\r