![]() |
AliPhysics
27da6ee (27da6ee)
|
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, TString workDir, TString listName) | |
void | Run () |
void | SetExternalMergedFile (TString inputName) |
void | SetNTrial (Int_t inputNr) |
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., Double_t nsigma=4.) |
TH1F * | BuildTimeMean (Int_t crit, Double_t emin, Double_t emax, Double_t nsigma) |
void | TestCellShapes (Int_t crit, Double_t fitemin, Double_t fitemax, Double_t nsigma=4.) |
void | FlagAsDead () |
void | FlagAsBad (Int_t crit, TH1 *inhisto, Double_t nsigma=4., Int_t dnbins=200, Double_t dmaxval=-1.) |
void | SummarizeResults () |
TH1 * | BuildMeanFromGood () |
Bool_t | CheckDistribution (TH1 *ratio, TH1 *reference) |
void | SaveBadCellsToPDF (Int_t version, TString pdfName) |
void | PlotFlaggedCells2D (Int_t flag1, Int_t flag2=-1, Int_t flag3=-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 | fMergeOutput |
Here the merged files of a period are saved for a later analysis. 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 (bad by lower),3 (bad by upper) start at 0 (cellID 0 = histobin 1) 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... | |
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 41 of file AliAnaCaloChannelAnalysis.h.
AliAnaCaloChannelAnalysis::AliAnaCaloChannelAnalysis | ( | ) |
Default constructor
Definition at line 61 of file AliAnaCaloChannelAnalysis.cxx.
|
inlinevirtual |
Definition at line 45 of file AliAnaCaloChannelAnalysis.h.
AliAnaCaloChannelAnalysis::AliAnaCaloChannelAnalysis | ( | TString | period, |
TString | pass, | ||
TString | trigger, | ||
Int_t | runNumber, | ||
TString | workDir, | ||
TString | listName | ||
) |
Constructor
Definition at line 102 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 482 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 455 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.
Definition at line 596 of file AliAnaCaloChannelAnalysis.cxx.
Referenced by PeriodAnalysis().
|
protected |
Definition at line 1315 of file AliAnaCaloChannelAnalysis.cxx.
Referenced by SaveBadCellsToPDF().
|
protected |
Empty function Possibility to add there a check on the cell time too, if the time is calibrated for the period
Definition at line 637 of file AliAnaCaloChannelAnalysis.cxx.
|
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.
Definition at line 1345 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 821 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 778 of file AliAnaCaloChannelAnalysis.cxx.
Referenced by Run().
|
protected |
Initialize default parameters
Definition at line 143 of file AliAnaCaloChannelAnalysis.cxx.
Referenced by AliAnaCaloChannelAnalysis().
|
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 310 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
Definition at line 502 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[]
Definition at line 1444 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 232 of file AliAnaCaloChannelAnalysis.cxx.
|
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
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 | – flag that selects how and which cells are plotted into the pdf |
pdfName | – name of the .pdf file |
Definition at line 1185 of file AliAnaCaloChannelAnalysis.cxx.
Referenced by SummarizeResults().
|
protected |
This function saves all created histograms to a root file can be used to save all amplitudes eg. ..... ELI
Definition at line 1502 of file AliAnaCaloChannelAnalysis.cxx.
Referenced by Run().
|
inline |
Definition at line 51 of file AliAnaCaloChannelAnalysis.h.
|
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 1060 of file AliAnaCaloChannelAnalysis.cxx.
Referenced by Run().
|
protected |
This method is currently not used Test cells shape using fit function f(x)=A*exp(-B*x)/x^2. Produce values per cell + distributions for A,B and chi2/ndf parameters.
Definition at line 649 of file AliAnaCaloChannelAnalysis.cxx.
Referenced by PeriodAnalysis().
|
protected |
Here the .root files of each run of the period are saved.
Definition at line 90 of file AliAnaCaloChannelAnalysis.h.
Referenced by Init(), and MergeRuns().
|
protected |
The list with bad channels and histograms are saved in this folder.
Definition at line 89 of file AliAnaCaloChannelAnalysis.h.
Referenced by FlagAsBad(), Init(), PeriodAnalysis(), PlotFlaggedCells2D(), and SummarizeResults().
|
protected |
Vector of analysis information. Each place is filled with 4 doubles: version, sigma, lower, and upper energy range.
Definition at line 98 of file AliAnaCaloChannelAnalysis.h.
Referenced by AddPeriodAnalysis(), BCAnalysis(), and Init().
|
private |
! being discussed
Definition at line 132 of file AliAnaCaloChannelAnalysis.h.
|
private |
! being discussed
Definition at line 131 of file AliAnaCaloChannelAnalysis.h.
|
protected |
! Calorimeter information for the investigated runs
Definition at line 115 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 118 of file AliAnaCaloChannelAnalysis.h.
Referenced by BuildHitAndEnergyMean(), BuildMeanFromGood(), FlagAsDead(), Run(), SaveBadCellsToPDF(), SummarizeResults(), and TestCellShapes().
|
protected |
ID of the first cell in the DCal.
Definition at line 85 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 119 of file AliAnaCaloChannelAnalysis.h.
Referenced by Run(), and SummarizeResults().
|
protected |
A run number of an analyzed period. This is important for the AliCalorimeterUtils initialization.
Definition at line 80 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 102 of file AliAnaCaloChannelAnalysis.h.
Referenced by Init(), Run(), and SetExternalMergedFile().
|
protected |
! fFlag[CellID] = 0 (ok),1 (dead),2 (bad by lower),3 (bad by upper) start at 0 (cellID 0 = histobin 1)
Definition at line 112 of file AliAnaCaloChannelAnalysis.h.
Referenced by BuildHitAndEnergyMean(), BuildMeanFromGood(), FlagAsBad(), FlagAsDead(), Init(), PeriodAnalysis(), PlotFlaggedCells2D(), SaveBadCellsToPDF(), and SummarizeResults().
|
protected |
Filename of the .root file containing the merged runs.
Definition at line 97 of file AliAnaCaloChannelAnalysis.h.
Referenced by Init(), MergeRuns(), and Run().
|
protected |
Here the merged files of a period are saved for a later analysis.
Definition at line 88 of file AliAnaCaloChannelAnalysis.h.
|
protected |
Maximum No of colums in module (eta direction)
Definition at line 106 of file AliAnaCaloChannelAnalysis.h.
Referenced by Init().
|
protected |
Maximum No of colums in Calorimeter.
Definition at line 108 of file AliAnaCaloChannelAnalysis.h.
Referenced by FlagAsBad(), Init(), and PlotFlaggedCells2D().
|
protected |
Maximum No of rows in module (phi direction)
Definition at line 107 of file AliAnaCaloChannelAnalysis.h.
Referenced by Init().
|
protected |
Maximum No of rows in Calorimeter.
Definition at line 109 of file AliAnaCaloChannelAnalysis.h.
Referenced by FlagAsBad(), Init(), and PlotFlaggedCells2D().
|
protected |
Number of cells in EMCal and DCal.
Definition at line 84 of file AliAnaCaloChannelAnalysis.h.
Referenced by BuildHitAndEnergyMean(), BuildMeanFromGood(), FlagAsBad(), FlagAsDead(), Init(), PeriodAnalysis(), PlotFlaggedCells2D(), SaveBadCellsToPDF(), SummarizeResults(), and TestCellShapes().
|
protected |
! list with bad channel amplitudes, stored in fRootFile
Definition at line 122 of file AliAnaCaloChannelAnalysis.h.
Referenced by Init(), and SaveBadCellsToPDF().
|
protected |
! list with bad channel amplitude ratios, stored in fRootFile
Definition at line 123 of file AliAnaCaloChannelAnalysis.h.
Referenced by Init(), and SaveBadCellsToPDF().
|
protected |
! list with good channel amplitudes, stored in fRootFile
Definition at line 124 of file AliAnaCaloChannelAnalysis.h.
Referenced by Init().
|
protected |
! list with good channel amplitude ratios, stored in fRootFile
Definition at line 125 of file AliAnaCaloChannelAnalysis.h.
Referenced by Init(), and SaveBadCellsToPDF().
|
protected |
Pass of the analyzed data.
Definition at line 82 of file AliAnaCaloChannelAnalysis.h.
Referenced by AliAnaCaloChannelAnalysis(), Init(), MergeRuns(), and SummarizeResults().
|
protected |
The name of the analyzed period.
Definition at line 81 of file AliAnaCaloChannelAnalysis.h.
Referenced by AliAnaCaloChannelAnalysis(), Init(), MergeRuns(), and SummarizeResults().
|
protected |
! Stores the number of events in the run
Definition at line 120 of file AliAnaCaloChannelAnalysis.h.
Referenced by BuildHitAndEnergyMean(), and Run().
|
protected |
Dierctory in the QA.root files where the input histograms are stored.
Definition at line 96 of file AliAnaCaloChannelAnalysis.h.
Referenced by Init(), and MergeRuns().
|
protected |
! root file with all histograms from this analysis
Definition at line 117 of file AliAnaCaloChannelAnalysis.h.
Referenced by BuildMeanFromGood(), FlagAsBad(), Init(), PlotFlaggedCells2D(), Run(), and SaveBadCellsToPDF().
|
protected |
Thats the full path and name of the file which contains a list of all runs to be merged together.
Definition at line 91 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 92 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 103 of file AliAnaCaloChannelAnalysis.h.
Referenced by Init(), SaveBadCellsToPDF(), 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 101 of file AliAnaCaloChannelAnalysis.h.
Referenced by Init(), SetNTrial(), and SummarizeResults().
|
protected |
Selected trigger for the analysis.
Definition at line 83 of file AliAnaCaloChannelAnalysis.h.
Referenced by AliAnaCaloChannelAnalysis(), Init(), and MergeRuns().
|
protected |
Directory which contains the folders fMergeOutput, fAnalysisInput and fAnalysisOutput. By default it is './'.
Definition at line 93 of file AliAnaCaloChannelAnalysis.h.
Referenced by AliAnaCaloChannelAnalysis(), FlagAsBad(), Init(), MergeRuns(), PeriodAnalysis(), PlotFlaggedCells2D(), Run(), and SummarizeResults().