//----------------------------------------------------------- // File and Version Information: // $Id$ // // Description: // Residual calculation for curved tracks // // // Environment: // Software developed for the PANDA Detector at FAIR. // // Author List: // Martin Berger TUM (original author) // //----------------------------------------------------------- #ifndef TPCCOSTASK_HH #define TPCCOSTASK_HH //Base class #include "FairTask.h" #include "TClonesArray.h" #include "TString.h" #include "TVector3.h" #include // c++ class #include //genfit #include "GFAbsTrackRep.h" // Collaborating Class Declarations -------------------------------------- class TpcCluster; class TpcDigiPar; class TpcCosmicsTask : public FairTask { public: // Constructor ---------------------------------------------- TpcCosmicsTask(); //default constructor virtual ~TpcCosmicsTask(); virtual InitStatus Init(); virtual void Exec(Option_t* opt); virtual void SetParContainers(); // Setters -------------------------------------------------- void SetDatafile(const TString& name) {fFile=name;} void SetPersistence(Bool_t opt=kTRUE) {fPersistence=opt;} void SetClusterBranchName(TString cln) {fClusterBranchName=cln;} void SetTrackBranchName(TString tn) {fTrackBranchName=tn;} void SetOutBranchName(TString tn) {fOutBranchName=tn;} void SetSPHitBranchName(TString sln) {fSPHitBranchName=sln;} void SetDigiBranchName(TString opt) {fDigiBranchName=opt;} void SetTpcPointBranchName(TString opt) {fPointBranchName=opt;} void SetEventCounter(Int_t val) {fEventcounter=val;} void SetDoDigiMC(Bool_t opt=kTRUE) {fdoDigiMC=opt;} void SetUnbiased(Bool_t opt=kTRUE) {funbiased=opt;} void SetSecondarySuppression(Bool_t opt=kTRUE) {fSecondarySupp=opt;} void SetNumberOfTrackReps(unsigned int n) {fNumReps=n;} void SetErrorPars(Double_t sens, Double_t C){fSens=sens;fC=C;} void SetClDistCut(Double_t var){fClDistCut=var;} void SetVerbose(Bool_t opt=kTRUE){fVerbose=opt;} void SetAddGTrack(Bool_t opt=kTRUE){faddGTrack=opt;} void SetCutCov(Bool_t opt=kTRUE){fcutCov=opt;} double Circle(double x_o, double x_n, double y_o, double y_n, double z_o, double z_n, double radius); //TVector2 ProjVectorOnPlane(TVector3 u, TVector3 v, TVector3 vect); private: Int_t fEventcounter; Double_t fClDistCut; Double_t fSens; Double_t fC; Bool_t fPersistence; Bool_t fSecondarySupp; Bool_t funbiased; Bool_t fVerbose; Bool_t isMC; Bool_t faddGTrack; Bool_t fcutCov; Bool_t fdoDigiMC; bool first; TVector3 fBinSize; TString fDigiBranchName; TString fClusterBranchName; TString fSPHitBranchName; TString fTrackBranchName; TString fOutBranchName; TString fPointBranchName; TString fFile; TClonesArray* fDigiArray; TClonesArray* fClusterArray; TClonesArray* fSPHitArray; TClonesArray* fTrackArray; TClonesArray* fResArray; TClonesArray* fCosmicsArray; TClonesArray* fPointArray; TpcDigiPar* fPar; std::vector sigmas; std::map fOutArrayMap; unsigned int fNumReps; void getTrackPosMom(GFAbsTrackRep* _rep, TVector3& _pos, TVector3& _poserr, TVector3& _mom, TVector3& _momerr); public: ClassDef(TpcCosmicsTask,1) }; #endif