AliPhysics  df4bbdf (df4bbdf)

Analyses cell properties and identifies bad cells. More...

#include <BadChannelAna.h>

## Public Member Functions

BadChannelAna (TString period, TString train, TString trigger, Int_t runNumber, Int_t trial, TString workDir, TString listName, Bool_t runByRun=0)

void Run (Bool_t mergeOnly=0)

void SetExternalMergedFile (TString inputName)

void SetQAChecks (Bool_t inputBool)

void SetPrintOutput (Bool_t inputBool)

void SetTrackCellRecord (Bool_t inputBool)

void SetStartEndCell (Int_t start, Int_t end)

void SetLowerBound (Double_t input)

void AddPeriodAnalysis (Int_t criteria, Double_t nsigma, Double_t emin, Double_t emax)

## Protected Member Functions

void Init ()

TString MergeRuns ()

void BCAnalysis ()

void PeriodAnalysis (Int_t criterum=7, Double_t nsigma=4.0, Double_t emin=0.1, Double_t emax=2.0)

TH1F * BuildHitAndEnergyMean (Int_t crit, Double_t emin=0.1, Double_t emax=2.)

TH1F * BuildHitAndEnergyMeanScaled (Int_t crit, Double_t emin=0.1, Double_t emax=2.)

TH1F * BuildTimeMean (Int_t crit, Double_t tmin, Double_t tmax)

void FlagAsBad (Int_t crit, TH1F *inhisto, Double_t nsigma=4., Double_t dnbins=200)

void FlagAsBad_Time (Int_t crit, TH1F *inhisto, Double_t nSig=3)

void SummarizeResultsByFlag ()

void SummarizeResults ()

TH1DBuildMeanFromGood (Int_t warmIn=0)

Bool_t CheckDistribution (TH1 *ratio, TH1 *reference)

Bool_t IsCoveredByTRD (Int_t row, Int_t collumn)

void SaveBadCellsToPDF (Int_t version, TString pdfName)

void PlotFlaggedCells2D (Int_t flagBegin, Int_t flagEnd=-1)

void SaveHistoToFile ()

void PrintCellInfo (Int_t number)

## Protected Attributes

Int_t fCurrentRunNumber
A run number of an analyzed period. This is important for the AliCalorimeterUtils initialization. More...

TString fPeriod
The name of the analyzed period. More...

TString fTrainNo
Train number of the analyszed data (can deduce pass & trigger from that etc.) More...

TString fTrigger
Selected trigger for the analysis. More...

Int_t fNoOfCells
Number of cells in EMCal and DCal. More...

Int_t fCellStartDCal
ID of the first cell in the DCal. More...

Int_t fStartCell
ID of the first cell you want to check. More...

Int_t fStartCellSM [21]
CellIDs of first cell in the 20SMs plus last cell ID. More...

Double_t fEndLowerBound
Lower bound. More...

TString fAnalysisOutput
The list with bad channels and histograms are saved in this folder. More...

TString fAnalysisOutputRbR
For a compact summary of true run-by-run BC maps. More...

TString fAnalysisInput
Here the .root files of each run of the period are saved. More...

TString fRunList
Thats the full path and name of the file which contains a list of all runs to be merged together. More...

TString fRunListFileName
This is the name of the file with the run numbers to be merged, by default it's 'runList.txt'. More...

TString fWorkdir
Directory which contains the folders fMergeOutput, fAnalysisInput and fAnalysisOutput. By default it is './'. More...

Dierctory in the QA.root files where the input histograms are stored. More...

TString fMergedFileName
Filename of the .root file containing the merged runs. More...

std::vector< TArrayDfAnalysisVector
Vector of analysis information. Each place is filled with 4 doubles: version, sigma, lower, and upper energy range. More...

Int_t fTrial
Number of trial that this specific analyis is. By default '0' so one can try different settings without overwriting the outputs. More...

TString fExternalFileName
If you have already a file that contains many runs merged together you can place it in fMergeOutput and set it with SetExternalMergedFile(FileName) More...

