diff --git a/NPAnalysis/pMakePhysicalTree/AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector______.cxx b/NPAnalysis/pMakePhysicalTree/AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector______.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..9af97affd4fa54c0c0b65b207f5abe9529c18eca
--- /dev/null
+++ b/NPAnalysis/pMakePhysicalTree/AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector______.cxx
@@ -0,0 +1,11 @@
+#include "DataProcessor.h"
+#include "string"
+#ifdef __CINT__ 
+#pragma link C++ nestedclasses;
+#pragma link C++ nestedtypedefs;
+#pragma link C++ class map<string,NPA::VDetector*,less<string>,allocator<pair<const string,NPA::VDetector*> > >+;
+#pragma link C++ class map<string,NPA::VDetector*,less<string>,allocator<pair<const string,NPA::VDetector*> > >::*;
+#pragma link C++ operators map<string,NPA::VDetector*,less<string>,allocator<pair<const string,NPA::VDetector*> > >::iterator;
+#pragma link C++ operators map<string,NPA::VDetector*,less<string>,allocator<pair<const string,NPA::VDetector*> > >::const_iterator;
+#pragma link C++ operators map<string,NPA::VDetector*,less<string>,allocator<pair<const string,NPA::VDetector*> > >::reverse_iterator;
+#endif
diff --git a/NPAnalysis/pMakePhysicalTree/AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.d b/NPAnalysis/pMakePhysicalTree/AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.d
new file mode 100644
index 0000000000000000000000000000000000000000..b144e619b402fffd5b01285007c389b85650feed
--- /dev/null
+++ b/NPAnalysis/pMakePhysicalTree/AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.d
@@ -0,0 +1,121 @@
+
+# DO NOT DELETE
+
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: DataProcessor.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/DetectorManager.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/VDetector.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/NPOptionManager.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TSelector.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TObject.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/Rtypes.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/RConfig.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/RVersion.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/DllImport.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/Rtypeinfo.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/snprintf.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/strlcpy.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TGenericClassInfo.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TSchemaHelper.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TStorage.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TVersionCheck.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/Riosfwd.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TBuffer.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TString.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TMathBase.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TSelectorList.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TList.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TSeqCollection.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TCollection.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TIterator.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TROOT.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TDirectory.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TNamed.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TDatime.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TUUID.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TChain.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TTree.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TBranch.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TObjArray.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TAttFill.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TDataType.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TDictionary.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/Property.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TAttLine.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TAttMarker.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TArrayD.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TArray.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TArrayI.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TClass.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TObjString.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TVirtualTreePlayer.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TFile.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TDirectoryFile.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TMap.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/THashTable.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TUrl.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TLeaf.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TVector3.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TError.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TVector2.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TMatrix.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TMatrixF.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TMatrixT.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TMatrixTBase.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TMatrixFBasefwd.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TMatrixDBasefwd.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TVectorFfwd.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TVectorDfwd.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TMatrixTUtils.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TMatrixFfwd.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TMatrixFUtils.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TMatrixFUtilsfwd.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TRandom.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TSystem.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TInetAddress.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TTimer.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TSysEvtHandler.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TQObject.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TTime.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TProofOutputFile.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/RootInput.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/RootOutput.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/TAsciiFile.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/NPReaction.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/NPNucleus.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TLorentzVector.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TMath.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TRotation.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/NPPhysicalConstants.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/NPSystemOfUnits.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/NPBeam.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TH1F.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TH1.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TAxis.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TAttAxis.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TArrayC.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TArrayS.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TArrayF.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/Foption.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TFitResultPtr.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TH2F.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TH2.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TLorentzRotation.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TGraph.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TCanvas.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TPad.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TVirtualPad.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TAttPad.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TVirtualX.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TAttText.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/GuiTypes.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/Buttons.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TAttCanvas.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/TCanvasImp.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/TInitialConditions.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/TSharcData.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/TSharcPhysics.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/CalibrationManager.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/VDetector.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/NPGlobalSystemOfUnits.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx.so: /usr/local/root-5.34.04/include/cintdictversion.h /usr/local/root-5.34.04/include/RVersion.h
+AutoDict_map_string_NPA__VDetector__less_string__allocator_pair_const_string_NPA__VDetector_______cxx__ROOTBUILDVERSION= 5.34/04
diff --git a/NPAnalysis/pMakePhysicalTree/DataProcessor.cxx b/NPAnalysis/pMakePhysicalTree/DataProcessor.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..93cd66f7f7db4374014b34a050b7cc70cc7ed24f
--- /dev/null
+++ b/NPAnalysis/pMakePhysicalTree/DataProcessor.cxx
@@ -0,0 +1,72 @@
+#include "DataProcessor.h"
+ClassImp(DataProcessor);
+
+//_____________________________________________________________________________
+DataProcessor::DataProcessor(){
+  m_InputChain = 0 ;
+  m_OutputTree = 0 ;
+}
+
+//_____________________________________________________________________________
+DataProcessor::~DataProcessor(){
+}
+
+//_____________________________________________________________________________
+void DataProcessor::SlaveBegin(TTree*){
+  TString NPLPath = gSystem->Getenv("NPTOOL");
+  gROOT->ProcessLine(Form(".x %s/NPLib/scripts/NPToolLogon.C+", NPLPath.Data()));
+
+  // Instantiate RootInput
+  string runToReadfileName = NPOptionManager::getInstance(GetOption())->GetRunToReadFile();
+  
+  RootInput::getInstance(runToReadfileName);
+  
+  // if input files are not given, use those from TAsciiFile
+  if (NPOptionManager::getInstance()->IsDefault("DetectorConfiguration")) {
+    string name = RootInput::getInstance()->DumpAsciiFile("DetectorConfiguration");
+    NPOptionManager::getInstance()->SetDetectorFile(name);
+  }
+  
+  string OutputfileName = NPOptionManager::getInstance()->GetOutputFile();
+  RootOutput::getInstance(OutputfileName, "S1107Physics");
+  
+  // get input files from NPOptionManager
+  string detectorfileName = NPOptionManager::getInstance()->GetDetectorFile();
+  
+  // Instantiate the detector using a file
+  m_Detector = new DetectorManager();
+  m_Detector->ReadConfigurationFile(detectorfileName);
+  
+  m_InputChain = RootInput:: getInstance()->GetChain();
+  m_OutputTree = RootOutput::getInstance()->GetTree();
+  GetInputList()->Add(m_InputChain);
+  GetOutputList()->Add(m_OutputTree);
+}
+//_____________________________________________________________________________
+Bool_t DataProcessor::Process(Long64_t entry){
+  m_Detector->ClearEventPhysics();
+  m_InputChain->GetEntry(entry);
+  m_Detector->BuildPhysicalEvent();
+  m_OutputTree->Fill();
+  return kTRUE;
+}
+
+//_____________________________________________________________________________
+void DataProcessor::Terminate(){
+  string OutputfileName = NPOptionManager::getInstance(GetOption())->GetOutputFile();
+  RootOutput::getInstance(OutputfileName, "S1107Physics");
+
+  TFile* OutputFile = RootOutput::getInstance()->InitFile(  NPOptionManager::getInstance(GetOption())->GetOutputFile());
+  m_OutputTree = (TTree*) GetOutputList()->FindObject("S1107Physics");
+  m_OutputTree->SetDirectory(OutputFile);
+  m_OutputTree->Write();
+  OutputFile->Flush();
+  RootOutput::getInstance()->Destroy();
+}
+
+//_____________________________________________________________________________
+void DataProcessor::SlaveTerminate(){
+  RootOutput::getInstance()->Destroy();
+  RootInput::getInstance()->Destroy();
+  NPOptionManager::getInstance()->Destroy();
+}
diff --git a/NPAnalysis/pMakePhysicalTree/DataProcessor.h b/NPAnalysis/pMakePhysicalTree/DataProcessor.h
new file mode 100644
index 0000000000000000000000000000000000000000..892ab743c44d679e5dc4dfe20accdf2de0d0bacb
--- /dev/null
+++ b/NPAnalysis/pMakePhysicalTree/DataProcessor.h
@@ -0,0 +1,62 @@
+#ifndef DataProcessor_h
+#define DataProcessor_h
+
+// NPA
+#include "DetectorManager.h"
+#include "NPOptionManager.h"
+
+// STL C++
+#include <iostream>
+#include <fstream>
+#include <sstream>
+#include <string>
+#include <cmath>
+#include <cstdlib>
+
+// ROOT
+#include <TSelector.h>
+#include <TROOT.h>
+#include <TChain.h>
+#include <TTree.h>
+#include <TFile.h>
+#include <TLeaf.h>
+#include <TVector3.h>
+#include <TRandom.h>
+#include "TSystem.h"
+#include <TProofOutputFile.h>
+// NPL
+#include "RootInput.h"
+#include "RootOutput.h"
+#include "NPReaction.h"
+#include "TInitialConditions.h"
+#include "TSharcData.h"
+#include "TSharcPhysics.h"
+// Use CLHEP System of unit and Physical Constant
+#include "NPGlobalSystemOfUnits.h"
+#include "NPPhysicalConstants.h"
+
+class DataProcessor : public TSelector {
+  public :
+  
+  // Define members here
+  TTree* m_InputChain; // the input chain
+  TTree* m_OutputTree; // the output tree
+  
+  NPA::DetectorManager* m_Detector ; // the detector
+  TProofOutputFile* m_ProofFile; // For merging via file
+  
+  DataProcessor();
+  virtual ~DataProcessor();
+  virtual Int_t   Version() const { return 2; }
+  virtual void    SlaveBegin(TTree *tree);
+  virtual Bool_t  Process(Long64_t entry);
+  virtual void    SetOption(const char *option) { fOption = option; }
+  virtual void    SetObject(TObject *obj) { fObject = obj; }
+  virtual void    SetInputList(TList *input) { fInput = input; }
+  virtual TList*  GetOutputList() const { return fOutput; }
+  virtual void    SlaveTerminate();
+  virtual void    Terminate();
+  
+  ClassDef(DataProcessor,2);
+};
+#endif
\ No newline at end of file
diff --git a/NPAnalysis/pMakePhysicalTree/DataProcessor_cxx.d b/NPAnalysis/pMakePhysicalTree/DataProcessor_cxx.d
new file mode 100644
index 0000000000000000000000000000000000000000..e661e319d781c3a827c74de2ae27a314b557954d
--- /dev/null
+++ b/NPAnalysis/pMakePhysicalTree/DataProcessor_cxx.d
@@ -0,0 +1,121 @@
+
+# DO NOT DELETE
+
+./DataProcessor_cxx.so: DataProcessor.h
+./DataProcessor_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/DetectorManager.h
+./DataProcessor_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/VDetector.h
+./DataProcessor_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/NPOptionManager.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TSelector.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TObject.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/Rtypes.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/RConfig.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/RVersion.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/DllImport.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/Rtypeinfo.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/snprintf.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/strlcpy.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TGenericClassInfo.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TSchemaHelper.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TStorage.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TVersionCheck.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/Riosfwd.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TBuffer.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TString.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TMathBase.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TSelectorList.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TList.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TSeqCollection.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TCollection.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TIterator.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TROOT.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TDirectory.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TNamed.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TDatime.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TUUID.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TChain.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TTree.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TBranch.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TObjArray.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TAttFill.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TDataType.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TDictionary.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/Property.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TAttLine.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TAttMarker.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TArrayD.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TArray.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TArrayI.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TClass.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TObjString.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TVirtualTreePlayer.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TFile.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TDirectoryFile.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TMap.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/THashTable.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TUrl.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TLeaf.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TVector3.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TError.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TVector2.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TMatrix.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TMatrixF.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TMatrixT.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TMatrixTBase.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TMatrixFBasefwd.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TMatrixDBasefwd.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TVectorFfwd.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TVectorDfwd.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TMatrixTUtils.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TMatrixFfwd.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TMatrixFUtils.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TMatrixFUtilsfwd.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TRandom.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TSystem.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TInetAddress.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TTimer.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TSysEvtHandler.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TQObject.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TTime.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TProofOutputFile.h
+./DataProcessor_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/RootInput.h
+./DataProcessor_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/RootOutput.h
+./DataProcessor_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/TAsciiFile.h
+./DataProcessor_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/NPReaction.h
+./DataProcessor_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/NPNucleus.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TLorentzVector.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TMath.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TRotation.h
+./DataProcessor_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/NPPhysicalConstants.h
+./DataProcessor_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/NPSystemOfUnits.h
+./DataProcessor_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/NPBeam.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TH1F.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TH1.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TAxis.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TAttAxis.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TArrayC.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TArrayS.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TArrayF.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/Foption.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TFitResultPtr.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TH2F.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TH2.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TLorentzRotation.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TGraph.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TCanvas.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TPad.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TVirtualPad.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TAttPad.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TVirtualX.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TAttText.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/GuiTypes.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/Buttons.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TAttCanvas.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/TCanvasImp.h
+./DataProcessor_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/TInitialConditions.h
+./DataProcessor_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/TSharcData.h
+./DataProcessor_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/TSharcPhysics.h
+./DataProcessor_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/CalibrationManager.h
+./DataProcessor_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/VDetector.h
+./DataProcessor_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/NPGlobalSystemOfUnits.h
+./DataProcessor_cxx.so: /usr/local/root-5.34.04/include/cintdictversion.h /usr/local/root-5.34.04/include/RVersion.h
+DataProcessor_cxx__ROOTBUILDVERSION= 5.34/04
diff --git a/NPAnalysis/pMakePhysicalTree/MakePhysicalTree.cxx b/NPAnalysis/pMakePhysicalTree/MakePhysicalTree.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..eb400f7f478732c15a28fff8a8ac5cb22ae17494
--- /dev/null
+++ b/NPAnalysis/pMakePhysicalTree/MakePhysicalTree.cxx
@@ -0,0 +1,16 @@
+#include "DataProcessor.h"
+#include "TChain.h"
+#include "TProof.h"
+#include "TDSet.h"
+
+void MakePhysicalTree(string option){
+  
+  string runToReadfileName = NPOptionManager::getInstance(option)->GetRunToReadFile();
+  TDSet* DSet = new TDSet( *(RootInput::getInstance(runToReadfileName)->GetChain()) );
+
+  
+  TProof *plite = TProof::Open("lite://") ;
+  plite->Process(DSet, "DataProcessor.cxx+", option.c_str());
+  
+  return ;
+}
\ No newline at end of file
diff --git a/NPAnalysis/pMakePhysicalTree/MakePhysicalTree_cxx.d b/NPAnalysis/pMakePhysicalTree/MakePhysicalTree_cxx.d
new file mode 100644
index 0000000000000000000000000000000000000000..c92d671652aa5e11259fec9c87b132bdeb0b4d3c
--- /dev/null
+++ b/NPAnalysis/pMakePhysicalTree/MakePhysicalTree_cxx.d
@@ -0,0 +1,139 @@
+
+# DO NOT DELETE
+
+./MakePhysicalTree_cxx.so: DataProcessor.h
+./MakePhysicalTree_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/DetectorManager.h
+./MakePhysicalTree_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/VDetector.h
+./MakePhysicalTree_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/NPOptionManager.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TSelector.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TObject.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/Rtypes.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/RConfig.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/RVersion.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/DllImport.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/Rtypeinfo.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/snprintf.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/strlcpy.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TGenericClassInfo.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TSchemaHelper.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TStorage.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TVersionCheck.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/Riosfwd.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TBuffer.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TString.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TMathBase.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TSelectorList.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TList.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TSeqCollection.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TCollection.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TIterator.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TROOT.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TDirectory.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TNamed.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TDatime.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TUUID.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TChain.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TTree.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TBranch.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TObjArray.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TAttFill.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TDataType.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TDictionary.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/Property.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TAttLine.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TAttMarker.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TArrayD.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TArray.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TArrayI.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TClass.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TObjString.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TVirtualTreePlayer.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TFile.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TDirectoryFile.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TMap.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/THashTable.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TUrl.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TLeaf.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TVector3.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TError.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TVector2.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TMatrix.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TMatrixF.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TMatrixT.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TMatrixTBase.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TMatrixFBasefwd.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TMatrixDBasefwd.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TVectorFfwd.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TVectorDfwd.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TMatrixTUtils.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TMatrixFfwd.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TMatrixFUtils.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TMatrixFUtilsfwd.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TRandom.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TSystem.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TInetAddress.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TTimer.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TSysEvtHandler.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TQObject.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TTime.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TProofOutputFile.h
+./MakePhysicalTree_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/RootInput.h
+./MakePhysicalTree_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/RootOutput.h
+./MakePhysicalTree_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/TAsciiFile.h
+./MakePhysicalTree_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/NPReaction.h
+./MakePhysicalTree_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/NPNucleus.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TLorentzVector.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TMath.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TRotation.h
+./MakePhysicalTree_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/NPPhysicalConstants.h
+./MakePhysicalTree_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/NPSystemOfUnits.h
+./MakePhysicalTree_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/NPBeam.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TH1F.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TH1.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TAxis.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TAttAxis.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TArrayC.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TArrayS.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TArrayF.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/Foption.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TFitResultPtr.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TH2F.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TH2.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TLorentzRotation.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TGraph.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TCanvas.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TPad.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TVirtualPad.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TAttPad.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TVirtualX.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TAttText.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/GuiTypes.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/Buttons.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TAttCanvas.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TCanvasImp.h
+./MakePhysicalTree_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/TInitialConditions.h
+./MakePhysicalTree_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/TSharcData.h
+./MakePhysicalTree_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/TSharcPhysics.h
+./MakePhysicalTree_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/CalibrationManager.h
+./MakePhysicalTree_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/VDetector.h
+./MakePhysicalTree_cxx.so: /Users/adrienmatta/Desktop/NPTool.dev.prerelease/NPLib/include/NPGlobalSystemOfUnits.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TProof.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TProofMgr.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TProofDebug.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TMacro.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/MessageTypes.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TMD5.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TRegexp.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/Match.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TThread.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TMutex.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TVirtualMutex.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TMutexImp.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TCondition.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TConditionImp.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/Varargs.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TThreadSlots.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TProofOutputList.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/TDSet.h
+./MakePhysicalTree_cxx.so: /usr/local/root-5.34.04/include/cintdictversion.h /usr/local/root-5.34.04/include/RVersion.h
+MakePhysicalTree_cxx__ROOTBUILDVERSION= 5.34/04
diff --git a/NPAnalysis/pMakePhysicalTree/RunToTreat.txt b/NPAnalysis/pMakePhysicalTree/RunToTreat.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f8a37350cd88c30cff2f7bcfc410b7b892eac783
--- /dev/null
+++ b/NPAnalysis/pMakePhysicalTree/RunToTreat.txt
@@ -0,0 +1,4 @@
+TTreeName 
+	S1107Data
+RootFileName 
+	/Volumes/S1107/RootData/data2251*.root
diff --git a/NPLib/IORoot/RootOutput.cxx b/NPLib/IORoot/RootOutput.cxx
index 9f98ae2297133cc01e69de2f1d6038aef19fce88..37a15abb25cef5a509a046bd13fc2a85559f6bd8 100644
--- a/NPLib/IORoot/RootOutput.cxx
+++ b/NPLib/IORoot/RootOutput.cxx
@@ -55,14 +55,24 @@ RootOutput::RootOutput(TString fileNameBase, TString treeNameBase)
 {
    // The file extension is added to the file name:
    TString GlobalPath = getenv("NPTOOL");
-   TString fileName = GlobalPath + "/Outputs/";
-   if (fileNameBase.Contains("root")) fileName += fileNameBase;
-   else fileName += fileNameBase + ".root"; 
+   
 
    // The ROOT file is created
+  if(!NPOptionManager::getInstance()->GetPROOF()){
+    TString fileName = GlobalPath + "/Outputs/";
+    if (fileNameBase.Contains("root")) fileName += fileNameBase;
+    else fileName += fileNameBase + ".root";
    pRootFile = new TFile(fileName, "RECREATE");
-   pRootTree = new TTree(treeNameBase, "Data created / analyzed with the NPTool package");
-   pRootList = new TList();
+
+   
+  }
+  
+  else{ // the file path must be the current directory
+    // Does not create the Output file at instantiation
+    pRootFile = 0 ;
+    pRootTree = new TTree(treeNameBase, "Data created / analyzed with the NPTool package");
+    pRootList = new TList();
+  }
 
    // Init TAsciiFile objects
    InitAsciiFiles();
@@ -114,12 +124,15 @@ void RootOutput::InitAsciiFiles()
 
 RootOutput::~RootOutput()
 {
-   // The data is written to the file and the tree is closed:
-   if (pRootFile) {
+    // The data is written to the file and the tree is closed:
+    if (pRootFile && !NPOptionManager::getInstance()->GetPROOF()) {
       cout << endl;
       cout << "Got histograms and Tree !" << endl;
-      pRootFile->Write();
-
+      cout << "  - Number of entries in the Tree: " << pRootTree->GetEntries() << endl;
+      cout << "  - Number of bites written to file: " << pRootTree->Write() << endl;
+      
+      gDirectory->Cd(pRootFile->GetName());
+      
       // write TAsciiFile if used
       // EventGenerator
       if (!pEventGenerator->IsEmpty()) pEventGenerator->Write();
@@ -131,9 +144,47 @@ RootOutput::~RootOutput()
       if (!pRunToTreatFile->IsEmpty()) pRunToTreatFile->Write();
       // Analysis ConfigFile
       if (!pAnalysisConfigFile->IsEmpty()) pAnalysisConfigFile->Write();
-
+      
+      pRootFile->Flush();
       pRootFile->Close();
-   } else {
+    }
+  
+    else if (pRootFile && NPOptionManager::getInstance()->GetPROOF()){
+      if (!pEventGenerator->IsEmpty()) pEventGenerator->Write();
+      // DetectorConfiguration
+      if (!pDetectorConfiguration->IsEmpty()) pDetectorConfiguration->Write();
+      // CalibrationFile
+      if (!pCalibrationFile->IsEmpty()) pCalibrationFile->Write();
+      // RunToTreatFile
+      if (!pRunToTreatFile->IsEmpty()) pRunToTreatFile->Write();
+      // Analysis ConfigFile
+      if (!pAnalysisConfigFile->IsEmpty()) pAnalysisConfigFile->Write();
+    }
+  
+    else if(!pRootFile && NPOptionManager::getInstance()->GetPROOF()){
+      
+    }
+  
+    else {
       cout << "No histograms and Tree !" << endl;
-   }
+    }
+  
 }
+
+TFile* RootOutput::InitFile(TString fileNameBase){
+  
+  if(NPOptionManager::getInstance()->GetPROOF()){
+    TString GlobalPath = getenv("NPTOOL");
+    TString fileName = GlobalPath + "/Outputs/Analysis/";
+    if (fileNameBase.Contains("root")) fileName += fileNameBase;
+    else fileName += fileNameBase + ".root";
+    pRootFile = new TFile(fileName, "RECREATE");
+    pRootFile->Flush();
+    return pRootFile;
+  }
+  
+  else{
+    cout << "ERROR: Do not use RootOutput::InitFile without a proof environment (use --proof option to NPTool)" << endl ;
+    exit(1);
+  }
+}
\ No newline at end of file
diff --git a/NPLib/IORoot/RootOutput.h b/NPLib/IORoot/RootOutput.h
index a84c796602630adcb4a99a96af9a926f214f1cb9..10e092ebf4e71d42c645f90a27a82e8af2580f7f 100644
--- a/NPLib/IORoot/RootOutput.h
+++ b/NPLib/IORoot/RootOutput.h
@@ -34,59 +34,59 @@
 #include "TList.h"
 
 
-class RootOutput
-{
+class RootOutput{
 public:
-   // The analysis class is designed to be a singleton (i.e. only one instance
-   // can exist). A member function called Instance is defined, which allows
-   // the user to get a pointer to the existing instance or to create it if
-   // it does not yet exist:
-   // (see the constructor for an explanation of the arguments)
-   static RootOutput* getInstance(TString fileNameBase = "Simulation",
-                                  TString treeNameBase = "SimulatedTree");
-
-   // The analysis class instance can be deleted by calling the Destroy
-   // method (NOTE: The class destructor is protected, and can thus not be
-   // called directly):
-   static void Destroy();
-
+  // The analysis class is designed to be a singleton (i.e. only one instance
+  // can exist). A member function called Instance is defined, which allows
+  // the user to get a pointer to the existing instance or to create it if
+  // it does not yet exist:
+  // (see the constructor for an explanation of the arguments)
+  static RootOutput* getInstance(TString fileNameBase = "Simulation",
+                                 TString treeNameBase = "SimulatedTree");
+  
+  // The analysis class instance can be deleted by calling the Destroy
+  // method (NOTE: The class destructor is protected, and can thus not be
+  // called directly):
+  static void Destroy();
+  
 protected:
-   // Constructor (protected)
-   RootOutput(TString fileNameBase, TString treeNameBase);
-
-   // Destructor (protected)
-   virtual ~RootOutput();
-
-   // Prevent copying
-   RootOutput(const RootOutput& only);
-   const RootOutput& operator=(const RootOutput& only);
-
+  // Constructor (protected)
+  RootOutput(TString fileNameBase, TString treeNameBase);
+  
+  // Destructor (protected)
+  virtual ~RootOutput();
+  
+  // Prevent copying
+  RootOutput(const RootOutput& only);
+  const RootOutput& operator=(const RootOutput& only);
+  
 private:
-   // The static instance of the RootOutput class:
-   static RootOutput* instance;
-
+  // The static instance of the RootOutput class:
+  static RootOutput* instance;
+  
 private:
-   void InitAsciiFiles();
-
+  void InitAsciiFiles();
+  
 public:
-   TFile*      GetFile()                           {return pRootFile;}
-   TTree*      GetTree()                           {return pRootTree;}
-   TList*      GetList()                           {return pRootList;}
-   TAsciiFile* GetAsciiFileEventGenerator()        {return pEventGenerator;}
-   TAsciiFile* GetAsciiFileDetectorConfiguration() {return pDetectorConfiguration;}
-   TAsciiFile* GetAsciiFileCalibration()           {return pCalibrationFile;}
-   TAsciiFile* GetAsciiFileRunToTreat()            {return pRunToTreatFile;}
-   TAsciiFile* GetAsciiFileAnalysisConfig()        {return pAnalysisConfigFile;}
-
+  TFile*      GetFile()                           {return pRootFile;}
+  TTree*      GetTree()                           {return pRootTree;}
+  TList*      GetList()                           {return pRootList;}
+  TAsciiFile* GetAsciiFileEventGenerator()        {return pEventGenerator;}
+  TAsciiFile* GetAsciiFileDetectorConfiguration() {return pDetectorConfiguration;}
+  TAsciiFile* GetAsciiFileCalibration()           {return pCalibrationFile;}
+  TAsciiFile* GetAsciiFileRunToTreat()            {return pRunToTreatFile;}
+  TAsciiFile* GetAsciiFileAnalysisConfig()        {return pAnalysisConfigFile;}
+  TFile*      InitFile(TString fileNameBase); // use only for proof environment
+  
 private:
-   TFile      *pRootFile;
-   TTree      *pRootTree;
-   TList      *pRootList;
-   TAsciiFile *pEventGenerator;
-   TAsciiFile *pDetectorConfiguration;
-   TAsciiFile *pCalibrationFile;
-   TAsciiFile *pRunToTreatFile;
-   TAsciiFile *pAnalysisConfigFile;
+  TFile      *pRootFile;
+  TTree      *pRootTree;
+  TList      *pRootList;
+  TAsciiFile *pEventGenerator;
+  TAsciiFile *pDetectorConfiguration;
+  TAsciiFile *pCalibrationFile;
+  TAsciiFile *pRunToTreatFile;
+  TAsciiFile *pAnalysisConfigFile;
   
 };
 
diff --git a/NPLib/Sharc/TSharcPhysics.cxx b/NPLib/Sharc/TSharcPhysics.cxx
index 915c40fc4c80ce96fbdcb4a51d516253f1b24a38..63b4ac0fddb6d64c5342995e9e735872bad1f5c9 100644
--- a/NPLib/Sharc/TSharcPhysics.cxx
+++ b/NPLib/Sharc/TSharcPhysics.cxx
@@ -46,7 +46,8 @@ TSharcPhysics::TSharcPhysics()
   m_EventPhysics      = this ;
   m_NumberOfDetector = 0 ;
   m_MaximumStripMultiplicityAllowed = 10;
-  m_StripEnergyMatchingSigma = 0.060    ;
+  //m_StripEnergyMatchingSigma = 0.060    ;
+  m_StripEnergyMatchingSigma = 50    ;
   m_StripEnergyMatchingNumberOfSigma = 3;
   
   // Threshold
diff --git a/NPLib/Tools/NPOptionManager.cxx b/NPLib/Tools/NPOptionManager.cxx
index 95cb6eb2ea4287738ce18e1a315d3b0d5f19a2a6..4922a5d4de4237cdf6541030e4c8857a21588c27 100644
--- a/NPLib/Tools/NPOptionManager.cxx
+++ b/NPLib/Tools/NPOptionManager.cxx
@@ -23,7 +23,9 @@
 #include "NPOptionManager.h"
 
 #include <fstream>
+#include <sstream>
 #include <cstdlib>
+#include <vector>
 
 
 NPOptionManager* NPOptionManager::instance = 0 ;
@@ -36,9 +38,14 @@ NPOptionManager* NPOptionManager::getInstance(int argc, char** argv)
 }
 
 
+NPOptionManager* NPOptionManager::getInstance(string arg){
+  
+  if (instance == 0) instance = new NPOptionManager(arg);
 
-NPOptionManager::NPOptionManager(int argc, char** argv)
-{
+  return instance ;
+
+}
+void NPOptionManager::ReadTheInputArgument(int argc, char** argv){
   // Default Setting
   fDefaultReactionFileName    = "defaultReaction.reaction";
   fDefaultDetectorFileName    = "defaultDetector.detector";
@@ -54,35 +61,35 @@ NPOptionManager::NPOptionManager(int argc, char** argv)
   fVerboseLevel               = 1;
   fDisableAllBranchOption = false;
   fInputPhysicalTreeOption = false;
+  fPROOFMode = false;
   
   for (int i = 0; i < argc; i++) {
     string argument = argv[i];
-    
     if (argument == "-H" || argument == "-h" || argument == "--help") DisplayHelp();
     
-    else if (argument == "--event-generator" && argc >= i + 1)    fReactionFileName    = argv[i+1] ;
+    else if (argument == "--event-generator" && argc >= i + 1)    fReactionFileName    = argv[++i] ;
     
-    else if (argument == "-E" && argc >= i + 1)                   fReactionFileName    = argv[i+1] ;
+    else if (argument == "-E" && argc >= i + 1)                   fReactionFileName    = argv[++i] ;
     
-    else if (argument == "--detector" && argc >= i + 1)           fDetectorFileName    = argv[i+1] ;
+    else if (argument == "--detector" && argc >= i + 1)           fDetectorFileName    = argv[++i] ;
     
-    else if (argument == "-D" && argc >= i + 1)                   fDetectorFileName    = argv[i+1] ;
-        
-    else if (argument == "--output" && argc >= i + 1)             fOutputFileName      = argv[i+1] ;
+    else if (argument == "-D" && argc >= i + 1)                   fDetectorFileName    = argv[++i] ;
     
-    else if (argument == "-O" && argc >= i + 1)                   fOutputFileName      = argv[i+1] ;
+    else if (argument == "--output" && argc >= i + 1)             fOutputFileName      = argv[++i] ;
     
-    else if (argument == "--run" && argc >= i + 1)                fRunToReadFileName   = argv[i+1] ;
+    else if (argument == "-O" && argc >= i + 1)                   fOutputFileName      = argv[++i] ;
     
-    else if (argument == "-R" && argc >= i + 1)                   fRunToReadFileName   = argv[i+1] ;
+    else if (argument == "--run" && argc >= i + 1)                fRunToReadFileName   = argv[++i] ;
     
-    else if (argument == "--cal" && argc >= i + 1)                fCalibrationFileName = argv[i+1] ;
+    else if (argument == "-R" && argc >= i + 1)                   fRunToReadFileName   = argv[++i] ;
     
-    else if (argument == "-C" && argc >= i + 1)                   fCalibrationFileName = argv[i+1] ;
+    else if (argument == "--cal" && argc >= i + 1)                fCalibrationFileName = argv[++i] ;
     
-    else if (argument == "-V"  && argc >= i + 1)                  fVerboseLevel = atoi(argv[i+1]) ;
+    else if (argument == "-C" && argc >= i + 1)                   fCalibrationFileName = argv[++i] ;
     
-    else if (argument == "--verbose" && argc >= i + 1)            fVerboseLevel = atoi(argv[i+1]) ;
+    else if (argument == "-V"  && argc >= i + 1)                  fVerboseLevel = atoi(argv[++i]) ;
+    
+    else if (argument == "--verbose" && argc >= i + 1)            fVerboseLevel = atoi(argv[++i]) ;
     
     else if (argument == "--disable-branch")                      fDisableAllBranchOption = true ;
     
@@ -90,13 +97,38 @@ NPOptionManager::NPOptionManager(int argc, char** argv)
     
     else if (argument == "-IP")                                   fInputPhysicalTreeOption = true ;
     
+    else if (argument == "--proof")                               fPROOFMode= true ;
+    
     //else ;
   }
-  
   CheckArguments();
 }
 
 
+NPOptionManager::NPOptionManager(int argc, char** argv){
+  ReadTheInputArgument(argc,argv);
+}
+
+NPOptionManager::NPOptionManager(string arg)
+{  
+  vector<char *> args;
+  istringstream iss(arg);
+
+  string token;
+  while(iss >> token) {
+    char *arg = new char[token.size() + 1];
+    copy(token.begin(), token.end(), arg);
+    arg[token.size()] = '\0';
+    args.push_back(arg);
+  }
+  args.push_back(0);
+  
+  ReadTheInputArgument(args.size()-1, &args[0]);
+
+  for(size_t i = 0; i < args.size(); i++)
+    delete[] args[i];
+  
+}
 
 void NPOptionManager::CheckArguments()
 {
diff --git a/NPLib/Tools/NPOptionManager.h b/NPLib/Tools/NPOptionManager.h
index 7393e831bee3545200b62af09f00292fb58ad52f..605eb3c45f03ea22e283f59886fab8eb6f73c6d8 100644
--- a/NPLib/Tools/NPOptionManager.h
+++ b/NPLib/Tools/NPOptionManager.h
@@ -37,6 +37,9 @@ class NPOptionManager
       // it does not yet exist:
       // (see the constructor for an explanation of the arguments)
       static NPOptionManager* getInstance(int argc = 0, char** argv = NULL);
+  
+      // Added for compatibility with pROOF 
+      static NPOptionManager* getInstance(string arg);
 
       // The analysis class instance can be deleted by calling the Destroy
       // method (NOTE: The class destructor is protected, and can thus not be
@@ -46,6 +49,7 @@ class NPOptionManager
    protected:
       // Constructor (protected)
       NPOptionManager(int argc, char** argv);
+      NPOptionManager(string arg);
 
       // Destructor (protected)
       ~NPOptionManager() {};
@@ -54,6 +58,10 @@ class NPOptionManager
       NPOptionManager(const NPOptionManager& only);
       const NPOptionManager& operator=(const NPOptionManager& only);
 
+  private:
+    // Read the input argument
+    void ReadTheInputArgument(int argc = 0, char** argv = NULL);
+  
    private:
       // The static instance of the NPOptionManager class:
       static NPOptionManager* instance;
@@ -84,6 +92,7 @@ class NPOptionManager
       string GetOutputFile()               {return fOutputFileName;}
       bool   GetDisableAllBranchOption()   {return fDisableAllBranchOption;}
       bool   GetInputPhysicalTreeOption()  {return fInputPhysicalTreeOption;}
+      bool   GetPROOF()                    {return fPROOFMode;}
       int    GetVerboseLevel()             {return fVerboseLevel;}
       
       // Setters
@@ -107,6 +116,7 @@ class NPOptionManager
       string fOutputFileName;
       bool   fDisableAllBranchOption;
       bool   fInputPhysicalTreeOption;
+      bool   fPROOFMode; // if true, the system run in a pROOF environment
       int    fVerboseLevel; // 0 for not talk, 1 for talking
 };
 
diff --git a/NPLib/VDetector/DetectorManager.cxx b/NPLib/VDetector/DetectorManager.cxx
index f99e8d86ba40f95ff844190d162703c348710f05..a898f3894ac5099b06c72cfc3c97a0ce8d182888 100644
--- a/NPLib/VDetector/DetectorManager.cxx
+++ b/NPLib/VDetector/DetectorManager.cxx
@@ -32,6 +32,9 @@
 #include "TMust2Physics.h"
 #include "TCATSPhysics.h"
 #include "TSSSDPhysics.h"
+#include "TSharcPhysics.h"
+#include "TTigressPhysics.h"
+#include "TTrifoilPhysics.h"
 #include "TPlasticPhysics.h"
 #include "TTrifoilPhysics.h"
 #include "TChateauCristalPhysics.h"
@@ -80,6 +83,7 @@ void DetectorManager::ReadConfigurationFile(string Path)
    Bool_t MUST2               = false;
    Bool_t CATS                = false;
    Bool_t SSSD                = false;
+   Bool_t Sharc               = false;
    Bool_t ChateauCristal      = false;
    Bool_t Exogam              = false;
    Bool_t ScintillatorPlastic = false;
@@ -310,7 +314,28 @@ void DetectorManager::ReadConfigurationFile(string Path)
          AddDetector("SSSD", myDetector);
 #endif
       }
-
+     
+     ////////////////////////////////////////////
+     /////////      Search for Sharc    /////////
+     ////////////////////////////////////////////
+      else if (LineBuffer.compare(0, 5, "Sharc") == 0 && Sharc == false) {
+#ifdef INC_SHARC
+        Sharc = true ;
+        cout << "//////// Sharc ////////" << endl << endl;
+        
+        // Instantiate the new array as a VDetector Object
+        VDetector* myDetector = new TSharcPhysics();
+        
+        // Read Position of Telescope
+        ConfigFile.close();
+        myDetector->ReadConfiguration(Path);
+        ConfigFile.open(Path.c_str());
+        
+        // Add array to the VDetector Vector
+        AddDetector("Sharc", myDetector);
+#endif
+      }
+     
       //////////////////////////////////////////////
       //////////      Search for Exogam    /////////
       //////////////////////////////////////////////