#ifndef TTTOTALITASK_H #define TTTOTALITASK_H // Base Class Headers ---------------- #include "FairTask.h" #include #include #include "TH1F.h" #include #include "TVector2.h" #include "PndSdsHit.h" // Collaborating Class Headers ------- #include #include #include "TString.h" #include using namespace std; // Collaborating Class Declarations -- class TClonesArray; class TGeoManager; class TtTotAliTask : public FairTask { public: // Constructors/Destructors --------- TtTotAliTask(); TtTotAliTask(Int_t ExcludedBox); TtTotAliTask(const TtTotAliTask& o){}; TtTotAliTask& operator=(const TtTotAliTask& o) { return *this;}; virtual ~TtTotAliTask(); virtual InitStatus Init(); virtual void Exec(Option_t* opt); void SetCorrectedAxis(Int_t axis) {fAxis = axis;}; virtual void FinishTask(); void SetExcludedBox(Int_t excl){ if (excl > 0 && excl < 7) fExclBox = excl; else cout << "Set a wrong value!!! Leaving fExclBox as it was" << std::endl; }; void PrintVal(); static void SumDistance2(int &, double *, double & sum, double * par, int ); //for Fitter static double distance2(double x,double y,double z, double *p); void EnableSmallRange(){fSmallRange = kTRUE; }; void UseMean(){fMean = kTRUE; }; void UseDoubleGausMean(){fDoubleGaus = kTRUE; }; void Use3DMethod(){fUseGeo = kTRUE; }; void PrintMeanResiduals(); void PrintSigmaResiduals(); void SetNumberOfPlanes(Int_t nplanes) {fNbox = nplanes;}; TVector2 GetRes(); void PrintHistos(); void FlagPrint(Int_t flag){fPrint = flag;}; // 1 to print residuals private: // Input Data------------ TClonesArray* fTCandArray; TString fTCandBranchName; //Bool_t firstIt; Int_t fTrackcount; Int_t fEvent; Int_t fExclBox; Int_t fAxis; Int_t fNbox; Bool_t fSmallRange; Bool_t fMean; Bool_t fDoubleGaus; Bool_t fUseGeo; Int_t fPrint; // flag /* Double_t sX[4],sY[4]; // shifts Double_t sigX[4],sigY[4]; // sigma residuals Double_t m_X[4],m_Y[4]; // residuals */ std::vector sX; std::vector sY; std::vector sigX; std::vector sigY; std::vector m_X; std::vector m_Y; TH1F *hx; TH1F *hy; TH2F *rrX; TH2F *rrY; // Fitting ------------ void MyFit(Double_t *x,Double_t *y,Double_t *z,Double_t *Erx,Double_t *Ery,Double_t *Erz,Double_t realX, Double_t realY, Double_t realZ, Double_t &DELTAX, Double_t &DELTAY); void MyFit3D(Double_t *x,Double_t *y,Double_t *z,Double_t *Erx,Double_t *Ery,Double_t *Erz,Double_t realX, Double_t realY, Double_t realZ, Double_t &DELTAX, Double_t &DELTAY); ClassDef(TtTotAliTask,1); }; #endif