// -------------------------------------------------------------------------
// ----- CbmMvdQa header file -----
// ----- Created 12/01/15 by P. Sitzmann -----
// -------------------------------------------------------------------------
/** CbmMvdQa.h
*@author P.Sitzmann
*
* Selection of Qa functions for the mvd
*
**/
#ifndef CBMMVDQA_H
#define CBMMVDQA_H 1
#include "FairTask.h"
#include "TH1F.h"
#include "TH2F.h"
#include "TH3F.h"
#include "TString.h"
#include "TNtuple.h"
#include
#include "TVector3.h"
#include "TClonesArray.h"
#include "CbmTrackMatchNew.h"
class CbmStsTrack;
class TClonesArray;
class CbmStsTrack;
class CbmVertex;
class FairTrackParam;
class CbmMvdDetector;
class CbmLitTrackParam;
class CbmStsTrack;
class CbmMvdQa : public FairTask
{
public:
CbmMvdQa();
CbmMvdQa(const char* name, Int_t iMode = 0, Int_t iVerbose = 0);
~CbmMvdQa();
void SetMinHitReq(Int_t nrOfHits){fminHitReq = nrOfHits;};
void SetMatches(Int_t trackID, CbmStsTrack* stsTrack);
void Exec(Option_t* opt);
InitStatus Init();
void Finish();
void SetUseMcQa(){useMcQa = kTRUE;};
void SetUseDigiQa(){useDigiQa = kTRUE;};
void SetUseHitQa(){useHitQa = kTRUE;};
void SetUseTrackQa(){useTrackQa = kTRUE;};
private:
Int_t fNHitsOfLongTracks;
Int_t fEventNumber;
Int_t fminHitReq;
Float_t fMvdRecoRatio;
Int_t fBadTrack;
Int_t fUsedTracks;
Int_t fnrOfMergedHits;
TClonesArray* fStsTrackArray;
TClonesArray* fStsTrackArrayP;
TClonesArray* fStsTrackArrayN;
TClonesArray* fStsTrackMatches;
TClonesArray* fGlobalTrackArray;
TClonesArray* fListMCTracks;
TClonesArray* fMCTrackArrayP;
TClonesArray* fMCTrackArrayN;
TClonesArray* fMcPoints;
TClonesArray* fMvdDigis;
TClonesArray* fMvdCluster;
TClonesArray* fMvdHits;
TClonesArray* fMvdHitMatchArray;
TClonesArray* fBadTracks;
TClonesArray* fInfoArray;
TH2F* fMvdResHistoX;
TH2F* fMvdResHistoR;
TH2F* fMvdResHistoY;
TH2F* fMvdResHistoXY;
TH1F* fMatchingEffiHisto;
TH2F* fMvdDigiDist1;
TH2F* fMvdDigiDist2;
TH2F* fMvdDigiDist3;
TH2F* fMvdDigiDist4;
TH2F* fMvdDigiWorst;
TH2F* fMvdHitWorst;
TH2F* fMvdMCWorst;
TH2F* fMvdMCWorstDelta;
TH2F* fMvdMCBank[63];
TH2F* fMvdMCHitsStations[4];
TH1F* fWordsPerSuperRegion;
TH1F* fWorstSuperPerEvent;
TH2I* fMvdBankDist;
TH1F* fMvdTrackQa1F[20];
TH2F* fMvdTrackQa2F[20];
CbmVertex* fPrimVtx;
CbmVertex* fSecVtx;
CbmMvdDetector* fDetector;
Bool_t useMcQa;
Bool_t useDigiQa;
Bool_t useHitQa;
Bool_t useTrackQa;
// Double_t GetImpactParameterRadius(CbmLitTrackParam etrack);
// Double_t GetImpactParameterX(CbmLitTrackParam etrack);
// Double_t GetImpactParameterY(CbmLitTrackParam etrack);
// Double_t GetTransverseMomentum(CbmLitTrackParam etrack);
// Double_t GetMomentum(CbmLitTrackParam etrack);
// Double_t GetMomentumZ(CbmLitTrackParam etrack);
// Double_t GetAngle(CbmLitTrackParam etrack);
void SetupHistograms();
void ExecDigiQa();
void ExecHitQa();
void ExecMCQa();
void ExecTrackQa();
void FinishMCQa();
void FinishDigiQa();
void FinishHitQa();
void FinishTrackQa();
CbmMvdQa(const CbmMvdQa&);
CbmMvdQa& operator=(const CbmMvdQa&);
ClassDef(CbmMvdQa,1);
};
#endif