]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSreconstruction.cxx
modifications to satisfy the coding conventions
[u/mrichter/AliRoot.git] / ITS / AliITSreconstruction.cxx
index 2ea5a0c659e759d39d8f4fc149a99c7e7795f377..0fd484bccaf234b1c702263c1e665a4c98838b8d 100644 (file)
 /* $Id$ */
 /////////////////////////////////////////////////////////////////////////
 //                                                                     //
-//                                                                     //
+// Class for ITS RecPoint reconstruction                               //
 //                                                                     //
 ////////////////////////////////////////////////////////////////////////
 
-#include <TROOT.h>
-#include <TFile.h>
-#include <TSeqCollection.h>
 #include <TString.h>
-#include <TClonesArray.h>
-
 #include "AliRun.h"
 #include "AliRunLoader.h"
-
-#include "AliITS.h"
-#include "AliITSDetType.h"
+#include "AliITSDetTypeRec.h"
 #include "AliITSLoader.h"
 #include "AliITSreconstruction.h"
-#include "AliITSsegmentationSPD.h"
-#include "AliITSsegmentationSDD.h"
-#include "AliITSsegmentationSSD.h"
-#include "AliITSClusterFinderSPD.h"
-#include "AliITSClusterFinderSDD.h"
-#include "AliITSClusterFinderSSD.h"
-#include "AliITSresponseSDD.h"
 #include "AliITSgeom.h"
 
+
 ClassImp(AliITSreconstruction)
 
 //______________________________________________________________________
@@ -49,8 +36,9 @@ AliITSreconstruction::AliITSreconstruction():
  fInit(kFALSE),
  fEnt(0),
  fEnt0(0),
- fITS(0x0),
+ fDetTypeRec(0x0),
  fDfArp(kFALSE),
