Change interface for TriggerCircuit class (Christian)
authorivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 21 Jun 2007 15:10:59 +0000 (15:10 +0000)
committerivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 21 Jun 2007 15:10:59 +0000 (15:10 +0000)
MUON/AliMUONReconstructor.cxx
MUON/AliMUONReconstructor.h
MUON/AliMUONTracker.cxx
MUON/AliMUONTracker.h
MUON/AliMUONVTrackReconstructor.cxx
MUON/AliMUONVTrackReconstructor.h

index f829484..f840174 100644 (file)
@@ -247,17 +247,9 @@ AliMUONReconstructor::CreateTriggerCircuit() const
 
   AliMUONStopwatchGroupElement timer(fTimers,"MUON","AliMUONReconstructor::CreateTriggerCircuit()");
 
-  fTriggerCircuit = new TClonesArray("AliMUONTriggerCircuit", 234);
-  for (Int_t i = 0; i < AliMUONConstants::NTriggerCircuit(); i++)  
-  {
-    AliMUONTriggerCircuit c;
-    c.SetTransformer(fTransformer);
-    c.Init(i,*(CrateManager()));
-    TClonesArray& circuit = *fTriggerCircuit;
-    new(circuit[circuit.GetEntriesFast()]) AliMUONTriggerCircuit(c);  
-  }
-}
+  fTriggerCircuit = new AliMUONTriggerCircuit(fTransformer);
 
+}
 //_____________________________________________________________________________
 AliTracker* 
 AliMUONReconstructor::CreateTracker(AliRunLoader* runLoader) const
index ca65564..8e4536e 100644 (file)
@@ -89,7 +89,7 @@ private:
   mutable AliMUONDigitMaker* fDigitMaker; //!< Raw to Digits converter
   AliMUONGeometryTransformer* fTransformer; //!< Geometry transformer (local<->global)
   mutable AliMUONVDigitStore* fDigitStore; //!< Digit container
-  mutable TClonesArray* fTriggerCircuit; //!< Trigger Circuit
+  mutable AliMUONTriggerCircuit* fTriggerCircuit; //!< Trigger Circuit
   mutable AliMUONCalibrationData* fCalibrationData; //!< Calibration data
   mutable AliMUONDigitCalibrator* fDigitCalibrator; //!<  Digit to calibrate digit converter
   mutable AliMUONClusterReconstructor* fClusterReconstructor; //!<  Clusterizer
index 5a8d3cb..0ea9374 100644 (file)
@@ -46,7 +46,7 @@
 AliMUONTracker::AliMUONTracker(AliLoader* loader,
                                const AliMUONDigitMaker* digitMaker,
                                const AliMUONGeometryTransformer* transformer,
-                               const TClonesArray* triggerCircuit)
+                               const AliMUONTriggerCircuit* triggerCircuit)
 : AliTracker(),
   fLoader(loader),
   fDigitMaker(digitMaker), // not owner
index a2499ca..61ab7a3 100644 (file)
@@ -18,11 +18,11 @@ class AliLoader;
 class AliMUONDigitMaker;
 class AliMUONGeometryTransformer;
 class AliMUONTrackHitPattern;
+class AliMUONTriggerCircuit;
 class AliMUONVClusterStore;
 class AliMUONVTrackReconstructor;
 class AliMUONVTrackStore;
 class AliMUONVTriggerStore;
-class TClonesArray;
 
 class AliMUONTracker : public AliTracker
 {
@@ -31,7 +31,7 @@ class AliMUONTracker : public AliTracker
   AliMUONTracker(AliLoader* loader,
                  const AliMUONDigitMaker* digitMaker=0,
                  const AliMUONGeometryTransformer* transformer=0,
-                 const TClonesArray* triggerCircuit=0);
+                 const AliMUONTriggerCircuit* triggerCircuit=0);
   virtual ~AliMUONTracker();
   
   /// Main entry point.
@@ -66,7 +66,7 @@ private:
   AliLoader* fLoader; //!< loader to get access to trees
   const AliMUONDigitMaker* fDigitMaker; //!< digit maker (not owner)
   const AliMUONGeometryTransformer* fTransformer; //!< geometry transformer (not owner)
-  const TClonesArray* fTriggerCircuit;                //!< trigger circuit (not owner)
+  const AliMUONTriggerCircuit* fTriggerCircuit;                //!< trigger circuit (not owner)
   AliMUONTrackHitPattern* fTrackHitPatternMaker; //!< trigger hit pattern maker
   AliMUONVTrackReconstructor* fTrackReco;       //!< track reconstructor
   AliMUONVClusterStore* fClusterStore; //!< cluster container
