// Origin: F.Prino, Torino, prino@to.infn.it //
// //
///////////////////////////////////////////////////////////////////
-#include"AliITSOnlineSDD.h"
+#include "AliITSOnlineSDD.h"
+/* $Id: */
class TH2F;
class TGraphErrors;
class AliITSOnlineSDDInjectors : public AliITSOnlineSDD {
void SetPolOrder(Int_t n=3){fPolOrder=n;}
void SetMinDriftVel(Float_t vmin=4.){fMinDriftVel=vmin;}
void SetMaxDriftVel(Float_t vmax=9.){fMaxDriftVel=vmax;}
+ void SetTimeDiffTB(Float_t tbDiff=8.){fTimeDiffTB=tbDiff;}
- TGraphErrors* GetLineGraph(Int_t jlin);
- TGraphErrors* GetDriftVelocityGraph();
+ TGraphErrors* GetLineGraph(Int_t jlin) const;
+ TGraphErrors* GetDriftVelocityGraph() const;
Float_t* GetDriftVelFitParam()const{ return fParam;}
Float_t GetDriftVelocity(Int_t jlin) const{return fDriftVel[jlin];}
Float_t GetSigmaDriftVelocity(Int_t jlin) const{return fSigmaDriftVel[jlin];}
Float_t GetTimeBinZero() const{return fTbZero;}
Float_t GetDriftCoordinate(Float_t cAnode, Float_t cTimeBin);
- Int_t GetAnodeNumber(Int_t iInjLine);
-
+ Int_t GetAnodeNumber(Int_t iInjLine) const;
+ Float_t GetCentroid(Int_t injnumb, Int_t injline) const {
+ if(injnumb<kNInjectors && injline<3) return fCentroid[injnumb][injline];
+ else return -9999.;
+ }
+ Bool_t IsInjectorGood(Int_t injnumb, Int_t injline) const {
+ if(injnumb<kNInjectors && injline<3) return fGoodInj[injnumb][injline];
+ else return 0;
+ }
void PrintInjMap();
void PrintCentroids();
- void WriteToFXS();
+ void WriteToASCII(Int_t evNumb, UInt_t timeStamp, Int_t optAppend=0);
void Reset();
void AnalyzeEvent(TH2F* his);
AliITSOnlineSDDInjectors(const AliITSOnlineSDDInjectors& source);
AliITSOnlineSDDInjectors& operator = (const AliITSOnlineSDDInjectors& source);
- static const Float_t fgkSaturation;
- static const Float_t fgkJitterTB;
+ static const Float_t fgkSaturation; // ADC saturation value (1008)
+
+ TH2F* fHisto; // histogram of module channel counts
+ Float_t fTbZero; // Time zero for injector event
+ Float_t fPosition[3]; // Coordinates of injector lines
+ UShort_t fTbMin[3]; // Minimum time bin for each line
+ UShort_t fTbMax[3]; // Maximum time bin for each line
+ Bool_t fGoodInj[kNInjectors][3]; // array of good injectors
+ Float_t fCentroid[kNInjectors][3]; // array of time centroids of injectors
+ Float_t fRMSCentroid[kNInjectors][3]; // array of time rms of injectors
+ Float_t fDriftVel[kNInjectors]; // drift velocity
+ Float_t fSigmaDriftVel[kNInjectors]; // error on drift velocity
+ Float_t *fParam; // parameters of polinomial fit
+ // of drift vel. vs. anode number
+ Int_t fPolOrder; // order of polinomial fit
+ Float_t fMinDriftVel; // Cut value for minimum drift speed
+ Float_t fMaxDriftVel; // Cut value for maximum drift speed
+ Float_t fThreshold; // Threshold for injector signal
- TH2F* fHisto;
- Float_t fTbZero;
- Float_t fPosition[3];
- UShort_t fTbMin[3];
- UShort_t fTbMax[3];
- Bool_t fGoodInj[kNInjectors][3];
- Float_t fCentroid[kNInjectors][3];
- Float_t fRMSCentroid[kNInjectors][3];
- Float_t fDriftVel[kNInjectors];
- Float_t fSigmaDriftVel[kNInjectors];
- Float_t *fParam;
- Int_t fPolOrder;
- Float_t fMinDriftVel;
- Float_t fMaxDriftVel;
- Float_t fThreshold;
+ Float_t fTimeDiffTB; // time difference (in TB) between injector trigger and particle trigger
- ClassDef(AliITSOnlineSDDInjectors,1)
+ ClassDef(AliITSOnlineSDDInjectors,2)
};
#endif