From 570489038d5408a872a90ae6a0eb08f262efac67 Mon Sep 17 00:00:00 2001
From: Atlas-Software Librarian <Atlas-Software.Librarian@cern.ch>
Date: Fri, 8 Apr 2016 16:00:13 +0200
Subject: [PATCH] 'CMakeLists.txt' (HIMonitoring-00-01-01)

---
 .../HeavyIonRec/HIMonitoring/CMakeLists.txt   |  40 ++
 .../HIMonitoring/HIMonitoringZdcTool.h        |  89 ++---
 .../share/HIMonitoringSteering_jo.py          |  30 +-
 .../HIMonitoring/src/HIMonitoringZdcTool.cxx  | 352 ++++++------------
 4 files changed, 195 insertions(+), 316 deletions(-)
 create mode 100644 Reconstruction/HeavyIonRec/HIMonitoring/CMakeLists.txt

diff --git a/Reconstruction/HeavyIonRec/HIMonitoring/CMakeLists.txt b/Reconstruction/HeavyIonRec/HIMonitoring/CMakeLists.txt
new file mode 100644
index 00000000000..d35b7dda8e9
--- /dev/null
+++ b/Reconstruction/HeavyIonRec/HIMonitoring/CMakeLists.txt
@@ -0,0 +1,40 @@
+################################################################################
+# Package: HIMonitoring
+################################################################################
+
+# Declare the package name:
+atlas_subdir( HIMonitoring )
+
+# Declare the package's dependencies:
+atlas_depends_on_subdirs( PUBLIC
+                          Control/AthenaMonitoring
+                          Event/xAOD/xAODEgamma
+                          Event/xAOD/xAODForward
+                          Event/xAOD/xAODHIEvent
+                          Event/xAOD/xAODMuon
+                          Event/xAOD/xAODTracking
+                          Event/xAOD/xAODTrigMinBias
+                          GaudiKernel
+                          PhysicsAnalysis/ElectronPhotonID/ElectronPhotonSelectorTools
+                          PRIVATE
+                          Tools/LWHists )
+
+# External dependencies:
+find_package( ROOT COMPONENTS MathCore Core Tree Hist RIO pthread Graf Graf3d Gpad Html Postscript Gui GX11TTF GX11 )
+
+# Component(s) in the package:
+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
+                   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 )
+
+# Install files from the package:
+atlas_install_joboptions( share/*.py )
+
diff --git a/Reconstruction/HeavyIonRec/HIMonitoring/HIMonitoring/HIMonitoringZdcTool.h b/Reconstruction/HeavyIonRec/HIMonitoring/HIMonitoring/HIMonitoringZdcTool.h
index e39af035593..07797ed9b04 100755
--- a/Reconstruction/HeavyIonRec/HIMonitoring/HIMonitoring/HIMonitoringZdcTool.h
+++ b/Reconstruction/HeavyIonRec/HIMonitoring/HIMonitoring/HIMonitoringZdcTool.h
@@ -30,6 +30,9 @@ class TH1D;
 class TH1D_LW;
 class TH2D_LW;
 class TProfile_LW;
+const int Nsamp = 7;
+const int Nmod = 4;
+const int Nside = 2;
 
 class HIMonitoringZdcTool : public ManagedMonitorToolBase
 {
@@ -47,67 +50,31 @@ class HIMonitoringZdcTool : public ManagedMonitorToolBase
 
       
 	  void book_hist();
-	  
-	  
-   private:
-      
-      /// histograms 
-   
-  TH1D_LW* A_hamp_module0 ;
-	TH1D_LW* A_hamp_module1 ;
-	TH1D_LW* A_hamp_module2 ;
-	TH1D_LW* A_hamp_module3 ;
-	TH1D_LW* A_hamp_sum; 
-	TH1D_LW* A_hampG0_module0 ;
-	TH1D_LW* A_hampG0_module1 ;
-	TH1D_LW* A_hampG0_module2 ;
-	TH1D_LW* A_hampG0_module3 ;
-	TH1D_LW* A_hampG0_sum; 
-	TH1D_LW* A_hampG1_module0 ;
-	TH1D_LW* A_hampG1_module1 ;
-	TH1D_LW* A_hampG1_module2 ;
-	TH1D_LW* A_hampG1_module3 ;
-	TH1D_LW* A_hampG1_sum;
-	TH1D_LW* C_hamp_module0 ;
-	TH1D_LW* C_hamp_module1 ;
-	TH1D_LW* C_hamp_module2 ;
-	TH1D_LW* C_hamp_module3 ;
-	TH1D_LW* C_hamp_sum; 
-	TH1D_LW* C_hampG0_module0; 
-	TH1D_LW* C_hampG0_module1 ;
-	TH1D_LW* C_hampG0_module2 ;
-	TH1D_LW* C_hampG0_module3 ;
-	TH1D_LW* C_hampG0_sum; 
-	TH1D_LW* C_hampG1_module0 ;
-	TH1D_LW* C_hampG1_module1 ;
-	TH1D_LW* C_hampG1_module2 ;
-	TH1D_LW* C_hampG1_module3 ;
-	TH1D_LW* C_hampG1_sum;
-	TH1D_LW* A_htime_module0 ;
-	TH1D_LW* A_htime_module1 ;
-	TH1D_LW* A_htime_module2 ;
-	TH1D_LW* A_htime_module3 ;
-	TH1D_LW* A_htimeG0_module0;
-	TH1D_LW* A_htimeG0_module1;
-	TH1D_LW* A_htimeG0_module2;
-	TH1D_LW* A_htimeG0_module3;
-	TH1D_LW* A_htimeG1_module0;
-	TH1D_LW* A_htimeG1_module1;
-	TH1D_LW* A_htimeG1_module2;
-	TH1D_LW* A_htimeG1_module3;
-	TH1D_LW* C_htime_module0 ;
-	TH1D_LW* C_htime_module1 ;
-	TH1D_LW* C_htime_module2 ;
-	TH1D_LW* C_htime_module3 ;
-	TH1D_LW* C_htimeG0_module0;
-	TH1D_LW* C_htimeG0_module1;
-	TH1D_LW* C_htimeG0_module2;
-	TH1D_LW* C_htimeG0_module3;
-	TH1D_LW* C_htimeG1_module0;
-	TH1D_LW* C_htimeG1_module1;
-	TH1D_LW* C_htimeG1_module2;
-	TH1D_LW* C_htimeG1_module3;
-	TH1D_LW* hside;
+
+
+	 private:
+		double AEM, AHAD1, AHAD2, AHAD3;
+		double CEM, CHAD1, CHAD2, CHAD3;
+		double G0AEM, G0AHAD1, G0AHAD2, G0AHAD3;
+		double G0CEM, G0CHAD1, G0CHAD2, G0CHAD3;
+		double G1AEM, G1AHAD1, G1AHAD2, G1AHAD3;
+		double G1CEM, G1CHAD1, G1CHAD2, G1CHAD3;
+		double SumSideA, SumSideC;
+
+
+		/// histograms 
+
+	TH1D_LW* hamp[Nmod][Nside];
+		TH1D_LW* hampG0[Nmod][Nside];
+		TH1D_LW* hampG1[Nmod][Nside];
+		TH1D_LW* hSumSideAmp[Nside];
+		TH1D_LW* hSumSideAmpG0[Nside];
+		TH1D_LW* hSumSideAmpG1[Nside];
+		TH2D_LW* hEM_HAD1[Nside];
+		TH2D_LW* hHAD1_HAD2[Nside];
+		TH2D_LW* hHAD2_HAD3[Nside];
+		TH2D_LW* hSideAC;
+
 	    
 };
 
diff --git a/Reconstruction/HeavyIonRec/HIMonitoring/share/HIMonitoringSteering_jo.py b/Reconstruction/HeavyIonRec/HIMonitoring/share/HIMonitoringSteering_jo.py
index 41e2fa7f543..fb9dd5f43c6 100755
--- a/Reconstruction/HeavyIonRec/HIMonitoring/share/HIMonitoringSteering_jo.py
+++ b/Reconstruction/HeavyIonRec/HIMonitoring/share/HIMonitoringSteering_jo.py
@@ -8,9 +8,9 @@ ZDCmon = True,
 ESmon = True,
 )
 
-HIEventShapeMonTool.TriggerChain = "HLT_noalg_mb_L1ZDC_A_C,HLT_noalg_mb_L1MBTS_1_1,HLT_noalg_mb_L1TE5"
-if DQMonFlags.useTrigger():
-   HIEventShapeMonTool.TrigDecisionTool = monTrigDecTool #tool should already be in namespace
+#HIEventShapeMonTool.TriggerChain = "HLT_noalg_mb_L1ZDC_A_C,HLT_noalg_mb_L1MBTS_1_1,HLT_noalg_mb_L1TE5"
+#if DQMonFlags.useTrigger():
+#   HIEventShapeMonTool.TrigDecisionTool = monTrigDecTool #tool should already be in namespace
 
 ## Photons 
 from HIMonitoring.HIMonitoringConf import HIMonitoringPhotonsTool
@@ -18,9 +18,9 @@ HIPhotonsMonTool = HIMonitoringPhotonsTool (
 name           = "HIPhotonsMonTool",
 )
 
-HIPhotonsMonTool.TriggerChain = "HLT_g15_loose"
-if DQMonFlags.useTrigger():
-    HIPhotonsMonTool.TrigDecisionTool = monTrigDecTool #tool should already be in namespace
+#HIPhotonsMonTool.TriggerChain = "HLT_g15_loose"
+#if DQMonFlags.useTrigger():
+#    HIPhotonsMonTool.TrigDecisionTool = monTrigDecTool #tool should already be in namespace
 
 ## Muons 
 from HIMonitoring.HIMonitoringConf import HIMonitoringMuonsTool
@@ -28,9 +28,9 @@ HIMuonsMonTool = HIMonitoringMuonsTool (
 name           = "HIMuonsMonTool",
 )
 
-HIMuonsMonTool.TriggerChain = "HLT_mu4,HLT_mu10,HLT_mu14"
-if DQMonFlags.useTrigger():
-    HIMuonsMonTool.TrigDecisionTool = monTrigDecTool #tool should already be in namespace
+#HIMuonsMonTool.TriggerChain = "HLT_mu4,HLT_mu10,HLT_mu14"
+#if DQMonFlags.useTrigger():
+#    HIMuonsMonTool.TrigDecisionTool = monTrigDecTool #tool should already be in namespace
 
 ## ZDC  
 from HIMonitoring.HIMonitoringConf import HIMonitoringZdcTool
@@ -38,9 +38,9 @@ HIZdcMonTool = HIMonitoringZdcTool (
 name           = "HIZdcMonTool",
 )
 
-HIZdcMonTool.TriggerChain = "HLT_noalg_mb_L1ZDC_A_C"
-if DQMonFlags.useTrigger():
-    HIZdcMonTool.TrigDecisionTool = monTrigDecTool #tool should already be in namespace
+#HIZdcMonTool.TriggerChain = "HLT_noalg_mb_L1ZDC_A_C"
+#if DQMonFlags.useTrigger():
+#    HIZdcMonTool.TrigDecisionTool = monTrigDecTool #tool should already be in namespace
 
 ## Electrons  
 from HIMonitoring.HIMonitoringConf import HIMonitoringElectronsTool
@@ -48,9 +48,9 @@ HIElectronsMonTool = HIMonitoringElectronsTool (
 name           = "HIElectronsMonTool",
 )
                                       
-HIElectronsMonTool.TriggerChain = "HLT_e15_etcut_ion,HLT_e15_loose_ion,HLT_e15_medium_ion"
-if DQMonFlags.useTrigger():
-    HIElectronsMonTool.TrigDecisionTool = monTrigDecTool #tool should already be in namespace
+#HIElectronsMonTool.TriggerChain = "HLT_e15_etcut_ion,HLT_e15_loose_ion,HLT_e15_medium_ion"
+#if DQMonFlags.useTrigger():
+#    HIElectronsMonTool.TrigDecisionTool = monTrigDecTool #tool should already be in namespace
 
 
 
diff --git a/Reconstruction/HeavyIonRec/HIMonitoring/src/HIMonitoringZdcTool.cxx b/Reconstruction/HeavyIonRec/HIMonitoring/src/HIMonitoringZdcTool.cxx
index 3ae4cc98773..84e9f46b5be 100755
--- a/Reconstruction/HeavyIonRec/HIMonitoring/src/HIMonitoringZdcTool.cxx
+++ b/Reconstruction/HeavyIonRec/HIMonitoring/src/HIMonitoringZdcTool.cxx
@@ -77,84 +77,61 @@ StatusCode HIMonitoringZdcTool::fillHistograms()
 
 	xAOD::ZdcModuleContainer::const_iterator zdc_itr = zdcs->begin();
 	xAOD::ZdcModuleContainer::const_iterator zdc_end = zdcs->end();
+
 	for( ; zdc_itr != zdc_end; ++zdc_itr){
-	  hside->Fill((*zdc_itr)->side());
-		if((*zdc_itr)->side()==1){
-			if((*zdc_itr)->zdcModule()==0) {
-				A_hamp_module0->Fill((*zdc_itr)->amplitude());
-				A_htime_module0->Fill((*zdc_itr)->time());
-				A_hampG0_module0->Fill((*zdc_itr)->amplitudeG0());
-				A_htimeG0_module0->Fill((*zdc_itr)->timeG0());
-				A_hampG1_module0->Fill((*zdc_itr)->amplitudeG1());
-				A_htimeG1_module0->Fill((*zdc_itr)->timeG1());
-			}
-			if((*zdc_itr)->zdcModule()==1) {
-				A_hamp_module1->Fill((*zdc_itr)->amplitude());
-				A_htime_module1->Fill((*zdc_itr)->time());
-				A_hampG0_module1->Fill((*zdc_itr)->amplitudeG0());
-				A_htimeG0_module1->Fill((*zdc_itr)->timeG0());
-				A_hampG1_module1->Fill((*zdc_itr)->amplitudeG1());
-				A_htimeG1_module1->Fill((*zdc_itr)->timeG1());
-			}
-			if((*zdc_itr)->zdcModule()==2) {
-				A_hamp_module2->Fill((*zdc_itr)->amplitude());
-				A_htime_module2->Fill((*zdc_itr)->time());
-				A_hampG0_module2->Fill((*zdc_itr)->amplitudeG0());
-				A_htimeG0_module2->Fill((*zdc_itr)->timeG0());
-				A_hampG1_module2->Fill((*zdc_itr)->amplitudeG1());
-				A_htimeG1_module2->Fill((*zdc_itr)->timeG1());
-			}
-			if((*zdc_itr)->zdcModule()==3) {
-				A_hamp_module3->Fill((*zdc_itr)->amplitude());
-				A_htime_module3->Fill((*zdc_itr)->time());
-				A_hampG0_module3->Fill((*zdc_itr)->amplitudeG0());
-				A_htimeG0_module3->Fill((*zdc_itr)->timeG0());
-				A_hampG1_module3->Fill((*zdc_itr)->amplitudeG1());
-				A_htimeG1_module3->Fill((*zdc_itr)->timeG1());
-			}
-			A_hamp_sum->Fill((*zdc_itr)->amplitude());
-			A_hampG0_sum->Fill((*zdc_itr)->amplitudeG0());
-			A_hampG1_sum->Fill((*zdc_itr)->amplitudeG1());
-		}
-		if((*zdc_itr)->side()==-1){
-			if((*zdc_itr)->zdcModule()==0) {
-				C_hamp_module0->Fill((*zdc_itr)->amplitude());
-				C_htime_module0->Fill((*zdc_itr)->time());
-				C_hampG0_module0->Fill((*zdc_itr)->amplitudeG0());
-				C_htimeG0_module0->Fill((*zdc_itr)->timeG0());
-				C_hampG1_module0->Fill((*zdc_itr)->amplitudeG1());
-				C_htimeG1_module0->Fill((*zdc_itr)->timeG1());
-			}
-			if((*zdc_itr)->zdcModule()==1) {
-				C_hamp_module1->Fill((*zdc_itr)->amplitude());
-				C_htime_module1->Fill((*zdc_itr)->time());
-				C_hampG0_module1->Fill((*zdc_itr)->amplitudeG0());
-				C_htimeG0_module1->Fill((*zdc_itr)->timeG0());
-				C_hampG1_module1->Fill((*zdc_itr)->amplitudeG1());
-				C_htimeG1_module1->Fill((*zdc_itr)->timeG1());
-			}
-			if((*zdc_itr)->zdcModule()==2) {
-				C_hamp_module2->Fill((*zdc_itr)->amplitude());
-				C_htime_module2->Fill((*zdc_itr)->time());
-				C_hampG0_module2->Fill((*zdc_itr)->amplitudeG0());
-				C_htimeG0_module2->Fill((*zdc_itr)->timeG0());
-				C_hampG1_module2->Fill((*zdc_itr)->amplitudeG1());
-				C_htimeG1_module2->Fill((*zdc_itr)->timeG1());
-			}
-			if((*zdc_itr)->zdcModule()==3) {
-				C_hamp_module3->Fill((*zdc_itr)->amplitude());
-				C_htime_module3->Fill((*zdc_itr)->time());
-				C_hampG0_module3->Fill((*zdc_itr)->amplitudeG0());
-				C_htimeG0_module3->Fill((*zdc_itr)->timeG0());
-				C_hampG1_module3->Fill((*zdc_itr)->amplitudeG1());
-				C_htimeG1_module3->Fill((*zdc_itr)->timeG1());
-			}
-			C_hamp_sum->Fill((*zdc_itr)->amplitude());
-			C_hampG0_sum->Fill((*zdc_itr)->amplitudeG0());
-			C_hampG1_sum->Fill((*zdc_itr)->amplitudeG1());
-		}
-	}
 
+		if((*zdc_itr)->type()!=0) continue;
+		int thisSide = ((*zdc_itr)->side() == -1 ? 0 : 1);
+		int imod = (*zdc_itr)->zdcModule();
+
+		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());
+		if(thisSide==1&&imod==3)AHAD3 = ((*zdc_itr)->amplitude());
+		if(thisSide==0&&imod==0)CEM =   ((*zdc_itr)->amplitude());
+		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());
+		if(thisSide==1&&imod==3)G0AHAD3 = ((*zdc_itr)->amplitudeG0());
+		if(thisSide==0&&imod==0)G0CEM =   ((*zdc_itr)->amplitudeG0());
+		if(thisSide==0&&imod==1)G0CHAD1 = ((*zdc_itr)->amplitudeG0());
+		if(thisSide==0&&imod==2)G0CHAD2 = ((*zdc_itr)->amplitudeG0());
+		if(thisSide==0&&imod==3)G0CHAD3 = ((*zdc_itr)->amplitudeG0());
+
+		if(thisSide==1&&imod==0)G1AEM =   ((*zdc_itr)->amplitudeG1());
+		if(thisSide==1&&imod==1)G1AHAD1 = ((*zdc_itr)->amplitudeG1());
+		if(thisSide==1&&imod==2)G1AHAD2 = ((*zdc_itr)->amplitudeG1());
+		if(thisSide==1&&imod==3)G1AHAD3 = ((*zdc_itr)->amplitudeG1());
+		if(thisSide==0&&imod==0)G1CEM =   ((*zdc_itr)->amplitudeG1());
+		if(thisSide==0&&imod==1)G1CHAD1 = ((*zdc_itr)->amplitudeG1());
+		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());
+		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);
+
+		if(thisSide==1) SumSideA = AEM+AHAD1+AHAD2+AHAD3;
+		if(thisSide==0) SumSideC = CEM+CHAD1+CHAD2+CHAD3;
+	}
+	hEM_HAD1[0]->Fill(CEM, CHAD1);
+	hHAD1_HAD2[0]->Fill(CHAD1, CHAD2);
+	hHAD2_HAD3[0]->Fill(CHAD2, CHAD3);
+	hEM_HAD1[1]->Fill(AEM, AHAD1);
+	hHAD1_HAD2[1]->Fill(AHAD1, AHAD2);
+	hHAD2_HAD3[1]->Fill(AHAD2, AHAD3);
+	hSideAC->Fill(SumSideA, SumSideC);
 
 	return StatusCode::SUCCESS;
 }
@@ -182,169 +159,64 @@ StatusCode HIMonitoringZdcTool::procHistograms( )
 void HIMonitoringZdcTool::book_hist()
 {
 	std::string path = "HeavyIon/ZDC"; 
-  A_hamp_module0 = TH1D_LW::create("A_amp_module0","A_amp_module0",1024, 0, 1024);
-	regHist(A_hamp_module0, path, run).ignore();
-	
-	A_hamp_module1 = TH1D_LW::create("A_amp_module1","A_amp_module1",1024, 0, 1024);
-	regHist(A_hamp_module1, path, run).ignore();
-	
-	A_hamp_module2 = TH1D_LW::create("A_amp_module2","A_amp_module2",1024, 0, 1024);
-	regHist(A_hamp_module2, path, run).ignore();
-	
-	A_hamp_module3 = TH1D_LW::create("A_amp_module3","A_amp_module3",1024, 0, 1024);
-	regHist(A_hamp_module3, path, run).ignore();
-	
-	A_hamp_sum = TH1D_LW::create("A_amp_sum","A_amp_sum",1024, 0, 1024);
-	regHist(A_hamp_sum, path, run).ignore();
-	
-	A_hampG0_module0 = TH1D_LW::create("A_ampG0_module0","A_ampG0_module0",1024, 0, 1024);
-	regHist(A_hampG0_module0, path, run).ignore();
-	
-	A_hampG0_module1 = TH1D_LW::create("A_ampG0_module1","A_ampG0_module1",1024, 0, 1024);
-	regHist(A_hampG0_module1, path, run).ignore();
-	
-	A_hampG0_module2 = TH1D_LW::create("A_ampG0_module2","A_ampG0_module2",1024, 0, 1024);
-	regHist(A_hampG0_module2, path, run).ignore();
-	
-	A_hampG0_module3 = TH1D_LW::create("A_ampG0_module3","A_ampG0_module3",1024, 0, 1024);
-	regHist(A_hampG0_module3, path, run).ignore();
-	
-	A_hampG0_sum = TH1D_LW::create("A_ampG0_sum","A_ampG0_sum",1024, 0, 1024);
-	regHist(A_hampG0_sum, path, run).ignore();
-	
-	A_hampG1_module0 = TH1D_LW::create("A_ampG1_module0","A_ampG1_module0",1024, 0, 1024);
-	regHist(A_hampG1_module0, path, run).ignore();
-	
-	A_hampG1_module1 = TH1D_LW::create("A_ampG1_module1","A_ampG1_module1",1024, 0, 1024);
-	regHist(A_hampG1_module1, path, run).ignore();
-	
-	A_hampG1_module2 = TH1D_LW::create("A_ampG1_module2","A_ampG1_module2",1024, 0, 1024);
-	regHist(A_hampG1_module2, path, run).ignore();
-	
-	A_hampG1_module3 = TH1D_LW::create("A_ampG1_module3","A_ampG1_module3",1024, 0, 1024);
-	regHist(A_hampG1_module3, path, run).ignore();
-	
-	A_hampG1_sum = TH1D_LW::create("A_ampG1_sum","A_ampG1_sum",1024, 0, 1024);
-	regHist(A_hampG1_sum, path, run).ignore();
-	
-	C_hamp_module0 = TH1D_LW::create("C_amp_module0","C_amp_module0",1024, 0, 1024);
-	regHist(C_hamp_module0, path, run).ignore();
-	
-	C_hamp_module1 = TH1D_LW::create("C_amp_module1","C_amp_module1",1024, 0, 1024);
-	regHist(C_hamp_module1, path, run).ignore();
-	
-	C_hamp_module2 = TH1D_LW::create("C_amp_module2","C_amp_module2",1024, 0, 1024);
-	regHist(C_hamp_module2, path, run).ignore();
-	
-	C_hamp_module3 = TH1D_LW::create("C_amp_module3","C_amp_module3",1024, 0, 1024);
-	regHist(C_hamp_module3, path, run).ignore();
-	
-	C_hamp_sum = TH1D_LW::create("C_amp_sum","C_amp_sum",1024, 0, 1024);
-	regHist(C_hamp_sum, path, run).ignore();
-	
-	C_hampG0_module0 = TH1D_LW::create("C_ampG0_module0","C_ampG0_module0",1024, 0, 1024);
-	regHist(C_hampG0_module0, path, run).ignore();
-	
-	C_hampG0_module1 = TH1D_LW::create("C_ampG0_module1","C_ampG0_module1",1024, 0, 1024);
-	regHist(C_hampG0_module1, path, run).ignore();
-	
-	C_hampG0_module2 = TH1D_LW::create("C_ampG0_module2","C_ampG0_module2",1024, 0, 1024);
-	regHist(C_hampG0_module2, path, run).ignore();
-	
-	C_hampG0_module3 = TH1D_LW::create("C_ampG0_module3","C_ampG0_module3",1024, 0, 1024);
-	regHist(C_hampG0_module3, path, run).ignore();
-	
-	C_hampG0_sum = TH1D_LW::create("C_ampG0_sum","C_ampG0_sum",1024, 0, 1024);
-	regHist(C_hampG0_sum, path, run).ignore();
-	
-	C_hampG1_module0 = TH1D_LW::create("C_ampG1_module0","C_ampG1_module0",1024, 0, 1024);
-	regHist(C_hampG1_module0, path, run).ignore();
-	
-	C_hampG1_module1 = TH1D_LW::create("C_ampG1_module1","C_ampG1_module1",1024, 0, 1024);
-	regHist(C_hampG1_module1, path, run).ignore();
-	
-	C_hampG1_module2 = TH1D_LW::create("C_ampG1_module2","C_ampG1_module2",1024, 0, 1024);
-	regHist(C_hampG1_module2, path, run).ignore();
-	
-	C_hampG1_module3 = TH1D_LW::create("C_ampG1_module3","C_ampG1_module3",1024, 0, 1024);
-	regHist(C_hampG1_module3, path, run).ignore();
-	
-	C_hampG1_sum = TH1D_LW::create("C_ampG1_sum","C_ampG1_sum",1024, 0, 1024);
-	regHist(C_hampG1_sum, path, run).ignore();
-	
-	A_htime_module0 = TH1D_LW::create("A_time_module0","A_time_module0",128, 0, 128);
-	regHist(A_htime_module0, path, run).ignore();
-	
-	A_htime_module1 = TH1D_LW::create("A_time_module1","A_time_module1",128, 0, 128);
-	regHist(A_htime_module1, path, run).ignore();
-	
-	A_htime_module2 = TH1D_LW::create("A_time_module2","A_time_module2",128, 0, 128);
-	regHist(A_htime_module2, path, run).ignore();
-	
-	A_htime_module3 = TH1D_LW::create("A_time_module3","A_time_module3",128, 0, 128);
-	regHist(A_htime_module3, path, run).ignore();
-	
-	A_htimeG0_module0 = TH1D_LW::create("A_timeG0_module0","A_timeG0_module0", 128, 0,128 );
-	regHist(A_htimeG0_module0, path, run).ignore();
-	
-	A_htimeG0_module1 = TH1D_LW::create("A_timeG0_module1","A_timeG0_module1",128, 0,128 );
-	regHist(A_htimeG0_module1, path, run).ignore();
-	
-	A_htimeG0_module2 = TH1D_LW::create("A_timeG0_module2","A_timeG0_module2",128, 0,128 );
-	regHist(A_htimeG0_module2, path, run).ignore();
-	
-	A_htimeG0_module3 = TH1D_LW::create("A_timeG0_module3","A_timeG0_module3",128, 0,128 );
-	regHist(A_htimeG0_module3, path, run).ignore();
-	
-	A_htimeG1_module0 = TH1D_LW::create("A_timeG1_module0","A_timeG1_module0",128, 0,128 );
-	regHist(A_htimeG1_module0, path, run).ignore();
-	
-	A_htimeG1_module1 = TH1D_LW::create("A_timeG1_module1","A_timeG1_module1",128, 0,128 );
-	regHist(A_htimeG1_module1, path, run).ignore();
-	
-	A_htimeG1_module2 = TH1D_LW::create("A_timeG1_module2","A_timeG1_module2",128, 0,128 );
-	regHist(A_htimeG1_module2, path, run).ignore();
-	
-	A_htimeG1_module3 = TH1D_LW::create("A_timeG1_module3","A_timeG1_module3",128, 0,128 );
-	regHist(A_htimeG1_module3, path, run).ignore();
-	
-	C_htime_module0 = TH1D_LW::create("C_time_module0","C_time_module0",128, 0, 128);
-	regHist(C_htime_module0, path, run).ignore();
-	
-	C_htime_module1 = TH1D_LW::create("C_time_module1","C_time_module1",128, 0, 128);
-	regHist(C_htime_module1, path, run).ignore();
-	
-	C_htime_module2 = TH1D_LW::create("C_time_module2","C_time_module2",128, 0, 128);
-	regHist(C_htime_module2, path, run).ignore();
-	
-	C_htime_module3 = TH1D_LW::create("C_time_module3","C_time_module3",128, 0, 128);
-	regHist(C_htime_module3, path, run).ignore();
-	
-	C_htimeG0_module0 = TH1D_LW::create("C_timeG0_module0","C_timeG0_module0", 128, 0,128 );
-	regHist(C_htimeG0_module0, path, run).ignore();
-	
-	C_htimeG0_module1 = TH1D_LW::create("C_timeG0_module1","C_timeG0_module1",128, 0,128 );
-	regHist(C_htimeG0_module1, path, run).ignore();
-	
-	C_htimeG0_module2 = TH1D_LW::create("C_timeG0_module2","C_timeG0_module2",128, 0,128 );
-	regHist(C_htimeG0_module2, path, run).ignore();
-	
-	C_htimeG0_module3 = TH1D_LW::create("C_timeG0_module3","C_timeG0_module3",128, 0,128 );
-	regHist(C_htimeG0_module3, path, run).ignore();
-	
-	C_htimeG1_module0 = TH1D_LW::create("C_timeG1_module0","C_timeG1_module0",128, 0,128 );
-	regHist(C_htimeG1_module0, path, run).ignore();
-	
-	C_htimeG1_module1 = TH1D_LW::create("C_timeG1_module1","C_timeG1_module1",128, 0,128 );
-	regHist(C_htimeG1_module1, path, run).ignore();
-	
-	C_htimeG1_module2 = TH1D_LW::create("C_timeG1_module2","C_timeG1_module2",128, 0,128 );
-	regHist(C_htimeG1_module2, path, run).ignore();
-	
-	C_htimeG1_module3 = TH1D_LW::create("C_timeG1_module3","C_timeG1_module3",128, 0,128 );
-	regHist(C_htimeG1_module3, path, run).ignore();
-	
-	hside= TH1D_LW::create("hside","hside",10, -2,8);
-	regHist(hside, path, run).ignore();
 
+	std::stringstream nameEM_HAD1;
+	std::stringstream nameHAD1_HAD2;
+	std::stringstream nameHAD2_HAD3;
+	std::stringstream histnameamp;
+	std::stringstream histnameampG0;
+	std::stringstream histnameampG1;
+	std::stringstream histnameg0d0;
+	std::stringstream histnameg1d0;
+	std::stringstream histnameg0d1;
+	std::stringstream histnameg1d1;
+	std::stringstream nameSumSideAmp;
+	std::stringstream nameSumSideAmpG1;
+	std::stringstream nameSumSideAmpG0;
+	std::stringstream nameSideAC;
+
+	nameSideAC.str("");
+	nameSideAC<<"hSideA_sideC";
+	hSideAC = TH2D_LW::create(nameSideAC.str().c_str(), nameSideAC.str().c_str(),1463,-0.5,10240.5,1463,-0.5,10240.5);
+	regHist(hSideAC, 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(),1463,-0.5,10240.5,1463,-0.5,10240.5);
+		regHist(hEM_HAD1[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(),1463,-0.5,10240.5,1463,-0.5,10240.5);
+		regHist(hHAD1_HAD2[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(),1463,-0.5,10240.5,1463,-0.5,10240.5);
+		regHist(hHAD2_HAD3[k], path, run).ignore();
+		nameSumSideAmp.str("");
+		nameSumSideAmp<<"hSumSideAmp_side"<<k;
+		hSumSideAmp[k] = TH1D_LW::create(nameSumSideAmp.str().c_str(), nameSumSideAmp.str().c_str(),40961,-0.5,40960.5);
+		regHist(hSumSideAmp[k], path, run).ignore();
+		nameSumSideAmpG0.str("");
+		nameSumSideAmpG0<<"hSumSideAmpG0_side"<<k;
+		hSumSideAmpG0[k] = TH1D_LW::create(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] = TH1D_LW::create(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] = TH1D_LW::create(histnameamp.str().c_str(), histnameamp.str().c_str(), 10241,-0.5,10240.5);
+			regHist(hamp[i][k], path, run).ignore();
+			histnameampG0.str("");
+			histnameampG0<<"h_amplitudeG0_mod"<<i<<"_side"<<k;
+			hampG0[i][k] = TH1D_LW::create(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] = TH1D_LW::create(histnameampG1.str().c_str(), histnameampG1.str().c_str(), 1025,-0.5,1024.5);
+			regHist(hampG1[i][k], path, run).ignore();
+   }
+	}
 }
-- 
GitLab