index db3d5bc..f682957 100644 (file)
@@ -412,7 +412,7 @@ void AliMUONVTrackReconstructor::ValidateTracksWithTrigger(AliMUONVTrackStore& t
 
 //__________________________________________________________________________
 void 
-AliMUONVTrackReconstructor::EventReconstructTrigger(const TClonesArray& triggerCircuitArray,
+AliMUONVTrackReconstructor::EventReconstructTrigger(const AliMUONTriggerCircuit& circuit,
                                                     const AliMUONVTriggerStore& triggerStore,
                                                     AliMUONVTriggerTrackStore& triggerTrackStore)
 {
@@ -441,6 +441,7 @@ AliMUONVTrackReconstructor::EventReconstructTrigger(const TClonesArray& triggerC
     Bool_t xTrig=kFALSE;
     Bool_t yTrig=kFALSE;
     
+    Int_t localBoardId = locTrg->LoCircuit();
     if ( locTrg->LoSdev()==1 && locTrg->LoDev()==0 && 
          locTrg->LoStripX()==0) xTrig=kFALSE; // no trigger in X
     else xTrig=kTRUE;                         // trigger in X
@@ -451,10 +452,7 @@ AliMUONVTrackReconstructor::EventReconstructTrigger(const TClonesArray& triggerC
     if (xTrig && yTrig) 
     { // make Trigger Track if trigger in X and Y
       
-      AliMUONTriggerCircuit*circuit = static_cast<AliMUONTriggerCircuit*>
-      (triggerCircuitArray.At(locTrg->LoCircuit()-1)); // -1 !!!
-      
-      Float_t y11 = circuit->GetY11Pos(locTrg->LoStripX()); 
+      Float_t y11 = circuit.GetY11Pos(localBoardId, locTrg->LoStripX()); 
       // need first to convert deviation to [0-30] 
       // (see AliMUONLocalTriggerBoard::LocalTrigger)
       Int_t deviation = locTrg->LoDev(); 
@@ -465,8 +463,8 @@ AliMUONVTrackReconstructor::EventReconstructTrigger(const TClonesArray& triggerC
       deviation *= sign;
       deviation += 15;
       Int_t stripX21 = locTrg->LoStripX()+deviation+1;
-      Float_t y21 = circuit->GetY21Pos(stripX21);       
-      Float_t x11 = circuit->GetX11Pos(locTrg->LoStripY());
+      Float_t y21 = circuit.GetY21Pos(localBoardId, stripX21);       
+      Float_t x11 = circuit.GetX11Pos(localBoardId, locTrg->LoStripY());
       
       AliDebug(1, Form(" MakeTriggerTrack %d %d %d %d %f %f %f \n",locTrg->LoCircuit(),
                        locTrg->LoStripX(),locTrg->LoStripX()+locTrg->LoDev()+1,locTrg->LoStripY(),y11, y21, x11));
@@ -479,7 +477,7 @@ AliMUONVTrackReconstructor::EventReconstructTrigger(const TClonesArray& triggerC
       triggerTrack.SetThetax(thetax);
       triggerTrack.SetThetay(thetay);
       triggerTrack.SetGTPattern(gloTrigPat);
-      triggerTrack.SetLoTrgNum(locTrg->LoCircuit());
+      triggerTrack.SetLoTrgNum(localBoardId);
       
       triggerTrackStore.Add(triggerTrack);
     } // board is fired 
index 1b73fdc..509d2c7 100644 (file)
@@ -22,6 +22,7 @@ class AliMUONVTriggerTrackStore;
 class AliMUONVTriggerStore;
 class AliMUONGeometryTransformer;
 class AliMUONDigitMaker;
+class AliMUONTriggerCircuit;
 
 class AliMUONVTrackReconstructor : public TObject {
 
@@ -50,7 +51,7 @@ class AliMUONVTrackReconstructor : public TObject {
   void EventReconstruct(const AliMUONVClusterStore& clusterStore,
                         AliMUONVTrackStore& trackStore);
   
-  void EventReconstructTrigger(const TClonesArray& triggerCircuitArray,
+  void EventReconstructTrigger(const AliMUONTriggerCircuit& triggerCircuit,
                                const AliMUONVTriggerStore& triggerStore,
                                AliMUONVTriggerTrackStore& triggerTrackStore);