AliPhysics  48852ec (48852ec)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
BadChannelAna.h
Go to the documentation of this file.
1 #ifndef BADCHANNELANA_H
2 #define BADCHANNELANA_H
3 
26 
28 
29 /* Copyright(c) 1998-2016, ALICE Experiment at CERN, All rights reserved. *
30  * See cxx source for full Copyright notice
31 */
32 
33 
34 #include <Riostream.h>
35 #include <TString.h>
36 #include <TArrayD.h>
37 
38 class TH1;
39 class TH1F;
40 class TH1D;
41 class TH2F;
42 class TFile;
43 class TList;
44 
46 
47 
48 class BadChannelAna : public TObject {
49 
50 public:
51  BadChannelAna() ; // default ctor
52  virtual ~BadChannelAna() { ; } // virtual dtor
53  BadChannelAna(TString period, TString train, TString trigger, Int_t runNumber,Int_t trial, TString workDir, TString listName);
54 
55  void Run(Bool_t mergeOnly=0);
56 
57  //Setters
58  void SetExternalMergedFile(TString inputName) {fExternalFileName = inputName;}
59  void SetQAChecks(Bool_t inputBool) {fTestRoutine = inputBool;}
60  void SetPrintOutput(Bool_t inputBool) {fPrint = inputBool;}
61  void SetStartEndCell(Int_t start, Int_t end) {fStartCell = start; fNoOfCells = end;}
62  void AddManualMasking(std::vector<Int_t> cellVector) {fManualMask.swap(cellVector) ;}
63  void AddPeriodAnalysis(Int_t criteria, Double_t nsigma, Double_t emin, Double_t emax);
64 
65 
66 protected:
67 
68  void Init();
70  void BCAnalysis();
71  void PeriodAnalysis(Int_t criterum=7, Double_t nsigma = 4.0, Double_t emin=0.1, Double_t emax=2.0);
72 
73  TH1F* BuildHitAndEnergyMean(Int_t crit, Double_t emin = 0.1, Double_t emax=2.);
74  TH1F* BuildTimeMean(Int_t crit, Double_t tmin, Double_t tmax);
75 
76  void FlagAsDead();
77  void FlagAsBad(Int_t crit, TH1F* inhisto, Double_t nsigma = 4., Double_t dnbins = 200);
78 
80  void SummarizeResults();
81  TH1D *BuildMeanFromGood(Int_t warmIn=0);
82  Bool_t CheckDistribution(TH1* ratio, TH1* reference);
83  Bool_t IsCoveredByTRD(Int_t row, Int_t collumn);
84  void SaveBadCellsToPDF(Int_t version, TString pdfName);
85  void PlotFlaggedCells2D(Int_t flagBegin,Int_t flagEnd=-1);
86  void SaveHistoToFile();
87 
88  //Test Test
89  //Settings for analysed period
97 
98  //Genergal paths
104 
105  //
108  std::vector<TArrayD> fAnalysisVector;
109 
110  //Things to be individualized by setters
115 
116  //histogram settings
121 
122  //arrays to store information
127  std::vector<Int_t> fManualMask;
128 
129  //Calorimeter information for the investigated runs
131 
132  TFile* fRootFile;
136  TH1F* fhCellFlag;
137  TH1F* fhCellWarm;
138 
143 
144 private:
145  BadChannelAna (const BadChannelAna&); // not implemented
146  BadChannelAna &operator=(const BadChannelAna&); // not implemented
147 
150 
151 
153  ClassDef(BadChannelAna, 1);
155 };
156 #endif
TH2F * fCellTime
! possible histogram for the analysis. Cell ID vs. time, read from the input merged file ...
TString fAnalysisOutput
The list with bad channels and histograms are saved in this folder.
Definition: BadChannelAna.h:99
TList * fOutputListGood
! list with good channel amplitudes, stored in fRootFile
TH1F * fProcessedEvents
! Stores the number of events in the run
void Run(Bool_t mergeOnly=0)
TString fQADirect
Dierctory in the QA.root files where the input histograms are stored.
TList * fOutputListBadRatio
! list with bad channel amplitude ratios, stored in fRootFile
double Double_t
Definition: External.C:58
void PlotFlaggedCells2D(Int_t flagBegin, Int_t flagEnd=-1)
Definition: External.C:236
Double_t fnEventsInRange
void SetPrintOutput(Bool_t inputBool)
Definition: BadChannelAna.h:60
BadChannelAna & operator=(const BadChannelAna &)
void SaveBadCellsToPDF(Int_t version, TString pdfName)
TString fPeriod
The name of the analyzed period.
Definition: BadChannelAna.h:91
void SetExternalMergedFile(TString inputName)
Definition: BadChannelAna.h:58
TString fWorkdir
Directory which contains the folders fMergeOutput, fAnalysisInput and fAnalysisOutput. By default it is './'.
TH1D * BuildMeanFromGood(Int_t warmIn=0)
Bool_t CheckDistribution(TH1 *ratio, TH1 *reference)
Bool_t fTestRoutine
This is a flag, if set true will produce some extra quality check histograms.
TH1F * fAvgNHitPerEvVsCellId
! being discussed
TString fRunListFileName
This is the name of the file with the run numbers to be merged, by default it's 'runList.txt'.
TList * fOutputListBad
! list with bad channel amplitudes, stored in fRootFile
void AddPeriodAnalysis(Int_t criteria, Double_t nsigma, Double_t emin, Double_t emax)
void FlagAsBad(Int_t crit, TH1F *inhisto, Double_t nsigma=4., Double_t dnbins=200)
Int_t * fFlag
! fFlag[CellID] = 0 (ok),1 (dead),2 and higher (bad certain criteria) start at 0 (cellID 0 = histobin...
void AddManualMasking(std::vector< Int_t > cellVector)
Definition: BadChannelAna.h:62
Int_t fCriterionCounter
! This value will be written in fflag and updates after each PeriodAnalysis, to distinguish the steps...
Bool_t fPrint
If set true more couts with information of the excluded cells will be printed.
int Int_t
Definition: External.C:63
virtual ~BadChannelAna()
Definition: BadChannelAna.h:52
Analyses cell properties and identifies bad cells.
Definition: BadChannelAna.h:48
TList * fOutputListGoodRatio
! list with good channel amplitude ratios, stored in fRootFile
Definition: External.C:212
TString fTrainNo
Train number of the analyszed data (can deduce pass & trigger from that etc.)
Definition: BadChannelAna.h:92
Int_t fNMaxColsAbs
Maximum No of colums in Calorimeter.
Int_t fNoOfCells
Number of cells in EMCal and DCal.
Definition: BadChannelAna.h:94
void PeriodAnalysis(Int_t criterum=7, Double_t nsigma=4.0, Double_t emin=0.1, Double_t emax=2.0)
std::vector< Int_t > fManualMask
! Is a list of cells that should be addidionally masked by hand.
Double_t nsigma
TH1F * fhCellWarm
! histogram that stores whether the cell was marked as warm
TString MergeRuns()
const char * pdfName
Definition: DrawAnaELoss.C:30
Bool_t * fWarmCell
! fWarmCell[CellID] = 0 (really bad), fWarmCell[CellID] = 1 (candidate for warm), ...
TH2F * fCellAmplitude
! main histogram for the analysis. Cell ID vs. amplitude, read from the input merged file ...
void SetQAChecks(Bool_t inputBool)
Definition: BadChannelAna.h:59
void SummarizeResultsByFlag()
TH1F * BuildTimeMean(Int_t crit, Double_t tmin, Double_t tmax)
std::vector< TArrayD > fAnalysisVector
Vector of analysis information. Each place is filled with 4 doubles: version, sigma, lower, and upper energy range.
void SetStartEndCell(Int_t start, Int_t end)
Definition: BadChannelAna.h:61
Int_t fNMaxRows
Maximum No of rows in module (phi direction)
TString fMergedFileName
Filename of the .root file containing the merged runs.
Int_t fCurrentRunNumber
A run number of an analyzed period. This is important for the AliCalorimeterUtils initialization...
Definition: BadChannelAna.h:90
TString fExternalFileName
If you have already a file that contains many runs merged together you can place it in fMergeOutput a...
TString fRunList
Thats the full path and name of the file which contains a list of all runs to be merged together...
AliCalorimeterUtils * fCaloUtils
! Calorimeter information for the investigated runs
TH1F * BuildHitAndEnergyMean(Int_t crit, Double_t emin=0.1, Double_t emax=2.)
TH1F * fAvgEngPerHitVsCellId
! being discussed
Int_t fTrial
Number of trial that this specific analyis is. By default '0' so one can try different settings witho...
Bool_t IsCoveredByTRD(Int_t row, Int_t collumn)
Int_t fStartCell
ID of the first cell you want to check.
Definition: BadChannelAna.h:96
Int_t fNMaxCols
Maximum No of colums in module (eta direction)
bool Bool_t
Definition: External.C:53
TString fTrigger
Selected trigger for the analysis.
Definition: BadChannelAna.h:93
Class with utils specific to calorimeter clusters/cells.
TH1F * fhCellFlag
! histogram that stores by which flag the cell has been excluded
TFile * fRootFile
! root file with all histograms from this analysis
Definition: External.C:196
Int_t fCellStartDCal
ID of the first cell in the DCal.
Definition: BadChannelAna.h:95
TString fAnalysisInput
Here the .root files of each run of the period are saved.
Int_t fNMaxRowsAbs
Maximum No of rows in Calorimeter.