diff --git a/FullSimLight/include/ATL.hh b/FullSimLight/include/ATL.hh
index d169306599bf9eb809e36dd739fb93e1ffc6d65a..f16126507c7f07d6279cbb0fb6e7ee4ceca6e69c 100644
--- a/FullSimLight/include/ATL.hh
+++ b/FullSimLight/include/ATL.hh
@@ -47,8 +47,9 @@ private:
   double delta;
   G4Track* track;
 
+  G4double bRmin;
   G4double bRmax;
-  G4double mZmax;
+  G4double bZmax;
 
   G4double maxAcceptedEpsilon;
   G4double lowEepsMin;
diff --git a/FullSimLight/src/ATL.cc b/FullSimLight/src/ATL.cc
index b8e6dfc5170df2e77f900a44b7e990c6e4277b69..dab08b2c7032e99220bb360448a03c0bbfbae103 100644
--- a/FullSimLight/src/ATL.cc
+++ b/FullSimLight/src/ATL.cc
@@ -4,7 +4,7 @@
 
 ATL::ATL() {
       G4FieldManager* fieldMgr = G4TransportationManager::GetTransportationManager()->GetFieldManager();
-      G4cout << " PRINTING from ATL \nDeltaIntersection:  " << fieldMgr->GetDeltaIntersection() / mm << " mm" << G4endl;
+      G4cout << " PRINTING from ATL (Default values) \nDeltaIntersection:  " << fieldMgr->GetDeltaIntersection() / mm << " mm" << G4endl;
       G4cout << "DeltaOneStep " << fieldMgr->GetDeltaOneStep() / mm << " mm" << G4endl;
       G4cout << "EpsilonMin: " << fieldMgr->GetMinimumEpsilonStep() / mm << " mm" << G4endl;
       G4cout << "EpsilonMax: " << fieldMgr->GetMaximumEpsilonStep() / mm << " mm" << G4endl;
@@ -18,26 +18,45 @@ bool ATL::isInsideBeampipe(const G4Track *track) {
      const double y = pos.y();
      const double z = pos.z();
 
-     const G4double bRmax = 120.0, bZmax = 3545.0; 
+// Define the boundary pairs for the beampipe region (R, Z)
+    std::vector<std::pair<G4double, G4double>> beamPipeBoundaries = {
+        {34.3, 3475.0},
+        {120.0, 3475.0},
+        {120.0, 4185.0},
+        {41.0, 4185.0},
+        {41.0, 6783.0},
+        {70.0, 6783.0},
+        {70.0, 12900.0},
+        {279.0, 12900.0},
+        {279.0, 18650.0},
+        {436.0, 18650.0},
+        {436.0, 22030.0},
+        {1050.0, 22030.0},
+        {1050.0, 26046.0},
+        {0.0, 26046.0}
+    };
+    // Iterate through each boundary pair
+    for (const auto &boundary : beamPipeBoundaries) {
+        G4double bRmax = boundary.first; // Radial boundary
+        G4double bZmax = boundary.second; // Z-coordinate boundary
 
-     if ((x * x + y * y < bRmax) && (std::abs(pos.z()) < bZmax)) {
+     if ((x * x + y * y < bRmax * bRmax) && (std::abs(pos.z()) < bZmax)) {
            G4Region *reg = track->GetVolume()->GetLogicalVolume()->GetRegion();
            G4cout << "From isInsideBeampipe: Track is in the Beampipe region. \n"<< reg->GetName()<<" at X: "<<pos.x()<<" Y: "<<pos.y()<< "& Z : " <<pos.z() << G4endl;
            return true;
      } 
-     else {
-            G4cout << "Track is NOT in the Beampipe region. X: " << pos.x() << "Y: " << pos.y() << " Z: " << pos.z() << " \n";
-        return false;
-     }
-}     
+    }
+           G4cout << "Track is NOT in the Beampipe region. X: " << pos.x() << "Y: " << pos.y() << " Z: " << pos.z() << " \n";
+            return false;    
+}
 bool ATL::isInsideTracker(const G4Track *track) {
      const G4ThreeVector &pos = track->GetPosition();
      const double x = pos.x();
      const double y = pos.y();
      const double z = pos.z();
-     const G4double bRmax = 1148.0, bZmax = 3475.0;
+     const G4double bRmin = 34.3, bRmax = 1148.0, bZmax = 3475.0; //Rin and Rout
 
-     if ((x * x + y * y < bRmax) && (std::abs(pos.z()) < bZmax)) {
+     if ((x * x + y * y >= bRmin * bRmin) && (x * x + y * y <= bRmax * bRmax) && (std::abs(pos.z()) < bZmax)) {
            G4Region *reg = track->GetVolume()->GetLogicalVolume()->GetRegion();
            G4cout << "From isInsideTracker: Track is in the Tracker region. \n"<< reg->GetName()<<" at X: "<<pos.x()<<" Y: "<<pos.y()<< "& Z : " <<pos.z() << G4endl;
            return true;
@@ -51,7 +70,7 @@ void ATL::ConfigureForTrack(const G4Track *track) {
       isInsideBeampipe(track);
       isInsideTracker(track);
       //BeamPipe
-      const G4double lowEepsMin= 1.0e-5, lowEepsMax= 1.0e-4;  //Below energy threshold values- dummy energy threshold 2.5 MeV//////low-Beampipe, hi-Tracker and default for others
+      const G4double lowEepsMin= 1.0e-5, lowEepsMax= 1.0e-4;  //Below energy threshold values//////low-Beampipe, hi-Tracker and default for others
       const G4double lowDeltaIntersection= 0.0004, lowDeltaOneStep= 0.001;
       const G4double lowDeltaChord= 0.001, lowMaxStep=200;
       //Tracker
@@ -64,9 +83,9 @@ void ATL::ConfigureForTrack(const G4Track *track) {
       const G4double defaultDeltaChord= 0.001, defaultMaxStep=200;
 
       //Energy Threshold and position  - All 4 parameters (Eps min./max. additional)
-      //3 energy ranges, 1. E<15MeV, 2. E>15MeV-200 MeV, 3. E>200MeV
+      //3 energy ranges, 1. E<15MeV, 2. E>15MeV-200 MeV, 3. E>200MeV///////// Threshold Energy 15 MeV & 200 MeV
       //3 Set of Parameters according to accuracy, 1st Set goood for E>200MeV, 2nd low accuracy for E<15MeV, 3rd for medium accuracy 
-      if( track->GetKineticEnergy() <=200.0 * MeV && isInsideBeampipe(track)) {   
+      if( track->GetKineticEnergy() <=15.0 * MeV || isInsideBeampipe(track)) {   
       SetMinimumEpsilonStep( lowEepsMin );
       SetMaximumEpsilonStep( lowEepsMax ); 
       SetDeltaIntersection(lowDeltaIntersection);
@@ -98,12 +117,9 @@ void ATL::ConfigureForTrack(const G4Track *track) {
       G4cout << "EpsilonMax: " << GetMaximumEpsilonStep() / mm << " mm" << G4endl;
       G4cout << "DeltaChord: " << G4TransportationManager::GetTransportationManager()->GetPropagatorInField()->GetChordFinder()->GetDeltaChord() / mm << " mm" << G4endl;
       G4cout << "MaxStep / LargestAcceptableStep: " << G4TransportationManager::GetTransportationManager()->GetPropagatorInField()->GetLargestAcceptableStep() / mm << " mm" << G4endl;
-}
-  
+}  
 void ATL::print()
 //void ATL::ConstructSDandField()
 { //In case if we want to print the additional information in future 
 	//G4FieldManager* fieldMgr = G4TransportationManager::GetTransportationManager()->GetFieldManager();
- 	//fieldMgr->ConfigureForTrack(track);
-  //G4cout << " ATL ATL ATL ATL ATL ATL ATL ATL ATL ATL ATL ATL ATL ATL " << fieldMgr->GetDeltaIntersection() / mm << " mm" << G4endl;
 }
\ No newline at end of file