diff --git a/Reconstruction/HeavyIonRec/HIMonitoring/CMakeLists.txt b/Reconstruction/HeavyIonRec/HIMonitoring/CMakeLists.txt
index d35b7dda8e98ed37d10bdfc43bd04f2987aed90b..704ead96ecfe8ab053e03f4cf33361446772dc58 100644
--- a/Reconstruction/HeavyIonRec/HIMonitoring/CMakeLists.txt
+++ b/Reconstruction/HeavyIonRec/HIMonitoring/CMakeLists.txt
@@ -14,7 +14,8 @@ atlas_depends_on_subdirs( PUBLIC
                           Event/xAOD/xAODMuon
                           Event/xAOD/xAODTracking
                           Event/xAOD/xAODTrigMinBias
-                          GaudiKernel
+                          ForwardDetectors/ZDC/ZdcAnalysis
+			  GaudiKernel
                           PhysicsAnalysis/ElectronPhotonID/ElectronPhotonSelectorTools
                           PRIVATE
                           Tools/LWHists )
@@ -27,13 +28,13 @@ atlas_add_library( HIMonitoringLib
                    src/*.cxx
                    PUBLIC_HEADERS HIMonitoring
                    INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
-                   LINK_LIBRARIES ${ROOT_LIBRARIES} xAODEgamma xAODForward xAODHIEvent xAODMuon xAODTracking xAODTrigMinBias GaudiKernel AthenaMonitoringLib ElectronPhotonSelectorToolsLib
+		   LINK_LIBRARIES ${ROOT_LIBRARIES} xAODEgamma xAODForward xAODHIEvent xAODMuon xAODTracking xAODTrigMinBias GaudiKernel AthenaMonitoringLib ZDCAnalysisLib ElectronPhotonSelectorToolsLib
                    PRIVATE_LINK_LIBRARIES LWHists )
 
 atlas_add_component( HIMonitoring
                      src/components/*.cxx
                      INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
-                     LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaMonitoringLib xAODEgamma xAODForward xAODHIEvent xAODMuon xAODTracking xAODTrigMinBias GaudiKernel ElectronPhotonSelectorToolsLib LWHists HIMonitoringLib )
+		     LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaMonitoringLib xAODEgamma xAODForward xAODHIEvent xAODMuon xAODTracking xAODTrigMinBias GaudiKernel ElectronPhotonSelectorToolsLib LWHists ZDCAnalysisLib HIMonitoringLib )
 
 # Install files from the package:
 atlas_install_joboptions( share/*.py )
diff --git a/Reconstruction/HeavyIonRec/HIMonitoring/HIMonitoring/HIMonitoringMuonsTool.h b/Reconstruction/HeavyIonRec/HIMonitoring/HIMonitoring/HIMonitoringMuonsTool.h
index e0ba0259c7437d962dda7adbc00a26db11f3e52d..5471e336bbef7d8472abc0a8e50d8a0c5b5b6f2f 100755
--- a/Reconstruction/HeavyIonRec/HIMonitoring/HIMonitoring/HIMonitoringMuonsTool.h
+++ b/Reconstruction/HeavyIonRec/HIMonitoring/HIMonitoring/HIMonitoringMuonsTool.h
@@ -33,7 +33,7 @@ class HIMonitoringMuonsTool : public ManagedMonitorToolBase
    public:
 
       HIMonitoringMuonsTool( const std::string & type, const std::string & name,
-            const IInterface* parent ); 
+                             const IInterface* parent ); 
 
       virtual ~HIMonitoringMuonsTool();
 
@@ -58,29 +58,13 @@ class HIMonitoringMuonsTool : public ManagedMonitorToolBase
     
       TH1D* h_FCalEt; 
 	
-      TH1D* h_Auth_fcal0; 
-      TH1D* h_Auth_fcal1; 
-      TH1D* h_Auth_fcal2;
-
-      TH1D* h_Type_fcal0; 
-      TH1D* h_Type_fcal1; 
-      TH1D* h_Type_fcal2;  
-
-      TH1D* h_Chi2ndf_fcal0; 
-      TH1D* h_Chi2ndf_fcal1; 
-      TH1D* h_Chi2ndf_fcal2;
-
-      TH1D* h_Chi2ndfID_fcal0; 
-      TH1D* h_Chi2ndfID_fcal1; 
-      TH1D* h_Chi2ndfID_fcal2; 
-
-      TH1D* h_Chi2ndfME_fcal0; 
-      TH1D* h_Chi2ndfME_fcal1; 
-      TH1D* h_Chi2ndfME_fcal2;  
-
-      TH1D* h_Chi2ndfMS_fcal0; 
-      TH1D* h_Chi2ndfMS_fcal1; 
-      TH1D* h_Chi2ndfMS_fcal2;  
+      TH1D* h_Auth_fcal; 
+      TH1D* h_Type_fcal; 
+      TH1D* h_Chi2ndf_fcal; 
+   
+      TH1D* h_Chi2ndfID_fcal; 
+      TH1D* h_Chi2ndfME_fcal; 
+      TH1D* h_Chi2ndfMS_fcal; 
 };
 
 #endif
diff --git a/Reconstruction/HeavyIonRec/HIMonitoring/HIMonitoring/HIMonitoringZdcTool.h b/Reconstruction/HeavyIonRec/HIMonitoring/HIMonitoring/HIMonitoringZdcTool.h
index d89b33dbca143d2b1e1148f24ddbfadcd6a52902..3c4adbc1e1ce5508579d15e5a8b0ecf47812188f 100755
--- a/Reconstruction/HeavyIonRec/HIMonitoring/HIMonitoring/HIMonitoringZdcTool.h
+++ b/Reconstruction/HeavyIonRec/HIMonitoring/HIMonitoring/HIMonitoringZdcTool.h
@@ -13,7 +13,7 @@
 
 #include <xAODHIEvent/HIEventShape.h>
 #include <xAODHIEvent/HIEventShapeContainer.h>
-
+#include <ZdcAnalysis/ZdcAnalysisTool.h>
 #include <xAODForward/ZdcModule.h>
 #include <xAODForward/ZdcModuleAuxContainer.h>
 #include <xAODForward/ZdcModuleContainer.h>
@@ -53,6 +53,8 @@ class HIMonitoringZdcTool : public ManagedMonitorToolBase
 
 
 	 private:
+		double NEW_AEM, NEW_AHAD1, NEW_AHAD2, NEW_AHAD3;
+		double NEW_CEM, NEW_CHAD1, NEW_CHAD2, NEW_CHAD3;
 		double AEM, AHAD1, AHAD2, AHAD3;
 		double CEM, CHAD1, CHAD2, CHAD3;
 		double G0AEM, G0AHAD1, G0AHAD2, G0AHAD3;
@@ -60,14 +62,16 @@ class HIMonitoringZdcTool : public ManagedMonitorToolBase
 		double G1AEM, G1AHAD1, G1AHAD2, G1AHAD3;
 		double G1CEM, G1CHAD1, G1CHAD2, G1CHAD3;
 		double SumSideA, SumSideC;
+		double NEW_SumSideA, NEW_SumSideC;
 
 
 		/// histograms 
-
-	TH1D* hamp[Nmod][Nside];
+		TH1D* hamp[Nmod][Nside];
+		TH1D* hamp_NEW[Nmod][Nside];
 		TH1D* hampG0[Nmod][Nside];
 		TH1D* hampG1[Nmod][Nside];
 		TH1D* hSumSideAmp[Nside];
+		TH1D* hSumSideAmp_NEW[Nside];
 		TH1D* hSumSideAmpG0[Nside];
 		TH1D* hSumSideAmpG1[Nside];
 		TH2D_LW* hEM_HAD1[Nside];
@@ -75,6 +79,11 @@ class HIMonitoringZdcTool : public ManagedMonitorToolBase
 		TH2D_LW* hHAD2_HAD3[Nside];
 		TH2D_LW* hSideAC;
 
+		TH2D_LW* hEM_HAD1_NEW[Nside];
+		TH2D_LW* hHAD1_HAD2_NEW[Nside];
+		TH2D_LW* hHAD2_HAD3_NEW[Nside];
+		TH2D_LW* hSideAC_NEW;
+
 	    
 };
 
diff --git a/Reconstruction/HeavyIonRec/HIMonitoring/cmt/requirements b/Reconstruction/HeavyIonRec/HIMonitoring/cmt/requirements
index d14506fc7f20e81741cd7aba6cd5dbfea33f8db9..405da886c31476c7d9d68e6f092d11515227f889 100644
--- a/Reconstruction/HeavyIonRec/HIMonitoring/cmt/requirements
+++ b/Reconstruction/HeavyIonRec/HIMonitoring/cmt/requirements
@@ -11,6 +11,8 @@ use xAODEgamma            xAODEgamma-*             Event/xAOD
 use xAODMuon              xAODMuon-*               Event/xAOD
 use xAODTracking          xAODTracking-*           Event/xAOD
 use xAODForward           xAODForward-*            Event/xAOD
+use ZdcAnalysis           ZdcAnalysis-*            ForwardDetectors/ZDC
+
 use ElectronPhotonSelectorTools ElectronPhotonSelectorTools-* PhysicsAnalysis/ElectronPhotonID
 
 private
diff --git a/Reconstruction/HeavyIonRec/HIMonitoring/share/HIMonitoringSteering_jo.py b/Reconstruction/HeavyIonRec/HIMonitoring/share/HIMonitoringSteering_jo.py
index e712bace44e6e9c185fb4078ce329f82d86879b0..5fc56e93e304fd242ccae4bac9c8befc5a8d935f 100755
--- a/Reconstruction/HeavyIonRec/HIMonitoring/share/HIMonitoringSteering_jo.py
+++ b/Reconstruction/HeavyIonRec/HIMonitoring/share/HIMonitoringSteering_jo.py
@@ -90,9 +90,9 @@ if DQMonFlags.monManEnvironment == 'tier0ESD' or DQMonFlags.monManEnvironment ==
                                    LumiBlock           = DQMonFlags.monManLumiBlock(),           #1
                                    AthenaMonTools      = [ HIMuonsMonTool ])
     topSequence += HIMuonsMonMan
-    
-    ToolSvc += HIZdcMonTool
-    HIZdcMonMan = AthenaMonManager( "HIZdcMonManager",
+        
+    ToolSvc += HIElectronsMonTool
+    HIElectronsMonMan = AthenaMonManager( "HIElectronsMonManager",
                                    FileKey             = DQMonFlags.monManFileKey(),             #"GLOBAL" #"stat"
                                    ManualDataTypeSetup = DQMonFlags.monManManualDataTypeSetup(), #True
                                    DataType            = DQMonFlags.monManDataType(),            #"cosmics"
@@ -100,11 +100,12 @@ if DQMonFlags.monManEnvironment == 'tier0ESD' or DQMonFlags.monManEnvironment ==
                                    ManualRunLBSetup    = DQMonFlags.monManManualRunLBSetup(),    #True
                                    Run                 = DQMonFlags.monManRun(),                 #1
                                    LumiBlock           = DQMonFlags.monManLumiBlock(),           #1
-                                   AthenaMonTools      = [ HIZdcMonTool ])
-    topSequence += HIZdcMonMan
-    
-    ToolSvc += HIElectronsMonTool
-    HIElectronsMonMan = AthenaMonManager( "HIElectronsMonManager",
+                                   AthenaMonTools      = [ HIElectronsMonTool ])
+    topSequence += HIElectronsMonMan
+
+if DQMonFlags.monManEnvironment == 'tier0ESD' or DQMonFlags.monManEnvironment == 'tier0' or DQMonFlags.monManEnvironment == 'online':
+    ToolSvc += HIZdcMonTool
+    HIZdcMonMan = AthenaMonManager( "HIZdcMonManager",
                                    FileKey             = DQMonFlags.monManFileKey(),             #"GLOBAL" #"stat"
                                    ManualDataTypeSetup = DQMonFlags.monManManualDataTypeSetup(), #True
                                    DataType            = DQMonFlags.monManDataType(),            #"cosmics"
@@ -112,5 +113,5 @@ if DQMonFlags.monManEnvironment == 'tier0ESD' or DQMonFlags.monManEnvironment ==
                                    ManualRunLBSetup    = DQMonFlags.monManManualRunLBSetup(),    #True
                                    Run                 = DQMonFlags.monManRun(),                 #1
                                    LumiBlock           = DQMonFlags.monManLumiBlock(),           #1
-                                   AthenaMonTools      = [ HIElectronsMonTool ])
-    topSequence += HIElectronsMonMan
+                                   AthenaMonTools      = [ HIZdcMonTool ])
+    topSequence += HIZdcMonMan
diff --git a/Reconstruction/HeavyIonRec/HIMonitoring/src/HIMonitoringMuonsTool.cxx b/Reconstruction/HeavyIonRec/HIMonitoring/src/HIMonitoringMuonsTool.cxx
index 9e428deca4246375c4c319b4f002dc3f23d05c39..d20e8a45374fdc1ce75d3e3cc9ffd39021c0c759 100755
--- a/Reconstruction/HeavyIonRec/HIMonitoring/src/HIMonitoringMuonsTool.cxx
+++ b/Reconstruction/HeavyIonRec/HIMonitoring/src/HIMonitoringMuonsTool.cxx
@@ -37,11 +37,14 @@ StatusCode HIMonitoringMuonsTool::bookHistogramsRecurrent( )
 // Description: Used for re-booking managed histograms       
 StatusCode HIMonitoringMuonsTool::bookHistograms( )
 {
-	if( m_environment == AthenaMonManager::online ) {
+	if( m_environment == AthenaMonManager::online ) 
+	{
+          
 		// book histograms that are only made in the online environment...
 	}
 
-	if( m_dataType == AthenaMonManager::cosmics ) {
+	if( m_dataType == AthenaMonManager::cosmics ) 
+	{
 		// book histograms that are only relevant for cosmics data...
 	}
    
@@ -69,38 +72,29 @@ StatusCode HIMonitoringMuonsTool::fillHistograms()
 		ATH_MSG_INFO("HIEventShape retrieved from StoreGate");
 	}
 	
-	int size=evtShape->size();
-	for(int i=0;i<size;i++)
-	{       
-		const xAOD::HIEventShape *sh=evtShape->at(i);
-		if(sh->layer()==21 || sh->layer()==22 || sh->layer()==23)
-		{
-			m_FCalEt += sh->et();
-		} 
-	}
-   
-	m_FCalEt = m_FCalEt/1000000.;
-	  	
 
-        const xAOD::MuonContainer* muons = 0;
+    const xAOD::MuonContainer* muons = 0;
 	sc = evtStore()->retrieve( muons, "Muons" );
-	if (sc.isFailure()) {
+	if (sc.isFailure()) 
+	{
 	  ATH_MSG_ERROR("Could not find Muons");
 	  return StatusCode::FAILURE;
 	}
-	else {
+	else
+	{
 	  ATH_MSG_INFO("Muons retrieved from StoreGate");
 	}
 
-        xAOD::MuonContainer::const_iterator muon_itr = muons->begin();
-        xAOD::MuonContainer::const_iterator muon_end = muons->end();
+    xAOD::MuonContainer::const_iterator muon_itr = muons->begin();
+    xAOD::MuonContainer::const_iterator muon_end = muons->end();
 
-        for( ; muon_itr != muon_end; ++muon_itr ) {
+    for( ; muon_itr != muon_end; ++muon_itr ) 
+    {
 
-	// pt cut
-	if((*muon_itr)->pt()*1.e-3 <6.)continue;
+	    // pt cut
+	    if((*muon_itr)->pt()*1.e-3 <6.)continue;
 
-	auth = (*muon_itr)->author();
+	    auth = (*muon_itr)->author();
         type = (*muon_itr)->muonType();
 
 
@@ -111,46 +105,24 @@ StatusCode HIMonitoringMuonsTool::fillHistograms()
         const xAOD::TrackParticle* IDtrackParticle   = (*muon_itr)->trackParticle( xAOD::Muon::InnerDetectorTrackParticle );
 
 
-	if(primTrackParticle){
-	chi2ndof = primTrackParticle->chiSquared()/primTrackParticle->numberDoF();
-	}
-	if(IDtrackParticle){
-	chi2ndofID = IDtrackParticle->chiSquared()/IDtrackParticle->numberDoF();
-	}
-	if(MStrackParticle){
-	chi2ndofMS = MStrackParticle->chiSquared()/MStrackParticle->numberDoF();
-	}
-	if(MEtrackParticle){
-	chi2ndofME = MEtrackParticle->chiSquared()/MEtrackParticle->numberDoF();
-	}
+	    if(primTrackParticle)  {chi2ndof   = primTrackParticle->chiSquared()/primTrackParticle->numberDoF();    } 
+	    if(IDtrackParticle)    {chi2ndofID = IDtrackParticle->chiSquared()/IDtrackParticle->numberDoF();	    }
+	    if(MStrackParticle)    {chi2ndofMS = MStrackParticle->chiSquared()/MStrackParticle->numberDoF();	    }
+	    if(MEtrackParticle)    {chi2ndofME = MEtrackParticle->chiSquared()/MEtrackParticle->numberDoF();	    }
 
-	if(m_FCalEt < 0.05){
-	  h_Auth_fcal0->Fill(auth);
-	  h_Type_fcal0->Fill(type);
-	  h_Chi2ndf_fcal0->Fill(chi2ndof);
-	  h_Chi2ndfID_fcal0->Fill(chi2ndofID);
-	  h_Chi2ndfMS_fcal0->Fill(chi2ndofMS);
-	  h_Chi2ndfME_fcal0->Fill(chi2ndofME);
-        } 
-        if(m_FCalEt >= 0.05 && m_FCalEt < 0.3){
-	  h_Auth_fcal1->Fill(auth);
-	  h_Type_fcal1->Fill(type);
-	  h_Chi2ndf_fcal1->Fill(chi2ndof);
-	  h_Chi2ndfID_fcal1->Fill(chi2ndofID);
-	  h_Chi2ndfMS_fcal1->Fill(chi2ndofMS);
-	  h_Chi2ndfME_fcal1->Fill(chi2ndofME);
-        }
-        if(m_FCalEt >= 0.3){
-	  h_Auth_fcal2->Fill(auth);
-	  h_Type_fcal2->Fill(type);
-	  h_Chi2ndf_fcal2->Fill(chi2ndof);
-	  h_Chi2ndfID_fcal2->Fill(chi2ndofID);
-	  h_Chi2ndfMS_fcal2->Fill(chi2ndofMS);
-	  h_Chi2ndfME_fcal2->Fill(chi2ndofME);
-        }
-
-
-        }//for
+	  
+
+
+
+        h_Auth_fcal->Fill(auth);
+        h_Type_fcal->Fill(type);
+        h_Chi2ndf_fcal->Fill(chi2ndof);
+		h_Chi2ndfID_fcal->Fill(chi2ndofID);
+		h_Chi2ndfMS_fcal->Fill(chi2ndofMS);
+		h_Chi2ndfME_fcal->Fill(chi2ndofME);
+
+
+    }//for
 
 
  	  
@@ -169,29 +141,12 @@ StatusCode HIMonitoringMuonsTool::procHistograms( )
 
 	if( endOfRun ) 
 	{
-        if(h_Auth_fcal0->GetEntries() > 0) h_Auth_fcal0->Scale(1./h_Auth_fcal0->GetEntries());
-        if(h_Auth_fcal1->GetEntries() > 0) h_Auth_fcal1->Scale(1./h_Auth_fcal1->GetEntries());
-        if(h_Auth_fcal2->GetEntries() > 0) h_Auth_fcal2->Scale(1./h_Auth_fcal2->GetEntries());
-        
-        if(h_Type_fcal0->GetEntries() > 0) h_Type_fcal0->Scale(1./h_Type_fcal0->GetEntries());
-        if(h_Type_fcal1->GetEntries() > 0) h_Type_fcal1->Scale(1./h_Type_fcal1->GetEntries());
-        if(h_Type_fcal2->GetEntries() > 0) h_Type_fcal2->Scale(1./h_Type_fcal2->GetEntries());
-        
-        if(h_Chi2ndf_fcal0->GetEntries() > 0) h_Chi2ndf_fcal0->Scale(1./h_Chi2ndf_fcal0->GetEntries());
-        if(h_Chi2ndf_fcal1->GetEntries() > 0) h_Chi2ndf_fcal1->Scale(1./h_Chi2ndf_fcal1->GetEntries());
-        if(h_Chi2ndf_fcal2->GetEntries() > 0) h_Chi2ndf_fcal2->Scale(1./h_Chi2ndf_fcal2->GetEntries());
-        
-        if(h_Chi2ndfID_fcal0->GetEntries() > 0) h_Chi2ndfID_fcal0->Scale(1./h_Chi2ndfID_fcal0->GetEntries());
-        if(h_Chi2ndfID_fcal1->GetEntries() > 0) h_Chi2ndfID_fcal1->Scale(1./h_Chi2ndfID_fcal1->GetEntries());
-        if(h_Chi2ndfID_fcal2->GetEntries() > 0) h_Chi2ndfID_fcal2->Scale(1./h_Chi2ndfID_fcal2->GetEntries());
-        
-        if(h_Chi2ndfMS_fcal0->GetEntries() > 0) h_Chi2ndfMS_fcal0->Scale(1./h_Chi2ndfMS_fcal0->GetEntries());
-        if(h_Chi2ndfMS_fcal1->GetEntries() > 0) h_Chi2ndfMS_fcal1->Scale(1./h_Chi2ndfMS_fcal1->GetEntries());
-        if(h_Chi2ndfMS_fcal2->GetEntries() > 0) h_Chi2ndfMS_fcal2->Scale(1./h_Chi2ndfMS_fcal2->GetEntries());
-        
-        if(h_Chi2ndfME_fcal0->GetEntries() > 0) h_Chi2ndfME_fcal0->Scale(1./h_Chi2ndfME_fcal0->GetEntries());
-        if(h_Chi2ndfME_fcal1->GetEntries() > 0) h_Chi2ndfME_fcal1->Scale(1./h_Chi2ndfME_fcal1->GetEntries());
-        if(h_Chi2ndfME_fcal2->GetEntries() > 0) h_Chi2ndfME_fcal2->Scale(1./h_Chi2ndfME_fcal2->GetEntries());
+        if(h_Auth_fcal->GetEntries() > 0) h_Auth_fcal->Scale(1./h_Auth_fcal->GetEntries());
+        if(h_Type_fcal->GetEntries() > 0) h_Type_fcal->Scale(1./h_Type_fcal->GetEntries());
+        if(h_Chi2ndf_fcal->GetEntries() > 0) h_Chi2ndf_fcal->Scale(1./h_Chi2ndf_fcal->GetEntries());
+        if(h_Chi2ndfID_fcal->GetEntries() > 0) h_Chi2ndfID_fcal->Scale(1./h_Chi2ndfID_fcal->GetEntries());
+        if(h_Chi2ndfMS_fcal->GetEntries() > 0) h_Chi2ndfMS_fcal->Scale(1./h_Chi2ndfMS_fcal->GetEntries());
+        if(h_Chi2ndfME_fcal->GetEntries() > 0) h_Chi2ndfME_fcal->Scale(1./h_Chi2ndfME_fcal->GetEntries());
 	}
 
 	return StatusCode::SUCCESS;
@@ -203,47 +158,23 @@ void HIMonitoringMuonsTool::book_hist()
 {
 	std::string path = "HeavyIon/Muons"; 
 
-        h_Auth_fcal0 = new TH1D( "h_Auth_fcal0", ";author;counts" , 12 , 0 , 12);
-	regHist(h_Auth_fcal0, path, run).ignore();
-        h_Auth_fcal1 = new TH1D( "h_Auth_fcal1", ";author;counts" , 12 , 0 , 12);
-	regHist(h_Auth_fcal1, path, run).ignore();
-        h_Auth_fcal2 = new TH1D( "h_Auth_fcal2", ";author;counts" , 12 , 0 , 12);
-	regHist(h_Auth_fcal2, path, run).ignore();
-
-        h_Type_fcal0 = new TH1D( "h_Type_fcal0", ";type;counts" , 5 , 0 , 5);
-	regHist(h_Type_fcal0, path, run).ignore();
-        h_Type_fcal1 = new TH1D( "h_Type_fcal1", ";type;counts" , 5 , 0 , 5);
-	regHist(h_Type_fcal1, path, run).ignore();
-        h_Type_fcal2 = new TH1D( "h_Type_fcal2", ";type;counts" , 5 , 0 , 5);
-	regHist(h_Type_fcal2, path, run).ignore();
-
-        h_Chi2ndf_fcal0 = new TH1D( "h_Chi2ndf_fcal0", ";chi2/ndf;counts" , 100 , 0 , 10);
-	regHist(h_Chi2ndf_fcal0, path, run).ignore();
-        h_Chi2ndf_fcal1 = new TH1D( "h_Chi2ndf_fcal1", ";chi2/ndf;counts" , 100 , 0 , 10);
-	regHist(h_Chi2ndf_fcal1, path, run).ignore();
-        h_Chi2ndf_fcal2 = new TH1D( "h_Chi2ndf_fcal2", ";chi2/ndf;counts" , 100 , 0 , 10);
-	regHist(h_Chi2ndf_fcal2, path, run).ignore();
-
-        h_Chi2ndfID_fcal0 = new TH1D( "h_Chi2ndfID_fcal0", ";ID chi2/ndf;counts" , 100 , 0 , 10);
-	regHist(h_Chi2ndfID_fcal0, path, run).ignore();
-        h_Chi2ndfID_fcal1 = new TH1D( "h_Chi2ndfID_fcal1", ";ID chi2/ndf;counts" , 100 , 0 , 10);
-	regHist(h_Chi2ndfID_fcal1, path, run).ignore();
-        h_Chi2ndfID_fcal2 = new TH1D( "h_Chi2ndfID_fcal2", ";ID chi2/ndf;counts" , 100 , 0 , 10);
-	regHist(h_Chi2ndfID_fcal2, path, run).ignore();
-
-        h_Chi2ndfMS_fcal0 = new TH1D( "h_Chi2ndfMS_fcal0", ";MS chi2/ndf;counts" , 100 , 0 , 10);
-	regHist(h_Chi2ndfMS_fcal0, path, run).ignore();
-        h_Chi2ndfMS_fcal1 = new TH1D( "h_Chi2ndfMS_fcal1", ";MS chi2/ndf;counts" , 100 , 0 , 10);
-	regHist(h_Chi2ndfMS_fcal1, path, run).ignore();
-        h_Chi2ndfMS_fcal2 = new TH1D( "h_Chi2ndfMS_fcal2", ";MS chi2/ndf;counts" , 100 , 0 , 10);
-	regHist(h_Chi2ndfMS_fcal2, path, run).ignore();
-
-        h_Chi2ndfME_fcal0 = new TH1D( "h_Chi2ndfME_fcal0", ";ME chi2/ndf;counts" , 100 , 0 , 10);
-	regHist(h_Chi2ndfME_fcal0, path, run).ignore();
-        h_Chi2ndfME_fcal1 = new TH1D( "h_Chi2ndfME_fcal1", ";ME chi2/ndf;counts" , 100 , 0 , 10);
-	regHist(h_Chi2ndfME_fcal1, path, run).ignore();
-        h_Chi2ndfME_fcal2 = new TH1D( "h_Chi2ndfME_fcal2", ";ME chi2/ndf;counts" , 100 , 0 , 10);
-	regHist(h_Chi2ndfME_fcal2, path, run).ignore();
+    h_Auth_fcal = new TH1D( "h_Auth_fcal", ";author;counts" , 12 , 0 , 12);
+	regHist(h_Auth_fcal, path, run).ignore();
+
+    h_Type_fcal = new TH1D( "h_Type_fcal", ";type;counts" , 5 , 0 , 5);
+	regHist(h_Type_fcal, path, run).ignore();
+
+    h_Chi2ndf_fcal = new TH1D( "h_Chi2ndf_fcal", ";chi2/ndf;counts" , 100 , 0 , 10);
+	regHist(h_Chi2ndf_fcal, path, run).ignore();
+
+    h_Chi2ndfID_fcal = new TH1D( "h_Chi2ndfID_fcal", ";ID chi2/ndf;counts" , 100 , 0 , 10);
+	regHist(h_Chi2ndfID_fcal, path, run).ignore();
+
+    h_Chi2ndfMS_fcal = new TH1D( "h_Chi2ndfMS_fcal", ";MS chi2/ndf;counts" , 100 , 0 , 10);
+	regHist(h_Chi2ndfMS_fcal, path, run).ignore();
+
+    h_Chi2ndfME_fcal = new TH1D( "h_Chi2ndfME_fcal", ";ME chi2/ndf;counts" , 100 , 0 , 10);
+	regHist(h_Chi2ndfME_fcal, path, run).ignore();
 
 
 
diff --git a/Reconstruction/HeavyIonRec/HIMonitoring/src/HIMonitoringZdcTool.cxx b/Reconstruction/HeavyIonRec/HIMonitoring/src/HIMonitoringZdcTool.cxx
index aff1e0c771597cf366eaf8a90782c082c69c5e13..5ea1a1fb0125ab5cf9a041eb2810e79527006b30 100755
--- a/Reconstruction/HeavyIonRec/HIMonitoring/src/HIMonitoringZdcTool.cxx
+++ b/Reconstruction/HeavyIonRec/HIMonitoring/src/HIMonitoringZdcTool.cxx
@@ -10,11 +10,11 @@
 
 #include "AthenaMonitoring/AthenaMonManager.h"
 #include "HIMonitoring/HIMonitoringZdcTool.h"
-
 #include <xAODForward/ZdcModule.h>
 #include <xAODForward/ZdcModuleAuxContainer.h>
 #include <xAODForward/ZdcModuleContainer.h>
 #include <xAODForward/xAODForwardDict.h>
+#include <ZdcAnalysis/ZdcAnalysisTool.h>
 #include "TCanvas.h"
 #include "TROOT.h"
 #include "TStyle.h"
@@ -29,7 +29,6 @@ const IInterface* parent ): ManagedMonitorToolBase( type, name, parent )
 {
 }
 
-
 HIMonitoringZdcTool::~HIMonitoringZdcTool()
 {
 }
@@ -40,7 +39,6 @@ StatusCode HIMonitoringZdcTool::bookHistogramsRecurrent( )
 	return StatusCode::SUCCESS;
 }
 
-
 // Description: Used for re-booking managed histograms       
 StatusCode HIMonitoringZdcTool::bookHistograms( )
 {
@@ -55,7 +53,6 @@ StatusCode HIMonitoringZdcTool::bookHistograms( )
 	gStyle->SetOptStat(0);
 	book_hist(); 
 
- 
 	return StatusCode::SUCCESS;
 }
 
@@ -72,7 +69,7 @@ StatusCode HIMonitoringZdcTool::fillHistograms()
 	}
 	else {
 		ATH_MSG_INFO("Zdcs retrieved from StoreGate");
-		std::cout << "Number of zdcs " << zdcs->size() << std::endl;
+//		std::cout << "Number of zdcs " << zdcs->size() << std::endl;
 	}
 
 	xAOD::ZdcModuleContainer::const_iterator zdc_itr = zdcs->begin();
@@ -84,6 +81,15 @@ StatusCode HIMonitoringZdcTool::fillHistograms()
 		int thisSide = ((*zdc_itr)->side() == -1 ? 0 : 1);
 		int imod = (*zdc_itr)->zdcModule();
 
+		if(thisSide==1&&imod==0)NEW_AEM =   ((*zdc_itr)->auxdataConst<float>("Amplitude"));
+		if(thisSide==1&&imod==1)NEW_AHAD1 = ((*zdc_itr)->auxdataConst<float>("Amplitude"));
+		if(thisSide==1&&imod==2)NEW_AHAD2 = ((*zdc_itr)->auxdataConst<float>("Amplitude"));
+		if(thisSide==1&&imod==3)NEW_AHAD3 = ((*zdc_itr)->auxdataConst<float>("Amplitude"));
+		if(thisSide==0&&imod==0)NEW_CEM =   ((*zdc_itr)->auxdataConst<float>("Amplitude"));
+		if(thisSide==0&&imod==1)NEW_CHAD1 = ((*zdc_itr)->auxdataConst<float>("Amplitude"));
+		if(thisSide==0&&imod==2)NEW_CHAD2 = ((*zdc_itr)->auxdataConst<float>("Amplitude"));
+		if(thisSide==0&&imod==3)NEW_CHAD3 = ((*zdc_itr)->auxdataConst<float>("Amplitude"));
+/*
 		if(thisSide==1&&imod==0)AEM =   ((*zdc_itr)->amplitude());
 		if(thisSide==1&&imod==1)AHAD1 = ((*zdc_itr)->amplitude());
 		if(thisSide==1&&imod==2)AHAD2 = ((*zdc_itr)->amplitude());
@@ -92,7 +98,7 @@ StatusCode HIMonitoringZdcTool::fillHistograms()
 		if(thisSide==0&&imod==1)CHAD1 = ((*zdc_itr)->amplitude());
 		if(thisSide==0&&imod==2)CHAD2 = ((*zdc_itr)->amplitude());
 		if(thisSide==0&&imod==3)CHAD3 = ((*zdc_itr)->amplitude());
-
+*/
 		if(thisSide==1&&imod==0)G0AEM =   ((*zdc_itr)->amplitudeG0());
 		if(thisSide==1&&imod==1)G0AHAD1 = ((*zdc_itr)->amplitudeG0());
 		if(thisSide==1&&imod==2)G0AHAD2 = ((*zdc_itr)->amplitudeG0());
@@ -111,20 +117,48 @@ StatusCode HIMonitoringZdcTool::fillHistograms()
 		if(thisSide==0&&imod==2)G1CHAD2 = ((*zdc_itr)->amplitudeG1());
 		if(thisSide==0&&imod==3)G1CHAD3 = ((*zdc_itr)->amplitudeG1());
 
-		hamp[imod][thisSide]->Fill((*zdc_itr)->amplitude());
+	//	hamp_NEW[imod][thisSide]->Fill((*zdc_itr)->auxdataConst<float>("Amplitude"));
+	//	hamp[imod][thisSide]->Fill((*zdc_itr)->amplitude());
+		hamp[imod][thisSide]->Fill((*zdc_itr)->auxdataConst<float>("Amplitude"));
 		hampG0[imod][thisSide]->Fill((*zdc_itr)->amplitudeG0());
 		hampG1[imod][thisSide]->Fill((*zdc_itr)->amplitudeG1());
 
-		hSumSideAmp[1]->Fill(AEM+AHAD1+AHAD2+AHAD3);
-		hSumSideAmp[0]->Fill(CEM+CHAD1+CHAD2+CHAD3);
-		hSumSideAmpG0[1]->Fill(G0AEM+G0AHAD1+G0AHAD2+G0AHAD3);
-		hSumSideAmpG0[0]->Fill(G0CEM+G0CHAD1+G0CHAD2+G0CHAD3);
-		hSumSideAmpG1[1]->Fill(G1AEM+G1AHAD1+G1AHAD2+G1AHAD3);
-		hSumSideAmpG1[0]->Fill(G1CEM+G1CHAD1+G1CHAD2+G1CHAD3);
+		//	hSumSideAmp_NEW[1]->Fill(NEW_AEM+NEW_AHAD1+NEW_AHAD2+NEW_AHAD3);
+		//	hSumSideAmp_NEW[0]->Fill(NEW_CEM+NEW_CHAD1+NEW_CHAD2+NEW_CHAD3);
+		//	hSumSideAmp[1]->Fill(AEM+AHAD1+AHAD2+AHAD3);
+		//	hSumSideAmp[0]->Fill(CEM+CHAD1+CHAD2+CHAD3);
 
-		if(thisSide==1) SumSideA = AEM+AHAD1+AHAD2+AHAD3;
-		if(thisSide==0) SumSideC = CEM+CHAD1+CHAD2+CHAD3;
+		
+		//	if(thisSide==1) NEW_SumSideA = NEW_AEM+NEW_AHAD1+NEW_AHAD2+NEW_AHAD3;
+		//	if(thisSide==0) NEW_SumSideC = NEW_CEM+NEW_CHAD1+NEW_CHAD2+NEW_CHAD3;
+		//if(thisSide==1) SumSideA = AEM+AHAD1+AHAD2+AHAD3;
+		//if(thisSide==0) SumSideC = CEM+CHAD1+CHAD2+CHAD3;
 	}
