// ------------------------------------------------------------------------- // ----- CbmAnaFlow.h header file ----- // ----- Created 23/05/13 by Selim ----- // ------------------------------------------------------------------------- #ifndef CbmAnaFlow_H #define CbmAnaFlow_H 1 #include "KFMCParticle.h" #include "KFParticleMatch.h" #include "CbmKFPartEfficiencies.h" #include "FairTask.h" #include "CbmVertex.h" #include #include #include #include "UEvent.h" class CbmMCEventHeader; class CbmKFParticlesFinder; class TClonesArray; class CbmVertex; class TDirectory; class TH1F; class TH2F; class CbmAnaFlow : public FairTask { public: /** Default constructor **/ CbmAnaFlow(); CbmAnaFlow(const char* name, Int_t verbose = 1, Double_t En = 0.); /** Destructor **/ ~CbmAnaFlow(); /** Virtual method Init **/ virtual InitStatus Init(); /** Virtual method Exec **/ virtual void Exec(Option_t* opt); void setMode(Int_t mode) { fmode = mode; } bool CreateTreeGen(); bool CreateTreeReco(); bool CreateTreeKFPart(); void setFileName_gen(TString fileName) { fileName_gen = fileName; } void setFileName_tree(TString fileName) { fileName_tree = fileName; } void setTreeName(TString fileName) { treeName = fileName; } void setDependence(TString dependence) { fdependence = dependence; } void setParticleToAnalyse(Int_t sel_pdg) { fsel_pdg = sel_pdg; } //PDG code void setflowHarmoToAnalyse(TString sel_factor) { fsel_factor = sel_factor; } //flow component void setBrange(Double_t sel_Bmin, Double_t sel_Bmax) { fsel_Bmin = sel_Bmin; fsel_Bmax = sel_Bmax; } void projRapidityCM(); void CreateHisto(); void Write(); void Finish(); private: Double_t fPi; Double_t fmass_proton; Int_t fmode; // mode = 0: create Tree out of generation output // 1: create Tree out of reco. (+ evenPlane) output // 2: create Tree out of KParticle Finder (+ evenPlane) output // 3: create final histo CbmMCEventHeader *fHeader; // at generation output TString fileName_gen; TTree* fTree_gen; UEvent *fEvent_gen; Double_t fBetaCM; // CM velocity Double_t fGammaCM; // CM Lorentz factor Int_t fevt_inc; // at reco. output TClonesArray *flistRECOtrack; TClonesArray *flisttrackMATCH; CbmVertex *flistPV; // at KFParticle finder output TClonesArray* fRecParticles; TClonesArray* fMCParticles; TClonesArray* fMatchParticles; TClonesArray* flistMCtrack; CbmKFPartEfficiencies fParteff; // test histo TH1F *hPartParam1; TH1F *hPartParam2; TH1F *hPartParam3; TH1F *hPartParam4; // ttree TTree* outTree_MC; TTree* outTree_RECO; Double_t fphi_to_RP, fphi_to_EP; Double_t fY, fpt, fmass; Int_t fpdg, fmotherID; Double_t fB_MC; // final histo TString fileName_tree; TString treeName; TString fdependence; Int_t fsel_pdg; TString fsel_factor; // fsel_factor = "1": v1 analysis, "2": v2 analysis; by default, fsel_factor = "1"; IMPORTANT condition: fsel_factor >= harmo. of evenPlane!! Double_t fsel_Bmin; Double_t fsel_Bmax; Double_t fy_proj_cm, fy_cm; Double_t fEn; ClassDef(CbmAnaFlow,1); }; #endif