Index: cards/delphes_card_IDEAtrkCov.tcl
===================================================================
--- cards/delphes_card_IDEAtrkCov.tcl	(revision f9517a5e4ed496c755f9a7b152ea8e3872e42203)
+++ cards/delphes_card_IDEAtrkCov.tcl	(revision dc883b418f756a51d99b4d5261734ed1a5fc731e)
@@ -8,5 +8,7 @@
 #        michele.selvaggi@cern.ch
 #####################################################################
-#
+
+set B 2.0
+
 #######################################
 # Order of execution of various modules
@@ -59,5 +61,4 @@
   TreeWriter
 }
-
 
 #################################
@@ -80,5 +81,5 @@
 
   # magnetic field, in T
-  set Bz 2.0
+  set Bz $B
 }
 
@@ -310,7 +311,6 @@
     }
 
-    set Bz 2.0
-}
-
+    set Bz $B
+}
 
 ##############
@@ -767,3 +767,6 @@
     add Branch MissingET/momentum MissingET MissingET
     add Branch ScalarHT/energy ScalarHT ScalarHT
-}
+
+    # add Info InfoName InfoValue
+    add Info Bz $B
+}
Index: classes/DelphesModule.cc
===================================================================
--- classes/DelphesModule.cc	(revision f9517a5e4ed496c755f9a7b152ea8e3872e42203)
+++ classes/DelphesModule.cc	(revision dc883b418f756a51d99b4d5261734ed1a5fc731e)
@@ -130,4 +130,21 @@
 //------------------------------------------------------------------------------
 
