]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Create SegFactory and GeometryTransformer objects + cosmetics (Christian)
authorpcrochet <pcrochet@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 16 Oct 2006 16:50:56 +0000 (16:50 +0000)
committerpcrochet <pcrochet@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 16 Oct 2006 16:50:56 +0000 (16:50 +0000)
MUON/AliMUONReconstructor.cxx
MUON/AliMUONReconstructor.h

index f7f5a98b43355b32de51df6f93d8112461d09803..5ba3d22e972973d28b6985e9792b7900a9bd076e 100644 (file)
@@ -40,6 +40,7 @@
 #include "AliMUONTriggerTrack.h"
 #include "AliMUONTriggerCircuitNew.h"
 #include "AliMUONTriggerCrateStore.h"
+#include "AliMpSegFactory.h"
 
 #include "AliRawReader.h"
 #include "AliRun.h"
@@ -56,7 +57,10 @@ AliMUONReconstructor::AliMUONReconstructor()
     fDigitMaker(new AliMUONDigitMaker()), 
     fCalibrationData(0x0),
     fCrateManager(new AliMUONTriggerCrateStore()),
-    fTriggerCircuit(new TClonesArray("AliMUONTriggerCircuitNew", 234))
+    fTriggerCircuit(new TClonesArray("AliMUONTriggerCircuitNew", 234)),
+    fSegFactory(new AliMpSegFactory()),
+    fTransformer(new AliMUONGeometryTransformer(kTRUE))
+
 {
 /// Default constructor
 
@@ -67,14 +71,24 @@ AliMUONReconstructor::AliMUONReconstructor()
     // set to digit maker
     fDigitMaker->SetCrateManager(fCrateManager);
 
+    // set segmentation
+    fDigitMaker->SetSegFactory(fSegFactory);
+
+    // transformater
+    fTransformer->ReadGeometryData("volpath.dat", "geometry.root");
+
     // trigger circuit
     for (Int_t i = 0; i < AliMUONConstants::NTriggerCircuit(); i++)  {
       AliMUONTriggerCircuitNew* c = new AliMUONTriggerCircuitNew();
+      c->SetSegFactory(fSegFactory);
+      c->SetTransformer(fTransformer);
       c->Init(i,*fCrateManager);
       TClonesArray& circuit = *fTriggerCircuit;
       new(circuit[circuit.GetEntriesFast()])AliMUONTriggerCircuitNew(*c);
       delete c;
-  }
+    }
+
+  
 }
 
 //_____________________________________________________________________________
@@ -87,6 +101,8 @@ AliMUONReconstructor::~AliMUONReconstructor()
   delete fDigitMaker;
   delete fCrateManager;
   delete fTriggerCircuit;
+  delete fSegFactory;
+  delete fTransformer;
 }
 
 //_____________________________________________________________________________
@@ -135,15 +151,15 @@ void AliMUONReconstructor::Reconstruct(AliRunLoader* runLoader) const
   AliMUONData* data = new AliMUONData(loader,"MUON","MUON");
 
 // passing loader as argument.
-  AliMUONTrackReconstructor* recoEvent = new AliMUONTrackReconstructor(loader, data);
+  AliMUONTrackReconstructor* recoEvent = new AliMUONTrackReconstructor(data);
   recoEvent->SetTriggerCircuit(fTriggerCircuit);
 
   if (strstr(GetOption(),"Original")) 
-    recoEvent->SetTrackMethod(1); // Original tracking
+    recoEvent->SetTrackMethod(kOriginal); // Original tracking
   else if (strstr(GetOption(),"Combi")) 
-    recoEvent->SetTrackMethod(3); // Combined cluster / track
+    recoEvent->SetTrackMethod(kCombi); // Combined cluster / track
   else
-    recoEvent->SetTrackMethod(2); // Kalman
+    recoEvent->SetTrackMethod(kKalman); // Kalman
 
   AliMUONClusterReconstructor* recoCluster = new AliMUONClusterReconstructor(data);
   
@@ -161,7 +177,8 @@ void AliMUONReconstructor::Reconstruct(AliRunLoader* runLoader) const
   
   TTask* calibration = GetCalibrationTask(data);
   
