#include #include #include #include #include class TpcVertex; class GFRaveVertex; class FopiLambdaCand; class LambdaChain: public TObject{ public: LambdaChain(bool MC=false); LambdaChain(TChain* chain_,bool MC=false); ~LambdaChain(){;} void addFile(TString file){chain->AddFile(file);} void replaceChain(TChain* chain_){chain=chain_;} void setTracksBranchName(TString name){tracksBranchName=name;} void setSimpleVertexBranchName(TString name){simpleVertexBranchName=name;} void setVertexBranchName(TString name){vertexBranchName=name;} void setVertexRaveBranchName(TString name){vertexRaveBranchName=name;} void setLambdaVertexBranchName(TString name){lambdaVertexBranchName=name;} void setLambdaVertexRaveBranchName(TString name){lambdaVertexRaveBranchName=name;} void setLambdaCandBranchName(TString name){lambdaCandBranchName=name;} void init(); void loop(unsigned int nEv=0); void loopMc(unsigned int nEv=0); int fillLambdaHists(FopiLambdaCand* cand, TpcVertex* lvtx, GFRaveVertex* lRaveVtx); void fillRaveVtxHists(TpcVertex* theVtx, GFRaveVertex* theRaveVtx); void fillRaveAvrVtxHists(TpcVertex* theVtx, GFRaveVertex* theRaveVtx); void fillSimpleVtxHists(TpcVertex* theVtx); unsigned int getEntries(){return chain->GetEntries();} void saveHistograms(TString file); void setCuts(double zVtx, double xVtx, double yVtx){ zVtxCut=zVtx; xVtxCut=xVtx; yVtxCut=yVtx; } void setLambdaVertexBranchNames(TString rave,TString tpc){ lambdaVertexBranchName=tpc; lambdaVertexRaveBranchName=rave; } private: TChain* chain; bool mc; std::vector arrays; TClonesArray* tracksArray; TClonesArray* simpleVertexArray; TClonesArray* vertexArray; TClonesArray* avrVertexArray; TClonesArray* vertexRaveArray; TClonesArray* avrVertexRaveArray; TClonesArray* lambdaVertexArray; TClonesArray* lambdaVertexRaveArray; TClonesArray* lambdaCandArray; TString tracksBranchName; TString simpleVertexBranchName; TString vertexBranchName; TString vertexRaveBranchName; TString lambdaVertexBranchName; TString lambdaVertexRaveBranchName; TString avrVertexBranchName; TString avrVertexRaveBranchName; TString lambdaCandBranchName; std::map histograms1D; //name -> histogram std::map histograms2D; //name -> histogram unsigned int simpleCount; void printEv(unsigned int iEv,unsigned int nEntries, int timeStart); double xVtxCut; double yVtxCut; double zVtxCut; public : ClassDef(LambdaChain,0) };