ROOT logo
AliRoot » ANALYSIS » TENDERSUPPLIES » AliEMCALTenderSupply

class AliEMCALTenderSupply: public AliTenderSupply


EMCAL tender, apply corrections to EMCAL clusters and do track matching.

Author: Deepa Thomas (Utrecht University)
Later mods/rewrite: Jiri Kral (University of Jyvaskyla)
S. Aiola, C. Loizides : Make it work for AODs


Function Members (Methods)

public:
AliEMCALTenderSupply()
AliEMCALTenderSupply(const char* name, const AliTender* tender = NULL)
AliEMCALTenderSupply(const char* name, AliAnalysisTaskSE* task)
virtual~AliEMCALTenderSupply()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
TStringEMCALGeometryName() const
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Double_tGetEtaCut() const
Float_tGetExoticCellDiffTime() const
Float_tGetExoticCellFraction() const
Float_tGetExoticCellMinAmplitude() const
virtual const char*TObject::GetIconName() const
Double_tGetMass() const
Int_tGetMisalignmentMatrixSurvey() const
virtual const char*TNamed::GetName() const
Int_tGetNonLinearityFunction() const
Int_tGetNonLinearityThreshold() const
Int_tGetNumberOfCellsFromEMCALBorder() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Double_tGetPhiCut() const
Float_tGetRCut() const
AliEMCALRecoUtils*GetRecoUtils() const
AliEMCALRecParam*GetRecParam() const
Double_tGetStep() const
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidInit()
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
virtual voidProcessEvent()
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidRemapMCLabelForAODs(Int_t& label)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidSetBasePath(const Char_t* basePath)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetClustersMCLabelFromOriginalClusters()
voidSetConfigFileName(const char* name)
voidSetDebugLevel(Int_t level)
voidSetDefaults()
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetEMCALGeometryName(const char* name)
voidSetEtaCut(Double_t eta)
voidSetExoticCellDiffTime(Float_t f)
voidSetExoticCellFraction(Float_t f)
voidSetExoticCellMinAmplitude(Float_t f)
voidSetGeometryMatrixInSM(TGeoHMatrix* m, Int_t i)
voidSetMass(Double_t mass)
voidSetMisalignmentMatrixSurvey(Int_t misalignSurvey)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
voidSetNonLinearityFunction(Int_t fun)
voidSetNonLinearityThreshold(Int_t threshold)
voidSetNumberOfCellsFromEMCALBorder(Int_t n)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetPass(const char* p)
voidSetPhiCut(Double_t phi)
voidSetRCut(Float_t rcut)
voidSetRecoUtils(AliEMCALRecoUtils* r)
voidSetRecParam(AliEMCALRecParam* p)
voidSetStep(Double_t step)
voidSetTask(AliAnalysisTaskSE* task)
voidAliTenderSupply::SetTender(const AliTender* tender)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
voidSwitchOffBadCellRemove()
voidSwitchOffCalibrateEnergy()
voidSwitchOffCalibrateTime()
voidSwitchOffCellFiducialRegion()
voidSwitchOffClusterBadChannelCheck()
voidSwitchOffClusterExoticChannelCheck()
voidSwitchOffExoticCellRemove()
voidSwitchOffLoadOwnGeometryMatrices()
voidSwitchOffNonLinearityCorrection()
voidSwitchOffRecalculateClusPos()
voidSwitchOffRecalDistBadChannel()
voidSwitchOffReCalibrateCluster()
voidSwitchOffRecalShowerShape()
voidSwitchOffReclustering()
voidSwitchOffRemapMCLabelForAODs()
voidSwitchOffTrackMatch()
voidSwitchOffUpdateCell()
voidSwitchOffUpdateCellOnly()
voidSwitchOffUseAutomaticRecalibParam()
voidSwitchOffUseAutomaticRecParam()
voidSwitchOffUseAutomaticRunDepRecalibParam()
voidSwitchOffUseAutomaticTimeCalibParam()
voidSwitchOffUseClusterMCLabelForCell()
voidSwitchOnBadCellRemove()
voidSwitchOnCalibrateEnergy()
voidSwitchOnCalibrateTime()
voidSwitchOnCellFiducialRegion()
voidSwitchOnClusterBadChannelCheck()
voidSwitchOnClusterExoticChannelCheck()
voidSwitchOnCutEtaPhiSeparate()
voidSwitchOnCutEtaPhiSum()
voidSwitchOnExoticCellRemove()
voidSwitchOnLoadOwnGeometryMatrices()
voidSwitchOnNonLinearityCorrection()
voidSwitchOnRecalculateClusPos()
voidSwitchOnRecalDistBadChannel()
voidSwitchOnReCalibrateCluster()
voidSwitchOnRecalShowerShape()
voidSwitchOnReclustering()
voidSwitchOnRemapMCLabelForAODs()
voidSwitchOnTrackMatch()
voidSwitchOnUpdateCell()
voidSwitchOnUpdateCellOnly()
voidSwitchOnUseAutomaticRecalibParam()
voidSwitchOnUseAutomaticRecParam()
voidSwitchOnUseAutomaticRunDepRecalibParam()
voidSwitchOnUseAutomaticTimeCalibParam()
voidSwitchOnUseClusterMCLabelForCell(Int_t opt = 2)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
voidUnsetPass()
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()