Load an external bad map to test the effect on block or a given run. More...

Bool_t fTestRoutine
This is a flag, if set true will produce some extra quality check histograms. More...

Bool_t fPrint
If set true more couts with information of the excluded cells will be printed. More...

Bool_t fTrackCellRecord
Track the non-zero elements in the flags throughout the routine. More...

Bool_t fRunBRunMap
Produce truely run-by-run maps in a separate folder. More...

Int_t fNMaxCols
Maximum No of colums in module (eta direction) More...

Int_t fNMaxRows
Maximum No of rows in module (phi direction) More...

Int_t fNMaxColsAbs
Maximum No of colums in Calorimeter. More...

Int_t fNMaxRowsAbs
Maximum No of rows in Calorimeter. More...

Double_t fnEventsInRange

std::vector< Int_tfFlag
! fFlag[CellID] = 0 (ok),1 (dead),2 and higher (bad certain criteria) start at 0 (cellID 0 = histobin 1) More...

Int_t fCriterionCounter
! This value will be written in fflag and updates after each PeriodAnalysis, to distinguish the steps at which cells are marked as bad More...

std::vector< Bool_tfWarmCell
! fWarmCell[CellID] = 0 (really bad), fWarmCell[CellID] = 1 (candidate for warm), More...

! Is a list of cells that should be addidionally masked by hand. More...

AliCalorimeterUtilsfCaloUtils
! Calorimeter information for the investigated runs More...

TFile * fRootFile
! root file with all histograms from this analysis More...

TH2FfCellAmplitude
! main histogram for the analysis. Cell ID vs. amplitude, read from the input merged file More...

TH2FfCellTime
! possible histogram for the analysis. Cell ID vs. time, read from the input merged file More...

TH1F * fProcessedEvents
! Stores the number of events in the run More...

TH1F * fhCellFlag
! histogram that stores by which flag the cell has been excluded More...

TH1F * fhCellWarm
! histogram that stores whether the cell was marked as warm More...

! list with bad channel amplitudes, stored in fRootFile More...

! list with bad channel amplitude ratios, stored in fRootFile More...

TListfOutputListGood
! list with good channel amplitudes, stored in fRootFile More...

TListfOutputListGoodRatio
! list with good channel amplitude ratios, stored in fRootFile More...

## Private Attributes

TH1F * fAvgNHitPerEvVsCellId
! being discussed More...

TH1F * fAvgEngPerHitVsCellId
! being discussed More...

## Detailed Description

Analyses cell properties and identifies bad cells.

This is used for bad channel identification in EMCal and DCal. It maks bad channels in several energy intervals and plots output with various information for cross checks.

The class builds a mean distribution of certain cell observables and compares single cell properties to this mean. That way bad channels (far off the mean) are identified and flagged. A .pdf file with their spectra is created. This should be cross checked by hand.

Definition at line 48 of file BadChannelAna.h.

## Constructor & Destructor Documentation

Default constructor

Definition at line 49 of file BadChannelAna.cxx.

Destructor

Definition at line 262 of file BadChannelAna.cxx.

 BadChannelAna::BadChannelAna ( TString period, TString train, TString trigger, Int_t runNumber, Int_t trial, TString workDir, TString listName, Bool_t runByRun = 0 )

Constructor

Definition at line 104 of file BadChannelAna.cxx.

private

## Member Function Documentation

inline

Definition at line 65 of file BadChannelAna.h.

Referenced by runAnalysisBC().

Definition at line 638 of file BadChannelAna.cxx.

 void BadChannelAna::AddPeriodAnalysis ( Int_t criteria, Double_t nsigma, Double_t emin, Double_t emax )

This function adds period analyses to the Bad Channel analysis. Each period analysis needs to be specified with four parameters.

