// ------------------------------------------------------------------------- // ----- PNDRHOPROPDISTTOIP header file ----- // ------------------------------------------------------------------------- #ifndef PNDRHOPROPDISTTOIP_H_ #define PNDRHOPROPDISTTOIP_H_ #include "RhoTuple.h" #include "RhoCandidate.h" #include "PndHelixPropagator.h" #include "FairTrackPar.h" #include "FairTrackParP.h" #include "FairTrackParH.h" #include "FairGeanePro.h" class PndRhoPropDistToIP { public: /** Default constructor **/ PndRhoPropDistToIP( int verboseLevel = 10 ); /** Destructor **/ virtual ~PndRhoPropDistToIP(); /** verbose setting **/ void SetVerbose( int verbose = 10 ) { fVerbose = verbose; }; /** Pass the particle candidate to extract fit parameters **/ Bool_t SetParticleTrackPar( RhoCandidate * cand, TVector3 vtxPos ); FairTrackParP * GetParticleTrackParP() { return &fTrackPoint; }; FairTrackParH * GetParticleTrackParH() { return &fTrackHelix; }; /** Propagate with helix **/ Bool_t PropagateWithHelix(); FairTrackPar * GetParticlePropResultHelix() { return &fPropResultHelix; }; /** Propagate with Geane **/ Bool_t PropagateWithGeane(); Bool_t PropagateWithGeanePocaIP(); FairTrackParP * GetParticlePropResult() { return &fPropResult; }; FairTrackParH * GetParticlePropResultPocaIP() { return &fPropResultPocaIP; }; /** Return the distance to IP **/ Double_t GetDistanceToIP(); Double_t GetDistanceToIPPocaIP(); Double_t GetDistanceToIPHelix(); /** Save the results in an nTuple **/ void qaPropResult(TString pre, RhoTuple * n, bool skip = false); private: /** Initialize propagators **/ void Init(); // // private objects // // verbose level int fVerbose; // current particle candidate RhoCandidate * fCand; Bool_t fCandWorks; // propagator objects FairGeanePro * fGeaneProp; PndHelixPropagator fHelixProp; Bool_t fPropSuccessful, fPropPocaIPSuccessful, fPropHelixSuccessful; // some vectors TVector3 fNullVector, fDirectionX, fDirectionY; // track parameters FairTrackParP fTrackPoint, fPropResult; FairTrackParH fTrackHelix, fPropResultPocaIP; FairTrackPar fPropResultHelix; /** Save the results in an nTuple **/ void qaTrackParResult(TString pre, RhoTuple * n, FairTrackPar * trPar, bool skip = false); }; #endif /* PNDRHOPROPDISTTOIP_H_ */