1 #ifndef ALIEMCALTENDERSUPPLY_H
2 #define ALIEMCALTENDERSUPPLY_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 ////////////////////////////////////////////////////////////////////////
9 // EMCAL tender, apply corrections to EMCAl clusters //
10 // and do track matching //
11 // Author : Deepa Thomas (Utrecht University) //
13 ////////////////////////////////////////////////////////////////////////
15 #include <AliTenderSupply.h>
18 class AliEMCALRecoUtils;
19 class AliEMCALGeometry;
25 class AliEMCALTenderSupply: public AliTenderSupply {
28 AliEMCALTenderSupply();
29 AliEMCALTenderSupply(const char *name, const AliTender *tender=NULL);
30 virtual ~AliEMCALTenderSupply();
33 virtual void ProcessEvent();
35 Bool_t InitBadChannels();
36 Bool_t InitRecalibCluster();
37 Bool_t InitMisalignMatrix();
39 void SetEMCALGeometryName(TString name) { fEMCALGeoName = name ;}
40 TString EMCALGeometryName() const { return fEMCALGeoName ;}
42 void SetDebugLevel(Int_t level) {fDebugLevel=level ;}
44 void SetNonLinearityFunction(Int_t fun) { fNonLinearFunc = fun ;}
45 Int_t GetNonLinearityFunction() const { return fNonLinearFunc ;}
47 void SetNonLinearityThreshold(Int_t threshold) { fNonLinearThreshold = threshold ;} //only for Alexei's non linearity correction
48 Int_t GetNonLinearityThreshold() const { return fNonLinearThreshold ;}
50 void SwitchOnReCalibrate() { fReCalib = kTRUE ;}
51 void SwitchOffReCalibrate() { fReCalib = kFALSE ;}
53 void SwitchOnRecalculateClusPos() { fRecalClusPos = kTRUE ;}
54 void SwitchOffRecalculateClusPos() { fRecalClusPos = kFALSE ;}
56 void SwitchOnCellFiducialRegion() { fFiducial = kTRUE ;}
57 void SwitchOffCellFiducialRegion() { fFiducial = kFALSE ;}
59 void SetNumberOfcellsFromEMCALBorder(Int_t n) { fNCellsFromEMCALBorder = n ;}
60 Int_t GetNumberOfcellsFromEMCALBorder() const { return fNCellsFromEMCALBorder ;}
62 void SwitchOnRecalDistBadChannel() { fRecalDistToBadChannels = kTRUE ;}
63 void SwitchOffRecalDistBadChannel() { fRecalDistToBadChannels = kFALSE ;}
65 Float_t GetRCut() const { return fRcut ;}
66 void SetRCut(Float_t Rcut) { fRcut = Rcut ;}
68 Double_t GetMass() const { return fMass ;}
69 void SetMass(Double_t mass){ fMass=mass ;}
71 Double_t GetStep() const { return fStep ;}
72 void SetStep(Double_t step){ fStep=step ;}
74 void SetClusterMatchedToTrack(AliESDEvent *event);
75 void SetTracksMatchedToCluster(AliESDEvent *event);
79 AliEMCALGeometry * fEMCALGeo; //! EMCAL geometry
80 TString fEMCALGeoName; // Name of geometry to use.
82 AliEMCALRecoUtils * fEMCALRecoUtils; // Pointer to EMCAL utilities for clusterization
83 TString fConfigName; // Name of analysis configuration file
85 Int_t fDebugLevel; // debug level
87 Int_t fNonLinearFunc; // Non linearity function
88 Int_t fNonLinearThreshold; // Non linearity threshold value for kBeamTesh non linearity function
90 Bool_t fReCalib; // switch for Recalibrate clusters
92 TGeoHMatrix * fEMCALMatrix[10]; // Geometry matrices with alignments
93 Bool_t fRecalClusPos; // switch for applying missalignment
95 Bool_t fFiducial; // switch for checking cells in the fiducial region
96 Int_t fNCellsFromEMCALBorder; // number os cells from EMCAL border
97 Bool_t fRecalDistToBadChannels; // switch for recalculation cluster position from bad channel
99 TTree * fInputTree; // input data tree
100 TFile * fInputFile; // input data file
101 TString fFilepass; // input data pass number
103 Double_t fMass; // mass for track matching
104 Double_t fStep; // step size during track matching
105 Float_t fRcut; // residual cut for track matching
107 AliEMCALTenderSupply(const AliEMCALTenderSupply&c);
108 AliEMCALTenderSupply& operator= (const AliEMCALTenderSupply&c);
110 ClassDef(AliEMCALTenderSupply, 1); // TPC tender task