Parameters
 criteria – selection criteria. Determines whether to check hits/event, energy/hit, time-, energy distr. etc nsigma – n sigma cut. Select cells as bad outside this sigma range away from the mean of the distribution of cell values emin – minimum energy. Perform this test only for a given energy range. This sets the minimum E emax – maximum energy. Perform this test only for a given energy range. This sets the maximum E

Definition at line 660 of file BadChannelAna.cxx.

protected

This function checks how many different criteria should be analysed. It checks how many period analyses criteria are stored in the fAnalysisVector and passes it to the period analyis for execution.

Definition at line 614 of file BadChannelAna.cxx.

 TH1F * BadChannelAna::BuildHitAndEnergyMean ( Int_t crit, Double_t emin = 0.1, Double_t emax = 2. )
protected

Builds average hit per event and the average energy per hit is caluclated for each cell. The output is a histogram with either of these two values as a function of cell ID.

Parameters
 crit – criterium that distinguishs the type of distribution (1= E/hit, 2= hit/event) emin – min. energy for cell amplitudes emax – max. energy for cell amplitudes

Definition at line 738 of file BadChannelAna.cxx.

 TH1F * BadChannelAna::BuildHitAndEnergyMeanScaled ( Int_t crit, Double_t emin = 0.1, Double_t emax = 2. )
protected
Parameters
 crit – criterium that distinguishs the type of distribution (1= E/hit, 2= hit/event) emin – min. energy for cell amplitudes emax – max. energy for cell amplitudes

Initialize Histos CellID vs Energy, Hits vs Collumn, Hits Vs. row

declare basic properties

Flag Bad Cells for later scaling, these bad cells found here can be good after the scaling process!

Fit the distribution with a gaussian

Definition at line 793 of file BadChannelAna.cxx.

 TH1D * BadChannelAna::BuildMeanFromGood ( Int_t warmIn = 0 )
protected

Definition at line 2473 of file BadChannelAna.cxx.

 TH1F * BadChannelAna::BuildTimeMean ( Int_t crit, Double_t tmin, Double_t tmax )
protected

This function builds the time distribution: (all hits in cell) / (hits in time window tmin < t < tmax) This distribution is then sensitive to the mean and the width of the cell time

Definition at line 1027 of file BadChannelAna.cxx.

 Bool_t BadChannelAna::CheckDistribution ( TH1 * histogram, TH1 * reference )
protected

This is an automatic check of the amplitude ratio of cell/(mean of good cells) It should help identifying cells that are candidates for recalibration By default all cells are candidates. These checks identify obviously odd looking cells and remove the candidate status (candidate=0). These cells might have spikes, cliffs very steep slopes etc.

Parameters
 ratio – histogram that should be checked if it is bad or warm reference – good reference histogram

Definition at line 2505 of file BadChannelAna.cxx.

 void BadChannelAna::FlagAsBad ( Int_t crit, TH1F * inhisto, Double_t nsigma = 4., Double_t dnbins = 200 )
protected

This function flags bad cells It uses an histogram set in BuildHitAndEnergyMean() The value for each cell is collected and the abundancy of this values is plotted in a summery histogram (distrib)

The summary histogram (distribution of cell values) is fitted with a gaussion histogram. The good area is -+ nsigma. Cells with values beyond that are flagged as bad

Parameters
 crit – flag with channel criteria to be filled inhisto – input histogram; dnbins – number of bins in distribution; dmaxVal – maximum value on distribution histogram.

Definition at line 1125 of file BadChannelAna.cxx.

 void BadChannelAna::FlagAsBad_Time ( Int_t crit, TH1F * inhisto, Double_t nSig = 3 )
protected
Parameters
 crit – flag with channel criteria to be filled (only 3 is used here) inhisto – input histogram; nSig – number of sigmas of the time dirst to acc for selection

Definition at line 1494 of file BadChannelAna.cxx.

protected

This function finds cells with zero entries It flags them by setting the fFlag[CellID] to 1.

Definition at line 1072 of file BadChannelAna.cxx.

protected

Initialize default parameters

