void run_labcm_conversion(Int_t nEntries =10000)
{
  gSystem->Load("/home/ajay/fairsoft/lib/libPythia6.so");
 
  gROOT->LoadMacro("$VMCWORKDIR/gconfig/rootlogon.C");
  rootlogon();
  // gStyle->SetOptStat(0);
  gStyle->SetLabelFont(62,"x");
  gStyle->SetLabelFont(62,"y");
  gStyle->SetLabelSize(0.04,"x");
  gStyle->SetLabelSize(0.04,"y");
  gStyle->SetTitleXSize(0.04);
  gStyle->SetTitleYSize(0.04);
  gStyle->SetTitleXOffset(1.2);
  gStyle->SetTitleYOffset(1.2);
  gStyle->SetTextFont(60);

  TString inSimFile = "llbar_lamdisk_Sim.root";

  TFile *inFile = TFile::Open(inSimFile,"READ");
  TTree *tree=(TTree *) inFile->Get("cbmsim") ;
  
  TH1F *thetacm = new TH1F("","",100,0,20);
 
  TClonesArray* mc_array=new TClonesArray("PndMCTrack");
  tree->SetBranchAddress("MCTrack", &mc_array);
  
  TLorentzVector proton,antiproton,piplus, piminus, Lambda,AntiLambda,Lambda_cm,AntiLambda_cm, TotMom, Totsys;
  
  for (Int_t j=0; j< nEntries && j< tree->GetEntriesFast(); j++){
    tree->GetEntry(j);
    
    Float_t  mc_theta,mc_phi,AngleCM,AngleLAB ;
    Double_t TotalMom, TotalEnergy,betacm,PI=3.14;
    
    for (Int_t mc = 0; mc < mc_array->GetEntriesFast(); mc++)
      {
	PndMCTrack *mctrack = (PndMCTrack*)mc_array->At(mc);
	if (mctrack->GetMotherID()!=-1) continue;
	mc_theta = mctrack->GetMomentum().Theta()*TMath::RadToDeg();

	//cout << mc_theta << endl;
	//mc_phi= mctrack->GetMomentum().Phi()*TMath::RadToDeg();

	Int_t mc_pid = mctrack->GetPdgCode();
	TotMom = mctrack->Get4Momentum();
	//	cout << "TT =="<< TotMom << endl;
	if (mc_pid==2212)
	  {
	    proton = TotMom;
	    //       cout << "PP =="<< proton << endl;
	  }
	
	if (mc_pid==-211)
	  {
	    piminus=TotMom;
           }  
	
	if (mc_pid==-2212)
	  {
	    antiproton = TotMom;
	    //  cout << "test =="<< antiproton<< endl;
	  }
	
	if (mc_pid==211)
	  {
	    piplus=TotMom;
	  }  
	
      }
    Lambda = proton+piminus;
    AntiLambda =antiproton+piplus;
    
 /* TotalEnergy= Lambda.E();
    TotalMom= Lambda.P();
    betacm = TotalMom/TotalEnergy;
    cout << "Angle lab ="<< Lambda.Theta()*(180*PI)<< endl;
    */
    TotalEnergy = (Lambda+ AntiLambda).E(); 
    TotalMom = (Lambda+AntiLambda).P();
    AngleLAB = (Lambda+AntiLambda).Theta()*(180/PI);
 
    //cout <<"Angle_Lab =="<< AngleLAB << endl;
    // cout<<"angle_lab== "<<(Lambda+AntiLambda).Theta()*(180/PI)<< endl;;

    betacm = TotalMom/TotalEnergy;
    
    Lambda.Boost(0., 0., betacm);
    AntiLambda.Boost(0.,0.,betacm);
    
    AngleCM = (Lambda+AntiLambda).Theta()*(180/PI);
    thetacm->Fill(AngleCM);
    // cout << "Lambda_cm_Energy =" << (Lambda+AntiLambda).E()<< endl;
    // cout << "Lambda_cm_Mom =" << (Lambda+AntiLambda).Px()<< endl;
    // cout << "Lambda_cm_Mom =" << (Lambda+AntiLambda).Pz()<< endl;
    // cout << "Angle_cm ="<< (Lambda+AntiLambda).Theta()*(180/PI)<< endl;

    //  cout << "Angle_cm =" << AngleCM << endl;
    
  }
  thetacm -> Draw();

}
