#ifndef ALIANALYSISTASKEMCALCLUSTERIZEFAST_H
#define ALIANALYSISTASKEMCALCLUSTERIZEFAST_H
class TObjArray;
class TClonesArray;
class AliAODEvent;
class AliESDEvent;
class AliEMCALCalibData;
class AliCaloCalibPedestal;
class AliEMCALClusterizer;
class AliEMCALAfterBurnerUF;
class AliEMCALRecParam;
class AliEMCALRecoUtils;
class AliVCaloCells;
class AliEMCALGeometry;
#include "AliAnalysisTaskSE.h"
class AliAnalysisTaskEMCALClusterizeFast : public AliAnalysisTaskSE {
public:
enum InputCellType {
kFEEData = 0,
kFEEDataMCOnly,
kFEEDataExcludeMC,
kPattern,
kL0FastORs,
kL0FastORsTC,
kL1FastORs
};
AliAnalysisTaskEMCALClusterizeFast();
AliAnalysisTaskEMCALClusterizeFast(const char *name);
virtual ~AliAnalysisTaskEMCALClusterizeFast();
public:
virtual void UserCreateOutputObjects();
virtual void UserExec(Option_t *option);
Bool_t GetAttachClusters() const { return fAttachClusters ; }
Bool_t GetSubBackground() const { return fSubBackground ; }
const TObjArray *GetClusters() const { return fClusterArr ; }
const TClonesArray *GetDigits() const { return fDigitsArr ; }
const TString &GeometryName() const { return fGeomName ; }
AliEMCALRecParam *GetRecParam() const { return fRecParam ; }
AliEMCALRecoUtils *GetRecoUtils() const { return fRecoUtils ; }
AliEMCALCalibData *GetCalibData() const { return fCalibData ; }
AliCaloCalibPedestal *GetPedData() const { return fPedestalData ; }
TGeoHMatrix *GetGeometryMatrix(Int_t i) const { return fGeomMatrix[i] ; }
const TString &GetCaloClustersName() const { return fCaloClustersName ; }
Int_t GetnPhi() const { return fNPhi ; }
Int_t GetnEta() const { return fNEta ; }
Int_t GetShiftPhi() const { return fShiftPhi ; }
Int_t GetShiftEta() const { return fShiftEta ; }
Bool_t GetTRUShift() const { return fTRUShift ; }
InputCellType GetInputCellType() const { return fInputCellType ; }
void JustUnfold(Bool_t yesno) { fJustUnfold = yesno ; }
void LoadOwnGeometryMatrices(Bool_t b) { fLoadGeomMatrices = b ; }
void SetAODBranchName(const char *name) { fOutputAODBrName = name ; }
void SetAttachClusters(Bool_t b) { fAttachClusters = b ; }
void SetCalibData(AliEMCALCalibData *d) { fCalibData = d ; }
void SetEMCALRecoUtils(AliEMCALRecoUtils *ru) { fRecoUtils = ru ; }
void SetGeometryMatrix(TGeoHMatrix* m, Int_t i) { fGeomMatrix[i] = m ; }
void SetGeometryName(const char *name) { fGeomName = name ; }
void SetLoadCalib(Bool_t b) { fLoadCalib = b ; }
void SetLoadPed(Bool_t b) { fLoadPed = b ; }
void SetOCDBPath(const char *path) { fOCDBpath = path ; }
void SetPedestalData(AliCaloCalibPedestal *d) { fPedestalData = d ; }
void SetSubBackground(Bool_t b) { fSubBackground = b ; }
void SetnPhi(Int_t n) { fNPhi = n ; }
void SetnEta(Int_t n) { fNEta = n ; }
void SetShiftPhi(Int_t n) { fShiftPhi = n ; }
void SetShiftEta(Int_t n) { fShiftEta = n ; }
void SetTRUShift(Bool_t yes) { fTRUShift = yes ; }
void SetInputCellType(InputCellType ic) { fInputCellType = ic ; }
void SetTrackName(const char *n) { fTrackName = n ; }
void SetCaloClustersName(const char *name) { fCaloClustersName = name ; }
void SetCaloCellsName(const char *name) { fCaloCellsName = name ; }
void SetUpdateCells(Bool_t b) { fDoUpdateCells = b ; }
void SetClusterize(Bool_t b) { fDoClusterize = b ; }
void SetClusterBadChannelCheck(Bool_t b) { fClusterBadChannelCheck = b ; }
void SetRejectExoticClusters(Bool_t b) { fRejectExoticClusters = b ; }
void SetRejectExoticCells(Bool_t b) { fRejectExoticCells = b ; }
void SetFiducial(Bool_t b) { fFiducial = b ; }
void SetDoNonLinearity(Bool_t b) { fDoNonLinearity = b ; }
void SetRecalDistToBadChannels(Bool_t b) { fRecalDistToBadChannels = b ; }
void SetCellMCLabelFromCluster(Int_t s) { fSetCellMCLabelFromCluster = s ; }
const TString &GetNewClusterArrayName() const { return GetCaloClustersName() ; }
void SetNewClusterArrayName(const char *name) { SetCaloClustersName(name) ; }
void SetOverwrite(Bool_t b) { if (b) SetCaloClustersName(""); else SetCaloClustersName("newCaloClusters");}
void SetRecalibrateCellsOnly(Bool_t b) { if (b) { SetUpdateCells(kTRUE); SetClusterize(kFALSE);} else { SetClusterize(kTRUE); } }
Bool_t GetRecalibrateOnly() const { return (Bool_t)(fDoUpdateCells && !fDoClusterize); }
Bool_t GetOverwrite() const { return fCaloClustersName.IsNull() ; }
protected:
Bool_t AcceptCell(Int_t cellNumber);
virtual void Clusterize();
virtual void FillDigitsArray();
virtual void Init();
virtual void RecPoints2Clusters(TClonesArray *clus);
virtual void UpdateCells();
virtual void UpdateClusters();
virtual void CalibrateClusters();
virtual void TrackClusterMatching(AliVCluster *c, TClonesArray *tarr);
virtual void CopyClusters(TClonesArray *orig, TClonesArray *dest);
Int_t fRun;
TClonesArray *fDigitsArr;
TObjArray *fClusterArr;
AliEMCALRecParam *fRecParam;
AliEMCALClusterizer *fClusterizer;
AliEMCALAfterBurnerUF *fUnfolder;
Bool_t fJustUnfold;
TString fGeomName;
Bool_t fGeomMatrixSet;
Bool_t fLoadGeomMatrices;
TGeoHMatrix *fGeomMatrix[12];
TString fOCDBpath;
AliEMCALCalibData *fCalibData;
AliCaloCalibPedestal *fPedestalData;
TClonesArray *fOutputAODBranch;
TString fOutputAODBrName;
AliEMCALRecoUtils *fRecoUtils;
Bool_t fLoadCalib;
Bool_t fLoadPed;
Bool_t fAttachClusters;
Bool_t fSubBackground;
Int_t fNPhi;
Int_t fNEta;
Int_t fShiftPhi;
Int_t fShiftEta;
Bool_t fTRUShift;
InputCellType fInputCellType;
TString fTrackName;
TString fCaloCellsName;
TString fCaloClustersName;
Bool_t fDoUpdateCells;
Bool_t fDoClusterize;
Bool_t fClusterBadChannelCheck;
Bool_t fRejectExoticClusters;
Bool_t fRejectExoticCells;
Bool_t fFiducial;
Bool_t fDoNonLinearity;
Bool_t fRecalDistToBadChannels;
Int_t fSetCellMCLabelFromCluster;
AliVCaloCells *fCaloCells;
TClonesArray *fCaloClusters;
AliESDEvent *fEsd;
AliAODEvent *fAod;
AliEMCALGeometry *fGeom;
private:
AliAnalysisTaskEMCALClusterizeFast(const AliAnalysisTaskEMCALClusterizeFast&);
AliAnalysisTaskEMCALClusterizeFast &operator=(const AliAnalysisTaskEMCALClusterizeFast&);
ClassDef(AliAnalysisTaskEMCALClusterizeFast, 9);
};
#endif //ALIANALYSISTASKEMCALCLUSTERIZEFAST_H
AliAnalysisTaskEMCALClusterizeFast.h:1 AliAnalysisTaskEMCALClusterizeFast.h:2 AliAnalysisTaskEMCALClusterizeFast.h:3 AliAnalysisTaskEMCALClusterizeFast.h:4 AliAnalysisTaskEMCALClusterizeFast.h:5 AliAnalysisTaskEMCALClusterizeFast.h:6 AliAnalysisTaskEMCALClusterizeFast.h:7 AliAnalysisTaskEMCALClusterizeFast.h:8 AliAnalysisTaskEMCALClusterizeFast.h:9 AliAnalysisTaskEMCALClusterizeFast.h:10 AliAnalysisTaskEMCALClusterizeFast.h:11 AliAnalysisTaskEMCALClusterizeFast.h:12 AliAnalysisTaskEMCALClusterizeFast.h:13 AliAnalysisTaskEMCALClusterizeFast.h:14 AliAnalysisTaskEMCALClusterizeFast.h:15 AliAnalysisTaskEMCALClusterizeFast.h:16 AliAnalysisTaskEMCALClusterizeFast.h:17 AliAnalysisTaskEMCALClusterizeFast.h:18 AliAnalysisTaskEMCALClusterizeFast.h:19 AliAnalysisTaskEMCALClusterizeFast.h:20 AliAnalysisTaskEMCALClusterizeFast.h:21 AliAnalysisTaskEMCALClusterizeFast.h:22 AliAnalysisTaskEMCALClusterizeFast.h:23 AliAnalysisTaskEMCALClusterizeFast.h:24 AliAnalysisTaskEMCALClusterizeFast.h:25 AliAnalysisTaskEMCALClusterizeFast.h:26 AliAnalysisTaskEMCALClusterizeFast.h:27 AliAnalysisTaskEMCALClusterizeFast.h:28 AliAnalysisTaskEMCALClusterizeFast.h:29 AliAnalysisTaskEMCALClusterizeFast.h:30 AliAnalysisTaskEMCALClusterizeFast.h:31 AliAnalysisTaskEMCALClusterizeFast.h:32 AliAnalysisTaskEMCALClusterizeFast.h:33 AliAnalysisTaskEMCALClusterizeFast.h:34 AliAnalysisTaskEMCALClusterizeFast.h:35 AliAnalysisTaskEMCALClusterizeFast.h:36 AliAnalysisTaskEMCALClusterizeFast.h:37 AliAnalysisTaskEMCALClusterizeFast.h:38 AliAnalysisTaskEMCALClusterizeFast.h:39 AliAnalysisTaskEMCALClusterizeFast.h:40 AliAnalysisTaskEMCALClusterizeFast.h:41 AliAnalysisTaskEMCALClusterizeFast.h:42 AliAnalysisTaskEMCALClusterizeFast.h:43 AliAnalysisTaskEMCALClusterizeFast.h:44 AliAnalysisTaskEMCALClusterizeFast.h:45 AliAnalysisTaskEMCALClusterizeFast.h:46 AliAnalysisTaskEMCALClusterizeFast.h:47 AliAnalysisTaskEMCALClusterizeFast.h:48 AliAnalysisTaskEMCALClusterizeFast.h:49 AliAnalysisTaskEMCALClusterizeFast.h:50 AliAnalysisTaskEMCALClusterizeFast.h:51 AliAnalysisTaskEMCALClusterizeFast.h:52 AliAnalysisTaskEMCALClusterizeFast.h:53 AliAnalysisTaskEMCALClusterizeFast.h:54 AliAnalysisTaskEMCALClusterizeFast.h:55 AliAnalysisTaskEMCALClusterizeFast.h:56 AliAnalysisTaskEMCALClusterizeFast.h:57 AliAnalysisTaskEMCALClusterizeFast.h:58 AliAnalysisTaskEMCALClusterizeFast.h:59 AliAnalysisTaskEMCALClusterizeFast.h:60 AliAnalysisTaskEMCALClusterizeFast.h:61 AliAnalysisTaskEMCALClusterizeFast.h:62 AliAnalysisTaskEMCALClusterizeFast.h:63 AliAnalysisTaskEMCALClusterizeFast.h:64 AliAnalysisTaskEMCALClusterizeFast.h:65 AliAnalysisTaskEMCALClusterizeFast.h:66 AliAnalysisTaskEMCALClusterizeFast.h:67 AliAnalysisTaskEMCALClusterizeFast.h:68 AliAnalysisTaskEMCALClusterizeFast.h:69 AliAnalysisTaskEMCALClusterizeFast.h:70 AliAnalysisTaskEMCALClusterizeFast.h:71 AliAnalysisTaskEMCALClusterizeFast.h:72 AliAnalysisTaskEMCALClusterizeFast.h:73 AliAnalysisTaskEMCALClusterizeFast.h:74 AliAnalysisTaskEMCALClusterizeFast.h:75 AliAnalysisTaskEMCALClusterizeFast.h:76 AliAnalysisTaskEMCALClusterizeFast.h:77 AliAnalysisTaskEMCALClusterizeFast.h:78 AliAnalysisTaskEMCALClusterizeFast.h:79 AliAnalysisTaskEMCALClusterizeFast.h:80 AliAnalysisTaskEMCALClusterizeFast.h:81 AliAnalysisTaskEMCALClusterizeFast.h:82 AliAnalysisTaskEMCALClusterizeFast.h:83 AliAnalysisTaskEMCALClusterizeFast.h:84 AliAnalysisTaskEMCALClusterizeFast.h:85 AliAnalysisTaskEMCALClusterizeFast.h:86 AliAnalysisTaskEMCALClusterizeFast.h:87 AliAnalysisTaskEMCALClusterizeFast.h:88 AliAnalysisTaskEMCALClusterizeFast.h:89 AliAnalysisTaskEMCALClusterizeFast.h:90 AliAnalysisTaskEMCALClusterizeFast.h:91 AliAnalysisTaskEMCALClusterizeFast.h:92 AliAnalysisTaskEMCALClusterizeFast.h:93 AliAnalysisTaskEMCALClusterizeFast.h:94 AliAnalysisTaskEMCALClusterizeFast.h:95 AliAnalysisTaskEMCALClusterizeFast.h:96 AliAnalysisTaskEMCALClusterizeFast.h:97 AliAnalysisTaskEMCALClusterizeFast.h:98 AliAnalysisTaskEMCALClusterizeFast.h:99 AliAnalysisTaskEMCALClusterizeFast.h:100 AliAnalysisTaskEMCALClusterizeFast.h:101 AliAnalysisTaskEMCALClusterizeFast.h:102 AliAnalysisTaskEMCALClusterizeFast.h:103 AliAnalysisTaskEMCALClusterizeFast.h:104 AliAnalysisTaskEMCALClusterizeFast.h:105 AliAnalysisTaskEMCALClusterizeFast.h:106 AliAnalysisTaskEMCALClusterizeFast.h:107 AliAnalysisTaskEMCALClusterizeFast.h:108 AliAnalysisTaskEMCALClusterizeFast.h:109 AliAnalysisTaskEMCALClusterizeFast.h:110 AliAnalysisTaskEMCALClusterizeFast.h:111 AliAnalysisTaskEMCALClusterizeFast.h:112 AliAnalysisTaskEMCALClusterizeFast.h:113 AliAnalysisTaskEMCALClusterizeFast.h:114 AliAnalysisTaskEMCALClusterizeFast.h:115 AliAnalysisTaskEMCALClusterizeFast.h:116 AliAnalysisTaskEMCALClusterizeFast.h:117 AliAnalysisTaskEMCALClusterizeFast.h:118 AliAnalysisTaskEMCALClusterizeFast.h:119 AliAnalysisTaskEMCALClusterizeFast.h:120 AliAnalysisTaskEMCALClusterizeFast.h:121 AliAnalysisTaskEMCALClusterizeFast.h:122 AliAnalysisTaskEMCALClusterizeFast.h:123 AliAnalysisTaskEMCALClusterizeFast.h:124 AliAnalysisTaskEMCALClusterizeFast.h:125 AliAnalysisTaskEMCALClusterizeFast.h:126 AliAnalysisTaskEMCALClusterizeFast.h:127 AliAnalysisTaskEMCALClusterizeFast.h:128 AliAnalysisTaskEMCALClusterizeFast.h:129 AliAnalysisTaskEMCALClusterizeFast.h:130 AliAnalysisTaskEMCALClusterizeFast.h:131 AliAnalysisTaskEMCALClusterizeFast.h:132 AliAnalysisTaskEMCALClusterizeFast.h:133 AliAnalysisTaskEMCALClusterizeFast.h:134 AliAnalysisTaskEMCALClusterizeFast.h:135 AliAnalysisTaskEMCALClusterizeFast.h:136 AliAnalysisTaskEMCALClusterizeFast.h:137 AliAnalysisTaskEMCALClusterizeFast.h:138 AliAnalysisTaskEMCALClusterizeFast.h:139 AliAnalysisTaskEMCALClusterizeFast.h:140 AliAnalysisTaskEMCALClusterizeFast.h:141 AliAnalysisTaskEMCALClusterizeFast.h:142 AliAnalysisTaskEMCALClusterizeFast.h:143 AliAnalysisTaskEMCALClusterizeFast.h:144 AliAnalysisTaskEMCALClusterizeFast.h:145 AliAnalysisTaskEMCALClusterizeFast.h:146 AliAnalysisTaskEMCALClusterizeFast.h:147 AliAnalysisTaskEMCALClusterizeFast.h:148 AliAnalysisTaskEMCALClusterizeFast.h:149 AliAnalysisTaskEMCALClusterizeFast.h:150 AliAnalysisTaskEMCALClusterizeFast.h:151 AliAnalysisTaskEMCALClusterizeFast.h:152 AliAnalysisTaskEMCALClusterizeFast.h:153 AliAnalysisTaskEMCALClusterizeFast.h:154 AliAnalysisTaskEMCALClusterizeFast.h:155 AliAnalysisTaskEMCALClusterizeFast.h:156 AliAnalysisTaskEMCALClusterizeFast.h:157 AliAnalysisTaskEMCALClusterizeFast.h:158 AliAnalysisTaskEMCALClusterizeFast.h:159 AliAnalysisTaskEMCALClusterizeFast.h:160 AliAnalysisTaskEMCALClusterizeFast.h:161 AliAnalysisTaskEMCALClusterizeFast.h:162