+
+	//if(thisSide==1) SumSideA = NEW_AEM+NEW_AHAD1+NEW_AHAD2+NEW_AHAD3;
+	//if(thisSide==0) SumSideC = NEW_CEM+NEW_CHAD1+NEW_CHAD2+NEW_CHAD3;
+	NEW_SumSideA = NEW_AEM+NEW_AHAD1+NEW_AHAD2+NEW_AHAD3;
+	NEW_SumSideC = NEW_CEM+NEW_CHAD1+NEW_CHAD2+NEW_CHAD3;
+
+	//hSumSideAmp[1]->Fill(NEW_AEM+NEW_AHAD1+NEW_AHAD2+NEW_AHAD3);
+	//hSumSideAmp[0]->Fill(NEW_CEM+NEW_CHAD1+NEW_CHAD2+NEW_CHAD3);
+	hSumSideAmp[1]->Fill(NEW_SumSideA);
+	hSumSideAmp[0]->Fill(NEW_SumSideC);
+	hSideAC->Fill(NEW_SumSideA, NEW_SumSideC);
+
+	hEM_HAD1[0]->Fill(NEW_CEM, NEW_CHAD1);
+	hHAD1_HAD2[0]->Fill(NEW_CHAD1, NEW_CHAD2);
+	hHAD2_HAD3[0]->Fill(NEW_CHAD2, NEW_CHAD3);
+	hEM_HAD1[1]->Fill(NEW_AEM, NEW_AHAD1);
+	hHAD1_HAD2[1]->Fill(NEW_AHAD1, NEW_AHAD2);
+	hHAD2_HAD3[1]->Fill(NEW_AHAD2, NEW_AHAD3);
+
+	hSumSideAmpG0[1]->Fill(G0AEM+G0AHAD1+G0AHAD2+G0AHAD3);
+	hSumSideAmpG0[0]->Fill(G0CEM+G0CHAD1+G0CHAD2+G0CHAD3);
+	hSumSideAmpG1[1]->Fill(G1AEM+G1AHAD1+G1AHAD2+G1AHAD3);
+	hSumSideAmpG1[0]->Fill(G1CEM+G1CHAD1+G1CHAD2+G1CHAD3);
+		
+	/*
 	hEM_HAD1[0]->Fill(CEM, CHAD1);
 	hHAD1_HAD2[0]->Fill(CHAD1, CHAD2);
 	hHAD2_HAD3[0]->Fill(CHAD2, CHAD3);
@@ -133,6 +167,14 @@ StatusCode HIMonitoringZdcTool::fillHistograms()
 	hHAD2_HAD3[1]->Fill(AHAD2, AHAD3);
 	hSideAC->Fill(SumSideA, SumSideC);
 
+	hEM_HAD1_NEW[0]->Fill(NEW_CEM, NEW_CHAD1);
+	hHAD1_HAD2_NEW[0]->Fill(NEW_CHAD1, NEW_CHAD2);
+	hHAD2_HAD3_NEW[0]->Fill(NEW_CHAD2, NEW_CHAD3);
+	hEM_HAD1_NEW[1]->Fill(NEW_AEM, NEW_AHAD1);
+	hHAD1_HAD2_NEW[1]->Fill(NEW_AHAD1, NEW_AHAD2);
+	hHAD2_HAD3_NEW[1]->Fill(NEW_AHAD2, NEW_AHAD3);
+	hSideAC_NEW->Fill(NEW_SumSideA, NEW_SumSideC);
+	*/
 	return StatusCode::SUCCESS;
 }
 