+ fITSgeom(0x0),
  fLoader(0x0),
  fRunLoader(0x0)
 {
@@ -69,8 +57,9 @@ AliITSreconstruction::AliITSreconstruction(AliRunLoader *rl):
  fInit(kFALSE),
  fEnt(0),
  fEnt0(0),
- fITS(0x0),
+ fDetTypeRec(0x0),
  fDfArp(kFALSE),
+ fITSgeom(0x0),
  fLoader(0x0),
  fRunLoader(rl)
 {
@@ -81,8 +70,9 @@ AliITSreconstruction::AliITSreconstruction(const char* filename):
  fInit(kFALSE),
  fEnt(0),
  fEnt0(0),
- fITS(0x0),
+ fDetTypeRec(0x0),
  fDfArp(kFALSE),
+ fITSgeom(0x0),
  fLoader(0x0),
  fRunLoader(0x0)
 {
@@ -106,21 +96,41 @@ AliITSreconstruction::AliITSreconstruction(const char* filename):
        Error("AliITSreconstruction","Can not load the session",filename);
        return;
      }
-    fRunLoader->LoadgAlice();
-    gAlice = fRunLoader->GetAliRun();
 
-    if(!gAlice) {
-          Error("AliITSreconstruction","gAlice not found on file. Aborting.");
-          fInit = kFALSE;
-          return;
-      } // end if !gAlice
+}
+
+//______________________________________________________________________
+AliITSreconstruction::AliITSreconstruction(const AliITSreconstruction &rec):TTask(rec),
+fInit(rec.fInit),
+fEnt(rec.fEnt),
+fEnt0(rec.fEnt0),
+fDetTypeRec(rec.fDetTypeRec),
+fDfArp(rec.fDfArp),
+fITSgeom(rec.fITSgeom),
+fLoader(rec.fLoader),
+fRunLoader(rec.fRunLoader)
+{
+    // Copy constructor. 
+
+  
+}
+
+//______________________________________________________________________
+AliITSreconstruction& AliITSreconstruction::operator=(const AliITSreconstruction& source){
+    // Assignment operator. 
+  this->~AliITSreconstruction();
+  new(this) AliITSreconstruction(source);
+  return *this;
 
 }
+
 //______________________________________________________________________
 AliITSreconstruction::~AliITSreconstruction(){
     //    A destroyed AliITSreconstruction class.
+    
+    //fITS      = 0;
     delete fRunLoader;
-    fITS      = 0;
+    
 }
 //______________________________________________________________________
 Bool_t AliITSreconstruction::Init(){
@@ -137,8 +147,8 @@ Bool_t AliITSreconstruction::Init(){
        Error("Init","Run Loader is NULL");
        return kFALSE;
      }
-    fRunLoader->LoadgAlice();
-    fRunLoader->LoadHeader();  
+    //  fRunLoader->LoadgAlice();
+    //   fRunLoader->LoadHeader();  
 
     fLoader = (AliITSLoader*) fRunLoader->GetLoader("ITSLoader");
     if(!fLoader) {
@@ -146,33 +156,28 @@ Bool_t AliITSreconstruction::Init(){
       fInit = kFALSE;
     }
 
-    //Int_t retcode;
-    fITS = (AliITS*) gAlice->GetDetector("ITS");
-    if(!fITS){
-      cout << "ITS not found aborting. fITS=" << fITS << endl;
-      fInit = kFALSE;
-      return fInit;
-    } // end if !fITS
-    if(!(fITS->GetITSgeom())){
-      cout << "ITSgeom not found aborting."<< endl;
-      fInit = kFALSE;
-      return fInit;
-    } // end if !GetITSgeom()
     // Now ready to init.
+    //fRunLoader->CdGAFile();
+    fITSgeom = fLoader->GetITSgeom();
 
+    fDetTypeRec = new AliITSDetTypeRec();
+    fDetTypeRec->SetITSgeom(fITSgeom);
+    fDetTypeRec->SetDefaults();
     fDet[0] = fDet[1] = fDet[2] = kTRUE;
     fEnt0 = 0;
 
     //fEnt  = gAlice->GetEventsPerRun();
-    fEnt = Int_t(fRunLoader->TreeE()->GetEntries());
+    fEnt = Int_t(fRunLoader->GetNumberOfEvents());
 
     fLoader->LoadDigits("read");
     fLoader->LoadRecPoints("recreate");
-    fLoader->LoadRawClusters("recreate");
     if (fLoader->TreeR() == 0x0) fLoader->MakeTree("R");
-    fITS->MakeBranch("R");
-    fITS->MakeBranchC();
-    fITS->SetTreeAddress();
+    fDetTypeRec->SetTreeAddressD(fLoader->TreeD());
+    fDetTypeRec->MakeBranchR(fLoader->TreeR());
+    fDetTypeRec->SetTreeAddressR(fLoader->TreeR());
+
     fInit = InitRec();
 
     Info("Init","  Done\n\n\n");
@@ -188,47 +193,11 @@ Bool_t AliITSreconstruction::InitRec(){
     //      none.
     // Return:
     //      none.
-    AliITSDetType *idt;
 
-    // SPD
-    if(fDet[kSPD]){
-      Info("InitRec","SPD");
-      idt = fITS->DetType(kSPD);
-      AliITSsegmentationSPD *segSPD = (AliITSsegmentationSPD*)idt->GetSegmentationModel();
-      TClonesArray *digSPD = fITS->DigitsAddress(kSPD);
-      TClonesArray *recpSPD = fITS->ClustersAddress(kSPD);
-      Info("InitRec","idt = %#x; digSPD = %#x; recpSPD = %#x",idt,digSPD,recpSPD);
-      AliITSClusterFinderSPD *recSPD = new AliITSClusterFinderSPD(segSPD,digSPD,recpSPD);
-      fITS->SetReconstructionModel(kSPD,recSPD);
-    } // end if fDet[kSPD].
-    // SDD
-    if(fDet[kSDD]){
-      Info("InitRec","SDD");
-      idt = fITS->DetType(kSDD);
-      AliITSsegmentationSDD *segSDD = (AliITSsegmentationSDD*)
-                                         idt->GetSegmentationModel();
-      AliITSresponseSDD *resSDD = (AliITSresponseSDD*)
-                                         idt->GetResponseModel();
-      TClonesArray *digSDD = fITS->DigitsAddress(kSDD);
-      TClonesArray *recpSDD = fITS->ClustersAddress(kSDD);
-      AliITSClusterFinderSDD *recSDD =new AliITSClusterFinderSDD(segSDD,
-                                                   resSDD,
-                                                 digSDD,recpSDD);
-      fITS->SetReconstructionModel(kSDD,recSDD);
-    } // end if fDet[kSDD]
-    // SSD
-    if(fDet[kSSD]){
-      Info("InitRec","SSD");
-      idt = fITS->DetType(kSSD);
-      AliITSsegmentationSSD *segSSD = (AliITSsegmentationSSD*)
-                                       idt->GetSegmentationModel();
-      TClonesArray *digSSD = fITS->DigitsAddress(kSSD);
-      AliITSClusterFinderSSD *recSSD =new AliITSClusterFinderSSD(segSSD,
-                                                   digSSD);
-      fITS->SetReconstructionModel(kSSD,recSSD);
-    } // end if fDet[kSSD]
-    Info("InitRec","    Done\n");
-    return kTRUE;
+
+  fDetTypeRec->SetDefaultClusterFindersV2();
+  Info("InitRec","    Done\n");
+  return kTRUE;
 }
 //______________________________________________________________________ 
 void AliITSreconstruction::Exec(const Option_t *opt){
@@ -258,7 +227,6 @@ void AliITSreconstruction::Exec(const Option_t *opt){
       cout << "Initilization Failed, Can't run Exec." << endl;
       return;
     } // end if !fInit
-
     for(evnt=0;evnt<fEnt;evnt++)
      {
       Info("Exec","");
@@ -267,10 +235,10 @@ void AliITSreconstruction::Exec(const Option_t *opt){
 
       fRunLoader->GetEvent(evnt);
       if (fLoader->TreeR() == 0x0) fLoader->MakeTree("R");
-      fITS->MakeBranch("R");
-      if (fLoader->TreeC() == 0x0) fITS->MakeTreeC();
-      fITS->SetTreeAddress();
-      fITS->DigitsToRecPoints(evnt,0,lopt);
+      fDetTypeRec->MakeBranchR(0);
+      fDetTypeRec->SetTreeAddressR(fLoader->TreeR());
+      fDetTypeRec->SetTreeAddressD(fLoader->TreeD());
+      fDetTypeRec->DigitsToRecPoints(fLoader->TreeD(),fLoader->TreeR(),0,lopt);
     } // end for evnt
 }
 //______________________________________________________________________