#include "PndMakeTrainDataLhe.h" #include "PndEmcCluster.h" #include "TGeoManager.h" #include "PndEmcClusterMoments.h" #include "PndEmcXClMoments.h" #include "TChain.h" PndMakeTrainDataLhe::PndMakeTrainDataLhe() { fNCLASS = 0; TFile *f = new TFile("/daq/dtbina/vanni/test/points_tpcmvdemc_kminus.root"); TGeoManager *gGeoManager = (TGeoManager*)f->FindObject("CBMGeom"); cout<<"Inside constructor"<FindObject("CBMGeom"); } PndMakeTrainDataLhe::~PndMakeTrainDataLhe() { } void PndMakeTrainDataLhe::AddInFile(string className,string recoFileName) { string FileString; FileString = recoFileName; vector ::iterator it; // cout<<" -I- Adding Input files for the class"< stringVec; fInFileNameArray.insert(pair >(className,stringVec)); (fInFileNameArray.find(className)->second).push_back(FileString); fNCLASS = fNCLASS +1; fClassNameArray.push_back(className); // cout<<"No of Classes added = "<second).push_back(FileString); } cout << " -I- classes added for training are :"; for (it=fClassNameArray.begin(); itFindObject(outFileName.c_str()); if (outfile) outfile->Close(); TFile *outfile = new TFile(outFileName.c_str(),"recreate"); TDirectory *dir = outfile->mkdir("out"); //TNtuple *ntuple = new TNtuple("dummy","dummy","PMag:tpc:mvd:beta:msquare"); TNtuple *ntuple = new TNtuple("dummy","dummy","p:stt:mvd:beta:tof:thetaC:emc"); cout< fileNameVec; className = fClassNameArray[i]; ntuple->SetNameTitle(className.c_str(),className.c_str()); fileNameVec = fInFileNameArray.find(className)->second; TChain *recoChain = new TChain("cbmsim"); // cout<<" "<AddFile((fileName).c_str())<GetEntriesFast()<cd(); ntuple->Write(); outfile->Write(); ntuple->Reset(); delete recoChain; } outfile->Close(); } void PndMakeTrainDataLhe::FillNTuple(TChain &recoChain, TNtuple &ntuple) { TClonesArray *ArrLhe = new TClonesArray("PndLhePidTrack"); recoChain.SetBranchAddress("LhePidTrack",&ArrLhe); TClonesArray *ArrEmc = new TClonesArray("PndEmcCluster"); recoChain.SetBranchAddress("EmcCluster",&ArrEmc); // gGeoManager = (TGeoManager*) gROOT->FindObject("CBMGeom"); //cout<At(0); if (track == NULL) continue; Double_t mvd = track->GetMvdELoss(); Double_t stt = track-> GetSttDEDX(); Double_t s = track->GetBeta(); TVector3 pvec = track->GetMomentum(); Double_t p = pvec.Mag(); Double_t t= track->GetTof(); Double_t tC= track->GetDrcThetaC(); Double_t energy = track->GetEmcELoss(); Int_t EmcIndex = track->GetEmcIndex(); if (EmcIndex == -1)continue; PndEmcCluster *Cluster = (PndEmcCluster *) ArrEmc->At(EmcIndex); // PndEmcClusterMoments mom = Cluster->Moments(); // mom->Center1(); /* PndEmcXClMoments momX = Cluster->Xmoments(); Double_t mom00 = momX.AbsZernikeMoment(0, 0); Double_t mom10 = momX.AbsZernikeMoment(1, 0); Double_t mom11 = momX.AbsZernikeMoment(1, 1); Double_t mom20 = momX.AbsZernikeMoment(2, 0); Double_t mom21 = momX.AbsZernikeMoment(2, 1); Double_t mom22 = momX.AbsZernikeMoment(2, 2); */ // Double_t mom1 = (mom.Centre1()).Mag(); // Double_t mom2 = (mom.Centre2()).Mag(); //cout<