Definition at line 160 of file BadChannelAna.cxx.

 Bool_t BadChannelAna::IsCoveredByTRD ( Int_t row, Int_t collumn )
protected

This function checks wether the cell is covered by the TRD support structure which causes the cell hit/event number to be shifted to lower values

Parameters
 row – absolute row No. of the cell collumn – absolute cullumn No. of the cell

Definition at line 2637 of file BadChannelAna.cxx.

protected

Definition at line 587 of file BadChannelAna.cxx.

protected

This function takes the QA outputs from several runs and merges the histograms together, in case there were more than 100 events in this run. The list of runs to be merged is given by fRunList The output file contains three histograms hCellAmplitude, hCellTime and hNEventsProcessedPerRun

Definition at line 405 of file BadChannelAna.cxx.

private
 void BadChannelAna::PeriodAnalysis ( Int_t criterion = 7, Double_t nsigma = 4.0, Double_t emin = 0.1, Double_t emax = 2.0 )
protected

This function builds the distribution of cell properties like eg. hit/event in a cell by calling BuildHitAndEnergyMean() Then the cells are flagged as bad if the given cell property is far off (nsigma) of the mean distribution of all cell values.

There are different checks done depending on the given criteria: 1 : deposited E/hit for E>Emin and E<Emax 2 : recorded hits/event for E>Emin and E<Emax 3 and 4 are currently not used - needs carefull checking for the future checks on the time distribution can be implemented

Parameters
 crit – criterium that distinguishs the type of distribution (1= E/hit, 2= hit/event) nsigma – range that defines good cells emin – min. energy for cell amplitudes emax – max. energy for cell amplitudes

Definition at line 686 of file BadChannelAna.cxx.

 void BadChannelAna::PlotFlaggedCells2D ( Int_t flagBegin, Int_t flagEnd = -1 )
protected

Plots a 2D map of flagged cells, dead, bad, good depending on the selected value of fFlag[]

Parameters
 flag1 – plot the cells that have fFlag[cell]==flag1 flag2 – plot the cells that have fFlag[cell]==flag2 flag3 – plot the cells that have fFlag[cell]==flag3

cout<<"gErrorIgnoreLevel: "<<gErrorIgnoreLevel<<endl;

Definition at line 2663 of file BadChannelAna.cxx.

 void BadChannelAna::PrintCellInfo ( Int_t number )
protected

This function is for debugging since we have sometimes encountered strange behaviours of the program

Definition at line 2749 of file BadChannelAna.cxx.

 void BadChannelAna::Run ( Bool_t mergeOnly = 0 )

Main execution method.

1) If no external file is provided use MergeRuns() to merge historgrams from a runlist .txt file. The merged outputfile contains 3 different histograms (hCellAmplitude, hCellTime and hNEventsProcessedPerRun). 2) Flags dead cells 3) Analyses merged histograms by calling BCAnalysis() and flags bad cells. 4) It calls SummarizeResults() to store all information in output files (.gif .txt .pdf)

Definition at line 291 of file BadChannelAna.cxx.

Referenced by runAnalysisBC().

protected

Allow to produce a .pdf file with 9 histograms per page They contain the energy distribution of bad cells (blue) and compare them to the mean of all good cells (gray). Different options are possible. To be selected with

Parameters
 version version=0 ->Print dead cells version=1 ->Print bad cells version=2 ->Print ratio of good cells to mean of all good cells version=10->Print the ratio of BadCell distr. and mean good cell distr. version=20->Print the ratio of GoodCell distr. and mean good cell distr. version – flag that selects how and which cells are plotted into the pdf pdfName – name of the .pdf file

Definition at line 2317 of file BadChannelAna.cxx.

protected

This function saves all good cells amplitudes to a root file

Definition at line 2732 of file BadChannelAna.cxx.

inline

Definition at line 59 of file BadChannelAna.h.

 void BadChannelAna::SetExternalMergedFile ( TString inputName )
inline

Definition at line 58 of file BadChannelAna.h.

