123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- //
- // The version of the class should be changed every time
- // when any changes in the codes are done
- // Grigory Nigmatkulov: 2016/12/15
- //
- #ifndef STO97FEMTODSTMAKER_H
- #define STO97FEMTODSTMAKER_H
- #include "StMaker.h"
- #include "StThreeVector.hh"
- #include "StThreeVectorF.hh"
- #include "StPhysicalHelixD.hh"
- #include "StRefMultCorr/StRefMultCorr.h"
- #include "StFemtoEvent.h"
- #include "StFemtoTrack.h"
- #include "StMuDSTMaker/COMMON/StMuDstMaker.h"
- #include "StMuDSTMaker/COMMON/StMuDst.h"
- #include "StMuDSTMaker/COMMON/StMuEvent.h"
- #include "StMuDSTMaker/COMMON/StMuTrack.h"
- #include "StMuDSTMaker/COMMON/StMuPrimaryVertex.h"
- #include "StMuDSTMaker/COMMON/StMuBTofPidTraits.h"
- #include "StMuDSTMaker/COMMON/StMuBTofHit.h"
- #include <TString.h>
- #include <TFile.h>
- #include <TLorentzVector.h>
- #include <TTree.h>
- #include <TH1.h>
- #include <TH2.h>
- #include <TVectorT.h>
- #include <TMatrixTLazy.h>
- #include <TMatrixDSymEigen.h>
- #include "TDatabasePDG.h"
- #include "TRandom3.h"
- #include <vector>
- #include <iostream>
- using namespace std;
- //
- // Predefinisions
- //
- class StFemtoEvent;
- class StFemtoTrack;
- class StMuDst;
- class StMuDstMaker;
- class StMuEvent;
- class StMuTrack;
- class StO97FemtoDstMaker : public StMaker {
- public:
- StO97FemtoDstMaker(const Char_t *iFileName,
- const Char_t *oFileName);
- ~StO97FemtoDstMaker();
- void Clear(Option_t *option = "") { StMaker::Clear(option); }
- Int_t Init();
- Int_t Make();
- Int_t Finish();
- Bool_t IsStop() { return mStop; }
- void SetCompressionlevel(Int_t comp);
- //
- // Setters
- //
- // event
- void SetSphericityCut(float ptCut) { mPtCut = ptCut; }
- // track
- void SetParticleMomentum(const Float_t& lo, const Float_t& hi) { mTrackMomentum[0]=lo; mTrackMomentum[1]=hi; }
- void SetTrackDca(const Float_t& lo, const Float_t& hi) { mTrackDca[0]=lo; mTrackDca[1]=hi; }
- void SetTrackEta(const Float_t& lo, const Float_t& hi) { mTrackEta[0]=lo; mTrackEta[1]=hi; }
- private:
- const Char_t *mOutFileName;
- const Char_t *mInFileName;
- TFile *mOutFile;
- FILE *mInFile;
- TTree *mTree;
- Int_t mCompression;
- TRandom3 *mRandy;
- TDatabasePDG *mDb;
- //
- // Reference Multiplicity
- //
- int mRefMult;
- int mRefMult2;
- int mRefMultPos;
- int mRefMult2Pos;
- //
- // Sphericity
- //
- TMatrixTSym<double> *mMatrix; // transverse sphericity matrix
- float mPtCut;
- float mSphericity;
- //
- // Single-particle cuts
- //
- Float_t mTrackMomentum[2];
- Float_t mTrackDca[2];
- Float_t mTrackEta[2];
- Bool_t mStop;
- Int_t mNBytes;
- Int_t mNEvents;
- Int_t mNTracks;
- char mBuf[128]; // buffer for general read purposes
- StFemtoEvent *mEvent;
- Bool_t ReadEvent();
- Bool_t ReadTracks();
- Double_t dedxMean(Double_t mass, Double_t momentum);
- void TopologyMap(unsigned int *tmap1, unsigned int *tmap2, float ptot);
- ClassDef(StO97FemtoDstMaker, 1)
- };
- #endif
|