![]() |
AliPhysics
1c9c77b (1c9c77b)
|
Analyses cell properties and identifies bad cells. More...
#include <AliAnaCaloChannelAnalysis.h>
Public Member Functions | |
AliAnaCaloChannelAnalysis () | |
virtual | ~AliAnaCaloChannelAnalysis () |
AliAnaCaloChannelAnalysis (TString period, TString pass, TString trigger, Int_t runNumber, Int_t trial, TString workDir, TString listName) | |
void | Run () |
void | SetExternalMergedFile (TString inputName) |
void | SetQAChecks (Bool_t inputBool) |
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 * | BuildTimeMean (Int_t crit, Double_t tmin, Double_t tmax) |
void | FlagAsDead () |
void | FlagAsBad (Int_t crit, TH1F *inhisto, Double_t nsigma=4., Int_t dnbins=200, Double_t dmaxval=-1.) |
void | SummarizeResultsByFlag () |
void | SummarizeResults () |
TH1D * | BuildMeanFromGood () |
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 () |
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 | fPass |
Pass of the analyzed data. 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... | |
TString | fAnalysisOutput |
The list with bad channels and histograms are saved in this folder. 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... | |
TString | fQADirect |
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< TArrayD > | fAnalysisVector |
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... | |
Bool_t | fTestRoutine |
This is a flag, if set true will produce some extra quality check histograms. 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... | |
Int_t * | fFlag |
! 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... | |
Bool_t * | fWarmCell |
! fWarmCell[CellID] = 0 (really bad), fWarmCell[CellID] = 1 (candidate for warm), More... | |
AliCalorimeterUtils * | fCaloUtils |
! Calorimeter information for the investigated runs More... | |
TFile * | fRootFile |
! root file with all histograms from this analysis More... | |
TH2F * | fCellAmplitude |
! main histogram for the analysis. Cell ID vs. amplitude, read from the input merged file More... | |
TH2F * | fCellTime |
! 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... | |
TList * | fOutputListBad |
! list with bad channel amplitudes, stored in fRootFile More... | |
TList * | fOutputListBadRatio |
! list with bad channel amplitude ratios, stored in fRootFile More... | |
TList * | fOutputListGood |
! list with good channel amplitudes, stored in fRootFile More... | |
TList * | fOutputListGoodRatio |
! list with good channel amplitude ratios, stored in fRootFile More... | |
Private Member Functions | |
AliAnaCaloChannelAnalysis (const AliAnaCaloChannelAnalysis &) | |
AliAnaCaloChannelAnalysis & | operator= (const AliAnaCaloChannelAnalysis &) |
Private Attributes | |
TH1F * | fAvgNHitPerEvVsCellId |
! being discussed More... | |
TH1F * | fAvgEngPerHitVsCellId |
! being discussed More... | |
Analyses cell properties and identifies bad cells.
This is used for bad channel identification in EMCal and DCal. 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 42 of file AliAnaCaloChannelAnalysis.h.
AliAnaCaloChannelAnalysis::AliAnaCaloChannelAnalysis | ( | ) |
Default constructor
Definition at line 61 of file AliAnaCaloChannelAnalysis.cxx.
|
inlinevirtual |
Definition at line 46 of file AliAnaCaloChannelAnalysis.h.
AliAnaCaloChannelAnalysis::AliAnaCaloChannelAnalysis | ( | TString | period, |
TString | pass, | ||
TString | trigger, | ||
Int_t | runNumber, | ||
Int_t | trial, | ||
TString | workDir, | ||
TString | listName | ||
) |
Constructor
Definition at line 110 of file AliAnaCaloChannelAnalysis.cxx.
|
private |
void AliAnaCaloChannelAnalysis::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.
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 537 of file AliAnaCaloChannelAnalysis.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 509 of file AliAnaCaloChannelAnalysis.cxx.
Referenced by Run().
|
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.
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 620 of file AliAnaCaloChannelAnalysis.cxx.
Referenced by PeriodAnalysis().
|
protected |
Definition at line 1529 of file AliAnaCaloChannelAnalysis.cxx.
Referenced by Run(), and SaveBadCellsToPDF().
|
protected |
Empty function - to be implemented! Possibility to add there a check on the cell time too, if the time is calibrated for the period
Definition at line 661 of file AliAnaCaloChannelAnalysis.cxx.
Referenced by PeriodAnalysis().
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.
ratio | – histogram that should be checked if it is bad or warm |
reference | – good reference histogram |
Definition at line 1560 of file AliAnaCaloChannelAnalysis.cxx.
Referenced by SaveBadCellsToPDF().
|
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
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 747 of file AliAnaCaloChannelAnalysis.cxx.
Referenced by PeriodAnalysis().
|
protected |
This function finds cells with zero entries It flags them by setting the fFlag[CellID] to 1.
Definition at line 704 of file AliAnaCaloChannelAnalysis.cxx.
Referenced by Run().
|
protected |
Initialize default parameters
Definition at line 159 of file AliAnaCaloChannelAnalysis.cxx.
Referenced by AliAnaCaloChannelAnalysis().
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
row | – absolute row No. of the cell |
collumn | – absolute cullumn No. of the cell |
Definition at line 1684 of file AliAnaCaloChannelAnalysis.cxx.
Referenced by FlagAsBad().
|
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 346 of file AliAnaCaloChannelAnalysis.cxx.
Referenced by Run().
|
private |
|
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
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 563 of file AliAnaCaloChannelAnalysis.cxx.
Referenced by BCAnalysis().
|
protected |
Plots a 2D map of flagged cells, dead, bad, good depending on the selected value of fFlag[]
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 |
Definition at line 1710 of file AliAnaCaloChannelAnalysis.cxx.
Referenced by SummarizeResults().
void AliAnaCaloChannelAnalysis::Run | ( | ) |
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 255 of file AliAnaCaloChannelAnalysis.cxx.
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
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 1380 of file AliAnaCaloChannelAnalysis.cxx.
Referenced by SummarizeResults().
|
protected |
This function saves all good cells amplitudes to a root file
Definition at line 1772 of file AliAnaCaloChannelAnalysis.cxx.
Referenced by SummarizeResults().
|
inline |
Definition at line 52 of file AliAnaCaloChannelAnalysis.h.
|
inline |
Definition at line 53 of file AliAnaCaloChannelAnalysis.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 1096 of file AliAnaCaloChannelAnalysis.cxx.
Referenced by Run().
|
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 1021 of file AliAnaCaloChannelAnalysis.cxx.
Referenced by Run().
|
protected |
Here the .root files of each run of the period are saved.
Definition at line 91 of file AliAnaCaloChannelAnalysis.h.
Referenced by Init(), MergeRuns(), and Run().
|
protected |
The list with bad channels and histograms are saved in this folder.
Definition at line 90 of file AliAnaCaloChannelAnalysis.h.
Referenced by FlagAsBad(), Init(), PlotFlaggedCells2D(), SummarizeResults(), and SummarizeResultsByFlag().
|
protected |
Vector of analysis information. Each place is filled with 4 doubles: version, sigma, lower, and upper energy range.
Definition at line 99 of file AliAnaCaloChannelAnalysis.h.
Referenced by AddPeriodAnalysis(), BCAnalysis(), Init(), and SummarizeResultsByFlag().
|
private |
! being discussed
Definition at line 137 of file AliAnaCaloChannelAnalysis.h.
|
private |
! being discussed
Definition at line 136 of file AliAnaCaloChannelAnalysis.h.
|
protected |
! Calorimeter information for the investigated runs
Definition at line 118 of file AliAnaCaloChannelAnalysis.h.
Referenced by FlagAsBad(), Init(), and PlotFlaggedCells2D().
|
protected |
! main histogram for the analysis. Cell ID vs. amplitude, read from the input merged file
Definition at line 121 of file AliAnaCaloChannelAnalysis.h.
Referenced by BuildHitAndEnergyMean(), BuildMeanFromGood(), FlagAsDead(), Run(), SaveBadCellsToPDF(), SaveHistoToFile(), and SummarizeResults().
|
protected |
ID of the first cell in the DCal.
Definition at line 87 of file AliAnaCaloChannelAnalysis.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 122 of file AliAnaCaloChannelAnalysis.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 114 of file AliAnaCaloChannelAnalysis.h.
Referenced by BCAnalysis(), FlagAsBad(), Init(), and SummarizeResults().
|
protected |
A run number of an analyzed period. This is important for the AliCalorimeterUtils initialization.
Definition at line 82 of file AliAnaCaloChannelAnalysis.h.
Referenced by AliAnaCaloChannelAnalysis(), and Init().
|
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 103 of file AliAnaCaloChannelAnalysis.h.
Referenced by Init(), 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 113 of file AliAnaCaloChannelAnalysis.h.
Referenced by BuildHitAndEnergyMean(), BuildMeanFromGood(), BuildTimeMean(), FlagAsBad(), FlagAsDead(), Init(), PlotFlaggedCells2D(), Run(), SaveBadCellsToPDF(), SaveHistoToFile(), SummarizeResults(), and SummarizeResultsByFlag().
|
protected |
! histogram that stores by which flag the cell has been excluded
Definition at line 124 of file AliAnaCaloChannelAnalysis.h.
Referenced by Init(), and SummarizeResults().
|
protected |
! histogram that stores whether the cell was marked as warm
Definition at line 125 of file AliAnaCaloChannelAnalysis.h.
Referenced by Init(), and SummarizeResults().
|
protected |
Filename of the .root file containing the merged runs.
Definition at line 98 of file AliAnaCaloChannelAnalysis.h.
Referenced by Init(), MergeRuns(), and Run().
|
protected |
Maximum No of colums in module (eta direction)
Definition at line 107 of file AliAnaCaloChannelAnalysis.h.
Referenced by Init().
|
protected |
Maximum No of colums in Calorimeter.
Definition at line 109 of file AliAnaCaloChannelAnalysis.h.
Referenced by FlagAsBad(), Init(), and PlotFlaggedCells2D().
|
protected |
Maximum No of rows in module (phi direction)
Definition at line 108 of file AliAnaCaloChannelAnalysis.h.
Referenced by Init().
|
protected |
Maximum No of rows in Calorimeter.
Definition at line 110 of file AliAnaCaloChannelAnalysis.h.
Referenced by FlagAsBad(), Init(), and PlotFlaggedCells2D().
|
protected |
Number of cells in EMCal and DCal.
Definition at line 86 of file AliAnaCaloChannelAnalysis.h.
Referenced by BuildHitAndEnergyMean(), BuildMeanFromGood(), BuildTimeMean(), FlagAsBad(), FlagAsDead(), Init(), PlotFlaggedCells2D(), SaveBadCellsToPDF(), SaveHistoToFile(), SummarizeResults(), and SummarizeResultsByFlag().
|
protected |
! list with bad channel amplitudes, stored in fRootFile
Definition at line 127 of file AliAnaCaloChannelAnalysis.h.
Referenced by Init(), and SaveBadCellsToPDF().
|
protected |
! list with bad channel amplitude ratios, stored in fRootFile
Definition at line 128 of file AliAnaCaloChannelAnalysis.h.
Referenced by Init(), and SaveBadCellsToPDF().
|
protected |
! list with good channel amplitudes, stored in fRootFile
Definition at line 129 of file AliAnaCaloChannelAnalysis.h.
Referenced by Init(), SaveBadCellsToPDF(), and SaveHistoToFile().
|
protected |
! list with good channel amplitude ratios, stored in fRootFile
Definition at line 130 of file AliAnaCaloChannelAnalysis.h.
Referenced by Init(), and SaveBadCellsToPDF().
|
protected |
Pass of the analyzed data.
Definition at line 84 of file AliAnaCaloChannelAnalysis.h.
Referenced by AliAnaCaloChannelAnalysis(), Init(), MergeRuns(), Run(), SummarizeResults(), and SummarizeResultsByFlag().
|
protected |
The name of the analyzed period.
Definition at line 83 of file AliAnaCaloChannelAnalysis.h.
Referenced by AliAnaCaloChannelAnalysis(), Init(), MergeRuns(), and PlotFlaggedCells2D().
|
protected |
! Stores the number of events in the run
Definition at line 123 of file AliAnaCaloChannelAnalysis.h.
Referenced by BuildHitAndEnergyMean(), FlagAsBad(), and Run().
|
protected |
Dierctory in the QA.root files where the input histograms are stored.
Definition at line 97 of file AliAnaCaloChannelAnalysis.h.
Referenced by Init(), and MergeRuns().
|
protected |
! root file with all histograms from this analysis
Definition at line 120 of file AliAnaCaloChannelAnalysis.h.
Referenced by FlagAsBad(), Init(), PlotFlaggedCells2D(), Run(), SaveBadCellsToPDF(), SaveHistoToFile(), 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 92 of file AliAnaCaloChannelAnalysis.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 93 of file AliAnaCaloChannelAnalysis.h.
Referenced by AliAnaCaloChannelAnalysis(), and Init().
|
protected |
This is a flag, if set true will produce some extra quality check histograms.
Definition at line 104 of file AliAnaCaloChannelAnalysis.h.
Referenced by Init(), SetQAChecks(), and SummarizeResults().
|
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 102 of file AliAnaCaloChannelAnalysis.h.
Referenced by AliAnaCaloChannelAnalysis(), Init(), SummarizeResults(), and SummarizeResultsByFlag().
|
protected |
Selected trigger for the analysis.
Definition at line 85 of file AliAnaCaloChannelAnalysis.h.
Referenced by AliAnaCaloChannelAnalysis(), Init(), MergeRuns(), SummarizeResults(), and SummarizeResultsByFlag().
|
protected |
! fWarmCell[CellID] = 0 (really bad), fWarmCell[CellID] = 1 (candidate for warm),
Definition at line 115 of file AliAnaCaloChannelAnalysis.h.
Referenced by Init(), PlotFlaggedCells2D(), SaveBadCellsToPDF(), and SummarizeResults().
|
protected |
Directory which contains the folders fMergeOutput, fAnalysisInput and fAnalysisOutput. By default it is './'.
Definition at line 94 of file AliAnaCaloChannelAnalysis.h.
Referenced by AliAnaCaloChannelAnalysis(), FlagAsBad(), Init(), MergeRuns(), PlotFlaggedCells2D(), Run(), SummarizeResults(), and SummarizeResultsByFlag().