-  Int_t chBeg = recoEvent->GetTrackMethod() == 3 ? 6 : 0; 
+  Int_t chBeg = (recoEvent->GetTrackMethod() == kCombi ? 6 : 0); 
+
   //   Loop over events              
   for(Int_t ievent = 0; ievent < nEvents; ievent++) {
 
@@ -173,7 +190,7 @@ void AliMUONReconstructor::Reconstruct(AliRunLoader* runLoader) const
     if (!loader->TreeR()) loader->MakeRecPointsContainer();
      
     // tracking branch
-    if (recoEvent->GetTrackMethod() != 3) {
+    if (recoEvent->GetTrackMethod() != kCombi) {
       data->MakeBranch("RC");
       data->SetTreeAddress("D,RC");
     } else {
@@ -193,7 +210,7 @@ void AliMUONReconstructor::Reconstruct(AliRunLoader* runLoader) const
     
     recoCluster->Digits2Clusters(chBeg); 
     
-    if (recoEvent->GetTrackMethod() == 3) {
+    if (recoEvent->GetTrackMethod() == kCombi) {
       // Combined cluster / track finder
       AliMUONEventRecoCombi::Instance()->FillEvent(data, (AliMUONClusterFinderAZ*)recModel);
       ((AliMUONClusterFinderAZ*) recModel)->SetReco(2); 
@@ -225,7 +242,7 @@ void AliMUONReconstructor::Reconstruct(AliRunLoader* runLoader) const
 
     loader->WriteTracks("OVERWRITE"); 
   
-    if (recoEvent->GetTrackMethod() == 3) { 
+    if (recoEvent->GetTrackMethod() == kCombi) { 
       // Combined cluster / track
       ((AliMUONClusterFinderAZ*) recModel)->SetReco(1);
       data->MakeBranch("RC");
@@ -237,9 +254,6 @@ void AliMUONReconstructor::Reconstruct(AliRunLoader* runLoader) const
 
     //--------------------------- Resetting branches -----------------------
     data->ResetDigits();
-    data->ResetRawClusters();
-    data->ResetTrigger();
-
     data->ResetRawClusters();
     data->ResetTrigger();
     data->ResetRecTracks();  
@@ -267,7 +281,7 @@ void AliMUONReconstructor::Reconstruct(AliRunLoader* runLoader, AliRawReader* ra
   AliMUONData data(loader,"MUON","MUON");
 
   // passing loader as argument.
-  AliMUONTrackReconstructor recoEvent(loader, &data);
+  AliMUONTrackReconstructor recoEvent(&data);
   recoEvent.SetTriggerCircuit(fTriggerCircuit);
 
   fDigitMaker->SetMUONData(&data);
@@ -276,11 +290,11 @@ void AliMUONReconstructor::Reconstruct(AliRunLoader* runLoader, AliRawReader* ra
 
   if (strstr(GetOption(),"Original")) 
   {
-    recoEvent.SetTrackMethod(1); // Original tracking
+    recoEvent.SetTrackMethod(kOriginal); // Original tracking
   }
   else
   {
-    recoEvent.SetTrackMethod(2); // Kalman
+    recoEvent.SetTrackMethod(kKalman);
   }
   
   AliMUONClusterFinderVS *recModel = recoCluster.GetRecoModel();
@@ -380,9 +394,6 @@ void AliMUONReconstructor::Reconstruct(AliRunLoader* runLoader, AliRawReader* ra
     
     //--------------------------- Resetting branches -----------------------
     data.ResetDigits();
-    data.ResetRawClusters();
-    data.ResetTrigger();
-
     data.ResetRawClusters();
     data.ResetTrigger();
     data.ResetRecTracks();
index 145e24d06d09bcc7bc25a68537229772040ea24d..d7764841f92170f482f8a3d68714a5129e2b646f 100644 (file)
@@ -18,6 +18,8 @@ class TTask;
 class AliMUONDigitMaker;
 class AliMUONTriggerCrateStore;
 class TClonesArray;
+class AliMpSegFactory;
+class AliMUONGeometryTransformer;
 
 class AliMUONReconstructor: public AliReconstructor 
 {
@@ -43,6 +45,8 @@ class AliMUONReconstructor: public AliReconstructor
     virtual void         FillESD(AliRunLoader* runLoader, 
                                 AliRawReader* /*rawReader*/, AliESD* esd) const;
      
+    enum {kNone, kOriginal, kKalman, kCombi};
+
 private:
 
     TTask* GetCalibrationTask(AliMUONData* data) const;
@@ -59,7 +63,9 @@ private:
 
     TClonesArray* fTriggerCircuit;   //!< trigger circuit
  
+    AliMpSegFactory* fSegFactory;        //!< Mapping segmentation factory
+
+    AliMUONGeometryTransformer* fTransformer; //!< pointer to transformation
 
   ClassDef(AliMUONReconstructor, 0)   // class for the MUON reconstruction
 };