X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PHOS%2FAliPHOSClusterizer.cxx;h=f88550f922d21449a7d4b7f5f72a5cf405072141;hb=77c17385a109d172bbd5eb3ad4faed430078fda2;hp=ca6c5ace4486484366cf038b06402c5ea2a779fc;hpb=88cb7938ca21d4a80991d4e7aa564008c29340f7;p=u%2Fmrichter%2FAliRoot.git diff --git a/PHOS/AliPHOSClusterizer.cxx b/PHOS/AliPHOSClusterizer.cxx index ca6c5ace448..f88550f922d 100644 --- a/PHOS/AliPHOSClusterizer.cxx +++ b/PHOS/AliPHOSClusterizer.cxx @@ -13,54 +13,101 @@ * provided "as is" without express or implied warranty. * **************************************************************************/ -/* $Id$ */ - //_________________________________________________________________________ // Base class for the clusterization algorithm (pure abstract) //*-- //*-- Author: Yves Schutz SUBATECH ////////////////////////////////////////////////////////////////////////////// -// --- ROOT system --- -#include "TGeometry.h" -#include "TDirectory.h" -#include "TFile.h" -#include "TTree.h" - -// --- Standard library --- -#include +#include +#include -// --- AliRoot header files --- -#include "AliRun.h" #include "AliPHOSClusterizer.h" -#include "AliHeader.h" -#include "AliPHOSGetter.h" -#include "AliPHOSSDigitizer.h" -#include "AliPHOSDigitizer.h" +#include "AliPHOSDigit.h" +#include "AliLog.h" ClassImp(AliPHOSClusterizer) +AliPHOSCalibData * AliPHOSClusterizer::fgCalibData = 0 ; + //____________________________________________________________________________ - AliPHOSClusterizer::AliPHOSClusterizer():TTask("","") +AliPHOSClusterizer::AliPHOSClusterizer(): + fGeom(NULL), + fDigitsArr(0), + fTreeR(0), + fEMCRecPoints(0), + fCPVRecPoints(0) { // ctor - - fEventFolderName = "" ; + fDigitsArr = new TClonesArray("AliPHOSDigit",100); + fEMCRecPoints = new TObjArray(100) ; + fEMCRecPoints ->SetName("EMCRECPOINTS") ; + fCPVRecPoints = new TObjArray(100) ; + fCPVRecPoints ->SetName("CPVRECPOINTS") ; } //____________________________________________________________________________ -AliPHOSClusterizer::AliPHOSClusterizer(const TString alirunFileName, const TString eventFolderName): - TTask("PHOS"+AliConfig::fgkReconstructionerTaskName, alirunFileName), fEventFolderName(eventFolderName) +AliPHOSClusterizer::AliPHOSClusterizer(AliPHOSGeometry *geom): + fGeom(geom), + fDigitsArr(0), + fTreeR(0), + fEMCRecPoints(0), + fCPVRecPoints(0) { // ctor - + fDigitsArr = new TClonesArray("AliPHOSDigit",100); + fEMCRecPoints = new TObjArray(100) ; + fEMCRecPoints ->SetName("EMCRECPOINTS") ; + fCPVRecPoints = new TObjArray(100) ; + fCPVRecPoints ->SetName("CPVRECPOINTS") ; } //____________________________________________________________________________ AliPHOSClusterizer::~AliPHOSClusterizer() { // dtor - + if (fDigitsArr) { + fDigitsArr->Delete(); + delete fDigitsArr; + } + if (fEMCRecPoints) { + fEMCRecPoints->Delete(); + delete fEMCRecPoints; + } + if (fCPVRecPoints) { + fCPVRecPoints->Delete(); + delete fCPVRecPoints; + } +} + +//____________________________________________________________________________ +void AliPHOSClusterizer::SetInput(TTree * digitsTree) +{ + // Get the tree with digits and sets + // the input array with digits for PHOS + TBranch *branch = digitsTree->GetBranch("PHOS"); + if (!branch) { + AliError("can't get the branch with the PHOS digits !"); + return; + } + fDigitsArr->Clear(); + branch->SetAddress(&fDigitsArr); + branch->GetEntry(0); } +//____________________________________________________________________________ +void AliPHOSClusterizer::SetOutput(TTree * clustersTree) +{ + // Set the output clusters tree, + // creates the arrays for EMC and CPV, + // and set the corresponding branch addresses + fTreeR = clustersTree; + + AliDebug(9, "Making array for EMC clusters"); + Int_t split = 0; + Int_t bufsize = 32000; + fTreeR->Branch("PHOSEmcRP", "TObjArray", &fEMCRecPoints, bufsize, split); + AliDebug(9, "Making array for CPV clusters"); + fTreeR->Branch("PHOSCpvRP", "TObjArray", &fCPVRecPoints, bufsize, split); +}