@@ -151,12 +193,14 @@ StatusCode HIMonitoringZdcTool::procHistograms( )
         for(int k = 0; k < Nside; k++)
         {
             if(hSumSideAmp[k]->GetEntries() > 0) hSumSideAmp[k]->Scale(1./hSumSideAmp[k]->GetEntries());
+     //       if(hSumSideAmp_NEW[k]->GetEntries() > 0) hSumSideAmp_NEW[k]->Scale(1./hSumSideAmp_NEW[k]->GetEntries());
             if(hSumSideAmpG0[k]->GetEntries() > 0) hSumSideAmpG0[k]->Scale(1./hSumSideAmpG0[k]->GetEntries());
             if(hSumSideAmpG1[k]->GetEntries() > 0) hSumSideAmpG1[k]->Scale(1./hSumSideAmpG1[k]->GetEntries());
             
             for(int i = 0; i < Nmod; i++)
             {
                 if(hamp[i][k]->GetEntries() > 0) hamp[i][k]->Scale(1./hamp[i][k]->GetEntries());
+   //             if(hamp_NEW[i][k]->GetEntries() > 0) hamp_NEW[i][k]->Scale(1./hamp_NEW[i][k]->GetEntries());
                 if(hampG0[i][k]->GetEntries() > 0) hampG0[i][k]->Scale(1./hampG0[i][k]->GetEntries());
                 if(hampG1[i][k]->GetEntries() > 0) hampG1[i][k]->Scale(1./hampG1[i][k]->GetEntries());
             }
@@ -189,46 +233,87 @@ void HIMonitoringZdcTool::book_hist()
 
 	nameSideAC.str("");
 	nameSideAC<<"hSideA_sideC";
-	hSideAC = TH2D_LW::create(nameSideAC.str().c_str(), nameSideAC.str().c_str(),146,-0.5,10240.5,146,-0.5,10240.5);
+	hSideAC = TH2D_LW::create(nameSideAC.str().c_str(), nameSideAC.str().c_str(),4097, -5, 40965, 4097, -5, 40965);
 	regHist(hSideAC, path, run).ignore();
+/*	
+	nameSideAC.str("");
+	nameSideAC<<"h_NEW_SideA_sideC";
+	hSideAC_NEW = TH2D_LW::create(nameSideAC.str().c_str(), nameSideAC.str().c_str(),10241,-0.5,10240.5,10241,-0.5,10240.5);
+	regHist(hSideAC_NEW, path, run).ignore();
+	*/
 	for(int k = 0; k<Nside; k++){
+		
 		nameEM_HAD1.str("");
 		nameEM_HAD1<<"hEM_HAD1_side"<<k;
-		hEM_HAD1[k] = TH2D_LW::create(nameEM_HAD1.str().c_str(),nameEM_HAD1.str().c_str(),146,-0.5,10240.5,146,-0.5,10240.5);
+		hEM_HAD1[k] = TH2D_LW::create(nameEM_HAD1.str().c_str(),nameEM_HAD1.str().c_str(), 1025, -5, 10245, 1025, -5, 10245);
 		regHist(hEM_HAD1[k], path, run).ignore();
+/*
+		nameEM_HAD1.str("");
+		nameEM_HAD1<<"h_NEW_EM_HAD1_side"<<k;
+		hEM_HAD1_NEW[k] = TH2D_LW::create(nameEM_HAD1.str().c_str(),nameEM_HAD1.str().c_str(),10241,-0.5,10240.5,10241,-0.5,10240.5);
+		regHist(hEM_HAD1_NEW[k], path, run).ignore();
+*/
 		nameHAD1_HAD2.str("");
 		nameHAD1_HAD2<<"hHAD1_HAD2_side"<<k;
-		hHAD1_HAD2[k] = TH2D_LW::create(nameHAD1_HAD2.str().c_str(),nameHAD1_HAD2.str().c_str(),146,-0.5,10240.5,146,-0.5,10240.5);
+		hHAD1_HAD2[k] = TH2D_LW::create(nameHAD1_HAD2.str().c_str(),nameHAD1_HAD2.str().c_str(), 1025, -5, 10245, 1025, -5, 10245);
 		regHist(hHAD1_HAD2[k], path, run).ignore();
+/*
+		nameHAD1_HAD2.str("");
+		nameHAD1_HAD2<<"h_NEW_HAD1_HAD2_side"<<k;
+		hHAD1_HAD2_NEW[k] = TH2D_LW::create(nameHAD1_HAD2.str().c_str(),nameHAD1_HAD2.str().c_str(),10241,-0.5,10240.5,10241,-0.5,10240.5);
+		regHist(hHAD1_HAD2_NEW[k], path, run).ignore();
+	*/		
 		nameHAD2_HAD3.str("");
 		nameHAD2_HAD3<<"hHAD2_HAD3_side"<<k;
-		hHAD2_HAD3[k] = TH2D_LW::create(nameHAD2_HAD3.str().c_str(),nameHAD2_HAD3.str().c_str(),146,-0.5,10240.5,146,-0.5,10240.5);
+		hHAD2_HAD3[k] = TH2D_LW::create(nameHAD2_HAD3.str().c_str(),nameHAD2_HAD3.str().c_str(), 1025, -5, 10245, 1025, -5, 10245);
 		regHist(hHAD2_HAD3[k], path, run).ignore();
+/*
+		nameHAD2_HAD3.str("");
+		nameHAD2_HAD3<<"h_NEW_HAD2_HAD3_side"<<k;
+		hHAD2_HAD3_NEW[k] = TH2D_LW::create(nameHAD2_HAD3.str().c_str(),nameHAD2_HAD3.str().c_str(),10241,-0.5,10240.5,10241,-0.5,10240.5);
+		regHist(hHAD2_HAD3_NEW[k], path, run).ignore();
+	*/		
 		nameSumSideAmp.str("");
 		nameSumSideAmp<<"hSumSideAmp_side"<<k;
-		hSumSideAmp[k] = new TH1D(nameSumSideAmp.str().c_str(), nameSumSideAmp.str().c_str(),409,-0.5,40960.5);
+		hSumSideAmp[k] = new TH1D(nameSumSideAmp.str().c_str(), nameSumSideAmp.str().c_str(), 4097,-5,40965);
 		regHist(hSumSideAmp[k], path, run).ignore();
+/*
+		nameSumSideAmp.str("");
+		nameSumSideAmp<<"h_NEW_SumSideAmp_side"<<k;
+		hSumSideAmp_NEW[k] = new TH1D(nameSumSideAmp.str().c_str(), nameSumSideAmp.str().c_str(),40961,-0.5,40960.5);
+		regHist(hSumSideAmp_NEW[k], path, run).ignore();
+	*/	
 		nameSumSideAmpG0.str("");
 		nameSumSideAmpG0<<"hSumSideAmpG0_side"<<k;
-		hSumSideAmpG0[k] = new TH1D(nameSumSideAmpG0.str().c_str(), nameSumSideAmpG0.str().c_str(),409,-0.5,4096.5);
+		hSumSideAmpG0[k] = new TH1D(nameSumSideAmpG0.str().c_str(), nameSumSideAmpG0.str().c_str(),4097,-0.5,4096.5);
 		regHist(hSumSideAmpG0[k], path, run).ignore();
+		
 		nameSumSideAmpG1.str("");
 		nameSumSideAmpG1<<"hSumSideAmpG1_side"<<k;
-		hSumSideAmpG1[k] = new TH1D(nameSumSideAmpG1.str().c_str(), nameSumSideAmpG1.str().c_str(),409,-0.5,4096.5);
+		hSumSideAmpG1[k] = new TH1D(nameSumSideAmpG1.str().c_str(), nameSumSideAmpG1.str().c_str(),4097,-0.5,4096.5);
 		regHist(hSumSideAmpG1[k], path, run).ignore();
+		
 		for(int i = 0; i<Nmod; i++){
 			histnameamp.str("");
 			histnameamp<<"h_amplitude_mod"<<i<<"_side"<<k;
-			hamp[i][k] = new TH1D(histnameamp.str().c_str(), histnameamp.str().c_str(), 1024,-0.5,10240.5);
+			hamp[i][k] = new TH1D(histnameamp.str().c_str(), histnameamp.str().c_str(), 1025, -5, 10245);
 			regHist(hamp[i][k], path, run).ignore();
+	/*		
+			histnameamp.str("");
+			histnameamp<<"h_NEW_amplitude_mod"<<i<<"_side"<<k;
+			hamp_NEW[i][k] = new TH1D(histnameamp.str().c_str(), histnameamp.str().c_str(), 10241,-0.5,10240.5);
+			regHist(hamp_NEW[i][k], path, run).ignore();
+		*/	
 			histnameampG0.str("");
 			histnameampG0<<"h_amplitudeG0_mod"<<i<<"_side"<<k;
-			hampG0[i][k] = new TH1D(histnameampG0.str().c_str(), histnameampG0.str().c_str(), 102,-0.5,1024.5);
+			hampG0[i][k] = new TH1D(histnameampG0.str().c_str(), histnameampG0.str().c_str(), 1025, -0.5, 1024.5);
 			regHist(hampG0[i][k], path, run).ignore();
+			
 			histnameampG1.str("");
 			histnameampG1<<"h_amplitudeG1_mod"<<i<<"_side"<<k;
-			hampG1[i][k] = new TH1D(histnameampG1.str().c_str(), histnameampG1.str().c_str(), 102,-0.5,1024.5);
+			hampG1[i][k] = new TH1D(histnameampG1.str().c_str(), histnameampG1.str().c_str(), 1025, -0.5, 1024.5);
 			regHist(hampG1[i][k], path, run).ignore();
-   }
+		}
 	}
+
 }