diff --git a/NPLib/Detectors/FissionChamber/TFissionChamberPhysics.cxx b/NPLib/Detectors/FissionChamber/TFissionChamberPhysics.cxx
index 4c68b837b9a3ef581c2916b42bf4528921849a20..d0a3477c03a8046c657e8f0dac92686f347e5a7b 100644
--- a/NPLib/Detectors/FissionChamber/TFissionChamberPhysics.cxx
+++ b/NPLib/Detectors/FissionChamber/TFissionChamberPhysics.cxx
@@ -42,30 +42,34 @@ using namespace std;
 ClassImp(TFissionChamberPhysics)
 
 
-///////////////////////////////////////////////////////////////////////////
+  ///////////////////////////////////////////////////////////////////////////
 TFissionChamberPhysics::TFissionChamberPhysics()
-   : m_EventData(new TFissionChamberData),
-     m_PreTreatedData(new TFissionChamberData),
-     m_EventPhysics(this),
-     m_Spectra(0),
-     m_E_RAW_Threshold(0), // adc channels
-     m_E_Threshold(0),     // MeV
-     m_NumberOfDetectors(0) {
-}
+  : m_EventData(new TFissionChamberData),
+  m_PreTreatedData(new TFissionChamberData),
+  m_EventPhysics(this),
+  m_Spectra(0),
+  m_E_RAW_Threshold(0), // adc channels
+  m_E_Threshold(0),     // MeV
+  m_NumberOfDetectors(0) {
+  }
 
 ///////////////////////////////////////////////////////////////////////////
 /// A usefull method to bundle all operation to add a detector
