#ifndef ALIITSONLINESDDINJECTORS_H
#define ALIITSONLINESDDINJECTORS_H
#include "AliITSOnlineSDD.h"
class TH1F;
class TH2F;
class TGraphErrors;
class AliITSOnlineSDDInjectors : public AliITSOnlineSDD {
public:
AliITSOnlineSDDInjectors();
AliITSOnlineSDDInjectors(Int_t nddl, Int_t ncarlos, Int_t sid);
virtual ~AliITSOnlineSDDInjectors();
void SetThresholds(Int_t ilin, Float_t tl, Float_t th){
fLowThreshold[ilin]=tl;
fHighThreshold[ilin]=th;
}
void SetMaxNumberOfCellsPerAnode(Int_t maxc=40){
fMaxCellsAboveThreshold=maxc;
}
void SetInjLineRange(Int_t jlin, Int_t tbmin, Int_t tbmax){
fTbMin[jlin]=tbmin;
fTbMax[jlin]=tbmax;
}
void Set20MHzConfig();
void Set40MHzConfig();
void SetPolDegree(Int_t n){fPolDegree=n;}
void SetMinDriftSpeed(Float_t vmin){fMinDriftSpeed=vmin;}
void SetMaxDriftSpeed(Float_t vmax){fMaxDriftSpeed=vmax;}
void SetMaxDriftSpeedErr(Float_t maxval){
fMaxDriftSpeedErr=maxval;
}
void SetFitLimits(Int_t firstpad,Int_t lastpad){
fFirstPadForFit=firstpad;
fLastPadForFit=lastpad;
}
void SetPadStatusCutForFit(Int_t cutval=4){
fPadStatusCutForFit=cutval;
}
void SetDefaults();
void SetTimeStep(Double_t tstep) {
fTimeStep=tstep;
}
void SetUseTimeZeroSignal(Bool_t useTZ=kTRUE){
fUseTimeZeroSignal=useTZ;
}
void SetUseLine(Int_t iLine, Bool_t use=kTRUE){
if(iLine>=0 && iLine<kInjLines) fUseLine[iLine]=use;
}
TH1F* GetMeanDriftSpeedVsPadHisto() const;
TGraphErrors* GetTimeVsDistGraph(Int_t jpad) const;
TGraphErrors* GetDriftSpeedGraph() const;
TGraphErrors* GetSelectedDriftSpeedGraph(Int_t minAcceptStatus) const;
Double_t* GetDriftSpeedFitParam()const{ return fParam;}
Double_t GetDriftSpeed(Int_t jpad) const{return fDriftSpeed[jpad];}
Double_t GetDriftSpeedErr(Int_t jpad) const{return fDriftSpeedErr[jpad];}
Double_t GetTimeBinZero() const{return fTbZero;}
Double_t GetTimeStep() const{return fTimeStep;}
Int_t GetAnodeNumber(Int_t iInjPad) const;
Int_t GetInjPadNumberFromAnode(Int_t nAnode) const;
Int_t GetInjPadStatus(Int_t jpad) const;
Int_t GetAnodeStatus(Int_t nAnode) const{
Int_t jpad=GetInjPadNumberFromAnode(nAnode);
return GetInjPadStatus(jpad);
}
Double_t GetCentroid(Int_t jpad, Int_t jlin) const {
if(jpad<kInjPads && jlin<kInjLines) return fCentroid[jpad][jlin];
else return -9999.;
}
Bool_t IsInjectorGood(Int_t jpad, Int_t jlin) const {
if(jpad<kInjPads && jlin<kInjLines) return fGoodInj[jpad][jlin];
else return 0;
}
void PrintInjectorStatus();
void PrintCentroids();
void WriteToASCII(Int_t evNumb, UInt_t timeStamp, Int_t optAppend=0);
void WriteInjectorStatusToASCII();
Bool_t WriteToROOT(TFile *fil) const;
void Reset();
void AnalyzeEvent(TH2F* his);
void AddEvent(TH2F* his);
void FindGoodInjectors();
void FindCentroids();
void CalcDriftSpeed(Int_t jpad);
void CalcTimeBinZero();
void FitDriftSpeedVsAnode();
void PolyFit(Int_t degree=3);
Double_t GetMeanDriftSpeed(Int_t ipad) const{
if(fNEventsInPad[ipad]==0) return 0.;
return fSumDriftSpeed[ipad]/(Double_t)fNEventsInPad[ipad];
}
Double_t GetRMSDriftSpeed(Int_t ipad) const;
Double_t GetMeanPadStatusCut(Int_t ipad) const{
if(fNEventsInPad[ipad]==0) return 0.;
return (Double_t)fSumPadStatusCut[ipad]/(Double_t)fNEventsInPad[ipad];
}
Double_t GetMeanPadStatus(Int_t ipad) const{
if(fNEvents==0) return 0.;
return (Double_t)fSumPadStatus[ipad]/(Double_t)fNEvents;
}
void FitMeanDriftSpeedVsAnode();
protected:
void SetPositions();
private:
enum {kInjPads = 33};
enum {kInjLines = 3};
AliITSOnlineSDDInjectors(const AliITSOnlineSDDInjectors& source);
AliITSOnlineSDDInjectors& operator = (const AliITSOnlineSDDInjectors& source);
static const Float_t fgkSaturation;
static const Float_t fgkDefaultLThreshold;
static const Float_t fgkDefaultLThreshold1;
static const Float_t fgkDefaultHThreshold;
static const Float_t fgkDefaultHThreshold1;
static const Float_t fgkDefaultMinSpeed;
static const Float_t fgkDefaultMaxSpeed;
static const Float_t fgkDefaultMaxErr;
static const Int_t fgkDefaultPolDegree;
static const Float_t fgkDefaultTimeStep;
static const UShort_t fgkDefaultTbMin[kInjLines];
static const UShort_t fgkDefaultTbMax[kInjLines];
TH2F* fHisto;
Double_t fTbZero;
Double_t fRMSTbZero;
Double_t fPosition[kInjLines];
UShort_t fTbMin[kInjLines];
UShort_t fTbMax[kInjLines];
Bool_t fGoodInj[kInjPads][kInjLines];
Double_t fCentroid[kInjPads][kInjLines];
Double_t fRMSCentroid[kInjPads][kInjLines];
Double_t fDriftSpeed[kInjPads];
Double_t fDriftSpeedErr[kInjPads];
Int_t fNEvents;
Int_t fNEventsInPad[kInjPads];
Double_t fSumDriftSpeed[kInjPads];
Double_t fSumSqDriftSpeed[kInjPads];
Int_t fSumPadStatus[kInjPads];
Int_t fSumPadStatusCut[kInjPads];
Double_t *fParam;
Int_t fPolDegree;
Int_t fActualPolDegree;
Float_t fMinDriftSpeed;
Float_t fMaxDriftSpeed;
Float_t fMaxDriftSpeedErr;
Float_t fLowThreshold[kInjLines];
Float_t fHighThreshold[kInjLines];
Bool_t fUseLine[kInjLines];
Int_t fFirstPadForFit;
Int_t fLastPadForFit;
Int_t fPadStatusCutForFit;
Double_t fTimeStep;
Bool_t fUseTimeZeroSignal;
Int_t fMaxCellsAboveThreshold;
ClassDef(AliITSOnlineSDDInjectors,9)
};
#endif
AliITSOnlineSDDInjectors.h:1 AliITSOnlineSDDInjectors.h:2 AliITSOnlineSDDInjectors.h:3 AliITSOnlineSDDInjectors.h:4 AliITSOnlineSDDInjectors.h:5 AliITSOnlineSDDInjectors.h:6 AliITSOnlineSDDInjectors.h:7 AliITSOnlineSDDInjectors.h:8 AliITSOnlineSDDInjectors.h:9 AliITSOnlineSDDInjectors.h:10 AliITSOnlineSDDInjectors.h:11 AliITSOnlineSDDInjectors.h:12 AliITSOnlineSDDInjectors.h:13 AliITSOnlineSDDInjectors.h:14 AliITSOnlineSDDInjectors.h:15 AliITSOnlineSDDInjectors.h:16 AliITSOnlineSDDInjectors.h:17 AliITSOnlineSDDInjectors.h:18 AliITSOnlineSDDInjectors.h:19 AliITSOnlineSDDInjectors.h:20 AliITSOnlineSDDInjectors.h:21 AliITSOnlineSDDInjectors.h:22 AliITSOnlineSDDInjectors.h:23 AliITSOnlineSDDInjectors.h:24 AliITSOnlineSDDInjectors.h:25 AliITSOnlineSDDInjectors.h:26 AliITSOnlineSDDInjectors.h:27 AliITSOnlineSDDInjectors.h:28 AliITSOnlineSDDInjectors.h:29 AliITSOnlineSDDInjectors.h:30 AliITSOnlineSDDInjectors.h:31 AliITSOnlineSDDInjectors.h:32 AliITSOnlineSDDInjectors.h:33 AliITSOnlineSDDInjectors.h:34 AliITSOnlineSDDInjectors.h:35 AliITSOnlineSDDInjectors.h:36 AliITSOnlineSDDInjectors.h:37 AliITSOnlineSDDInjectors.h:38 AliITSOnlineSDDInjectors.h:39 AliITSOnlineSDDInjectors.h:40 AliITSOnlineSDDInjectors.h:41 AliITSOnlineSDDInjectors.h:42 AliITSOnlineSDDInjectors.h:43 AliITSOnlineSDDInjectors.h:44 AliITSOnlineSDDInjectors.h:45 AliITSOnlineSDDInjectors.h:46 AliITSOnlineSDDInjectors.h:47 AliITSOnlineSDDInjectors.h:48 AliITSOnlineSDDInjectors.h:49 AliITSOnlineSDDInjectors.h:50 AliITSOnlineSDDInjectors.h:51 AliITSOnlineSDDInjectors.h:52 AliITSOnlineSDDInjectors.h:53 AliITSOnlineSDDInjectors.h:54 AliITSOnlineSDDInjectors.h:55 AliITSOnlineSDDInjectors.h:56 AliITSOnlineSDDInjectors.h:57 AliITSOnlineSDDInjectors.h:58 AliITSOnlineSDDInjectors.h:59 AliITSOnlineSDDInjectors.h:60 AliITSOnlineSDDInjectors.h:61 AliITSOnlineSDDInjectors.h:62 AliITSOnlineSDDInjectors.h:63 AliITSOnlineSDDInjectors.h:64 AliITSOnlineSDDInjectors.h:65 AliITSOnlineSDDInjectors.h:66 AliITSOnlineSDDInjectors.h:67 AliITSOnlineSDDInjectors.h:68 AliITSOnlineSDDInjectors.h:69 AliITSOnlineSDDInjectors.h:70 AliITSOnlineSDDInjectors.h:71 AliITSOnlineSDDInjectors.h:72 AliITSOnlineSDDInjectors.h:73 AliITSOnlineSDDInjectors.h:74 AliITSOnlineSDDInjectors.h:75 AliITSOnlineSDDInjectors.h:76 AliITSOnlineSDDInjectors.h:77 AliITSOnlineSDDInjectors.h:78 AliITSOnlineSDDInjectors.h:79 AliITSOnlineSDDInjectors.h:80 AliITSOnlineSDDInjectors.h:81 AliITSOnlineSDDInjectors.h:82 AliITSOnlineSDDInjectors.h:83 AliITSOnlineSDDInjectors.h:84 AliITSOnlineSDDInjectors.h:85 AliITSOnlineSDDInjectors.h:86 AliITSOnlineSDDInjectors.h:87 AliITSOnlineSDDInjectors.h:88 AliITSOnlineSDDInjectors.h:89 AliITSOnlineSDDInjectors.h:90 AliITSOnlineSDDInjectors.h:91 AliITSOnlineSDDInjectors.h:92 AliITSOnlineSDDInjectors.h:93 AliITSOnlineSDDInjectors.h:94 AliITSOnlineSDDInjectors.h:95 AliITSOnlineSDDInjectors.h:96 AliITSOnlineSDDInjectors.h:97 AliITSOnlineSDDInjectors.h:98 AliITSOnlineSDDInjectors.h:99 AliITSOnlineSDDInjectors.h:100 AliITSOnlineSDDInjectors.h:101 AliITSOnlineSDDInjectors.h:102 AliITSOnlineSDDInjectors.h:103 AliITSOnlineSDDInjectors.h:104 AliITSOnlineSDDInjectors.h:105 AliITSOnlineSDDInjectors.h:106 AliITSOnlineSDDInjectors.h:107 AliITSOnlineSDDInjectors.h:108 AliITSOnlineSDDInjectors.h:109 AliITSOnlineSDDInjectors.h:110 AliITSOnlineSDDInjectors.h:111 AliITSOnlineSDDInjectors.h:112 AliITSOnlineSDDInjectors.h:113 AliITSOnlineSDDInjectors.h:114 AliITSOnlineSDDInjectors.h:115 AliITSOnlineSDDInjectors.h:116 AliITSOnlineSDDInjectors.h:117 AliITSOnlineSDDInjectors.h:118 AliITSOnlineSDDInjectors.h:119 AliITSOnlineSDDInjectors.h:120 AliITSOnlineSDDInjectors.h:121 AliITSOnlineSDDInjectors.h:122 AliITSOnlineSDDInjectors.h:123 AliITSOnlineSDDInjectors.h:124 AliITSOnlineSDDInjectors.h:125 AliITSOnlineSDDInjectors.h:126 AliITSOnlineSDDInjectors.h:127 AliITSOnlineSDDInjectors.h:128 AliITSOnlineSDDInjectors.h:129 AliITSOnlineSDDInjectors.h:130 AliITSOnlineSDDInjectors.h:131 AliITSOnlineSDDInjectors.h:132 AliITSOnlineSDDInjectors.h:133 AliITSOnlineSDDInjectors.h:134 AliITSOnlineSDDInjectors.h:135 AliITSOnlineSDDInjectors.h:136 AliITSOnlineSDDInjectors.h:137 AliITSOnlineSDDInjectors.h:138 AliITSOnlineSDDInjectors.h:139 AliITSOnlineSDDInjectors.h:140 AliITSOnlineSDDInjectors.h:141 AliITSOnlineSDDInjectors.h:142 AliITSOnlineSDDInjectors.h:143 AliITSOnlineSDDInjectors.h:144 AliITSOnlineSDDInjectors.h:145 AliITSOnlineSDDInjectors.h:146 AliITSOnlineSDDInjectors.h:147 AliITSOnlineSDDInjectors.h:148 AliITSOnlineSDDInjectors.h:149 AliITSOnlineSDDInjectors.h:150 AliITSOnlineSDDInjectors.h:151 AliITSOnlineSDDInjectors.h:152 AliITSOnlineSDDInjectors.h:153 AliITSOnlineSDDInjectors.h:154 AliITSOnlineSDDInjectors.h:155 AliITSOnlineSDDInjectors.h:156 AliITSOnlineSDDInjectors.h:157 AliITSOnlineSDDInjectors.h:158 AliITSOnlineSDDInjectors.h:159 AliITSOnlineSDDInjectors.h:160 AliITSOnlineSDDInjectors.h:161 AliITSOnlineSDDInjectors.h:162 AliITSOnlineSDDInjectors.h:163 AliITSOnlineSDDInjectors.h:164 AliITSOnlineSDDInjectors.h:165 AliITSOnlineSDDInjectors.h:166 AliITSOnlineSDDInjectors.h:167 AliITSOnlineSDDInjectors.h:168 AliITSOnlineSDDInjectors.h:169 AliITSOnlineSDDInjectors.h:170 AliITSOnlineSDDInjectors.h:171 AliITSOnlineSDDInjectors.h:172 AliITSOnlineSDDInjectors.h:173 AliITSOnlineSDDInjectors.h:174 AliITSOnlineSDDInjectors.h:175 AliITSOnlineSDDInjectors.h:176 AliITSOnlineSDDInjectors.h:177 AliITSOnlineSDDInjectors.h:178 AliITSOnlineSDDInjectors.h:179 AliITSOnlineSDDInjectors.h:180 AliITSOnlineSDDInjectors.h:181 AliITSOnlineSDDInjectors.h:182 AliITSOnlineSDDInjectors.h:183 AliITSOnlineSDDInjectors.h:184 AliITSOnlineSDDInjectors.h:185 AliITSOnlineSDDInjectors.h:186