#include "AliTPCcalibBase.h"
#include "TH1.h"
#include "TH2F.h"
+#include "THnSparse.h"
class AliExternalTrackParam;
virtual void Process(AliESDEvent *event);
Int_t GetNtracks(){return fNtracks;}
virtual void Analyze();
+ static void DumpLaser(const char *finput, Int_t run);
+ static void FitLaserClusters(Int_t run);
virtual Long64_t Merge(TCollection *li);
- virtual void DumpMeanInfo(Float_t bfield, Int_t run=-1);
+ virtual void DumpMeanInfo(Int_t run=-1);
static void DumpScanInfo(TTree * tree, const char * cutUser="entries>300&&(gz2<0.15&&gphi2<0.1&&gp42<0.02&&abs(gp41)<0.03)");
static void DumpFitInfo(TTree * chainFit, Int_t id);
static TH1* GetLaserProjection(TH2F* his, Int_t laser){return his->ProjectionY("aaa",laser+1,laser+1);}
virtual void DumpLaser(Int_t id);
virtual void RefitLaserJW(Int_t id);
void FitDriftV();
+ Bool_t FitDriftV(Float_t minFraction);
+ //
void MakeDistHisto(Int_t id);
void AddCut(Double_t xcut, Double_t ycut, Double_t ncl){fEdgeXcuts[fNcuts]=xcut; fEdgeYcuts[fNcuts]=ycut; fNClCuts[fNcuts]=ncl; fNcuts++;}
//
void SetBeamParameters(TVectorD& meanOffset, TVectorD& meanSlope,
TVectorD& sectorArray, Int_t option);
+ void SetFixedDriftVConstant(Double_t aside0, Double_t aside1,
+ Double_t cside0, Double_t cside1)
+ {fUseFixedDriftV = 1; fFixedFitAside0=aside0; fFixedFitAside1=aside1;
+ fFixedFitCside0=cside0; fFixedFitCside1=cside1;}
AliESDEvent * fESD; //! ESD event - not OWNER
AliESDfriend * fESDfriend; //! ESD event - not OWNER
//
// Refit residuals histogram
//
+ THnSparseS *fHisLaser; // N dim histogram of laser
+ THnSparseS *fHisLaserPad; // N dim histogram of laser
+ THnSparseS *fHisLaserTime; // N dim histogram of laser
+ //
TH2F *fHisNclIn; //->Number of clusters inner
TH2F *fHisNclOut; //->Number of clusters outer
TH2F *fHisNclIO; //->Number of cluster inner outer
TObjArray fDeltaYres2; //-> array of histograms of delta y residuals for each track
TObjArray fDeltaZres2; //-> array of histograms of delta z residuals for each track
TObjArray fDeltaYresAbs; //-> array of histograms of absolute delta y residuals for each track
+ TH1F *fHisYAbsErrors; //-> Number of errors (wrongly assigned tracks) per beam
TObjArray fDeltaZresAbs; //-> array of histograms of absolute delta z residuals for each track
+ TH1F *fHisZAbsErrors; //-> Number of errors (wrongly assigned tracks or missing drift velocity) per beam
// TObjArray fDeltaYres3; //-> array of histograms of delta y residuals for each track
//TObjArray fDeltaZres3; //-> array of histograms of delta z residuals for each track
TVectorD fBeamOffsetZInner; //! absolute z beam offset in inner sectror
TVectorD fBeamSlopeZInner; //! absolute z beam slope in inner sector
Bool_t fInverseSlopeZ; //! invert slope in z - mismatch between database and lasers
+ Int_t fUseFixedDriftV; // flag for fixed drift velocity for abs res
+ Double_t fFixedFitAside0; // Fixed drift v constant 0 - A side
+ Double_t fFixedFitAside1; // Fixed drift v constant 1 - A side
+ Double_t fFixedFitCside0; // Fixed drift v constant 0 - C side
+ Double_t fFixedFitCside1; // Fixed drift v constant 1 - C side
//
private:
- ClassDef(AliTPCcalibLaser,3)
+ ClassDef(AliTPCcalibLaser,6)
};