]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONTriggerCircuit.cxx
Added protection and 2 levels for problems
[u/mrichter/AliRoot.git] / MUON / AliMUONTriggerCircuit.cxx
index 316244c111c9f45593af92939c6b501e12c4eb5a..55b763350f85e767b6cf9f4cb8e03f9cfd87d0fb 100644 (file)
 /// the X positions of the (doubled or not) Y strips.
 /// This is used to associate the global positions to the fired strips of the 
 /// local trigger output (see AliMUONTrackReconstructor::MakeTriggerTrack)
+///
+/// \author Philippe Crochet (LPCCFd)
 
 #include "AliMUONTriggerCircuit.h"
-#include "AliMUON.h"
-#include "AliMUONConstants.h"
 #include "AliMUONLocalTriggerBoard.h"
 #include "AliMUONTriggerCrateStore.h"
 #include "AliMUONTriggerCrate.h"
 #include "AliMpPCB.h"
 #include "AliMpSegmentation.h"
 #include "AliMpVSegmentation.h"
+#include "AliMpCathodType.h"
 
 #include "AliRun.h"
 #include "AliLog.h"
 
 #include <TMath.h>
+#include <Riostream.h>
 
 /// \cond CLASSIMP
 ClassImp(AliMUONTriggerCircuit)
@@ -145,7 +147,8 @@ void AliMUONTriggerCircuit::LoadYPos(const AliMUONTriggerCrateStore& crates)
   DecodeBoardName(localBoard->GetName(),side,iline,icol);
   
   Int_t detElemId = DetElemId(ichamber,side,iline);
-  seg = AliMpSegmentation::Instance()->GetMpSegmentation(detElemId, icathode);  
+  seg = AliMpSegmentation::Instance()
+        ->GetMpSegmentation(detElemId, AliMp::GetCathodType(icathode));  
 
   Int_t iFirstStrip = FirstStrip(localBoard->GetName());
   Int_t iLastStrip = iFirstStrip + 16;    
@@ -157,7 +160,8 @@ void AliMUONTriggerCircuit::LoadYPos(const AliMUONTriggerCrateStore& crates)
   ichamber = 12;
   
   detElemId = DetElemId(ichamber,side,iline);
-  seg = AliMpSegmentation::Instance()->GetMpSegmentation(detElemId, icathode);  
+  seg = AliMpSegmentation::Instance()
+        ->GetMpSegmentation(detElemId, AliMp::GetCathodType(icathode));  
 
   // second plane middle part
   Int_t iFirstStripMiddle = FirstStrip(localBoard->GetName());
@@ -179,7 +183,8 @@ void AliMUONTriggerCircuit::LoadYPos(const AliMUONTriggerCrateStore& crates)
       //           icolUp = icol;
     } else {             // upper strips in another detElemId
       detElemId = DetElemId(ichamber,side,iline+1); // get detElemId
-      seg = AliMpSegmentation::Instance()->GetMpSegmentation(detElemId, icathode);  
+      seg = AliMpSegmentation::Instance()
+            ->GetMpSegmentation(detElemId, AliMp::GetCathodType(icathode));  
 
       iFirstStripUp = 0;
       iLastStripUp = iFirstStripUp + 8;
@@ -197,7 +202,8 @@ void AliMUONTriggerCircuit::LoadYPos(const AliMUONTriggerCrateStore& crates)
   
   // restore current detElemId & segmentation
   detElemId = DetElemId(ichamber,side,iline); 
-  seg = AliMpSegmentation::Instance()->GetMpSegmentation(detElemId, icathode);  
+  seg = AliMpSegmentation::Instance()
+        ->GetMpSegmentation(detElemId, AliMp::GetCathodType(icathode));  
 
   // second plane lower part
   if (zeroDown == 0) { // something down
@@ -213,7 +219,8 @@ void AliMUONTriggerCircuit::LoadYPos(const AliMUONTriggerCrateStore& crates)
       //           icolDo = icol;
     } else {             // lower strips in another detElemId 
       detElemId = DetElemId(ichamber,side,iline-1); // get detElemId
-      seg = AliMpSegmentation::Instance()->GetMpSegmentation(detElemId, icathode);  
+      seg = AliMpSegmentation::Instance()
+            ->GetMpSegmentation(detElemId, AliMp::GetCathodType(icathode));  
 
       // get iFirstStrip in this module 
       const AliMpTriggerSegmentation* trig = (AliMpTriggerSegmentation*)(seg);
@@ -273,7 +280,8 @@ void AliMUONTriggerCircuit::LoadXPos(const AliMUONTriggerCrateStore& crates)
   DecodeBoardName(localBoard->GetName(),side,iline,icol);
   
   Int_t detElemId=DetElemId(ichamber,side,iline); // get detElemId
-  seg = AliMpSegmentation::Instance()->GetMpSegmentation(detElemId, icathode);  
+  seg = AliMpSegmentation::Instance()
+        ->GetMpSegmentation(detElemId, AliMp::GetCathodType(icathode));  
 
   // check if one needs a strip doubling or not
   if ( (x2u == 1 || x2m == 1 || x2d == 1) && x2m == 1) doubling = kTRUE;