diff --git a/NPSimulation/Core/CalorimeterScorers.cc b/NPSimulation/Core/CalorimeterScorers.cc
index 6b3a7f5d92af7343861a42fd12c584d0fdf1b0dd..513392530541b7ce941f6ec206901664b1aa2107 100644
--- a/NPSimulation/Core/CalorimeterScorers.cc
+++ b/NPSimulation/Core/CalorimeterScorers.cc
@@ -42,10 +42,8 @@ G4bool PS_Calorimeter::ProcessHits(G4Step* aStep, G4TouchableHistory*){
   G4double* Infos = new G4double[2+mysize];
   Infos[0] = aStep->GetTotalEnergyDeposit();
   Infos[1] = aStep->GetPreStepPoint()->GetGlobalTime();
-    cout << "my size = " << mysize << endl;
   for(unsigned int i = 0 ; i < mysize ; i++){ 
     Infos[i+2] = aStep->GetPreStepPoint()->GetTouchableHandle()->GetCopyNumber(m_NestingLevel[i]);
-      cout << i+2 << " " << Infos[i+2] << endl;
   }
 
   m_Index = 0 ;
diff --git a/NPSimulation/Hira/Hira.cc b/NPSimulation/Hira/Hira.cc
index 760d770e4c11681c0450c625436907e5d511957f..9a1a16c80bb75459d2bec03526d9239d438eb8f3 100644
--- a/NPSimulation/Hira/Hira.cc
+++ b/NPSimulation/Hira/Hira.cc
@@ -26,6 +26,7 @@
 //G4 Geometry object
 #include "G4Box.hh"
 #include "G4Trd.hh"
+#include "G4Trap.hh"
 #include "G4Tubs.hh"
 #include "G4Cons.hh"
 #include "G4UnionSolid.hh" 
@@ -382,8 +383,8 @@ void Hira::ReadSensitive(const G4Event* event){
     double E_CsI = RandGauss::shoot(Info[0],ResoCsI);
     if(E_CsI>EnergyThreshold){
         m_EventHira->SetHiraCsIEEnergy(E_CsI);
-      	m_EventHira->SetHiraCsIEDetectorNbr((int)Info[2]);
-        m_EventHira->SetHiraCsIECristalNbr((int)Info[3]);
+      	m_EventHira->SetHiraCsIEDetectorNbr((int)Info[3]);
+        m_EventHira->SetHiraCsIECristalNbr((int)Info[2]);
     }
   }
   // Clear Map for next event
@@ -396,8 +397,8 @@ void Hira::InitializeScorers(){
   //Look for previous definition of the scorer (geometry reload)
   bool already_exist = false;
   vector<G4int> NestingLevel;
+  NestingLevel.push_back(0);
   NestingLevel.push_back(2);
-  NestingLevel.push_back(3);
 
   m_ThinSiStripScorer = CheckScorer("Hira_ThinSiScorer",already_exist);
   m_ThickSiStripScorer = CheckScorer("Hira_ThickSiScorer",already_exist);
@@ -520,8 +521,23 @@ void Hira::VolumeMaker(G4int DetectorNumber,
 	///////////////////////////////////////////////////
 	/////////////////////// CsI ///////////////////////
 	///////////////////////////////////////////////////
-	G4String NameCsI = "CsI"+DetNumber;
-	G4Trd* solidCsIStage = new G4Trd(NameCsI, 0.5*CsIFaceFront, 0.5*CsIFaceBack, 0.5*CsIFaceFront, 0.5*CsIFaceBack, 0.5*CsIThickness);
+    G4String NameCsI = "CsI"+DetNumber;
+    
+    double pDz = 0.5*CsIThickness;
+    double pTheta = -atan( (CsIXBack-CsIXFront)/(2*CsIThickness) );
+    double pPhi = 0;
+    double pDy1 = 0.5*CsIYFront;
+    double pDx1 = 0.5*CsIXFront;
+    double pDx2 = 0.5*CsIXFront;
+    double pAlp1 = 0;
+    double pDy2 = 0.5*CsIYBack;
+    double pDx3 = 0.5*CsIXBack;
+    double pDx4 = 0.5*CsIXBack;
+    double pAlp2 = 0;
+    
+    G4Trap* solidCsIStage = new G4Trap(NameCsI, pDz, pTheta, pPhi, pDy1, pDx1, pDx2, pAlp1, pDy2, pDx3, pDx4, pAlp2);
+ 
+    
     m_LogicCsICrystal = new G4LogicalVolume(solidCsIStage, m_MaterialCsI, "logicCsICrystal", 0, 0, 0);
     	
 	// Set CsI sensible
@@ -537,34 +553,39 @@ void Hira::VolumeMaker(G4int DetectorNumber,
     	m_LogicCluster = new G4LogicalVolume(solidCluster, m_MaterialVacuum, "LogicSolidCluster", 0, 0, 0);
         m_LogicCluster->SetVisAttributes(G4VisAttributes::Invisible);
 
-	G4ThreeVector FramePos(0,0,CsI_PosZ);
+        G4ThreeVector FramePos(0,0,CsI_PosZ);
 
-	new G4PVPlacement(new G4RotationMatrix(0,0,0),
+        new G4PVPlacement(new G4RotationMatrix(0,0,0),
                       	FramePos,
                       	m_LogicCluster,"Cluster",
                       	m_logicMotherVolume,false,0);
 
-
-	//G4ThreeVector Origin(-CsIFaceFront,-CsIFaceFront,0);
-	G4ThreeVector Origin(-0.5*CsIFaceFront,-0.5*CsIFaceFront,0);
-	
-	// A cluster is a 2 by 2 aggregat of CsI crystal
-    		unsigned int CsINbr = 1;
-    		for(unsigned int i = 0 ; i < 2 ; i++){
-      			for(unsigned int j = 0 ; j <2 ; j++){
+        const G4double CsIXMiddle = CsIXFront + CsIThickness*tan(-pTheta);
+        const G4double DistInterCsIX = CsIXMiddle+DistInterCsI;
+        const G4double DistInterCsIY = CsIYFront+DistInterCsI;
+        
+        G4ThreeVector Origin(-0.5*DistInterCsIX,-0.5*DistInterCsIY,0);
+        G4RotationMatrix* rotM = new G4RotationMatrix;
+        const G4double dangle = 180.*deg;
+        // A cluster is a 2 by 2 aggregat of CsI crystal
+        unsigned int CsINbr = 1;
+            for(unsigned int i = 0 ; i < 2 ; i++){
+                for(unsigned int j = 0 ; j <2 ; j++){
                     unsigned int CrystalNbr = CsINbr++;
-        			G4ThreeVector Pos = Origin + G4ThreeVector(i*DistInterCsIX,j*DistInterCsIY,0);
-        			new G4PVPlacement(0, 
-        			 	Pos,
-           			 	m_LogicCsICrystal,
-                        "CsI_Cristal",
-                        m_LogicCluster,
-                        false,
-                        CrystalNbr);
-      			}
+                    if(i==0)rotM->rotateZ((i)*dangle);
+                    if(i==1)rotM->rotateZ((i+j)*dangle);
+                    G4ThreeVector Pos = Origin + G4ThreeVector(i*DistInterCsIX,j*DistInterCsIY,0);
+                
+                    new G4PVPlacement(G4Transform3D(*rotM,Pos),
+                                      m_LogicCsICrystal,
+                                      "CsI_Cristal",
+                                      m_LogicCluster,
+                                      false,
+                                      CrystalNbr);
+                }
             }
         }
-}
+    }
 
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
diff --git a/NPSimulation/Hira/Hira.hh b/NPSimulation/Hira/Hira.hh
index 101605434be55777786f8fd781026ecbeb3be381..155c9338b62d1c80fb2d95b65d2b0a6b10ec85b9 100644
--- a/NPSimulation/Hira/Hira.hh
+++ b/NPSimulation/Hira/Hira.hh
@@ -66,27 +66,28 @@ namespace HIRA
 	const G4double DistBetweenSi	 = 1*cm;
 	const G4double VacBoxThickness   = 1*cm ;
 	const G4double MylarCsIThickness = 3*micrometer;
-	const G4double CsIThickness      = 4.*cm + 2*MylarCsIThickness ;
-    const G4double CsIFaceFront      = 30.*mm;//3.2*cm;
-	const G4double CsIFaceBack       = 30.*mm;//3.7*cm;
+    const G4double CsIThickness      = 4.*cm;// + 2*MylarCsIThickness ;
+    
+    const G4double CsIXFront         = 32.*mm;
+    const G4double CsIXBack          = 37.*mm;
+    const G4double CsIYFront         = 32.*mm;
+    const G4double CsIYBack          = 32.*mm;
     const G4double DistInterCsI      = 0.2*mm;
-    const G4double DistInterCsIX     = CsIFaceFront+DistInterCsI;
-    const G4double DistInterCsIY     = CsIFaceFront+DistInterCsI;
+    
 	const G4double ClusterFaceFront  = 7*cm;
 	const G4double ClusterFaceBack   = 9*cm;
 	
-	
 	// Starting at the front and going to CsI
 	const G4double AluStripFrontThinSi_PosZ		= Length* -0.5 + 0.5*AluStripThickness;
-	const G4double ThinSi_PosZ			= AluStripFrontThinSi_PosZ + 0.5*AluStripThickness + 0.5*ThinSiThickness;
+	const G4double ThinSi_PosZ                  = AluStripFrontThinSi_PosZ + 0.5*AluStripThickness + 0.5*ThinSiThickness;
 	const G4double AluStripBackThinSi_PosZ		= ThinSi_PosZ + 0.5*ThinSiThickness + 0.5*AluStripThickness;
 	
 	const G4double AluStripFrontThickSi_PosZ	= AluStripBackThinSi_PosZ + DistBetweenSi + 0.5*AluStripThickness + 0.5*AluStripThickness;
-	const G4double ThickSi_PosZ			= AluStripFrontThickSi_PosZ + 0.5*AluStripThickness + 0.5*ThickSiThickness;
+	const G4double ThickSi_PosZ                 = AluStripFrontThickSi_PosZ + 0.5*AluStripThickness + 0.5*ThickSiThickness;
 	const G4double AluStripBackThickSi_PosZ		= ThickSi_PosZ + 0.5*ThickSiThickness + 0.5*AluStripThickness;
 	
-	const G4double VacBox_PosZ			= AluStripBackThickSi_PosZ + 0.5*AluStripThickness + 0.5* VacBoxThickness;
-	const G4double CsI_PosZ				= VacBox_PosZ + 0.5*VacBoxThickness + 0.5*CsIThickness;
+	const G4double VacBox_PosZ                  = AluStripBackThickSi_PosZ + 0.5*AluStripThickness + 0.5* VacBoxThickness;
+	const G4double CsI_PosZ                     = VacBox_PosZ + 0.5*VacBoxThickness + 0.5*CsIThickness;