+void DelphesModule::AddInfo(const char *name, Double_t value)
+{
+  stringstream message;
+  if(!fTreeWriter)
+  {
+    fTreeWriter = static_cast<ExRootTreeWriter *>(GetObject("TreeWriter", ExRootTreeWriter::Class()));
+    if(!fTreeWriter)
+    {
+      message << "can't access access tree writer";
+      throw runtime_error(message.str());
+    }
+  }
+  fTreeWriter->AddInfo(name, value);
+}
+
+//------------------------------------------------------------------------------
+
 ExRootResult *DelphesModule::GetPlots()
 {
Index: classes/DelphesModule.h
===================================================================
--- classes/DelphesModule.h	(revision f9517a5e4ed496c755f9a7b152ea8e3872e42203)
+++ classes/DelphesModule.h	(revision dc883b418f756a51d99b4d5261734ed1a5fc731e)
@@ -55,4 +55,5 @@
 
   ExRootTreeBranch *NewBranch(const char *name, TClass *cl);
+  void AddInfo(const char *name, Double_t value);
 
   ExRootResult *GetPlots();
Index: examples/Example6.C
===================================================================
--- examples/Example6.C	(revision f9517a5e4ed496c755f9a7b152ea8e3872e42203)
+++ examples/Example6.C	(revision dc883b418f756a51d99b4d5261734ed1a5fc731e)
@@ -64,5 +64,5 @@
 	// CEntral track over min Pt
 	TH1* histPtgenC = new TH1F("h_PtgenC", "Generated Pt - Central", 500, 0., 50.);		// pt for central tracks;
-	TH1* histPtobsC = new TH1F("h_PtobsC", "Reconstructed Pt - Central", 500, 0., 50.);	// pt for central 
+	TH1* histPtobsC = new TH1F("h_PtobsC", "Reconstructed Pt - Central", 500, 0., 50.);	// pt for central
 	TH1* histCtgenH = new TH1F("h_CtgenH", "Generateded Cotangent", 100, -10., 10.);		// cot(theta) for high pt tracks;
 	TH1* histCtobsH = new TH1F("h_CtobsH", "Reconstructed Cotangent", 100, -10., 10.);	// cot(theta) for high pt tracks
@@ -77,5 +77,5 @@
 	//
 	// Get magnetifc field
-	Double_t Bz = 2.0;
+	Double_t Bz = treeReader->GetInfo("Bz");
 
 	// Loop over all events
@@ -107,5 +107,5 @@
 				histCtobs->Fill(obsCtg);
 				//
-				// Get associated generated particle 
+				// Get associated generated particle
 				GenParticle* gp = (GenParticle*)trk->Particle.GetObject();
 				//
@@ -162,5 +162,5 @@
 					GenParticle* gpart = (GenParticle*)branchGenPart->At(it);
 					//
-					// Plot charged particle parameters 
+					// Plot charged particle parameters
 					// Only final state particles (Status = 1)
 					if (gpart->Status == 1 && TMath::Abs(gpart->Charge) > 0) {
@@ -290,5 +290,5 @@
 	histAccCtgH->Draw();
 	Cnv5->cd(3); gPad->SetLogy(1);
-	histPtgenC->Draw(); 
+	histPtgenC->Draw();
 	histPtobsC->SetLineColor(kRed);
 	histPtobsC->Draw("SAME");
Index: external/ExRootAnalysis/ExRootTreeReader.cc
===================================================================
--- external/ExRootAnalysis/ExRootTreeReader.cc	(revision f9517a5e4ed496c755f9a7b152ea8e3872e42203)
+++ external/ExRootAnalysis/ExRootTreeReader.cc	(revision dc883b418f756a51d99b4d5261734ed1a5fc731e)
@@ -12,4 +12,5 @@
 #include "TBranchElement.h"
 #include "TCanvas.h"
+#include "TParameter.h"
 #include "TClonesArray.h"
 #include "TH2.h"
@@ -119,4 +120,17 @@
 //------------------------------------------------------------------------------
 
+Double_t ExRootTreeReader::GetInfo(const char *name)
+{
+  TTree *tree = NULL;
+  TParameter<Double_t> *param = NULL;
+  Double_t result = -999.9;
+  if(fChain) tree = fChain->GetTree();
+  if(tree) param = static_cast<TParameter<Double_t> *>(tree->GetUserInfo()->FindObject(name));
+  if(param) result = param->GetVal();
+  return result;
+}
+
+//------------------------------------------------------------------------------
+
 Bool_t ExRootTreeReader::Notify()
 {
Index: external/ExRootAnalysis/ExRootTreeReader.h
===================================================================
--- external/ExRootAnalysis/ExRootTreeReader.h	(revision f9517a5e4ed496c755f9a7b152ea8e3872e42203)
+++ external/ExRootAnalysis/ExRootTreeReader.h	(revision dc883b418f756a51d99b4d5261734ed1a5fc731e)
@@ -29,4 +29,5 @@
 
   TClonesArray *UseBranch(const char *branchName);
+  Double_t GetInfo(const char *name);
 
 private:
Index: external/ExRootAnalysis/ExRootTreeWriter.cc
===================================================================
--- external/ExRootAnalysis/ExRootTreeWriter.cc	(revision f9517a5e4ed496c755f9a7b152ea8e3872e42203)
+++ external/ExRootAnalysis/ExRootTreeWriter.cc	(revision dc883b418f756a51d99b4d5261734ed1a5fc731e)
@@ -11,4 +11,5 @@
 #include "ExRootAnalysis/ExRootTreeBranch.h"
 
+#include "TParameter.h"
 #include "TClonesArray.h"
 #include "TFile.h"
@@ -48,4 +49,12 @@
   fBranches.insert(branch);
   return branch;
+}
+
+//------------------------------------------------------------------------------
+
+void ExRootTreeWriter::AddInfo(const char *name, Double_t value)
+{
+  if(!fTree) fTree = NewTree();
+  fTree->GetUserInfo()->Add(new TParameter<Double_t>(name, value));
 }
 
Index: external/ExRootAnalysis/ExRootTreeWriter.h
===================================================================
--- external/ExRootAnalysis/ExRootTreeWriter.h	(revision f9517a5e4ed496c755f9a7b152ea8e3872e42203)
+++ external/ExRootAnalysis/ExRootTreeWriter.h	(revision dc883b418f756a51d99b4d5261734ed1a5fc731e)
@@ -29,4 +29,5 @@
 
   ExRootTreeBranch *NewBranch(const char *name, TClass *cl);
+  void AddInfo(const char *name, Double_t value);
 
   void Clear();
Index: modules/TreeWriter.cc
===================================================================
--- modules/TreeWriter.cc	(revision f9517a5e4ed496c755f9a7b152ea8e3872e42203)
+++ modules/TreeWriter.cc	(revision dc883b418f756a51d99b4d5261734ed1a5fc731e)
@@ -123,4 +123,17 @@
     fBranchMap.insert(make_pair(branch, make_pair(itClassMap->second, array)));
   }
+
+  param = GetParam("Info");
+  TString infoName;
+  Double_t infoValue;
+
+  size = param.GetSize();
+  for(i = 0; i < size / 2; ++i)
+  {
+    infoName = param[i * 2].GetString();
+    infoValue = param[i * 2 + 1].GetDouble();
+
+    AddInfo(infoName, infoValue);
+  }
 }
 
@@ -138,5 +151,5 @@
   it1.Reset();
   array->Clear();
-  
+
   while((candidate = static_cast<Candidate *>(it1.Next())))
   {
@@ -537,5 +550,5 @@
     entry->CtgTheta = ctgTheta;
     entry->C = candidate->C;
-    
+
     particle = static_cast<Candidate *>(candidate->GetCandidates()->At(0));
     const TLorentzVector &initialPosition = particle->Position;