Data Members

public:
enum NonlinearityFunctions { kPi0MC
kPi0GammaGamma
kPi0GammaConversion
kNoCorrection
kBeamTest
kBeamTestCorrected
};
enum MisalignSettings { kdefault
kSurveybyS
kSurveybyM
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
TStringTNamed::fNameobject identifier
const AliTender*AliTenderSupply::fTenderTender car
TStringTNamed::fTitleobject title
private:
Bool_tfBadCellRemovezero bad cells
TStringfBasePathbase folder path to get root files
Bool_tfCalibrateEnergyflag cell energy calibration
Bool_tfCalibrateTimeflag cell time calibration
Bool_tfCalibrateTimeParamAvailableCheck if time calib param are available to set properly time cuts
TObjArray*fClusterArr!recpoints array
Bool_tfClusterBadChannelCheckcheck clusters for bad channels
AliEMCALClusterizer*fClusterizer!clusterizer
TStringfConfigNamename of analysis configuration file
Bool_tfCutEtaPhiSeparateswicth to apply residual cut separately
Bool_tfCutEtaPhiSumswicth to apply residual cut together
Int_tfDebugLeveldebug level
TClonesArray*fDigitsArr!digits array
Bool_tfDoNonLinearitynNon linearity correction flag
Bool_tfDoTrackMatchdo track matching
Bool_tfDoUpdateOnlydo only update of cells
AliEMCALGeometry*fEMCALGeoEMCAL geometry
TStringfEMCALGeoNamename of geometry to use.
TGeoHMatrix*fEMCALMatrix[12]geometry matrices with misalignments
AliEMCALRecoUtils*fEMCALRecoUtilspointer to EMCAL utilities for clusterization
Float_tfEtacuteta cut for track matching
Float_tfExoticCellDiffTimeif time of candidate to exotic and close cell is too different (in ns), it must be noisy, set amp to 0
Float_tfExoticCellFractiongood cell if fraction < 1-ecross/ecell
Float_tfExoticCellMinAmplitudecheck for exotic only if amplitud is larger than this value
Bool_tfFiducialswitch for checking cells in the fiducial region
TStringfFilepassinput data pass number
Bool_tfGeomMatrixSetset geometry matrices only once, for the first event.
Bool_tfGetPassFromFileNameget fFilepass from file name
TFile*fInputFile!input data file
TTree*fInputTree!input data tree
Bool_tfLoadGeomMatricesmatrices set from configuration, not get from geometry.root or from ESDs/AODs
Double_tfMassmass for track matching
Int_tfMisalignSurveymisalignment matrix survey
Int_tfNCellsFromEMCALBordernumber os cells from EMCAL border
Int_tfNonLinearFuncnon linearity function
Int_tfNonLinearThresholdnon linearity threshold value for kBeamTesh non linearity function
Int_tfOrgClusterCellId[12672]Array ID of cluster to wich the cell belongs in unmodified clusters
Float_tfPhicutphi cut for track matching
Float_tfRcutresidual cut for track matching
Bool_tfReCalibClusterswitch for Recalibrate clusters
Bool_tfReClusterizeswitch for reclustering
AliEMCALRecParam*fRecParamreconstruction parameters container
Bool_tfRecalClusPosswitch for applying missalignment
Bool_tfRecalDistToBadChannelsswitch for recalculation cluster position from bad channel
Bool_tfRecalShowerShapeswitch for recalculation of the shower shape
Bool_tfRejectExoticCellsreject exotic cells
Bool_tfRejectExoticClustersrecect clusters with exotic cells
Bool_tfRemapMCLabelForAODsRemap AOD cells MC label
Int_tfRuncurrent run number
Int_tfSetCellMCLabelFromClusterUse cluster MC label as cell label:
Double_tfStepstep size during track matching
AliAnalysisTaskSE*fTaskanalysis task
TClonesArray*fTempClusterArr! Temporal clusters array to recover the MC of original cluster if fSetCellMCLabelFromCluster=2
AliEMCALAfterBurnerUF*fUnfolder!unfolding procedure
Bool_tfUpdateCellflag cell update
Bool_tfUseAutomaticRecParamOn the auto setting of the rec param
Bool_tfUseAutomaticRecalibOn by default the check in the OADB of the energy recalibration
Bool_tfUseAutomaticRunDepRecalibOn by default the check in the OADB of the run dependent energy recalibration
Bool_tfUseAutomaticTimeCalibOn by default the check in the OADB of the time recalibration

Class Charts

Inheritance Chart:
TNamed
AliTenderSupply
AliEMCALTenderSupply

Function documentation

AliEMCALTenderSupply()
 Default constructor.
AliEMCALTenderSupply(const char* name, const AliTender* tender = NULL)
 Named constructor
AliEMCALTenderSupply(const char* name, AliAnalysisTaskSE* task)
 Named constructor.
~AliEMCALTenderSupply()
Destructor
void SetDefaults()
 Set default settings.
Bool_t RunChanged() const
 Get run number.
void Init()
 Initialise EMCAL tender.
AliVEvent* GetEvent()
 Return the event pointer.
void ProcessEvent()
 Event loop.
Bool_t InitMisalignMatrix()
 Initialising misalignment matrices
Int_t InitBadChannels()
 Initialising bad channel maps
Int_t InitRecalib()
 Initialising recalibration factors.
Int_t InitRunDepRecalib()
 Initialising recalibration factors.
Int_t InitTimeCalibration()
 Initialising bad channel maps
void UpdateCells()
Remove bad cells from the cell list
Recalibrate energy and time cells
This is required for later reclusterization
TString GetBeamType()
 Get beam type : pp-AA-pA
 ESDs have it directly, AODs get it from hardcoded run number ranges
Int_t InitRecParam()
 Init reco params if not yet exist (probably shipped by the user already)
Bool_t InitClusterization()
 Initialing clusterization/unfolding algorithm and set all the needed parameters.
void FillDigitsArray()
 Fill digits from cells to a TClonesArray.
void Clusterize()
void UpdateClusters()
 Update ESD cluster list.
void RecPoints2Clusters(TClonesArray* clus)
 Convert AliEMCALRecoPoints to AliESDCaloClusters/AliAODCaloClusters.
 Cluster energy, global position, cells and their amplitude fractions are restored.
void RemapMCLabelForAODs(Int_t& label)
 MC label for Cells not remapped after ESD filtering, do it here.
void SetClustersMCLabelFromOriginalClusters()
 Get the original clusters that contribute to the new rec point cluster,
 assign the labels of such clusters to the new rec point cluster.
 Only approximatedly valid  when output are V1 clusters, or input/output clusterizer
 are the same handle with care
 Copy from same method in AliAnalysisTaskEMCALClusterize, but here modify the recpoint and
 not the output calocluster
void GetPass()
 Get passx from filename
AliEMCALTenderSupply()
void SetTask(AliAnalysisTaskSE* task)
{ fTask = task ;}
void SetEMCALGeometryName(const char* name)
{ fEMCALGeoName = name ;}
TString EMCALGeometryName() const
{ return fEMCALGeoName ;}
void SetDebugLevel(Int_t level)
{ fDebugLevel=level ;}
void SetBasePath(const Char_t* basePath)
{ fBasePath = basePath ;}
void SetConfigFileName(const char* name)
{ fConfigName = name ;}
void SetNonLinearityFunction(Int_t fun)
{ fNonLinearFunc = fun ;}
Int_t GetNonLinearityFunction() const
{ return fNonLinearFunc ;}
void SetNonLinearityThreshold(Int_t threshold)
{ fNonLinearThreshold = threshold ;}
Int_t GetNonLinearityThreshold() const
void SwitchOnNonLinearityCorrection()
void SwitchOffNonLinearityCorrection()
void SwitchOnReCalibrateCluster()
void SwitchOffReCalibrateCluster()
void SwitchOnRecalculateClusPos()
void SwitchOffRecalculateClusPos()
void SetMisalignmentMatrixSurvey(Int_t misalignSurvey)
{ fMisalignSurvey = misalignSurvey ;}
Int_t GetMisalignmentMatrixSurvey() const
{ return fMisalignSurvey ;}
void SwitchOnCellFiducialRegion()
void SwitchOffCellFiducialRegion()
void SetNumberOfCellsFromEMCALBorder(Int_t n)
Int_t GetNumberOfCellsFromEMCALBorder() const
void SwitchOnRecalDistBadChannel()
void SwitchOffRecalDistBadChannel()
void SwitchOnRecalShowerShape()
void SwitchOffRecalShowerShape()
Float_t GetRCut() const
{ return fRcut ;}
void SetRCut(Float_t rcut)
{ fRcut = rcut ;}
Double_t GetMass() const
{ return fMass ;}
void SetMass(Double_t mass)
{ fMass = mass ;}
Double_t GetStep() const
{ return fStep ;}
void SetStep(Double_t step)
{ fStep = step ;}
Double_t GetEtaCut() const
{ return fEtacut ;}
void SetEtaCut(Double_t eta)
{ fEtacut = eta ;}
Double_t GetPhiCut() const
{ return fPhicut ;}
void SetPhiCut(Double_t phi)
{ fPhicut = phi ;}
Float_t GetExoticCellFraction() const
void SetExoticCellFraction(Float_t f)
Float_t GetExoticCellDiffTime() const
void SetExoticCellDiffTime(Float_t f)
Float_t GetExoticCellMinAmplitude() const
void SetExoticCellMinAmplitude(Float_t f)
void SwitchOnReclustering()
void SwitchOffReclustering()
void SwitchOnCutEtaPhiSum()
void SwitchOnCutEtaPhiSeparate()
void SwitchOnLoadOwnGeometryMatrices()
void SwitchOffLoadOwnGeometryMatrices()
void SetGeometryMatrixInSM(TGeoHMatrix* m, Int_t i)
{ fEMCALMatrix[i] = m ;}
AliEMCALRecParam * GetRecParam() const
{ return fRecParam ;}
void SetRecParam(AliEMCALRecParam* p)
{ fRecParam = p ;}
AliEMCALRecoUtils * GetRecoUtils() const
{ return fEMCALRecoUtils ;}
void SetRecoUtils(AliEMCALRecoUtils* r)
void SwitchOnUpdateCell()
void SwitchOffUpdateCell()
void SwitchOnBadCellRemove()
void SwitchOffBadCellRemove()
void SwitchOnClusterBadChannelCheck()
void SwitchOffClusterBadChannelCheck()
void SwitchOnExoticCellRemove()
void SwitchOffExoticCellRemove()
void SwitchOnClusterExoticChannelCheck()
void SwitchOffClusterExoticChannelCheck()
void SwitchOnCalibrateEnergy()
void SwitchOffCalibrateEnergy()
void SwitchOnCalibrateTime()
void SwitchOffCalibrateTime()
void SwitchOnUpdateCellOnly()
void SwitchOffUpdateCellOnly()
void SwitchOnTrackMatch()
void SwitchOffTrackMatch()
void SetPass(const char* p)
void UnsetPass()
void SwitchOnRemapMCLabelForAODs()
void SwitchOffRemapMCLabelForAODs()
void SwitchOnUseClusterMCLabelForCell(Int_t opt = 2)
void SwitchOffUseClusterMCLabelForCell()
void SwitchOnUseAutomaticRecalibParam()
 Switch on/off the automatic setting of different calibrations, only experts
void SwitchOnUseAutomaticRunDepRecalibParam()
void SwitchOnUseAutomaticTimeCalibParam()
void SwitchOnUseAutomaticRecParam()
void SwitchOffUseAutomaticRecalibParam()
void SwitchOffUseAutomaticRunDepRecalibParam()
void SwitchOffUseAutomaticTimeCalibParam()
void SwitchOffUseAutomaticRecParam()
void RecalibrateCells()
AliEMCALTenderSupply& operator=(const AliEMCALTenderSupply& c)