#ifndef ALIANALYSISTASKEMCALPI0CALIBSELECTION_H
#define ALIANALYSISTASKEMCALPI0CALIBSELECTION_H
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice */
-
-//---------------------------------------------------------------------------//
-// Fill histograms with two-cluster invariant mass //
-// using calibration coefficients of the previous iteration. //
-//---------------------------------------------------------------------------//
+// $Id$
// Root includes
class TH1F;
AliAnalysisTaskEMCALPi0CalibSelection(const char* name);
virtual ~AliAnalysisTaskEMCALPi0CalibSelection();
-
-private:
+
+ void InitGeometryMatrices();
- AliAnalysisTaskEMCALPi0CalibSelection(const AliAnalysisTaskEMCALPi0CalibSelection&);
- AliAnalysisTaskEMCALPi0CalibSelection& operator=(const AliAnalysisTaskEMCALPi0CalibSelection&);
-
-public:
-
- // Implementation of interface methods
void UserCreateOutputObjects();
void UserExec(Option_t * opt);
-
- void LocalInit() ;
-
+
void PrintInfo();
+ void Terminate(Option_t* opt);
+
void GetMaxEnergyCellPosAndClusterPos(AliVCaloCells* cells, AliVCluster* clu, Int_t& iSM, Int_t& ieta, Int_t& iphi);
// Analysis parameter setting
void SetPairDTimeCut(Float_t t) { fDTimeCut = t ; }
+ void SetClusterMinTime(Float_t tmin) { fTimeMin = tmin ; }
+ void SetClusterMaxTime(Float_t tmax) { fTimeMax = tmax ; }
+
void SetAsymmetryCut(Float_t asy) { fAsyCut = asy ; }
+
void SetClusterMinEnergy(Float_t emin) { fEmin = emin ; }
void SetClusterMaxEnergy(Float_t emax) { fEmax = emax ; }
+
void SetClusterLambda0Cuts(Float_t min, Float_t max){ fL0max = max ;
fL0min = min ; }
void SetClusterMinNCells(Int_t n) { fMinNCells = n ; }
void SwitchOffLoadOwnGeometryMatrices() { fLoadMatrices = kFALSE ; }
void SetGeometryMatrixInSM(TGeoHMatrix* m, Int_t i) { fMatrix[i] = m ; }
+ void SetOADBFilePath(TString path) { fOADBFilePath = path ; }
+
// Cluster recalculation
void SwitchOnClusterCorrection() { fCorrectClusters = kTRUE ; }
void SwitchOffClusterCorrection() { fCorrectClusters = kFALSE ; }
void SetNMaskCellColumns(Int_t n) {
if(n > fNMaskCellColumns){ delete [] fMaskCellColumns ; fMaskCellColumns = new Int_t[n] ; }
fNMaskCellColumns = n ; }
+
void SetMaskCellColumn(Int_t ipos, Int_t icol) { if(ipos < fNMaskCellColumns) fMaskCellColumns[ipos] = icol ;
else printf("Not set, position larger than allocated set size first") ; }
+
Bool_t MaskFrameCluster(const Int_t iSM, const Int_t ieta) const;
private:
Float_t fL0max; // max. cluster L0
Float_t fDTimeCut; // Maximum difference between time of cluster pairs (ns)
+ Float_t fTimeMax; // Maximum cluster time (ns)
+ Float_t fTimeMin; // Minimum cluster time (ns)
+
Float_t fAsyCut; // Asymmetry cut
Int_t fMinNCells; // min. ncells in cluster
Int_t fGroupNCells; // group n cells
TString fEMCALGeoName; // Name of geometry to use.
TString fTriggerName; // Trigger name must contain this name
+ TString fOADBFilePath ; // Default path $ALICE_ROOT/OADB/EMCAL, if needed change
+
AliEMCALRecoUtils * fRecoUtils; // Access to reconstruction utilities
TList * fCuts ; //! List with analysis cuts
TH2F* fHOpeningAngleSM[AliEMCALGeoParams::fgkEMCALModules]; //! two-cluster opening angle vs pt per SM,with mass close to pi0
TH2F* fHOpeningAnglePairSM[AliEMCALGeoParams::fgkEMCALModules]; //! two-cluster opening angle vs pt per Pair,with mass close to pi0
- TH2F* fHIncidentAngle; //! cluster incident angle vs pt of pair, with mass close to pi0
- TH2F* fHIncidentAngleDifferentSM; //! cluster incident angle vs pt of pair, each cluster in different SM, with mass close to pi0
- TH2F* fHIncidentAngleSM[AliEMCALGeoParams::fgkEMCALModules]; //! cluster incident angle vs pt per SM,with mass close to pi0
- TH2F* fHIncidentAnglePairSM[AliEMCALGeoParams::fgkEMCALModules]; //! cluster incident angle vs pt per Pair,with mass close to pi0
-
TH2F* fHAsymmetry; //! two-cluster asymmetry vs pt of pair, with mass close to pi0
TH2F* fHAsymmetryDifferentSM; //! two-cluster asymmetry vs pt of pair, each cluster in different SM, with mass close to pi0
TH2F* fHAsymmetrySM[AliEMCALGeoParams::fgkEMCALModules]; //! two-cluster asymmetry vs pt per SM,with mass close to pi0
TH2F* fhClusterPairDiffTimeSameSector[AliEMCALGeoParams::fgkEMCALModules/2]; //! Diference in time of clusters same sector
TH2F* fhClusterPairDiffTimeSameSide[AliEMCALGeoParams::fgkEMCALModules-2]; //! Diference in time of clusters same side
- ClassDef(AliAnalysisTaskEMCALPi0CalibSelection,17);
+ AliAnalysisTaskEMCALPi0CalibSelection( const AliAnalysisTaskEMCALPi0CalibSelection&);
+ AliAnalysisTaskEMCALPi0CalibSelection& operator=(const AliAnalysisTaskEMCALPi0CalibSelection&);
+
+ ClassDef(AliAnalysisTaskEMCALPi0CalibSelection,19);
};