Referenced by runAnalysisBC().

 void BadChannelAna::SetLowerBound ( Double_t input )
inline

Definition at line 64 of file BadChannelAna.h.

Referenced by runAnalysisBC().

 void BadChannelAna::SetPrintOutput ( Bool_t inputBool )
inline

Definition at line 61 of file BadChannelAna.h.

 void BadChannelAna::SetQAChecks ( Bool_t inputBool )
inline

Definition at line 60 of file BadChannelAna.h.

 void BadChannelAna::SetStartEndCell ( Int_t start, Int_t end )
inline

Definition at line 63 of file BadChannelAna.h.

 void BadChannelAna::SetTrackCellRecord ( Bool_t inputBool )
inline

Definition at line 62 of file BadChannelAna.h.

protected

In this function the final status of the analysis is summarized. .txt file with dead and bad channel IDs. .pdf file with ampltidues and amplitude ratios of bad cells .gif files with a 2D map of bad, dead and good channels

Definition at line 1835 of file BadChannelAna.cxx.

protected

In this function the final status of the analysis is summarized for each flag/period analysis. A .txt file with dead and bad channel IDs is created for each check

Definition at line 1759 of file BadChannelAna.cxx.

## Member Data Documentation

protected

Here the .root files of each run of the period are saved.

Definition at line 109 of file BadChannelAna.h.

Referenced by Init(), MergeRuns(), and Run().

protected

The list with bad channels and histograms are saved in this folder.

Definition at line 107 of file BadChannelAna.h.

protected

For a compact summary of true run-by-run BC maps.

Definition at line 108 of file BadChannelAna.h.

Referenced by Init(), and SummarizeResults().

protected

Vector of analysis information. Each place is filled with 4 doubles: version, sigma, lower, and upper energy range.

Definition at line 117 of file BadChannelAna.h.

private

! being discussed

Definition at line 161 of file BadChannelAna.h.

private

! being discussed

Definition at line 160 of file BadChannelAna.h.

protected

! Calorimeter information for the investigated runs

Definition at line 142 of file BadChannelAna.h.

protected

! main histogram for the analysis. Cell ID vs. amplitude, read from the input merged file

Definition at line 145 of file BadChannelAna.h.

protected

ID of the first cell in the DCal.

Definition at line 101 of file BadChannelAna.h.

Referenced by Init(), and SummarizeResults().

protected

! possible histogram for the analysis. Cell ID vs. time, read from the input merged file

Definition at line 146 of file BadChannelAna.h.

Referenced by BuildTimeMean(), FlagAsBad(), Run(), and SummarizeResults().

protected

! This value will be written in fflag and updates after each PeriodAnalysis, to distinguish the steps at which cells are marked as bad

Definition at line 137 of file BadChannelAna.h.

protected

A run number of an analyzed period. This is important for the AliCalorimeterUtils initialization.

Definition at line 96 of file BadChannelAna.h.

protected

Lower bound.

Definition at line 104 of file BadChannelAna.h.

Referenced by PeriodAnalysis(), Run(), and SetLowerBound().

protected

Load an external bad map to test the effect on block or a given run.

Definition at line 122 of file BadChannelAna.h.

protected

If you have already a file that contains many runs merged together you can place it in fMergeOutput and set it with SetExternalMergedFile(FileName)

Definition at line 121 of file BadChannelAna.h.

Referenced by Run(), and SetExternalMergedFile().

protected

! fFlag[CellID] = 0 (ok),1 (dead),2 and higher (bad certain criteria) start at 0 (cellID 0 = histobin 1)

Definition at line 136 of file BadChannelAna.h.

protected

! histogram that stores by which flag the cell has been excluded

Definition at line 148 of file BadChannelAna.h.

Referenced by Init(), SummarizeResults(), and ~BadChannelAna().

protected

! histogram that stores whether the cell was marked as warm

Definition at line 149 of file BadChannelAna.h.

Referenced by Init(), SummarizeResults(), and ~BadChannelAna().

protected

