diff --git a/EvtGenBase/EvtParticle.hh b/EvtGenBase/EvtParticle.hh
--- a/EvtGenBase/EvtParticle.hh
+++ b/EvtGenBase/EvtParticle.hh
@@ -200,7 +200,7 @@
   * generated in the parents decay. The lab frame is where the root
   * particles momentum is measured.
   */
-    EvtVector4R getP4LabBeforeFSR();
+    EvtVector4R getP4LabBeforeFSR() const;
 
     /**
   * Gets 4vector in the particles restframe, i.e. this functiont will
diff --git a/History.md b/History.md
--- a/History.md
+++ b/History.md
@@ -11,6 +11,9 @@
 ===
 ## R02-0X-00
 
+9 Apr 2024 Fernando Abudinen
+* D111: Added tests for decays with FSR and implemented const correctness for getP4LabBeforeFSR() function.
+
 19 Feb 2024 Fernando Abudinen
 * D108: Bugfix protect polarisation vector for vector and tensor particles against wrong indices
 
diff --git a/src/EvtGenBase/EvtParticle.cpp b/src/EvtGenBase/EvtParticle.cpp
--- a/src/EvtGenBase/EvtParticle.cpp
+++ b/src/EvtGenBase/EvtParticle.cpp
@@ -769,10 +769,10 @@
     return temp;
 }
 
-EvtVector4R EvtParticle::getP4LabBeforeFSR()
+EvtVector4R EvtParticle::getP4LabBeforeFSR() const
 {
     EvtVector4R temp, mom;
-    EvtParticle* ptemp;
+    const EvtParticle* ptemp;
 
     temp = this->_pBeforeFSR;
     ptemp = this;
diff --git a/test/jsonFiles/D_DALITZ__D+_Kpipi+_yesPhotos.json b/test/jsonFiles/D_DALITZ__D+_Kpipi+_yesPhotos.json
new file mode 100644
--- /dev/null
+++ b/test/jsonFiles/D_DALITZ__D+_Kpipi+_yesPhotos.json
@@ -0,0 +1,31 @@
+{
+    "parent" : "D+",
+    "daughters" : ["K-", "pi+", "pi+"],
+    "models" : ["D_DALITZ"],
+    "parameters" : [[]],
+    "do_conjugate_decay" : [true],
+    "extras" : ["yesPhotos"],
+    "events" : 10000,
+    "histograms" : [
+	{"variable" : "prob", "title" : "Probability", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 1.0},
+        {"variable" : "nFSRPhotons", "title" : "nFSRPhotons", "d1" : 0, "d2" : 0, "nbins" : 10, "xmin" : 0, "xmax" : 10.0 },  
+        {"variable" : "totalFSREnergy", "title" : "totalFSREnergy", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 0.8 },  
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 0.8},
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma) cut off", "d1" : 1, "d2" : 0, "nbins" : 50, "xmin" : 0.0, "xmax" : 0.5e-6},
+        {"variable" : "cosTheta_FSRPhotons", "title" : "FSR cosTheta/#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+        {"variable" : "cosTheta_EnergyWeight_FSRPhotons", "title" : "FSR cosTheta(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_EnergyWeight_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+	{"variable" : "mass", "title" : "m(K^{-} #pi^{+})", "d1" : 1, "d2" : 2, "nbins" : 100, "xmin" : 0.5, "xmax" : 1.8},
+        {"variable" : "mass", "title" : "m(K^{-} #pi^{+})", "d1" : 1, "d2" : 3, "nbins" : 100, "xmin" : 0.5, "xmax" : 1.8},
+        {"variable" : "mass", "title" : "m(#pi^{+} #pi^{+})", "d1" : 2, "d2" : 3, "nbins" : 100, "xmin" : 0.2, "xmax" : 1.5},
+        {"variable" : "massSq", "title" : "Dalitz m^{2}(K^{-} #pi^{+}) vs m^{2}(K^{-} #pi^{+})", "d1" : 1, "d2" : 2, "nbins" : 50, "xmin" : 0.3, "xmax" : 3.2, "variableY" : "massSq", "d1Y" : 1, "d2Y" : 3, "nbinsY" : 50, "ymin" : 0.3, "ymax" : 3.2},
+        {"variable" : "massSq", "title" : "Dalitz m^{2}(#pi^{+} #pi^{+}) vs m^{2}(K^{-} #pi^{+})", "d1" : 2, "d2" : 3, "nbins" : 50, "xmin" : 0.0, "xmax" : 2.0, "variableY" : "massSq", "d1Y" : 1, "d2Y" : 2, "nbinsY" : 50, "ymin" : 0.3, "ymax" : 3.2},
+        {"variable" : "mPrime", "title" : "sqDalitz", "d1" : 1, "d2" : 2, "nbins" : 25, "xmin" : 0.0, "xmax" : 1.00, "variableY" : "thetaPrime", "d1Y" : 1, "d2Y" : 2, "nbinsY" : 25, "ymin" : 0.0, "ymax" : 1.0},
+	{"variable" : "cosHel", "title" : "cosHel12", "d1" : 1, "d2" : 2, "nbins" : 50, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "cosHel", "title" : "cosHel23", "d1" : 2, "d2" : 3, "nbins" : 50, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "cosHel", "title" : "cosHel13", "d1" : 1, "d2" : 3, "nbins" : 50, "xmin" : -1.0, "xmax" : 1.0}
+    ],
+    "outfile" : "D_DALITZ__D+_Kpipi+_yesPhotos.root",
+    "reference" : "RefD_DALITZ__D+_Kpipi+_yesPhotos.root"
+}
diff --git a/test/jsonFiles/PHSP__Bd_KKpipi_yesPhotos.json b/test/jsonFiles/PHSP__Bd_KKpipi_yesPhotos.json
new file mode 100644
--- /dev/null
+++ b/test/jsonFiles/PHSP__Bd_KKpipi_yesPhotos.json
@@ -0,0 +1,33 @@
+{
+    "parent" : "B0",
+    "daughters" : ["K+", "K-", "pi+", "pi-"],
+    "models" : ["PHSP"],
+    "parameters" : [[]],
+    "do_conjugate_decay" : [true],    
+    "extras" : ["yesPhotos"],
+    "events" : 10000,
+    "histograms" : [
+        {"variable" : "prob", "title" : "probability", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 2.5 },
+        {"variable" : "nFSRPhotons", "title" : "nFSRPhotons", "d1" : 0, "d2" : 0, "nbins" : 10, "xmin" : 0, "xmax" : 10.0 },  
+        {"variable" : "totalFSREnergy", "title" : "totalFSREnergy", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 2.0 },  
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 2.0},
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma) cut off", "d1" : 1, "d2" : 0, "nbins" : 50, "xmin" : 0.0, "xmax" : 0.5e-6},
+        {"variable" : "cosTheta_FSRPhotons", "title" : "FSR cosTheta/#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+        {"variable" : "cosTheta_EnergyWeight_FSRPhotons", "title" : "FSR cosTheta(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_EnergyWeight_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+	{"variable" : "parMass", "title" : "m(B^{0})", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 3.0967, "xmax" : 3.09695},
+	{"variable" : "mass", "title" : "m(K^{+}K^{-})", "d1" : 1, "d2" : 2, "nbins" : 100, "xmin" : 3.0967, "xmax" : 3.09695},
+        {"variable" : "cosHel", "title" : "cosHel12", "d1" : 1, "d2" : 2, "nbins" : 50, "xmin" : -1.0, "xmax" : 1.0},	
+        {"variable" : "E", "title" : "E(K^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "E", "title" : "E(K^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "pz", "title" : "p_{z}(K^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.6, "xmax" : 1.6},
+        {"variable" : "pz", "title" : "p_{z}(K^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.6, "xmax" : 1.6},
+        {"variable" : "pLab", "title" : "pLab(K^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "pLab", "title" : "pLab(K^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "cosTheta", "title" : "cosTheta(K^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "cosTheta", "title" : "cosTheta(K^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0}
+    ],
+    "outfile" : "PHSP__Bd_KKpipi_yesPhotos.root",
+    "reference" : "RefPHSP__Bd_KKpipi_yesPhotos.root"
+}
diff --git a/test/jsonFiles/PHSP__Bu_Kpi0_yesPhotos.json b/test/jsonFiles/PHSP__Bu_Kpi0_yesPhotos.json
new file mode 100644
--- /dev/null
+++ b/test/jsonFiles/PHSP__Bu_Kpi0_yesPhotos.json
@@ -0,0 +1,33 @@
+{
+    "parent" : "B+",
+    "daughters" : ["K+", "pi0"],
+    "models" : ["PHSP"],
+    "parameters" : [[]],
+    "do_conjugate_decay" : [true],    
+    "extras" : ["yesPhotos"],
+    "events" : 10000,
+    "histograms" : [
+        {"variable" : "prob", "title" : "probability", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 2.5 },
+        {"variable" : "nFSRPhotons", "title" : "nFSRPhotons", "d1" : 0, "d2" : 0, "nbins" : 10, "xmin" : 0, "xmax" : 10.0 },  
+        {"variable" : "totalFSREnergy", "title" : "totalFSREnergy", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 2.0 },  
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 2.0},
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma) cut off", "d1" : 1, "d2" : 0, "nbins" : 50, "xmin" : 0.0, "xmax" : 0.5e-6},
+        {"variable" : "cosTheta_FSRPhotons", "title" : "FSR cosTheta/#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+        {"variable" : "cosTheta_EnergyWeight_FSRPhotons", "title" : "FSR cosTheta(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_EnergyWeight_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+	{"variable" : "parMass", "title" : "m(B^{+})", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 3.0967, "xmax" : 3.09695},
+	{"variable" : "mass", "title" : "m(K^{+}#pi^{-})", "d1" : 1, "d2" : 2, "nbins" : 100, "xmin" : 3.0967, "xmax" : 3.09695},
+        {"variable" : "cosHel", "title" : "cosHel12", "d1" : 1, "d2" : 2, "nbins" : 50, "xmin" : -1.0, "xmax" : 1.0},	
+        {"variable" : "E", "title" : "E(K^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "E", "title" : "E(#pi^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "pz", "title" : "p_{z}(K^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.6, "xmax" : 1.6},
+        {"variable" : "pz", "title" : "p_{z}(#pi^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.6, "xmax" : 1.6},
+        {"variable" : "pLab", "title" : "pLab(K^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "pLab", "title" : "pLab(#pi^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "cosTheta", "title" : "cosTheta(K^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "cosTheta", "title" : "cosTheta(#pi^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0}
+    ],
+    "outfile" : "PHSP__Bu_Kpi0_yesPhotos.root",
+    "reference" : "RefPHSP__Bu_Kpi0_yesPhotos.root"
+}
diff --git a/test/jsonFiles/PHSP__D0_KK_yesPhotos.json b/test/jsonFiles/PHSP__D0_KK_yesPhotos.json
new file mode 100644
--- /dev/null
+++ b/test/jsonFiles/PHSP__D0_KK_yesPhotos.json
@@ -0,0 +1,33 @@
+{
+    "parent" : "D0",
+    "daughters" : ["K+", "K-"],
+    "models" : ["PHSP"],
+    "parameters" : [[]],
+    "do_conjugate_decay" : [true],    
+    "extras" : ["yesPhotos"],
+    "events" : 10000,
+    "histograms" : [
+        {"variable" : "prob", "title" : "probability", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 2.5 },
+        {"variable" : "nFSRPhotons", "title" : "nFSRPhotons", "d1" : 0, "d2" : 0, "nbins" : 10, "xmin" : 0, "xmax" : 10.0 },  
+        {"variable" : "totalFSREnergy", "title" : "totalFSREnergy", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 0.8 },  
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 0.8},
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma) cut off", "d1" : 1, "d2" : 0, "nbins" : 50, "xmin" : 0.0, "xmax" : 0.5e-6},
+        {"variable" : "cosTheta_FSRPhotons", "title" : "FSR cosTheta/#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+        {"variable" : "cosTheta_EnergyWeight_FSRPhotons", "title" : "FSR cosTheta(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_EnergyWeight_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+	{"variable" : "parMass", "title" : "m(D^{0})", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 3.0967, "xmax" : 3.09695},
+	{"variable" : "mass", "title" : "m(K^{+}K^{-})", "d1" : 1, "d2" : 2, "nbins" : 100, "xmin" : 3.0967, "xmax" : 3.09695},
+        {"variable" : "cosHel", "title" : "cosHel12", "d1" : 1, "d2" : 2, "nbins" : 50, "xmin" : -1.0, "xmax" : 1.0},	
+        {"variable" : "E", "title" : "E(K^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "E", "title" : "E(K^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "pz", "title" : "p_{z}(K^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.6, "xmax" : 1.6},
+        {"variable" : "pz", "title" : "p_{z}(K^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.6, "xmax" : 1.6},
+        {"variable" : "pLab", "title" : "pLab(K^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "pLab", "title" : "pLab(K^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "cosTheta", "title" : "cosTheta(K^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "cosTheta", "title" : "cosTheta(K^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0}
+    ],
+    "outfile" : "PHSP__D0_KK_yesPhotos.root",
+    "reference" : "RefPHSP__D0_KK_yesPhotos.root"
+}
diff --git a/test/jsonFiles/PHSP__D0_Kpi_yesPhotos.json b/test/jsonFiles/PHSP__D0_Kpi_yesPhotos.json
new file mode 100644
--- /dev/null
+++ b/test/jsonFiles/PHSP__D0_Kpi_yesPhotos.json
@@ -0,0 +1,33 @@
+{
+    "parent" : "D0",
+    "daughters" : ["K-", "pi+"],
+    "models" : ["PHSP"],
+    "parameters" : [[]],
+    "do_conjugate_decay" : [true],    
+    "extras" : ["yesPhotos"],
+    "events" : 10000,
+    "histograms" : [
+        {"variable" : "prob", "title" : "probability", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 2.5 },
+        {"variable" : "nFSRPhotons", "title" : "nFSRPhotons", "d1" : 0, "d2" : 0, "nbins" : 10, "xmin" : 0, "xmax" : 10.0 },  
+        {"variable" : "totalFSREnergy", "title" : "totalFSREnergy", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 0.8 },  
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 0.8},
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma) cut off", "d1" : 1, "d2" : 0, "nbins" : 50, "xmin" : 0.0, "xmax" : 0.5e-6},
+        {"variable" : "cosTheta_FSRPhotons", "title" : "FSR cosTheta/#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+        {"variable" : "cosTheta_EnergyWeight_FSRPhotons", "title" : "FSR cosTheta(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_EnergyWeight_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+	{"variable" : "parMass", "title" : "m(D^{0})", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 3.0967, "xmax" : 3.09695},
+	{"variable" : "mass", "title" : "m(K^{-}#pi^{+})", "d1" : 1, "d2" : 2, "nbins" : 100, "xmin" : 3.0967, "xmax" : 3.09695},
+        {"variable" : "cosHel", "title" : "cosHel12", "d1" : 1, "d2" : 2, "nbins" : 50, "xmin" : -1.0, "xmax" : 1.0},	
+        {"variable" : "E", "title" : "E(K^{-})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "E", "title" : "E(#pi^{+})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "pz", "title" : "p_{z}(K^{-})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.6, "xmax" : 1.6},
+        {"variable" : "pz", "title" : "p_{z}(#pi^{+})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.6, "xmax" : 1.6},
+        {"variable" : "pLab", "title" : "pLab(K^{-})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "pLab", "title" : "pLab(#pi^{+})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "cosTheta", "title" : "cosTheta(K^{-})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "cosTheta", "title" : "cosTheta(#pi^{+})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0}
+    ],
+    "outfile" : "PHSP__D0_Kpi_yesPhotos.root",
+    "reference" : "RefPHSP__D0_Kpi_yesPhotos.root"
+}
diff --git a/test/jsonFiles/PHSP__D0_pipi_yesPhotos.json b/test/jsonFiles/PHSP__D0_pipi_yesPhotos.json
new file mode 100644
--- /dev/null
+++ b/test/jsonFiles/PHSP__D0_pipi_yesPhotos.json
@@ -0,0 +1,33 @@
+{
+    "parent" : "D0",
+    "daughters" : ["pi+", "pi-"],
+    "models" : ["PHSP"],
+    "parameters" : [[]],
+    "do_conjugate_decay" : [true],    
+    "extras" : ["yesPhotos"],
+    "events" : 10000,
+    "histograms" : [
+        {"variable" : "prob", "title" : "probability", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 2.5 },
+        {"variable" : "nFSRPhotons", "title" : "nFSRPhotons", "d1" : 0, "d2" : 0, "nbins" : 10, "xmin" : 0, "xmax" : 10.0 },  
+        {"variable" : "totalFSREnergy", "title" : "totalFSREnergy", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 0.8 },  
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 0.8},
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma) cut off", "d1" : 1, "d2" : 0, "nbins" : 50, "xmin" : 0.0, "xmax" : 0.5e-6},
+        {"variable" : "cosTheta_FSRPhotons", "title" : "FSR cosTheta/#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+        {"variable" : "cosTheta_EnergyWeight_FSRPhotons", "title" : "FSR cosTheta(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_EnergyWeight_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+	{"variable" : "parMass", "title" : "m(D^{0})", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 3.0967, "xmax" : 3.09695},
+	{"variable" : "mass", "title" : "m(#pi^{+}#pi^{-})", "d1" : 1, "d2" : 2, "nbins" : 100, "xmin" : 3.0967, "xmax" : 3.09695},
+        {"variable" : "cosHel", "title" : "cosHel12", "d1" : 1, "d2" : 2, "nbins" : 50, "xmin" : -1.0, "xmax" : 1.0},	
+        {"variable" : "E", "title" : "E(#pi^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "E", "title" : "E(#pi^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "pz", "title" : "p_{z}(#pi^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.6, "xmax" : 1.6},
+        {"variable" : "pz", "title" : "p_{z}(#pi^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.6, "xmax" : 1.6},
+        {"variable" : "pLab", "title" : "pLab(#pi^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "pLab", "title" : "pLab(#pi^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "cosTheta", "title" : "cosTheta(#pi^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "cosTheta", "title" : "cosTheta(#pi^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0}
+    ],
+    "outfile" : "PHSP__D0_pipi_yesPhotos.root",
+    "reference" : "RefPHSP__D0_pipi_yesPhotos.root"
+}
diff --git a/test/jsonFiles/PHSP__Lambda0_ppi_yesPhotos.json b/test/jsonFiles/PHSP__Lambda0_ppi_yesPhotos.json
new file mode 100644
--- /dev/null
+++ b/test/jsonFiles/PHSP__Lambda0_ppi_yesPhotos.json
@@ -0,0 +1,33 @@
+{
+    "parent" : "Lambda0",
+    "daughters" : ["p+", "pi-"],
+    "models" : ["PHSP"],
+    "parameters" : [[]],
+    "do_conjugate_decay" : [true],    
+    "extras" : ["yesPhotos"],
+    "events" : 10000,
+    "histograms" : [
+        {"variable" : "prob", "title" : "probability", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 2.5 },
+        {"variable" : "nFSRPhotons", "title" : "nFSRPhotons", "d1" : 0, "d2" : 0, "nbins" : 6, "xmin" : 0, "xmax" : 6.0 },  
+        {"variable" : "totalFSREnergy", "title" : "totalFSREnergy", "d1" : 0, "d2" : 0, "nbins" : 50, "xmin" : 0, "xmax" : 0.05 },  
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 50, "xmin" : 0.0, "xmax" : 0.05},
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma) cut off", "d1" : 1, "d2" : 0, "nbins" : 50, "xmin" : 0.0, "xmax" : 0.5e-6},
+        {"variable" : "cosTheta_FSRPhotons", "title" : "FSR cosTheta/#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+        {"variable" : "cosTheta_EnergyWeight_FSRPhotons", "title" : "FSR cosTheta(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_EnergyWeight_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+	{"variable" : "parMass", "title" : "m(#Lambda)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 3.0967, "xmax" : 3.09695},
+	{"variable" : "mass", "title" : "m(p^{+}#pi^{-})", "d1" : 1, "d2" : 2, "nbins" : 100, "xmin" : 3.0967, "xmax" : 3.09695},
+        {"variable" : "cosHel", "title" : "cosHel12", "d1" : 1, "d2" : 2, "nbins" : 50, "xmin" : -1.0, "xmax" : 1.0},	
+        {"variable" : "E", "title" : "E(p^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "E", "title" : "E(#pi^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "pz", "title" : "p_{z}(p^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.6, "xmax" : 1.6},
+        {"variable" : "pz", "title" : "p_{z}(#pi^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.6, "xmax" : 1.6},
+        {"variable" : "pLab", "title" : "pLab(p^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "pLab", "title" : "pLab(#pi^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "cosTheta", "title" : "cosTheta(p^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "cosTheta", "title" : "cosTheta(#pi^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0}
+    ],
+    "outfile" : "PHSP__Lambda0_ppi_yesPhotos.root",
+    "reference" : "RefPHSP__Lambda0_ppi_yesPhotos.root"
+}
diff --git a/test/jsonFiles/PHSP__Lambdab0_ppi_yesPhotos.json b/test/jsonFiles/PHSP__Lambdab0_ppi_yesPhotos.json
new file mode 100644
--- /dev/null
+++ b/test/jsonFiles/PHSP__Lambdab0_ppi_yesPhotos.json
@@ -0,0 +1,33 @@
+{
+    "parent" : "Lambda_b0",
+    "daughters" : ["p+", "pi-"],
+    "models" : ["PHSP"],
+    "parameters" : [[]],
+    "do_conjugate_decay" : [true],    
+    "extras" : ["yesPhotos"],
+    "events" : 10000,
+    "histograms" : [
+        {"variable" : "prob", "title" : "probability", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 2.5 },
+        {"variable" : "nFSRPhotons", "title" : "nFSRPhotons", "d1" : 0, "d2" : 0, "nbins" : 10, "xmin" : 0, "xmax" : 10.0 },  
+        {"variable" : "totalFSREnergy", "title" : "totalFSREnergy", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 2.0 },  
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 2.0},
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma) cut off", "d1" : 1, "d2" : 0, "nbins" : 50, "xmin" : 0.0, "xmax" : 0.5e-6},
+        {"variable" : "cosTheta_FSRPhotons", "title" : "FSR cosTheta/#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+        {"variable" : "cosTheta_EnergyWeight_FSRPhotons", "title" : "FSR cosTheta(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_EnergyWeight_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+	{"variable" : "parMass", "title" : "m(#Lambda_{b})", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 3.0967, "xmax" : 3.09695},
+	{"variable" : "mass", "title" : "m(p^{+}#pi^{-})", "d1" : 1, "d2" : 2, "nbins" : 100, "xmin" : 3.0967, "xmax" : 3.09695},
+        {"variable" : "cosHel", "title" : "cosHel12", "d1" : 1, "d2" : 2, "nbins" : 50, "xmin" : -1.0, "xmax" : 1.0},	
+        {"variable" : "E", "title" : "E(p^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "E", "title" : "E(#pi^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "pz", "title" : "p_{z}(p^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.6, "xmax" : 1.6},
+        {"variable" : "pz", "title" : "p_{z}(#pi^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.6, "xmax" : 1.6},
+        {"variable" : "pLab", "title" : "pLab(p^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "pLab", "title" : "pLab(#pi^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "cosTheta", "title" : "cosTheta(p^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "cosTheta", "title" : "cosTheta(#pi^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0}
+    ],
+    "outfile" : "PHSP__Lambdab0_ppi_yesPhotos.root",
+    "reference" : "RefPHSP__Lambdab0_ppi_yesPhotos.root"
+}
diff --git a/test/jsonFiles/SVP_HELAMP=VSS__Bu_Kstgamma_Kspi_yesPhotos.json b/test/jsonFiles/SVP_HELAMP=VSS__Bu_Kstgamma_Kspi_yesPhotos.json
new file mode 100644
--- /dev/null
+++ b/test/jsonFiles/SVP_HELAMP=VSS__Bu_Kstgamma_Kspi_yesPhotos.json
@@ -0,0 +1,42 @@
+{
+    "parent" : "B+",
+    "daughters" : ["K*+", "gamma"],
+    "grand_daughters" : [["K_S0", "pi+"], []],
+    "models" : ["SVP_HELAMP", "VSS", ""],
+    "parameters" : [["1.0", "0.0", "1.0", "0.0"], [], []],
+    "extras" : ["yesPhotos"],
+    "events" : 10000,
+    "histograms" : [
+        {"variable" : "prob", "title" : "Prob",  "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 1.0},
+        {"variable" : "nFSRPhotons", "title" : "nFSRPhotons", "d1" : 0, "d2" : 0, "nbins" : 10, "xmin" : 0, "xmax" : 10.0 },  
+        {"variable" : "totalFSREnergy", "title" : "totalFSREnergy", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 2.0 },  
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 2.0},
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma) cut off", "d1" : 1, "d2" : 0, "nbins" : 50, "xmin" : 0.0, "xmax" : 0.5e-6},
+        {"variable" : "cosTheta_FSRPhotons", "title" : "FSR cosTheta(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+        {"variable" : "cosTheta_EnergyWeight_FSRPhotons", "title" : "FSR cosTheta(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_EnergyWeight_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+        {"variable" : "mass", "title" : "M(#it{B}^{+})", "d1" : 1, "d2" : 2, "nbins" : 100, "xmin" : 5.0, "xmax" : 5.28},
+        {"variable" : "p", "title" : "p(#it{K}*^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.0, "xmax" : 3.0},
+        {"variable" : "pSq", "title" : "p^{2}(#it{K}*^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 2.0, "xmax" : 7.0},
+        {"variable" : "pz", "title" : "pz(#it{K}*^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -3.0, "xmax" : 3.0},
+        {"variable" : "p", "title" : "p(#it{#gamma})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 1.0, "xmax" : 3.0},
+        {"variable" : "pSq", "title" : "p^{2}(#it{#gamma})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 2.0, "xmax" : 7.0},
+        {"variable" : "pz", "title" : "pz(#it{#gamma})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -3.0, "xmax" : 3.0},
+        {"variable" : "cosHel", "title" : "cosHel(#it{K}*^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "cosHelDiTau", "title" : "cosHel(#it{K}*^{+})", "d1" : 1, "d2" : 1, "nbins" : 50, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "cosTheta", "title" : "cosTheta(#it{K}*^{+})", "d1" : 1, "d2" : 0, "nbins" : 50, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "cosTheta", "title" : "cosTheta(#it{#gamma})", "d1" : 2, "d2" : 0, "nbins" : 50, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "phi", "title" : "phi(#it{K}*^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -180.0, "xmax" : 180.0},
+        {"variable" : "phi", "title" : "phi(#it{#gamma})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -180.0, "xmax" : 180.0},
+        {"variable" : "mass_daug1", "title" : "M(#it{K}*^{+})", "d1" : 1, "d2" : 2, "nbins" : 100, "xmin" : 0.6, "xmax" : 1.5},
+        {"variable" : "pLab_daug1", "title" : "pLab(#it{K}^{0}_{S})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 3.0},
+        {"variable" : "cosTheta_daug1", "title" : "cosTheta(#it{K}^{0}_{S})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "phi_daug1", "title" : "phi(#it{K}^{0}_{S})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -180.0, "xmax" : 180.0},
+        {"variable" : "pLab_daug1", "title" : "pLab(#it{#pi}^{0})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 3.0},
+        {"variable" : "cosTheta_daug1", "title" : "cosTheta(#it{#pi}^{0})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "phi_daug1", "title" : "phi(#it{#pi}^{0})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -180.0, "xmax" : 180.0}
+    ],
+    "outfile" : "SVP_HELAMP=VSS__Bu_Kstgamma_Kspi_yesPhotos.root",
+    "reference" : "RefSVP_HELAMP=VSS__Bu_Kstgamma_Kspi_yesPhotos.root"
+}
diff --git a/test/jsonFiles/TAULNUNU__tau_enunu_yesPhotos.json b/test/jsonFiles/TAULNUNU__tau_enunu_yesPhotos.json
new file mode 100644
--- /dev/null
+++ b/test/jsonFiles/TAULNUNU__tau_enunu_yesPhotos.json
@@ -0,0 +1,32 @@
+{
+    "parent" : "tau+",
+    "daughters" : ["e+", "nu_e", "anti-nu_tau"],
+    "models" : ["TAULNUNU"],
+    "parameters" : [[]],
+    "extras" : ["yesPhotos"],
+    "events" : 100000,
+    "histograms" : [
+	{"variable" : "prob", "title" : "Prob",  "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0.8, "xmax" : 1.2},
+        {"variable" : "nFSRPhotons", "title" : "nFSRPhotons", "d1" : 0, "d2" : 0, "nbins" : 8, "xmin" : 0, "xmax" : 8.0 },  
+        {"variable" : "totalFSREnergy", "title" : "totalFSREnergy", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 1.0 },  
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 1.0},
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma) cut off", "d1" : 1, "d2" : 0, "nbins" : 50, "xmin" : 0.0, "xmax" : 0.5e-6},
+        {"variable" : "cosTheta_FSRPhotons", "title" : "FSR cosTheta/#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+        {"variable" : "cosTheta_EnergyWeight_FSRPhotons", "title" : "FSR cosTheta(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_EnergyWeight_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+	{"variable" : "pSumSq", "title" : "qSq(e#nu_{e})", "d1" : 1, "d2" : 2, "nbins" : 50, "xmin" : 0.0, "xmax" : 3.0},
+	{"variable" : "cosHel", "title" : "cosHel(e)", "d1" : 1, "d2" : 2, "nbins" : 50, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "E_over_Eparent", "title" : "E(e)/E(tau)", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 0.5},
+        {"variable" : "E_over_Eparent", "title" : "E(nue)/E(tau)", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 0.5},
+        {"variable" : "E_over_Eparent", "title" : "E(nutau_{2})/E(tau)", "d1" : 3, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 0.5},
+        {"variable" : "cosTheta", "title" : "cosTheta(e)", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "cosTheta", "title" : "cosTheta(nue)", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "cosTheta", "title" : "cosTheta(nutau_{2})", "d1" : 3, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "mass", "title" : "m(e nue)", "d1" : 1, "d2" : 2, "nbins" : 100, "xmin" : 0.25, "xmax" : 2.0},
+        {"variable" : "mass", "title" : "m(e nutau_{2})", "d1" : 1, "d2" : 3, "nbins" : 100, "xmin" : 0.25, "xmax" : 2.0},
+        {"variable" : "mass", "title" : "m(nue nutau_{2})", "d1" : 2, "d2" : 3, "nbins" : 100, "xmin" : 0.25, "xmax" : 2.0}
+    ],
+    "outfile" : "TAULNUNU__tau_enunu_yesPhotos.root",
+    "reference" : "RefTAULNUNU__tau_enunu_yesPhotos.root"
+}
diff --git a/test/jsonFiles/TAUOLA__tau_pipipinu_yesPhotos.json b/test/jsonFiles/TAUOLA__tau_pipipinu_yesPhotos.json
new file mode 100644
--- /dev/null
+++ b/test/jsonFiles/TAUOLA__tau_pipipinu_yesPhotos.json
@@ -0,0 +1,40 @@
+{
+    "parent" : "tau+",
+    "daughters" : [" "],
+    "models" : ["TAUOLA"],
+    "parameters" : [["5"]],
+    "extras" : ["Define TauolaCurrentOption 1", 
+                "Define TauolaBR1 1.0",
+                "yesPhotos"],
+    "events" : 100000,
+    "histograms" : [
+        {"variable" : "prob", "title" : "Prob",  "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0.8, "xmax" : 1.2},
+        {"variable" : "nFSRPhotons", "title" : "nFSRPhotons", "d1" : 0, "d2" : 0, "nbins" : 6, "xmin" : 0, "xmax" : 6.0 },  
+        {"variable" : "totalFSREnergy", "title" : "totalFSREnergy", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 0.8 },  
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 0.8},
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma) cut off", "d1" : 1, "d2" : 0, "nbins" : 50, "xmin" : 0.0, "xmax" : 0.5e-6},
+        {"variable" : "cosTheta_FSRPhotons", "title" : "FSR cosTheta/#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+        {"variable" : "cosTheta_EnergyWeight_FSRPhotons", "title" : "FSR cosTheta(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_EnergyWeight_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+        {"variable" : "E_over_Eparent", "title" : "E(nutau_{2})/E(tau)", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 0.5},
+        {"variable" : "E_over_Eparent", "title" : "E(pi+_{1})/E(tau)", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 0.5},
+        {"variable" : "E_over_Eparent", "title" : "E(pi+_{2})/E(tau)", "d1" : 3, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 0.5},
+        {"variable" : "E_over_Eparent", "title" : "E(pi-)/E(tau)", "d1" : 4, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 0.5},
+        {"variable" : "cosTheta", "title" : "cosTheta(nutau_{2})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "cosTheta", "title" : "cosTheta(pi+_{1})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "cosTheta", "title" : "cosTheta(pi+_{2})", "d1" : 3, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "cosTheta", "title" : "cosTheta(pi-)", "d1" : 4, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "cosHel", "title" : "cosHel(nutau_{2})", "d1" : 1, "d2" : 2, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "mass", "title" : "m(nutau_{2} pi+_{1})", "d1" : 1, "d2" : 2, "nbins" : 100, "xmin" : 0.25, "xmax" : 2.0},
+        {"variable" : "mass", "title" : "m(nutau_{2} pi+_{2})", "d1" : 1, "d2" : 3, "nbins" : 100, "xmin" : 0.25, "xmax" : 2.0},
+        {"variable" : "mass", "title" : "m(nutau_{2} pi-)", "d1" : 1, "d2" : 4, "nbins" : 100, "xmin" : 0.25, "xmax" : 2.0},
+        {"variable" : "mass", "title" : "m(pi+_{1} pi+_{2})", "d1" : 2, "d2" : 3, "nbins" : 100, "xmin" : 0.25, "xmax" : 2.0},
+        {"variable" : "mass", "title" : "m(pi+_{1} pi-)", "d1" : 2, "d2" : 4, "nbins" : 100, "xmin" : 0.25, "xmax" : 2.0},
+        {"variable" : "mass", "title" : "m(pi+_{2} pi-)", "d1" : 3, "d2" : 4, "nbins" : 100, "xmin" : 0.25, "xmax" : 2.0},
+        {"variable" : "mass3", "title" : "m(pi+_{1} pi+_{2} pi-)", "d1" : 2, "d2" : 3, "nbins" : 100, "xmin" : 0.2, "xmax" : 1.8},
+        {"variable" : "cosTheta3", "title" : "cosTheta3pi", "d1" : 2, "d2" : 3, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0}
+    ],
+    "outfile" : "TAUOLA__tau_pipipinu_yesPhotos.root",
+    "reference" : "RefTAUOLA__tau_pipipinu_yesPhotos.root"
+}
diff --git a/test/jsonFiles/VLL__Jpsi_ee_yesPhotos.json b/test/jsonFiles/VLL__Jpsi_ee_yesPhotos.json
--- a/test/jsonFiles/VLL__Jpsi_ee_yesPhotos.json
+++ b/test/jsonFiles/VLL__Jpsi_ee_yesPhotos.json
@@ -7,19 +7,25 @@
     "events" : 100000,
     "histograms" : [
         {"variable" : "prob", "title" : "probability", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 2.5 },
-        {"variable" : "nFSRPhotons", "title" : "nFSRPhotons(J/#psi)", "d1" : 0, "d2" : 0, "nbins" : 10, "xmin" : 0, "xmax" : 10.0 },  
-        {"variable" : "totalFSREnergy", "title" : "totalFSREnergy(J/#psi)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 2.0 },  
+        {"variable" : "nFSRPhotons", "title" : "nFSRPhotons", "d1" : 0, "d2" : 0, "nbins" : 10, "xmin" : 0, "xmax" : 10.0 },  
+        {"variable" : "totalFSREnergy", "title" : "totalFSREnergy", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 2.0 },  
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 2.0},
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma) cut off", "d1" : 1, "d2" : 0, "nbins" : 50, "xmin" : 0.0, "xmax" : 0.5e-6},
+        {"variable" : "cosTheta_FSRPhotons", "title" : "FSR cosTheta(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+        {"variable" : "cosTheta_EnergyWeight_FSRPhotons", "title" : "FSR cosTheta(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_EnergyWeight_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
 	{"variable" : "parMass", "title" : "m(J/#psi)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 3.0967, "xmax" : 3.09695},
 	{"variable" : "mass", "title" : "m(e^{+}e^{-})", "d1" : 1, "d2" : 2, "nbins" : 100, "xmin" : 3.0967, "xmax" : 3.09695},
         {"variable" : "cosHel", "title" : "cosHel12", "d1" : 1, "d2" : 2, "nbins" : 50, "xmin" : -1.0, "xmax" : 1.0},	
-        {"variable" : "E", "title" : "E(e+)", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
-        {"variable" : "E", "title" : "E(e-)", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
-        {"variable" : "pz", "title" : "p_{z}(e+)", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.6, "xmax" : 1.6},
-        {"variable" : "pz", "title" : "p_{z}(e-)", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.6, "xmax" : 1.6},
-        {"variable" : "pLab", "title" : "pLab(e+)", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
-        {"variable" : "pLab", "title" : "pLab(e-)", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
-        {"variable" : "cosTheta", "title" : "cosTheta(e+)", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
-        {"variable" : "cosTheta", "title" : "cosTheta(e-)", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0}
+        {"variable" : "E", "title" : "E(e^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "E", "title" : "E(e^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "pz", "title" : "p_{z}(e^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.6, "xmax" : 1.6},
+        {"variable" : "pz", "title" : "p_{z}(e^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.6, "xmax" : 1.6},
+        {"variable" : "pLab", "title" : "pLab(e^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "pLab", "title" : "pLab(e^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "cosTheta", "title" : "cosTheta(e^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "cosTheta", "title" : "cosTheta(e^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0}
     ],
     "outfile" : "VLL__Jpsi_ee_yesPhotos.root",
     "reference" : "RefVLL__Jpsi_ee_yesPhotos.root"
diff --git a/test/jsonFiles/VLL__Jpsi_mumu_yesPhotos.json b/test/jsonFiles/VLL__Jpsi_mumu_yesPhotos.json
--- a/test/jsonFiles/VLL__Jpsi_mumu_yesPhotos.json
+++ b/test/jsonFiles/VLL__Jpsi_mumu_yesPhotos.json
@@ -7,19 +7,25 @@
     "events" : 100000,
     "histograms" : [
         {"variable" : "prob", "title" : "probability", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 2.5 },
-        {"variable" : "nFSRPhotons", "title" : "nFSRPhotons(J/#psi)", "d1" : 0, "d2" : 0, "nbins" : 10, "xmin" : 0, "xmax" : 10.0 },  
-        {"variable" : "totalFSREnergy", "title" : "totalFSREnergy(J/#psi)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 2.0 },  
+        {"variable" : "nFSRPhotons", "title" : "nFSRPhotons", "d1" : 0, "d2" : 0, "nbins" : 10, "xmin" : 0, "xmax" : 10.0 },  
+        {"variable" : "totalFSREnergy", "title" : "totalFSREnergy", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 2.0 },  
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 2.0},
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma) cut off", "d1" : 1, "d2" : 0, "nbins" : 50, "xmin" : 0.0, "xmax" : 0.5e-6},
+        {"variable" : "cosTheta_FSRPhotons", "title" : "FSR cosTheta(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+        {"variable" : "cosTheta_EnergyWeight_FSRPhotons", "title" : "FSR cosTheta(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_EnergyWeight_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
 	{"variable" : "parMass", "title" : "m(J/#psi)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 3.0967, "xmax" : 3.09695},
 	{"variable" : "mass", "title" : "m(#mu^{+}#mu^{-})", "d1" : 1, "d2" : 2, "nbins" : 100, "xmin" : 3.0967, "xmax" : 3.09695},
         {"variable" : "cosHel", "title" : "cosHel12", "d1" : 1, "d2" : 2, "nbins" : 50, "xmin" : -1.0, "xmax" : 1.0},	
-        {"variable" : "E", "title" : "E(mu+)", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
-        {"variable" : "E", "title" : "E(mu-)", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
-        {"variable" : "pz", "title" : "p_{z}(mu+)", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.6, "xmax" : 1.6},
-        {"variable" : "pz", "title" : "p_{z}(mu-)", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.6, "xmax" : 1.6},
-        {"variable" : "pLab", "title" : "pLab(mu+)", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
-        {"variable" : "pLab", "title" : "pLab(mu-)", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
-        {"variable" : "cosTheta", "title" : "cosTheta(mu+)", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
-        {"variable" : "cosTheta", "title" : "cosTheta(mu-)", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0}
+        {"variable" : "E", "title" : "E(#mu^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "E", "title" : "E(#mu^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "pz", "title" : "p_{z}(#mu^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.6, "xmax" : 1.6},
+        {"variable" : "pz", "title" : "p_{z}(#mu^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.6, "xmax" : 1.6},
+        {"variable" : "pLab", "title" : "pLab(#mu^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "pLab", "title" : "pLab(#mu^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "cosTheta", "title" : "cosTheta(#mu^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "cosTheta", "title" : "cosTheta(#mu^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0}
     ],
     "outfile" : "VLL__Jpsi_mumu_yesPhotos.root",
     "reference" : "RefVLL__Jpsi_mumu_yesPhotos.root"
diff --git a/test/jsonFiles/VSS__rho0_pipi_yesPhotos.json b/test/jsonFiles/VSS__rho0_pipi_yesPhotos.json
new file mode 100644
--- /dev/null
+++ b/test/jsonFiles/VSS__rho0_pipi_yesPhotos.json
@@ -0,0 +1,32 @@
+{
+    "parent" : "rho0",
+    "daughters" : ["pi+", "pi-"],
+    "models" : ["VSS"],
+    "parameters" : [[]],
+    "extras" : ["yesPhotos"],
+    "events" : 10000,
+    "histograms" : [
+        {"variable" : "prob", "title" : "probability", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 2.5 },
+        {"variable" : "nFSRPhotons", "title" : "nFSRPhotons", "d1" : 0, "d2" : 0, "nbins" : 10, "xmin" : 0, "xmax" : 10.0 },  
+        {"variable" : "totalFSREnergy", "title" : "totalFSREnergy", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 1.0 },  
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 1.0},
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma) cut off", "d1" : 1, "d2" : 0, "nbins" : 50, "xmin" : 0.0, "xmax" : 0.5e-6},
+        {"variable" : "cosTheta_FSRPhotons", "title" : "FSR cosTheta(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+        {"variable" : "cosTheta_EnergyWeight_FSRPhotons", "title" : "FSR cosTheta(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_EnergyWeight_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+	{"variable" : "parMass", "title" : "m(#rho^{+})", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 3.0967, "xmax" : 3.09695},
+	{"variable" : "mass", "title" : "m(#pi^{+}#pi^{-})", "d1" : 1, "d2" : 2, "nbins" : 100, "xmin" : 3.0967, "xmax" : 3.09695},
+        {"variable" : "cosHel", "title" : "cosHel12", "d1" : 1, "d2" : 2, "nbins" : 50, "xmin" : -1.0, "xmax" : 1.0},	
+        {"variable" : "E", "title" : "E(#pi^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "E", "title" : "E(#pi^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "pz", "title" : "p_{z}(#pi^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.6, "xmax" : 1.6},
+        {"variable" : "pz", "title" : "p_{z}(#pi^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.6, "xmax" : 1.6},
+        {"variable" : "pLab", "title" : "pLab(#pi^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "pLab", "title" : "pLab(#pi^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "cosTheta", "title" : "cosTheta(#pi^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "cosTheta", "title" : "cosTheta(#pi^{-})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0}
+    ],
+    "outfile" : "VSS__rho0_pipi_yesPhotos.root",
+    "reference" : "RefVSS__rho0_pipi_yesPhotos.root"
+}
diff --git a/test/jsonFiles/VSS__rho_pipi0_yesPhotos.json b/test/jsonFiles/VSS__rho_pipi0_yesPhotos.json
new file mode 100644
--- /dev/null
+++ b/test/jsonFiles/VSS__rho_pipi0_yesPhotos.json
@@ -0,0 +1,32 @@
+{
+    "parent" : "rho+",
+    "daughters" : ["pi+", "pi0"],
+    "models" : ["VSS"],
+    "parameters" : [[]],
+    "extras" : ["yesPhotos"],
+    "events" : 10000,
+    "histograms" : [
+        {"variable" : "prob", "title" : "probability", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 2.5 },
+        {"variable" : "nFSRPhotons", "title" : "nFSRPhotons", "d1" : 0, "d2" : 0, "nbins" : 10, "xmin" : 0, "xmax" : 10.0 },  
+        {"variable" : "totalFSREnergy", "title" : "totalFSREnergy", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0, "xmax" : 1.0 },  
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 1.0},
+        {"variable" : "E_FSRPhotons", "title" : "FSR E(#gamma) cut off", "d1" : 1, "d2" : 0, "nbins" : 50, "xmin" : 0.0, "xmax" : 0.5e-6},
+        {"variable" : "cosTheta_FSRPhotons", "title" : "FSR cosTheta(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+        {"variable" : "cosTheta_EnergyWeight_FSRPhotons", "title" : "FSR cosTheta(#gamma)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+	{"variable" : "openingAngle_EnergyWeight_FSRPhotons", "title" : "FSR opening angle", "d1" : 0, "d2" : 0, "nbins" : 90, "xmin" : 0, "xmax" : 180},
+	{"variable" : "parMass", "title" : "m(#rho^{+})", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 3.0967, "xmax" : 3.09695},
+	{"variable" : "mass", "title" : "m(#pi^{+}#pi^{0})", "d1" : 1, "d2" : 2, "nbins" : 100, "xmin" : 3.0967, "xmax" : 3.09695},
+        {"variable" : "cosHel", "title" : "cosHel12", "d1" : 1, "d2" : 2, "nbins" : 50, "xmin" : -1.0, "xmax" : 1.0},	
+        {"variable" : "E", "title" : "E(#pi^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "E", "title" : "E(#pi^{0})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "pz", "title" : "p_{z}(#pi^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.6, "xmax" : 1.6},
+        {"variable" : "pz", "title" : "p_{z}(#pi^{0})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.6, "xmax" : 1.6},
+        {"variable" : "pLab", "title" : "pLab(#pi^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "pLab", "title" : "pLab(#pi^{0})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 1.2, "xmax" : 1.6},
+        {"variable" : "cosTheta", "title" : "cosTheta(#pi^{+})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
+        {"variable" : "cosTheta", "title" : "cosTheta(#pi^{0})", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0}
+    ],
+    "outfile" : "VSS__rho_pipi0_yesPhotos.root",
+    "reference" : "RefVSS__rho_pipi0_yesPhotos.root"
+}
diff --git a/test/testDecayModel.hh b/test/testDecayModel.hh
--- a/test/testDecayModel.hh
+++ b/test/testDecayModel.hh
@@ -84,6 +84,8 @@
                          const std::string& parentName, const bool doConjDecay,
                          const int nEvents, const bool debugFlag );
 
+    int findChargedDaugtherWithMaxE( const EvtParticle* parent ) const;
+
     double getValue( const EvtParticle* rootPart, const std::string& varName,
                      const int d1, const int d2 ) const;
 
diff --git a/test/testDecayModel.cc b/test/testDecayModel.cc
--- a/test/testDecayModel.cc
+++ b/test/testDecayModel.cc
@@ -479,23 +479,73 @@
             }
         }
 
+        int leadingChargedDaughter = -1;
+        const std::string fsrStr = "_FSRPhotons";
+        const std::string ewStr = "_EnergyWeight";
+
         // Store information
         for ( auto& [info, hist] : m_1DhistVect ) {
-            const double value{ getValue( parent, info.getName(), info.getd1(),
-                                          info.getd2() ) };
+            if ( !hist ) {
+                continue;
+            }
+
+            const std::string varName = info.getName();
+            const std::string::size_type findFSRstr = varName.find( fsrStr );
+
+            // If the variable name does not have the substring '_FSRPhotons', then add an entry per event and continue
+            if ( findFSRstr == std::string::npos ) {
+                const double value{
+                    getValue( parent, varName, info.getd1(), info.getd2() ) };
 
-            if ( hist ) {
                 hist->Fill( value );
+                continue;
+            }
+
+            // If otherwise the variable contains the substring '_FSRPhotons', then add an entry per photon
+
+            if ( leadingChargedDaughter == -1 ) {
+                leadingChargedDaughter = findChargedDaugtherWithMaxE( parent );
+            }
+
+            std::string reducedVarName = varName;
+            reducedVarName.erase( findFSRstr, fsrStr.length() );
+
+            const std::string::size_type findEwStr = reducedVarName.find( ewStr );
+
+            // If variable name has substring '_EnergyWeight' then add an entry weighted by the photon energy
+            bool energyWeight = false;
+            if ( findEwStr != std::string::npos ) {
+                reducedVarName.erase( findEwStr, ewStr.length() );
+                energyWeight = true;
+            }
+
+            for ( int iDaug{ 0 }; iDaug < (int)parent->getNDaug(); iDaug++ ) {
+                const EvtParticle* iDaughter = parent->getDaug( iDaug );
+
+                if ( iDaughter->getAttribute( "FSR" ) == 1 ) {
+                    const double value{ getValue( parent, reducedVarName,
+                                                  iDaug + 1,
+                                                  leadingChargedDaughter + 1 ) };
+                    if ( energyWeight ) {
+                        const double photonEnergy = iDaughter->getP4().get( 0 );
+                        hist->Fill( value, photonEnergy );
+                    } else {
+                        hist->Fill( value );
+                    }
+                }
             }
         }
+
         for ( auto& [info, hist] : m_2DhistVect ) {
+            if ( !hist ) {
+                continue;
+            }
+
             const double valueX{ getValue( parent, info.getName(), info.getd1(),
                                            info.getd2() ) };
             const double valueY{ getValue( parent, info.getName( 2 ),
                                            info.getd1( 2 ), info.getd2( 2 ) ) };
-            if ( hist ) {
-                hist->Fill( valueX, valueY );
-            }
+            hist->Fill( valueX, valueY );
         }
 
         if ( debug_flag ) {
@@ -515,6 +565,31 @@
     }
 }
 
+int TestDecayModel::findChargedDaugtherWithMaxE( const EvtParticle* parent ) const
+{
+    /* This function returns the index of the charged daughter with the highest energy 
+     * following the sign convention below. */
+
+    double max_E = 0;
+    double max_index = 0;
+
+    const int parentCh3 = EvtPDL::chg3( parent->getId() );
+
+    for ( int iDaug{ 0 }; iDaug < (int)parent->getNDaug(); iDaug++ ) {
+        const EvtParticle* iDaughter = parent->getDaug( iDaug );
+        const int dauCh3 = EvtPDL::chg3( iDaughter->getId() );
+        const double daugE = iDaughter->getP4LabBeforeFSR().get( 0 );
+        // Sign convention: take negative daughter if mother is neutral,
+        // otherwise the one with the same sign as the mother.
+        if ( ( ( parentCh3 == 0 && dauCh3 < 0 ) || ( parentCh3 * dauCh3 > 0 ) ) &&
+             daugE > max_E ) {
+            max_E = daugE;
+            max_index = iDaug;
+        }
+    }
+    return max_index;
+}
+
 double TestDecayModel::getValue( const EvtParticle* parent,
                                  const std::string& varName, const int d1,
                                  const int d2 ) const
@@ -919,6 +994,13 @@
                     EvtConst::pi;
         }
 
+    } else if ( !selectedVarName.compare( "openingAngle" ) ) {
+        // Polar angle between first and second daughters in parent's frame
+
+        const double cost{ p1.dot( p2 ) / ( p1.d3mag() * p2.d3mag() ) };
+
+        value = acos( cost ) * 180.0 / EvtConst::pi;
+
     } else if ( !selectedVarName.compare( "decayangle" ) ) {
         // Polar angle between first and second daughters in lab frame