-void TFissionChamberPhysics::AddDetector(TVector3 ){
+void TFissionChamberPhysics::AddDetector(TVector3 pos) {
   // In That simple case nothing is done
   // Typically for more complex detector one would calculate the relevant 
   // positions (stripped silicon) or angles (gamma array)
   m_NumberOfDetectors++;
-
-		for(int i=0; i<12; i++){
-				LastTime[i] = 0;
-				CurrentTime[i] = 0;
-				counter[i] = 0;
-		}
+  for(int i =0; i<11; i++){
+    TVector3 AnodePos(pos.X() , pos.Y(), pos.Z() - 25 + i*5);
+    m_AnodePosition.push_back(AnodePos);
+  } 
+
+  for(int i=0; i<12; i++){
+    LastTime[i] = 0;
+    CurrentTime[i] = 0;
+    counter[i] = 0;
+  }
 } 
 
 ///////////////////////////////////////////////////////////////////////////
@@ -73,9 +77,10 @@ void TFissionChamberPhysics::AddDetector(double R, double Theta, double Phi){
   // Compute the TVector3 corresponding
   TVector3 Pos(R*sin(Theta)*cos(Phi),R*sin(Theta)*sin(Phi),R*cos(Theta));
   // Call the cartesian method
+  /* m_DetectorPosition.push_back(Pos); */
   AddDetector(Pos);
 } 
-  
+
 ///////////////////////////////////////////////////////////////////////////
 void TFissionChamberPhysics::BuildSimplePhysicalEvent() {
   BuildPhysicalEvent();
@@ -87,19 +92,19 @@ void TFissionChamberPhysics::BuildSimplePhysicalEvent() {
 void TFissionChamberPhysics::BuildPhysicalEvent() {
   // apply thresholds and calibration
   PreTreat();
-    
+
   // match energy and time together
   unsigned int mysizeE = m_PreTreatedData->GetMultiplicity();
   for (UShort_t e = 0; e < mysizeE ; e++) {
-				
-				int A = m_EventData->GetAnodeNbr(e);
-				CurrentTime[A] = m_EventData->GetTime(e);
-				double DT = CurrentTime[A] - LastTime[A];
-				
-				LastTime[A] = m_EventData->GetTime(e);
- 
-				DT_FC.push_back(DT);
-				AnodeNumber.push_back(m_PreTreatedData->GetAnodeNbr(e));
+
+    int A = m_EventData->GetAnodeNbr(e);
+    CurrentTime[A] = m_EventData->GetTime(e);
+    double DT = CurrentTime[A] - LastTime[A];
+
+    LastTime[A] = m_EventData->GetTime(e);
+
+    DT_FC.push_back(DT);
+    AnodeNumber.push_back(m_PreTreatedData->GetAnodeNbr(e));
     Q1.push_back(m_PreTreatedData->GetQ1(e));
     Q2.push_back(m_PreTreatedData->GetQ2(e));
     Qmax.push_back(m_PreTreatedData->GetQmax(e));
@@ -108,11 +113,11 @@ void TFissionChamberPhysics::BuildPhysicalEvent() {
 
     Time_HF.push_back(m_PreTreatedData->GetTimeHF(e));
   }
-  
+
   /*unsigned int mysizeHF = m_PreTreatedData->GetHFMultiplicity();
-  for(UShort_t e =0; e < mysizeHF ; e++){  
+    for(UShort_t e =0; e < mysizeHF ; e++){  
     Time_HF.push_back(m_PreTreatedData->GetTimeHF(e));
-  }*/
+    }*/
 
 }
 
@@ -126,34 +131,34 @@ void TFissionChamberPhysics::PreTreat() {
 
   // instantiate CalibrationManager
   static CalibrationManager* Cal = CalibrationManager::getInstance();
-    
-  
+
+
   unsigned int mysize = m_EventData->GetMultiplicity();
   for (UShort_t i = 0; i < mysize ; ++i) {
     Double_t Q1 = m_EventData->GetQ1(i);
     Double_t Q2 = m_EventData->GetQ2(i);
     Double_t Qmax = m_EventData->GetQmax(i);
 
-   
-				if (Q1 > m_E_Threshold) {
-						int AnodeNumber = m_EventData->GetAnodeNbr(i);
+
+    if (Q1 > m_E_Threshold) {
+      int AnodeNumber = m_EventData->GetAnodeNbr(i);
       double TimeOffset = Cal->GetValue("FissionChamber/ANODE"+NPL::itoa(AnodeNumber)+"_TIMEOFFSET",0);
       double Time = m_EventData->GetTime(i);// + TimeOffset;
 
-						m_PreTreatedData->SetAnodeNbr(AnodeNumber);
+      m_PreTreatedData->SetAnodeNbr(AnodeNumber);
       m_PreTreatedData->SetQ1(Q1);
       m_PreTreatedData->SetQ2(Q2);
       m_PreTreatedData->SetQmax(Qmax);
       m_PreTreatedData->SetTime(Time);
       m_PreTreatedData->SetFakeFissionStatus(m_EventData->GetFakeFissionStatus(i));
-    		m_PreTreatedData->SetTimeHF(m_EventData->GetTimeHF(i));
+      m_PreTreatedData->SetTimeHF(m_EventData->GetTimeHF(i));
     }
   }
-  
-		/*unsigned int mysizeHF = m_EventData->GetHFMultiplicity();
-  for (UShort_t i = 0; i < mysizeHF ; ++i) {
+
+  /*unsigned int mysizeHF = m_EventData->GetHFMultiplicity();
+    for (UShort_t i = 0; i < mysizeHF ; ++i) {
     m_PreTreatedData->SetTimeHF(m_EventData->GetTimeHF(i));
-  }*/
+    }*/
 
 }
 
@@ -232,7 +237,7 @@ void TFissionChamberPhysics::Clear() {
   Time.clear();
   Time_HF.clear();
   isFakeFission.clear();
-		DT_FC.clear();
+  DT_FC.clear();
 }
 
 
diff --git a/NPLib/Detectors/FissionChamber/TFissionChamberPhysics.h b/NPLib/Detectors/FissionChamber/TFissionChamberPhysics.h
index c846a43455342221d39b9f281649abec93c399d2..db47fa132f2cf242e413cac5e0dabe7937704f05 100644
--- a/NPLib/Detectors/FissionChamber/TFissionChamberPhysics.h
+++ b/NPLib/Detectors/FissionChamber/TFissionChamberPhysics.h
@@ -69,14 +69,17 @@ class TFissionChamberPhysics : public TObject, public NPL::VDetector {
     vector<double>   Time;
     vector<bool>     isFakeFission;
     vector<double>   Time_HF;
-				vector<double>   DT_FC;				
+    vector<double>   DT_FC;				
 
-  /// A usefull method to bundle all operation to add a detector
-  void AddDetector(TVector3 POS); 
-  void AddDetector(double R, double Theta, double Phi); 
-  
-  //////////////////////////////////////////////////////////////
-  // methods inherited from the VDetector ABC class
+    /// A usefull method to bundle all operation to add a detector
+    void AddDetector(TVector3 POS); 
+    void AddDetector(double R, double Theta, double Phi); 
+
+    TVector3 GetVectorDetectorPosition(){ return m_DetectorPosition[0];}  
+    TVector3 GetVectorAnodePosition(int AnodeNbr){ return m_AnodePosition[AnodeNbr-1];}  
+
+    //////////////////////////////////////////////////////////////
+    // methods inherited from the VDetector ABC class
   public:
     // read stream from ConfigFile to pick-up detector parameters
     void ReadConfiguration(NPL::InputParser);
@@ -131,8 +134,8 @@ class TFissionChamberPhysics : public TObject, public NPL::VDetector {
     void WriteSpectra();
 
 
-  //////////////////////////////////////////////////////////////
-  // specific methods to FissionChamber array
+    //////////////////////////////////////////////////////////////
+    // specific methods to FissionChamber array
   public:
     // remove bad channels, calibrate the data and apply thresholds
     void PreTreat();
@@ -146,39 +149,41 @@ class TFissionChamberPhysics : public TObject, public NPL::VDetector {
     // give and external TFissionChamberData object to TFissionChamberPhysics. 
     // needed for online analysis for example
     void SetRawDataPointer(TFissionChamberData* rawDataPointer) {m_EventData = rawDataPointer;}
-    
-  // objects are not written in the TTree
+
+    // objects are not written in the TTree
   private:
     TFissionChamberData*         m_EventData;        //!
     TFissionChamberData*         m_PreTreatedData;   //!
     TFissionChamberPhysics*      m_EventPhysics;     //!
 
-  // getters for raw and pre-treated data object
+    // getters for raw and pre-treated data object
   public:
     TFissionChamberData* GetRawData()        const {return m_EventData;}
     TFissionChamberData* GetPreTreatedData() const {return m_PreTreatedData;}
 
-  // parameters used in the analysis
+    // parameters used in the analysis
   private:
     // thresholds
     double m_E_RAW_Threshold; //!
     double m_E_Threshold;     //!
-				double CurrentTime[12];   //!
-				double LastTime[12];      //!
-				int counter[12];          //!
-  // number of detectors
+    double CurrentTime[12];   //!
+    double LastTime[12];      //!
+    int counter[12];          //!
+    // number of detectors
   private:
     int m_NumberOfDetectors;  //!
+    vector<TVector3> m_DetectorPosition; //!
+    vector<TVector3> m_AnodePosition; //!
 
-  // spectra class
+    // spectra class
   private:
     TFissionChamberSpectra* m_Spectra; // !
 
-  // spectra getter
+    // spectra getter
   public:
     map<string, TH1*>   GetSpectra(); 
 
-  // Static constructor to be passed to the Detector Factory
+    // Static constructor to be passed to the Detector Factory
   public:
     static NPL::VDetector* Construct();
 
diff --git a/NPLib/Detectors/Vendeta/TVendetaPhysics.cxx b/NPLib/Detectors/Vendeta/TVendetaPhysics.cxx
index c7a0bdaead8cb0e34324c70635c365856dad0a90..4353ebb26b8b9a41c0f1bea0ae8d7041cc034e96 100644
--- a/NPLib/Detectors/Vendeta/TVendetaPhysics.cxx
+++ b/NPLib/Detectors/Vendeta/TVendetaPhysics.cxx
@@ -136,27 +136,36 @@ void TVendetaPhysics::PreTreat() {
 				double Qmax = m_EventData->GetLGQmax(i);
 				double TimeOffset=0;
 				TimeOffset = Cal->GetValue("Vendeta/DET"+NPL::itoa(det)+"_LG_ANODE"+NPL::itoa(m_AnodeNumber)+"_TIMEOFFSET",0);
-				double Time = m_EventData->GetLGTime(i) + TimeOffset;
-				m_PreTreatedData->SetLGDetectorNbr(det);
-				m_PreTreatedData->SetLGQ1(m_EventData->GetLGQ1(i));
-				m_PreTreatedData->SetLGQ2(m_EventData->GetLGQ2(i));
-				m_PreTreatedData->SetLGTime(Time);
-				m_PreTreatedData->SetLGQmax(Qmax);
-		}
-
-		// HG pretreat
-		for (UShort_t i = 0; i < mysizeHG ; ++i){
-				int det = m_EventData->GetHGDetectorNbr(i);
-				double Qmax = m_EventData->GetHGQmax(i);
-				double TimeOffset=0;
-				TimeOffset = Cal->GetValue("Vendeta/DET"+NPL::itoa(det)+"_HG_ANODE"+NPL::itoa(m_AnodeNumber)+"_TIMEOFFSET",0);
-				double Time = m_EventData->GetHGTime(i) + TimeOffset;
-				m_PreTreatedData->SetHGDetectorNbr(det);
-				m_PreTreatedData->SetHGQ1(m_EventData->GetHGQ1(i));
-				m_PreTreatedData->SetHGQ2(m_EventData->GetHGQ2(i));
-				m_PreTreatedData->SetHGTime(Time);
-				m_PreTreatedData->SetHGQmax(Qmax);
-		}
+        if(m_AnodeNumber==0){
+          // Apply calibration from Anode 6 in case of Pulser
+          TimeOffset = Cal->GetValue("Vendeta/DET"+NPL::itoa(det)+"_LG_ANODE"+NPL::itoa(6)+"_TIMEOFFSET",0);
+        }
+        double Time = m_EventData->GetLGTime(i) + TimeOffset;
+        m_PreTreatedData->SetLGDetectorNbr(det);
+        m_PreTreatedData->SetLGQ1(m_EventData->GetLGQ1(i));
+        m_PreTreatedData->SetLGQ2(m_EventData->GetLGQ2(i));
+        m_PreTreatedData->SetLGTime(Time);
+        m_PreTreatedData->SetLGQmax(Qmax);
+    }
+
+    // HG pretreat
+    for (UShort_t i = 0; i < mysizeHG ; ++i){
+      int det = m_EventData->GetHGDetectorNbr(i);
+      double Qmax = m_EventData->GetHGQmax(i);
+      double TimeOffset=0;
+      TimeOffset = Cal->GetValue("Vendeta/DET"+NPL::itoa(det)+"_HG_ANODE"+NPL::itoa(m_AnodeNumber)+"_TIMEOFFSET",0);
+      if(m_AnodeNumber==0){
+        // Apply calibration from Anode 6 in case of Pulser
+        TimeOffset = Cal->GetValue("Vendeta/DET"+NPL::itoa(det)+"_HG_ANODE"+NPL::itoa(6)+"_TIMEOFFSET",0);
+      }
+
+      double Time = m_EventData->GetHGTime(i) + TimeOffset;
+      m_PreTreatedData->SetHGDetectorNbr(det);
+      m_PreTreatedData->SetHGQ1(m_EventData->GetHGQ1(i));
+      m_PreTreatedData->SetHGQ2(m_EventData->GetHGQ2(i));
+      m_PreTreatedData->SetHGTime(Time);
+      m_PreTreatedData->SetHGQmax(Qmax);
+    }
 
 }
 
@@ -164,81 +173,81 @@ void TVendetaPhysics::PreTreat() {
 
 ///////////////////////////////////////////////////////////////////////////
 void TVendetaPhysics::ReadAnalysisConfig() {
-		bool ReadingStatus = false;
-
-		// path to file
-		string FileName = "./configs/ConfigVendeta.dat";
-
-		// open analysis config file
-		ifstream AnalysisConfigFile;
-		AnalysisConfigFile.open(FileName.c_str());
-
-		if (!AnalysisConfigFile.is_open()) {
-				cout << " No ConfigVendeta.dat found: Default parameter loaded for Analayis " << FileName << endl;
-				return;
-		}
-		cout << " Loading user parameter for Analysis from ConfigVendeta.dat " << endl;
-
-		// Save it in a TAsciiFile
-		TAsciiFile* asciiConfig = RootOutput::getInstance()->GetAsciiFileAnalysisConfig();
-		asciiConfig->AppendLine("%%% ConfigVendeta.dat %%%");
-		asciiConfig->Append(FileName.c_str());
-		asciiConfig->AppendLine("");
-		// read analysis config file
-		string LineBuffer,DataBuffer,whatToDo;
-		while (!AnalysisConfigFile.eof()) {
-				// Pick-up next line
-				getline(AnalysisConfigFile, LineBuffer);
-
-				// search for "header"
-				string name = "ConfigVendeta";
-				if (LineBuffer.compare(0, name.length(), name) == 0) 
-						ReadingStatus = true;
-
-				// loop on tokens and data
-				while (ReadingStatus ) {
-						whatToDo="";
-						AnalysisConfigFile >> whatToDo;
-
-						// Search for comment symbol (%)
-						if (whatToDo.compare(0, 1, "%") == 0) {
-								AnalysisConfigFile.ignore(numeric_limits<streamsize>::max(), '\n' );
-						}
-
-						else if (whatToDo=="E_RAW_THRESHOLD") {
-								AnalysisConfigFile >> DataBuffer;
-								m_E_RAW_Threshold = atof(DataBuffer.c_str());
-								cout << whatToDo << " " << m_E_RAW_Threshold << endl;
-						}
-
-						else if (whatToDo=="E_THRESHOLD") {
-								AnalysisConfigFile >> DataBuffer;
-								m_E_Threshold = atof(DataBuffer.c_str());
-								cout << whatToDo << " " << m_E_Threshold << endl;
-						}
-
-						else {
-								ReadingStatus = false;
-						}
-				}
-		}
+  bool ReadingStatus = false;
+
+  // path to file
+  string FileName = "./configs/ConfigVendeta.dat";
+
+  // open analysis config file
+  ifstream AnalysisConfigFile;
+  AnalysisConfigFile.open(FileName.c_str());
+
+  if (!AnalysisConfigFile.is_open()) {
+    cout << " No ConfigVendeta.dat found: Default parameter loaded for Analayis " << FileName << endl;
+    return;
+  }
+  cout << " Loading user parameter for Analysis from ConfigVendeta.dat " << endl;
+
+  // Save it in a TAsciiFile
+  TAsciiFile* asciiConfig = RootOutput::getInstance()->GetAsciiFileAnalysisConfig();
+  asciiConfig->AppendLine("%%% ConfigVendeta.dat %%%");
+  asciiConfig->Append(FileName.c_str());
+  asciiConfig->AppendLine("");
+  // read analysis config file
+  string LineBuffer,DataBuffer,whatToDo;
+  while (!AnalysisConfigFile.eof()) {
+    // Pick-up next line
+    getline(AnalysisConfigFile, LineBuffer);
+
+    // search for "header"
+    string name = "ConfigVendeta";
+    if (LineBuffer.compare(0, name.length(), name) == 0) 
+      ReadingStatus = true;
+
+    // loop on tokens and data
+    while (ReadingStatus ) {
+      whatToDo="";
+      AnalysisConfigFile >> whatToDo;
+
+      // Search for comment symbol (%)
+      if (whatToDo.compare(0, 1, "%") == 0) {
+        AnalysisConfigFile.ignore(numeric_limits<streamsize>::max(), '\n' );
+      }
+
+      else if (whatToDo=="E_RAW_THRESHOLD") {
+        AnalysisConfigFile >> DataBuffer;
+        m_E_RAW_Threshold = atof(DataBuffer.c_str());
+        cout << whatToDo << " " << m_E_RAW_Threshold << endl;
+      }
+
+      else if (whatToDo=="E_THRESHOLD") {
+        AnalysisConfigFile >> DataBuffer;
+        m_E_Threshold = atof(DataBuffer.c_str());
+        cout << whatToDo << " " << m_E_Threshold << endl;
+      }
+
+      else {
+        ReadingStatus = false;
+      }
+    }
+  }
 }
 
 
 
 ///////////////////////////////////////////////////////////////////////////
 void TVendetaPhysics::Clear() {
-		LG_DetectorNumber.clear();
-		LG_Q1.clear();
-		LG_Q2.clear();
-		LG_Time.clear();
-		LG_Qmax.clear();
-
-		HG_DetectorNumber.clear();
-		HG_Q1.clear();
-		HG_Q2.clear();
-		HG_Time.clear();
-		HG_Qmax.clear();
+  LG_DetectorNumber.clear();
+  LG_Q1.clear();
+  LG_Q2.clear();
+  LG_Time.clear();
+  LG_Qmax.clear();
+
+  HG_DetectorNumber.clear();
+  HG_Q1.clear();
+  HG_Q2.clear();
+  HG_Time.clear();
+  HG_Qmax.clear();
 
 }
 
@@ -246,117 +255,117 @@ void TVendetaPhysics::Clear() {
 
 ///////////////////////////////////////////////////////////////////////////
 void TVendetaPhysics::ReadConfiguration(NPL::InputParser parser) {
-		vector<NPL::InputBlock*> blocks = parser.GetAllBlocksWithToken("Vendeta");
-		if(NPOptionManager::getInstance()->GetVerboseLevel())
-				cout << "//// " << blocks.size() << " detectors found " << endl; 
-
-		vector<string> cart = {"POS"};
-		vector<string> sphe = {"R","Theta","Phi"};
-
-		for(unsigned int i = 0 ; i < blocks.size() ; i++){
-				if(blocks[i]->HasTokenList(cart)){
-						if(NPOptionManager::getInstance()->GetVerboseLevel())
-								cout << endl << "////  Vendeta " << i+1 <<  endl;
-
-						TVector3 Pos = blocks[i]->GetTVector3("POS","mm");
-						AddDetector(Pos);
-				}
-				else if(blocks[i]->HasTokenList(sphe)){
-						if(NPOptionManager::getInstance()->GetVerboseLevel())
-								cout << endl << "////  Vendeta " << i+1 <<  endl;
-						double R = blocks[i]->GetDouble("R","mm");
-						double Theta = blocks[i]->GetDouble("Theta","deg");
-						double Phi = blocks[i]->GetDouble("Phi","deg");
-						AddDetector(R,Theta,Phi);
-				}
-				else{
-						cout << "ERROR: check your input file formatting " << endl;
-						exit(1);
-				}
-		}
+  vector<NPL::InputBlock*> blocks = parser.GetAllBlocksWithToken("Vendeta");
+  if(NPOptionManager::getInstance()->GetVerboseLevel())
+    cout << "//// " << blocks.size() << " detectors found " << endl; 
+
+  vector<string> cart = {"POS"};
+  vector<string> sphe = {"R","Theta","Phi"};
+
+  for(unsigned int i = 0 ; i < blocks.size() ; i++){
+    if(blocks[i]->HasTokenList(cart)){
+      if(NPOptionManager::getInstance()->GetVerboseLevel())
+        cout << endl << "////  Vendeta " << i+1 <<  endl;
+
+      TVector3 Pos = blocks[i]->GetTVector3("POS","mm");
+      AddDetector(Pos);
+    }
+    else if(blocks[i]->HasTokenList(sphe)){
+      if(NPOptionManager::getInstance()->GetVerboseLevel())
+        cout << endl << "////  Vendeta " << i+1 <<  endl;
+      double R = blocks[i]->GetDouble("R","mm");
+      double Theta = blocks[i]->GetDouble("Theta","deg");
+      double Phi = blocks[i]->GetDouble("Phi","deg");
+      AddDetector(R,Theta,Phi);
+    }
+    else{
+      cout << "ERROR: check your input file formatting " << endl;
+      exit(1);
+    }
+  }
 }
 
 ///////////////////////////////////////////////////////////////////////////
 void TVendetaPhysics::InitSpectra() {
-		m_Spectra = new TVendetaSpectra(m_NumberOfDetectors);
+  m_Spectra = new TVendetaSpectra(m_NumberOfDetectors);
 }
 
 
 
 ///////////////////////////////////////////////////////////////////////////
 void TVendetaPhysics::FillSpectra() {
-		m_Spectra -> FillRawSpectra(m_EventData);
-		m_Spectra -> FillPreTreatedSpectra(m_PreTreatedData);
-		m_Spectra -> FillPhysicsSpectra(m_EventPhysics);
+  m_Spectra -> FillRawSpectra(m_EventData);
+  m_Spectra -> FillPreTreatedSpectra(m_PreTreatedData);
+  m_Spectra -> FillPhysicsSpectra(m_EventPhysics);
 }
 
 
 
 ///////////////////////////////////////////////////////////////////////////
 void TVendetaPhysics::CheckSpectra() {
-		m_Spectra->CheckSpectra();
+  m_Spectra->CheckSpectra();
 }
 
 
 
 ///////////////////////////////////////////////////////////////////////////
 void TVendetaPhysics::ClearSpectra() {
-		// To be done
+  // To be done
 }
 
 
 
 ///////////////////////////////////////////////////////////////////////////
 map< string , TH1*> TVendetaPhysics::GetSpectra() {
-		if(m_Spectra)
-				return m_Spectra->GetMapHisto();
-		else{
-				map< string , TH1*> empty;
-				return empty;
-		}
+  if(m_Spectra)
+    return m_Spectra->GetMapHisto();
+  else{
+    map< string , TH1*> empty;
+    return empty;
+  }
 }
 
 ///////////////////////////////////////////////////////////////////////////
 void TVendetaPhysics::WriteSpectra() {
-		m_Spectra->WriteSpectra();
+  m_Spectra->WriteSpectra();
 }
 
 
 
 ///////////////////////////////////////////////////////////////////////////
 void TVendetaPhysics::AddParameterToCalibrationManager() {
-		CalibrationManager* Cal = CalibrationManager::getInstance();
-		for (int i = 0; i < m_NumberOfDetectors; ++i) {
-				for(int j = 0; j < 11; j++){
-						Cal->AddParameter("Vendeta","DET"+NPL::itoa(i+1)+"_LG_ANODE"+NPL::itoa(j+1)+"_TIMEOFFSET","Vendeta_DET"+ NPL::itoa(i+1)+"_LG_ANODE"+NPL::itoa(j+1)+"_TIMEOFFSET");
-						Cal->AddParameter("Vendeta","DET"+NPL::itoa(i+1)+"_HG_ANODE"+NPL::itoa(j+1)+"_TIMEOFFSET","Vendeta_DET"+ NPL::itoa(i+1)+"_HG_ANODE"+NPL::itoa(j+1)+"_TIMEOFFSET");
-				}
-		}
+  CalibrationManager* Cal = CalibrationManager::getInstance();
+  for (int i = 0; i < m_NumberOfDetectors; ++i) {
+    for(int j = 0; j < 11; j++){
+      Cal->AddParameter("Vendeta","DET"+NPL::itoa(i+1)+"_LG_ANODE"+NPL::itoa(j+1)+"_TIMEOFFSET","Vendeta_DET"+ NPL::itoa(i+1)+"_LG_ANODE"+NPL::itoa(j+1)+"_TIMEOFFSET");
+      Cal->AddParameter("Vendeta","DET"+NPL::itoa(i+1)+"_HG_ANODE"+NPL::itoa(j+1)+"_TIMEOFFSET","Vendeta_DET"+ NPL::itoa(i+1)+"_HG_ANODE"+NPL::itoa(j+1)+"_TIMEOFFSET");
+    }
+  }
 }
 
 
 
 ///////////////////////////////////////////////////////////////////////////
 void TVendetaPhysics::InitializeRootInputRaw() {
-		TChain* inputChain = RootInput::getInstance()->GetChain();
-		inputChain->SetBranchStatus("Vendeta",  true );
-		inputChain->SetBranchAddress("Vendeta", &m_EventData );
+  TChain* inputChain = RootInput::getInstance()->GetChain();
+  inputChain->SetBranchStatus("Vendeta",  true );
+  inputChain->SetBranchAddress("Vendeta", &m_EventData );
 }
 
 
 
 ///////////////////////////////////////////////////////////////////////////
 void TVendetaPhysics::InitializeRootInputPhysics() {
-		TChain* inputChain = RootInput::getInstance()->GetChain();
-		inputChain->SetBranchAddress("Vendeta", &m_EventPhysics);
+  TChain* inputChain = RootInput::getInstance()->GetChain();
+  inputChain->SetBranchAddress("Vendeta", &m_EventPhysics);
 }
 
 
 
 ///////////////////////////////////////////////////////////////////////////
 void TVendetaPhysics::InitializeRootOutput() {
-		TTree* outputTree = RootOutput::getInstance()->GetTree();
-		outputTree->Branch("Vendeta", "TVendetaPhysics", &m_EventPhysics);
+  TTree* outputTree = RootOutput::getInstance()->GetTree();
+  outputTree->Branch("Vendeta", "TVendetaPhysics", &m_EventPhysics);
 }
 
 
@@ -365,7 +374,7 @@ void TVendetaPhysics::InitializeRootOutput() {
 //            Construct Method to be pass to the DetectorFactory              //
 ////////////////////////////////////////////////////////////////////////////////
 NPL::VDetector* TVendetaPhysics::Construct() {
-		return (NPL::VDetector*) new TVendetaPhysics();
+  return (NPL::VDetector*) new TVendetaPhysics();
 }
 
 
@@ -374,14 +383,14 @@ NPL::VDetector* TVendetaPhysics::Construct() {
 //            Registering the construct method to the factory                 //
 ////////////////////////////////////////////////////////////////////////////////
 extern "C"{
-		class proxy_Vendeta{
-				public:
-						proxy_Vendeta(){
-								NPL::DetectorFactory::getInstance()->AddToken("Vendeta","Vendeta");
-								NPL::DetectorFactory::getInstance()->AddDetector("Vendeta",TVendetaPhysics::Construct);
-						}
-		};
-
-		proxy_Vendeta p_Vendeta;
+  class proxy_Vendeta{
+    public:
+      proxy_Vendeta(){
+        NPL::DetectorFactory::getInstance()->AddToken("Vendeta","Vendeta");
+        NPL::DetectorFactory::getInstance()->AddDetector("Vendeta",TVendetaPhysics::Construct);
+      }
+  };
+
+  proxy_Vendeta p_Vendeta;
 }
 
diff --git a/NPSimulation/Detectors/FissionChamber/FissionChamber.cc b/NPSimulation/Detectors/FissionChamber/FissionChamber.cc
index 5bbb7ab2704f136b13c9187fca0423ebc29c31b1..0a9c37f68807aa5e6286682da683448deb06b8a3 100644
--- a/NPSimulation/Detectors/FissionChamber/FissionChamber.cc
+++ b/NPSimulation/Detectors/FissionChamber/FissionChamber.cc
@@ -373,7 +373,6 @@ void FissionChamber::BuildAnode(double Zpos){
   Tv.setZ(Zpos+0.5*FissionChamber_NS::Kapton_Thickness+0.5*FissionChamber_NS::Cu_Thickness);
   m_FissionChamberVolume->AddPlacedVolume(Cu_vol, Tv, Rv);
 
-
 }
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 // Add Detector branch to the EventTree.
@@ -408,6 +407,7 @@ void FissionChamber::ReadSensitive(const G4Event* ){
       m_Event->SetQ1(Energy);
       m_Event->SetQ2(Energy);
       m_Event->SetTime(Time); 
+      m_Event->SetQmax(Energy); 
       m_Event->SetTimeHF(0); 
       m_Event->SetFakeFissionStatus(0); 
     }
diff --git a/Projects/Vendeta/Analysis.cxx b/Projects/Vendeta/Analysis.cxx
index 8acfff0d406584fed01b0add8c3b32220646ba6a..0e777b7ee21632251b3cbed30e3729ed85c2c6a1 100644
--- a/Projects/Vendeta/Analysis.cxx
+++ b/Projects/Vendeta/Analysis.cxx
@@ -1,23 +1,23 @@
 /*****************************************************************************
-	* Copyright (C) 2009-2016    this file is part of the NPTool Project        *
-	*                                                                           *
-	* For the licensing terms see $NPTOOL/Licence/NPTool_Licence                *
-	* For the list of contributors see $NPTOOL/Licence/Contributors             *
-	*****************************************************************************/
+ * Copyright (C) 2009-2016    this file is part of the NPTool Project        *
+ *                                                                           *
+ * For the licensing terms see $NPTOOL/Licence/NPTool_Licence                *
+ * For the list of contributors see $NPTOOL/Licence/Contributors             *
+ *****************************************************************************/
 
 /*****************************************************************************
-	* Original Author: XAUTHORX  contact address: XMAILX                        *
-	*                                                                           *
-	* Creation Date  : XMONTHX XYEARX                                           *
-	* Last update    :                                                          *
-	*---------------------------------------------------------------------------*
-	* Decription:                                                               *
-	*  This class describe  Vendeta analysis project                       *
-	*                                                                           *
-	*---------------------------------------------------------------------------*
-	* Comment:                                                                  *
-	*                                                                           *
-	*****************************************************************************/
+ * Original Author: XAUTHORX  contact address: XMAILX                        *
+ *                                                                           *
+ * Creation Date  : XMONTHX XYEARX                                           *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription:                                                               *
+ *  This class describe  Vendeta analysis project                       *
+ *                                                                           *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *****************************************************************************/
 
 #include<iostream>
 using namespace std;
@@ -36,250 +36,377 @@ Analysis::~Analysis(){
 
 ////////////////////////////////////////////////////////////////////////////////
 void Analysis::Init(){
-		InitOutputBranch();
+  InitOutputBranch();
 
-		Vendeta= (TVendetaPhysics*) m_DetectorManager->GetDetector("Vendeta");
-		FC= (TFissionChamberPhysics*) m_DetectorManager->GetDetector("FissionChamber");
+  Vendeta= (TVendetaPhysics*) m_DetectorManager->GetDetector("Vendeta");
+  FC= (TFissionChamberPhysics*) m_DetectorManager->GetDetector("FissionChamber");
 
-		neutron = new NPL::Particle("1n");
+  neutron = new NPL::Particle("1n");
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 void Analysis::TreatEvent(){
 
-		ReInitValue();
+  ReInitValue();
 
-		unsigned int FC_mult = FC->AnodeNumber.size();
-		unsigned int HF_mult = FC->Time_HF.size();
+  unsigned int FC_mult = FC->AnodeNumber.size();
+  unsigned int HF_mult = FC->Time_HF.size();
 
-		// Run 11
-		//double GammaOffset[11] = {971.37, 970.67, 972.73, 972.59, 989.33, 982.03, 970.73, 985.13, 980.03, 976.83, 983.93};
+  // Run 11
+  //double GammaOffset[11] = {971.37, 970.67, 972.73, 972.59, 989.33, 982.03, 970.73, 985.13, 980.03, 976.83, 983.93};
 
-		// Run 25++
-		//double GammaOffset[11] = {969.58, 969.11, 975.03, 974.75, 978.90, 978.16, 967.34, 977.2, 981.14, 983.04, 982.32};
+  // Run 25++
+  //double GammaOffset[11] = {969.58, 969.11, 975.03, 974.75, 978.90, 978.16, 967.34, 977.2, 981.14, 983.04, 982.32};
 
-		// Run 59++
-		//		double GammaOffset[11] = {969.28, 968.81, 987.43, 974.45, 994.30, 977.86, 980.25, 986.97, 996.30, 998.58, 997.12};
+  // Run 59++
+  //		double GammaOffset[11] = {969.28, 968.81, 987.43, 974.45, 994.30, 977.86, 980.25, 986.97, 996.30, 998.58, 997.12};
 
-		//Run 85+-
-		double GammaOffset[11] = {981.25, 980.88, 988.35, 978.45, 997.40, 982.01, 992.7, 995.18, 995.27, 997.45, 993.0};
+  //Run 87
+  //		double GammaOffset[11] = {973.3, 972.81, 989.33, 978.45, 997.40, 982.01, 993.82, 995.10, 997.25, 999.25, 994.8};
 
+  //Run 94++
+  //  double GammaOffset[11] = {977.27, 976.72, 995.38, 984.38, 1007.49, 995.91, 999.38, 995.30, 1003.12, 999.25, 998.84};
 
-		double incomingDT=0;
-		double incomingE=0;
-		double flight_path = 21500.;
-		/*for(unsigned int j=0; j<HF_mult; j++){
-				for(unsigned int i=0; i<FC_mult; i++){
-						incomingDT = FC->Time[i] - FC->Time_HF[j] - GammaOffset[FC->AnodeNumber[i]-1];
-						if(incomingDT<0){
-							incomingDT += 1790;
-						}
-						double length = flight_path;// + 6*FC->AnodeNumber[i];	
-						neutron->SetBeta((length/incomingDT) / c_light);
-						incomingE = neutron->GetEnergy();
+  //Run 102++
+  //double GammaOffset[11] = {975.14, 974.69, 985.36, 974.37, 1001.16, 987.81, 999.6, 997.08, 1001.04, 1003.2, 996.54};
 
-						inToF.push_back(incomingDT);
-						inEnergy.push_back(incomingE);
-				}
+  //Run 110++
+ /* double GammaOffset[11] = {975.14, 974.69, 985.36, 974.37, 1001.16, 987.81, 999.6, 993.04, 1001.04, 1003.2, 996.54}; */
+  
+	//Run 120++
+   /* double GammaOffset[11] = {975.298, 974.871, 985.779, 974.52, 996.487, 987.831, 1001.131, 993.013, 1001.013, 1001.964, 995.565}; */
+
+  //Run 131-133
+  double GammaOffset[11]={975.1, 974.97, 984.78, 974.7, 998.4, 987.8, 1002.6, 993.73, 1000.3, 1001.16, 995.17};
+  double FakeFission_Offset = 987.94;
+
+	//Run 135-137 (2.3 us pulse)
+	/* double GammaOffset[11] = {1511.931, 1511.552, 1521.525, 1511.366, 1534.876 ,1524.462,1539.23, 1530.338, 1536.912, 1537.882, 1531.938}; */
+
+	//Run 140++ 
+  // double GammaOffset[11] = {975.1,975,988.6,978.7,998.3,983.7,1002.4,997.5,996.1,997.4,991.1};
+
+  //Run 144 part 4 ++  (2.3 us pulse)
+  /* double GammaOffset[11] = {1507.98, 1507.94, 1525.7, 1515.59, 1535.15,1520.7,1530.48, 1534.12, 1532.71, 1534.08, 1528.07}; */
+
+	double incomingDT=0;
+	double incomingE=0;
+	double flight_path = 21500.;
+	/*for(unsigned int j=0; j<HF_mult; j++){
+		for(unsigned int i=0; i<FC_mult; i++){
+		incomingDT = FC->Time[i] - FC->Time_HF[j] - GammaOffset[FC->AnodeNumber[i]-1];
+		if(incomingDT<0){
+		incomingDT += 1790;
+		}
+		double length = flight_path;// + 6*FC->AnodeNumber[i];	
+		neutron->SetBeta((length/incomingDT) / c_light);
+		incomingE = neutron->GetEnergy();
+
+		inToF.push_back(incomingDT);
+		inEnergy.push_back(incomingE);
+		}
 		}*/
 
-		/*if(FC_mult==2){
-				double HF1, HF2;
-				for(int i=0; i<2; i++){
-						HF1 = FC->Time[0] - FC->Time_HF[0];
-						HF2 = FC->Time[1] - FC->Time_HF[1];
-				}
-				if(FC->AnodeNumber[0]>0 && FC->AnodeNumber[1]>0 && HF1<1790 && HF2<1790)
-					cout << FC->AnodeNumber[0] << " / " << FC->AnodeNumber[1] << endl;
+	/*if(FC_mult==2){
+		double HF1, HF2;
+		for(int i=0; i<2; i++){
+		HF1 = FC->Time[0] - FC->Time_HF[0];
+		HF2 = FC->Time[1] - FC->Time_HF[1];
+		}
+		if(FC->AnodeNumber[0]>0 && FC->AnodeNumber[1]>0 && HF1<1790 && HF2<1790)
 		}*/
 
-		if(FC_mult>0){
-
-				int anode = FC->AnodeNumber[0];
-				double Time_FC = FC->Time[0];
-				bool isFake = FC->isFakeFission[0];
-				
-				incomingDT = FC->Time[0] - FC->Time_HF[0];
-				if(anode>0) incomingDT -= GammaOffset[anode-1];
-				if(incomingDT<0){
-						incomingDT += 1790;
-				}
-				double length = flight_path;// + 6*FC->AnodeNumber[i];	
-				neutron->SetBeta((length/incomingDT) / c_light);
-				incomingE = neutron->GetEnergy();
-
-				inToF.push_back(incomingDT);
-				inEnergy.push_back(incomingE);
-
-				FC_Q1.push_back(FC->Q1[0]);
-				FC_Q2.push_back(FC->Q2[0]);
-				FC_Qmax.push_back(FC->Qmax[0]);
-				FC_DT.push_back(FC->DT_FC[0]);
-				FC_FakeFission.push_back(FC->isFakeFission[0]);
-				FC_Anode_ID.push_back(anode);
-
-				Vendeta->SetAnodeNumber(anode);
-				Vendeta->BuildPhysicalEvent();
-
-				// VENDETA LG 
-				unsigned int Vendeta_LG_mult = Vendeta->LG_DetectorNumber.size();
-				for(unsigned int i=0; i<Vendeta_LG_mult; i++){
-
-						int DetNbr          = Vendeta->LG_DetectorNumber[i];
-						double Time_Vendeta = Vendeta->LG_Time[i];
-						double Rdet         = Vendeta->GetDistanceFromTarget(DetNbr);
-						TVector3 DetPos     = Vendeta->GetVectorDetectorPosition(DetNbr);
-
-						double DT = Time_Vendeta - Time_FC;// + ToF_Shift_Vendlg[DetNbr-1];
-
-						if(DT>-500){
-
-								double DeltaTheta = atan(63.5/Rdet);
-								double Theta_Vendeta = DetPos.Theta();
-								double Theta_random = ra.Uniform(Theta_Vendeta-DeltaTheta,Theta_Vendeta+DeltaTheta);
-								//cout << DetNbr << " " << Rdet << endl;
-								//neutron->SetTimeOfFlight(DT*1e-9/(Rdet*1e-3));
-								//neutron->SetTimeOfFlight(DT*1e-9/(0.55));
-								neutron->SetBeta(  (Rdet/DT) / c_light); 
-
-								double En = neutron->GetEnergy();
-
-								// Filling output tree
-								LG_Tof.push_back(DT);
-								LG_ID.push_back(DetNbr);
-								LG_ELab.push_back(En);
-								LG_ThetaLab.push_back(Theta_random);
-								LG_Q1.push_back(Vendeta->LG_Q1[i]);
-								LG_Q2.push_back(Vendeta->LG_Q2[i]);
-								LG_Qmax.push_back(Vendeta->LG_Qmax[i]);
-						}
-				}
-
-				// VENDETA HG 
-				unsigned int Vendeta_HG_mult = Vendeta->HG_DetectorNumber.size();
-				for(unsigned int i=0; i<Vendeta_HG_mult; i++){
-						int DetNbr          = Vendeta->HG_DetectorNumber[i];
-						double Time_Vendeta = Vendeta->HG_Time[i];
-						double Rdet         = Vendeta->GetDistanceFromTarget(DetNbr);
-						TVector3 DetPos     = Vendeta->GetVectorDetectorPosition(DetNbr);
-
-						double DT = Time_Vendeta - Time_FC;// + ToF_Shift_Vendhg[DetNbr-1];
-
-						if(DT>-500){
-								double DeltaTheta = atan(63.5/Rdet);
-								double Theta_Vendeta = DetPos.Theta();
-								double Theta_random = ra.Uniform(Theta_Vendeta-DeltaTheta,Theta_Vendeta+DeltaTheta);
-								//cout << DetNbr << " " << Rdet << endl;
-								//neutron->SetTimeOfFlight(DT*1e-9/(Rdet*1e-3));
-								//neutron->SetTimeOfFlight(DT*1e-9/(0.55));
-								neutron->SetBeta( (Rdet/DT) / c_light); 
-								double En = neutron->GetEnergy();
-
-								// Filling output tree
-								HG_ID.push_back(DetNbr);
-								HG_Tof.push_back(DT);
-								HG_ELab.push_back(En);
-								HG_ThetaLab.push_back(Theta_random);
-								HG_Q1.push_back(Vendeta->HG_Q1[i]);
-								HG_Q2.push_back(Vendeta->HG_Q2[i]);
-								HG_Qmax.push_back(Vendeta->HG_Qmax[i]);
-						}
-				}
-
-				//Process coincidences signals in VENDETA LG / HG
-				if(HG_Tof.size() > 0 && LG_Tof.size() > 0 ){
-						for(int j = 0; j < LG_Tof.size();j++){
-								for(int k = 0; k < HG_Tof.size(); k++){
-										if(abs(HG_Tof[k]-LG_Tof[j]) < 2 && HG_ID[k] == LG_ID[j]){
-												if( HG_Q2[k]>120000){
-														HG_ID[k] = -1;
-														HG_Tof[k] = - 100000;
-														HG_ELab[k] = - 100000;
-														HG_ThetaLab[k] = - 100000;
-														HG_Q1[k] = - 100000;
-														HG_Q2[k] = - 100000;
-														HG_Qmax[k] = - 100000;
-												}  
-												else if( HG_Q2[k]<120000){
-														LG_ID[j] = -1;
-														LG_Tof[j] = - 100000;
-														LG_ELab[j] = - 100000;
-														LG_ThetaLab[j] = - 100000;
-														LG_Q1[j] = - 100000;
-														LG_Q2[j] = - 100000;
-														LG_Qmax[j] = - 100000;
-
-												}
-										}
-								}
-						}
-				} // if LG && HG*/
-
-		}// if FC = 1
+	if(FC_mult>0){
+		int EventMax=0;
+		
+		// double AnodeMaxQ=0;
+		// for(unsigned int i=0;i<FC_mult;i++)
+		//   {
+		//     if(FC->AnodeNumber[i]==7) EventMax=i;
+		// 	   //	if(AnodeMaxQ<AnodeQ) {EventMax=i; AnodeMaxQ=AnodeQ;}
+    //   }
+
+    int anode = FC->AnodeNumber[EventMax];
+    double Time_FC = FC->Time[EventMax];
+    bool isFake = FC->isFakeFission[EventMax];
+    double Time_HF = FC->Time_HF[EventMax];
+    incomingDT = FC->Time[EventMax] - FC->Time_HF[EventMax];
+    TVector3 AnodePos = FC->GetVectorAnodePosition(6);
+   
+    if(anode>0){ 
+      incomingDT -= GammaOffset[anode-1];
+      AnodePos = FC->GetVectorAnodePosition(anode);
+    }
+    else if(anode ==0){
+      incomingDT -= FakeFission_Offset;
+    }
+    /* if(FC_mult==3){ */
+    /*   double inDT2 = FC->Time[1] -FC->Time_HF[1] - GammaOffset[FC->AnodeNumber[1]-1]; */
+    /*   double inDT3 = FC->Time[2] -FC->Time_HF[2] - GammaOffset[FC->AnodeNumber[2]-1]; */
+    /*   if( incomingDT - inDT2 > 0 ) */
+    /* } */
+
+    if(incomingDT<0){
+      incomingDT += 1790;
+      /* incomingDT += 2325; */
+    }
+
+    double length = flight_path;// + 6*FC->AnodeNumber[i];	
+    neutron->SetBeta((length/incomingDT) / c_light);
+    incomingE = neutron->GetEnergy();
+
+    inToF.push_back(incomingDT);
+    inEnergy.push_back(incomingE);
+
+    FC_Q1.push_back(FC->Q1[EventMax]);
+    FC_Q2.push_back(FC->Q2[EventMax]);
+    FC_Qmax.push_back(FC->Qmax[EventMax]);
+    FC_DT.push_back(FC->DT_FC[EventMax]);
+    FC_FakeFission.push_back(FC->isFakeFission[EventMax]);
+    FC_Anode_ID.push_back(anode);
+    
+    /* FC_Time.push_back(FC->Time[EventMax]); */
+    /* HF_Time.push_back(FC->Time_HF[EventMax]); */
+
+    Vendeta->SetAnodeNumber(anode);
+    Vendeta->BuildPhysicalEvent();
+
+    // VENDETA LG 
+    unsigned int Vendeta_LG_mult = Vendeta->LG_DetectorNumber.size();
+    for(unsigned int i=0; i<Vendeta_LG_mult; i++){
+
+      int DetNbr          = Vendeta->LG_DetectorNumber[i];
+      double Time_Vendeta = Vendeta->LG_Time[i];
+      TVector3 DetPos     = Vendeta->GetVectorDetectorPosition(DetNbr);
+      double Rdet         = (DetPos-AnodePos).Mag() + 2 + 0.5*5.1 ; // Aluminum window + cell thickness
+      double DT = Time_Vendeta - Time_FC;// + ToF_Shift_Vendlg[DetNbr-1];
+      
+      if(DT>-500){
+        double DeltaTheta = atan(63.5/Rdet);
+        double Theta_Vendeta = DetPos.Theta();
+        double Theta_random = ra.Uniform(Theta_Vendeta-DeltaTheta,Theta_Vendeta+DeltaTheta);
+        //neutron->SetTimeOfFlight(DT*1e-9/(Rdet*1e-3));
+        //neutron->SetTimeOfFlight(DT*1e-9/(0.55));
+        neutron->SetBeta(  (Rdet/DT) / c_light); 
+
+        double En = neutron->GetEnergy();
+
+        // Filling output tree
+        LG_Tof.push_back(DT);
+        LG_ID.push_back(DetNbr);
+        LG_ELab.push_back(En);
+        LG_ThetaLab.push_back(Theta_random);
+        LG_Q1.push_back(Vendeta->LG_Q1[i]);
+        LG_Q2.push_back(Vendeta->LG_Q2[i]);
+        LG_Qmax.push_back(Vendeta->LG_Qmax[i]);
+        /* LG_Time.push_back(Time_Vendeta); */
+
+      }
+    }
+
+    // VENDETA HG 
+    unsigned int Vendeta_HG_mult = Vendeta->HG_DetectorNumber.size();
+    for(unsigned int i=0; i<Vendeta_HG_mult; i++){
+      int DetNbr          = Vendeta->HG_DetectorNumber[i];
+      double Time_Vendeta = Vendeta->HG_Time[i];
+      TVector3 DetPos     = Vendeta->GetVectorDetectorPosition(DetNbr);
+      double Rdet         = (DetPos-AnodePos).Mag() + 2 + 0.5*5.1 ; // Aluminum window + cell thickness
+      double DT = Time_Vendeta - Time_FC;// + ToF_Shift_Vendhg[DetNbr-1];
+
+      if(DT>-500){
+
+        double DeltaTheta = atan(63.5/Rdet);
+
+        double Theta_Vendeta = DetPos.Theta();
+        double Theta_random = ra.Uniform(Theta_Vendeta-DeltaTheta,Theta_Vendeta+DeltaTheta);
+        //neutron->SetTimeOfFlight(DT*1e-9/(Rdet*1e-3));
+        //neutron->SetTimeOfFlight(DT*1e-9/(0.55));
+        neutron->SetBeta( (Rdet/DT) / c_light); 
+        double En = neutron->GetEnergy();
+        // Filling output tree
+        HG_ID.push_back(DetNbr);
+        HG_Tof.push_back(DT);
+        HG_ELab.push_back(En);
+        HG_ThetaLab.push_back(Theta_random);
+        HG_Q1.push_back(Vendeta->HG_Q1[i]);
+        HG_Q2.push_back(Vendeta->HG_Q2[i]);
+        HG_Qmax.push_back(Vendeta->HG_Qmax[i]);
+        /* HG_Time.push_back(Time_Vendeta); */
+      }
+    }
+
+    //Highlight saturated detectors
+    static vector<int> LG_Saturated, HG_Saturated, LG_T_sat, HG_T_sat; 
+    LG_Saturated.clear(), HG_Saturated.clear(), LG_T_sat.clear(), HG_T_sat.clear();
+    for(int j = 0; j < LG_Tof.size();j++){
+      int lgID = LG_ID[j];
+      if( (lgID %4 < 2) && LG_Q1[j]>500e3){ // 50 Ohm
+        LG_Saturated.push_back(lgID);
+        LG_T_sat.push_back(LG_Tof[j]);
+      }  
+      else if( lgID %4 > 1 && LG_Q1[j]>590e3){ // 70 Ohm
+        LG_Saturated.push_back(lgID);
+        LG_T_sat.push_back(LG_Tof[j]);
+      }
+    }
+    for(int j = 0; j < HG_Tof.size();j++){
+      int hgID = HG_ID[j] ;
+      if( (hgID %4 ==0 || hgID %4 ==1) && HG_Qmax[j] > 23800){
+        HG_Saturated.push_back(hgID);
+        HG_T_sat.push_back(HG_Tof[j]);
+      }  
+      else if( hgID %4 !=0 && hgID %4 !=1 && HG_Qmax[j] > 24300){
+        HG_Saturated.push_back(hgID);
+        HG_T_sat.push_back(HG_Tof[j]);
+      }       
+    }
+    ///////////////////////////////////////////////////
+
+
+    //Removes all signals from saturated detectors 
+    for(int j = 0; j < LG_Saturated.size(); j++){
+      for(int k = 0; k < HG_Tof.size(); k++){
+        if(HG_ID[k] == LG_Saturated[j] && HG_Tof[k] > LG_T_sat[j]){
+          HG_ID[k]       = -1;
+          HG_Tof[k]      =-100000;
+          HG_ELab[k]     =-100000;
+          HG_ThetaLab[k] =-100000;
+          HG_Q1[k]       =-100000;
+          HG_Q2[k]       =-100000;
+          HG_Qmax[k]     =-100000;
+        }
+      }
+      for(int k = 0; k < LG_Tof.size(); k++){
+        if(LG_ID[k] == LG_Saturated[j] && LG_Tof[k] > LG_T_sat[j]){
+          LG_ID[k]       = -1;
+          LG_Tof[k]      =-100000;
+          LG_ELab[k]     =-100000;
+          LG_ThetaLab[k] =-100000;
+          LG_Q1[k]       =-100000;
+          LG_Q2[k]       =-100000;
+          LG_Qmax[k]     =-100000;
+        }
+      }
+    }
+
+    for(int j = 0; j < HG_Saturated.size(); j++){
+      for(int k = 0; k < HG_Tof.size(); k++){
+        if(HG_ID[k] == HG_Saturated[j] && HG_Tof[k] > HG_T_sat[j]){
+          HG_ID[k]       = -1;
+          HG_Tof[k]      =-100000;
+          HG_ELab[k]     =-100000;
+          HG_ThetaLab[k] =-100000;
+          HG_Q1[k]       =-100000;
+          HG_Q2[k]       =-100000;
+          HG_Qmax[k]     =-100000;
+        }
+      }
+    }
+
+    ///////////////////////////////////////////////////
+
+    //Process coincidences signals in VENDETA LG / HG
+    /* if(HG_Tof.size() > 0 && LG_Tof.size() > 0 ){ */
+    /*   for(int j = 0; j < LG_Tof.size();j++){ */
+    /*     for(int k = 0; k < HG_Tof.size(); k++){ */
+    /*       if(abs(HG_Tof[k]-LG_Tof[j]) < 3 && HG_ID[k] == LG_ID[j] && LG_ID[j]>0){ */
+    /*         if( HG_Q1[k]>=120e3){ */
+    /*           HG_ID[k]        = -1; */
+    /*           HG_Tof[k]       = -100000; */
+    /*           HG_ELab[k]      = -100000; */
+    /*           HG_ThetaLab[k]  = -100000; */
+    /*           HG_Q1[k]        = -100000; */
+    /*           HG_Q2[k]        = -100000; */
+    /*           HG_Qmax[k]      = -100000; */
+    /*           /1* HG_Time[k] = - 100000; *1/ */
+    /*         } */  
+    /*         else if( HG_Q1[k]<120e3){ */
+    /*           LG_ID[j]        = -1; */
+    /*           LG_Tof[j]       = -100000; */
+    /*           LG_ELab[j]      = -100000; */
+    /*           LG_ThetaLab[j]  = -100000; */
+    /*           LG_Q1[j]        = -100000; */
+    /*           LG_Q2[j]        = -100000; */
+    /*           LG_Qmax[j]      = -100000; */
+    /*           /1* LG_Time[j] = -100000; *1/ */
+
+    /*         } */
+    /*       } */
+    /*     } */
+    /*   } */
+    /* } // if LG && HG */
+
+  }// if FC = 1
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 void Analysis::InitOutputBranch(){
-		// Incoming neutron
-		RootOutput::getInstance()->GetTree()->Branch("inToF",&inToF);
-		RootOutput::getInstance()->GetTree()->Branch("inEnergy",&inEnergy);
-		
-		// FissionChamber
-		RootOutput::getInstance()->GetTree()->Branch("FC_Q1",&FC_Q1);
-		RootOutput::getInstance()->GetTree()->Branch("FC_Q2",&FC_Q2);
-		RootOutput::getInstance()->GetTree()->Branch("FC_Qmax",&FC_Qmax);
-		RootOutput::getInstance()->GetTree()->Branch("FC_DT",&FC_DT);
-		RootOutput::getInstance()->GetTree()->Branch("FC_FakeFission",&FC_FakeFission);
-		RootOutput::getInstance()->GetTree()->Branch("FC_Anode_ID",&FC_Anode_ID);
-
-		// LG 
-		RootOutput::getInstance()->GetTree()->Branch("LG_ID",&LG_ID);
-		RootOutput::getInstance()->GetTree()->Branch("LG_ThetaLab",&LG_ThetaLab);
-		RootOutput::getInstance()->GetTree()->Branch("LG_ELab",&LG_ELab);
-		RootOutput::getInstance()->GetTree()->Branch("LG_Tof",&LG_Tof);
-		RootOutput::getInstance()->GetTree()->Branch("LG_Q1",&LG_Q1);
-		RootOutput::getInstance()->GetTree()->Branch("LG_Q2",&LG_Q2);
-		RootOutput::getInstance()->GetTree()->Branch("LG_Qmax",&LG_Qmax);
-
-		// HG
-		RootOutput::getInstance()->GetTree()->Branch("HG_ID",&HG_ID);
-		RootOutput::getInstance()->GetTree()->Branch("HG_ThetaLab",&HG_ThetaLab);
-		RootOutput::getInstance()->GetTree()->Branch("HG_ELab",&HG_ELab);
-		RootOutput::getInstance()->GetTree()->Branch("HG_Tof",&HG_Tof);
-		RootOutput::getInstance()->GetTree()->Branch("HG_Q1",&HG_Q1);
-		RootOutput::getInstance()->GetTree()->Branch("HG_Q2",&HG_Q2);
-		RootOutput::getInstance()->GetTree()->Branch("HG_Qmax",&HG_Qmax);
+  // Incoming neutron
+  RootOutput::getInstance()->GetTree()->Branch("inToF",&inToF);
+  RootOutput::getInstance()->GetTree()->Branch("inEnergy",&inEnergy);
+
+  // FissionChamber
+  RootOutput::getInstance()->GetTree()->Branch("FC_Q1",&FC_Q1);
+  RootOutput::getInstance()->GetTree()->Branch("FC_Q2",&FC_Q2);
+  RootOutput::getInstance()->GetTree()->Branch("FC_Qmax",&FC_Qmax);
+  RootOutput::getInstance()->GetTree()->Branch("FC_DT",&FC_DT);
+  RootOutput::getInstance()->GetTree()->Branch("FC_FakeFission",&FC_FakeFission);
+  RootOutput::getInstance()->GetTree()->Branch("FC_Anode_ID",&FC_Anode_ID);
+  /* RootOutput::getInstance()->GetTree()->Branch("FC_Time",&FC_Time); */
+  /* RootOutput::getInstance()->GetTree()->Branch("HF_Time",&HF_Time); */
+
+  // LG 
+  RootOutput::getInstance()->GetTree()->Branch("LG_ID",&LG_ID);
+  RootOutput::getInstance()->GetTree()->Branch("LG_ThetaLab",&LG_ThetaLab);
+  RootOutput::getInstance()->GetTree()->Branch("LG_ELab",&LG_ELab);
+  RootOutput::getInstance()->GetTree()->Branch("LG_Tof",&LG_Tof);
+  RootOutput::getInstance()->GetTree()->Branch("LG_Q1",&LG_Q1);
+  RootOutput::getInstance()->GetTree()->Branch("LG_Q2",&LG_Q2);
+  RootOutput::getInstance()->GetTree()->Branch("LG_Qmax",&LG_Qmax);
+  /* RootOutput::getInstance()->GetTree()->Branch("LG_Time",&LG_Time); */
+
+  // HG
+  RootOutput::getInstance()->GetTree()->Branch("HG_ID",&HG_ID);
+  RootOutput::getInstance()->GetTree()->Branch("HG_ThetaLab",&HG_ThetaLab);
+  RootOutput::getInstance()->GetTree()->Branch("HG_ELab",&HG_ELab);
+  RootOutput::getInstance()->GetTree()->Branch("HG_Tof",&HG_Tof);
+  RootOutput::getInstance()->GetTree()->Branch("HG_Q1",&HG_Q1);
+  RootOutput::getInstance()->GetTree()->Branch("HG_Q2",&HG_Q2);
+  RootOutput::getInstance()->GetTree()->Branch("HG_Qmax",&HG_Qmax);
+  /* RootOutput::getInstance()->GetTree()->Branch("HG_Time",&HG_Time); */
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 void Analysis::ReInitValue(){
-		inToF.clear();
-		inEnergy.clear();
-
-		LG_ThetaLab.clear();
-		LG_ELab.clear();
-		LG_Tof.clear();
-		LG_ID.clear();
-		LG_Q1.clear();
-		LG_Q2.clear();
-		LG_Qmax.clear();
-
-		HG_ThetaLab.clear();
-		HG_ELab.clear();
-		HG_Tof.clear();
-		HG_ID.clear();
-		HG_Q1.clear();
-		HG_Q2.clear();
-		HG_Qmax.clear();
-
-		FC_Q1.clear();
-		FC_Q2.clear();
-		FC_Qmax.clear();
-		FC_DT.clear();
-		FC_FakeFission.clear();
-		FC_Anode_ID.clear();
-
-
+  inToF.clear();
+  inEnergy.clear();
+
+  LG_ThetaLab.clear();
+  LG_ELab.clear();
+  LG_Tof.clear();
+  LG_ID.clear();
+  LG_Q1.clear();
+  LG_Q2.clear();
+  LG_Qmax.clear();
+  /* LG_Time.clear(); */
+
+  HG_ThetaLab.clear();
+  HG_ELab.clear();
+  HG_Tof.clear();
+  HG_ID.clear();
+  HG_Q1.clear();
+  HG_Q2.clear();
+  HG_Qmax.clear();
+  /* HG_Time.clear(); */
+
+  FC_Q1.clear();
+  FC_Q2.clear();
+  FC_Qmax.clear();
+  FC_DT.clear();
+  FC_FakeFission.clear();
+  FC_Anode_ID.clear();
+  /* FC_Time.clear(); */
+  /* HF_Time.clear(); */
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -291,20 +418,20 @@ void Analysis::End(){
 //            Construct Method to be pass to the DetectorFactory              //
 ////////////////////////////////////////////////////////////////////////////////
 NPL::VAnalysis* Analysis::Construct(){
-		return (NPL::VAnalysis*) new Analysis();
+  return (NPL::VAnalysis*) new Analysis();
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 //            Registering the construct method to the factory                 //
 ////////////////////////////////////////////////////////////////////////////////
 extern "C"{
-		class proxy{
-				public:
-						proxy(){
-								NPL::AnalysisFactory::getInstance()->SetConstructor(Analysis::Construct);
-						}
-		};
-
-		proxy p;
+  class proxy{
+    public:
+      proxy(){
+        NPL::AnalysisFactory::getInstance()->SetConstructor(Analysis::Construct);
+      }
+  };
+
+  proxy p;
 }