! Is a list of cells that should be addidionally masked by hand.

Definition at line 139 of file BadChannelAna.h.

protected

Filename of the .root file containing the merged runs.

Definition at line 116 of file BadChannelAna.h.

Referenced by Init(), MergeRuns(), and Run().

protected

Definition at line 135 of file BadChannelAna.h.

Referenced by BuildHitAndEnergyMean().

protected

Maximum No of colums in module (eta direction)

Definition at line 129 of file BadChannelAna.h.

Referenced by Init().

protected

Maximum No of colums in Calorimeter.

Definition at line 131 of file BadChannelAna.h.

protected

Maximum No of rows in module (phi direction)

Definition at line 130 of file BadChannelAna.h.

Referenced by Init().

protected

Maximum No of rows in Calorimeter.

Definition at line 132 of file BadChannelAna.h.

protected

Number of cells in EMCal and DCal.

Definition at line 100 of file BadChannelAna.h.

protected

! list with bad channel amplitudes, stored in fRootFile

Definition at line 151 of file BadChannelAna.h.

protected

! list with bad channel amplitude ratios, stored in fRootFile

Definition at line 152 of file BadChannelAna.h.

protected

! list with good channel amplitudes, stored in fRootFile

Definition at line 153 of file BadChannelAna.h.

protected

! list with good channel amplitude ratios, stored in fRootFile

Definition at line 154 of file BadChannelAna.h.

protected

The name of the analyzed period.

Definition at line 97 of file BadChannelAna.h.

protected

If set true more couts with information of the excluded cells will be printed.

Definition at line 124 of file BadChannelAna.h.

protected

! Stores the number of events in the run

Definition at line 147 of file BadChannelAna.h.

Referenced by CheckDistribution(), Run(), and SummarizeResults().

protected

Dierctory in the QA.root files where the input histograms are stored.

Definition at line 115 of file BadChannelAna.h.

Referenced by Init(), and MergeRuns().

protected

! root file with all histograms from this analysis

Definition at line 144 of file BadChannelAna.h.

protected

Produce truely run-by-run maps in a separate folder.

Definition at line 126 of file BadChannelAna.h.

Referenced by BadChannelAna(), Init(), and SummarizeResults().

protected

Thats the full path and name of the file which contains a list of all runs to be merged together.

Definition at line 110 of file BadChannelAna.h.

Referenced by Init(), and MergeRuns().

protected

This is the name of the file with the run numbers to be merged, by default it's 'runList.txt'.

Definition at line 111 of file BadChannelAna.h.

protected

ID of the first cell you want to check.

Definition at line 102 of file BadChannelAna.h.

protected

CellIDs of first cell in the 20SMs plus last cell ID.

Definition at line 103 of file BadChannelAna.h.

protected

This is a flag, if set true will produce some extra quality check histograms.

Definition at line 123 of file BadChannelAna.h.

Referenced by Init(), SaveBadCellsToPDF(), SetQAChecks(), and SummarizeResults().

protected

Track the non-zero elements in the flags throughout the routine.

Definition at line 125 of file BadChannelAna.h.

Referenced by PrintCellInfo(), and SetTrackCellRecord().

protected

Train number of the analyszed data (can deduce pass & trigger from that etc.)

Definition at line 98 of file BadChannelAna.h.

protected

Number of trial that this specific analyis is. By default '0' so one can try different settings without overwriting the outputs.

Definition at line 120 of file BadChannelAna.h.

Referenced by BadChannelAna(), Init(), PlotFlaggedCells2D(), SummarizeResults(), and SummarizeResultsByFlag().

protected

Selected trigger for the analysis.

Definition at line 99 of file BadChannelAna.h.

Referenced by BadChannelAna(), Init(), MergeRuns(), SummarizeResults(), and SummarizeResultsByFlag().

protected

! fWarmCell[CellID] = 0 (really bad), fWarmCell[CellID] = 1 (candidate for warm),

Definition at line 138 of file BadChannelAna.h.