]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MONITOR/monitorGDC.cxx
Some extra lines to read PDC06 data.
[u/mrichter/AliRoot.git] / MONITOR / monitorGDC.cxx
index f6d8928fc4813470846afca5a5ef5bcfc2edb533..1c138ab0cbe41b9a779f2368f9a2d212bbba894b 100644 (file)
 
 #include <TError.h>
 #include <TSysEvtHandler.h>
-#ifdef DATE_SYS
+#ifdef ALI_DATE
 #include <TROOT.h>
 #include <TSystem.h>
 #include <TDatime.h>
 #include "AliRawReaderDate.h"
 #include "event.h"
 #include "monitor.h"
-#include <AliL3StandardIncludes.h>
-#include <AliL3Transform.h>
-#include <AliL3MemHandler.h>
-#include <AliL3TrackArray.h>
-#include <AliL3HoughMaxFinder.h>
-#include <AliL3HoughBaseTransformer.h>
-#include <AliL3Hough.h>
-#include <AliL3Benchmark.h>
+#include <AliHLTStandardIncludes.h>
+#include <AliHLTTransform.h>
+#include <AliHLTMemHandler.h>
+#include <AliHLTTrackArray.h>
+#include <AliHLTHoughMaxFinder.h>
+#include <AliHLTHoughBaseTransformer.h>
+#include <AliHLTHough.h>
+#include <AliHLTBenchmark.h>
+#include "AliESDVertex.h"
+#include <AliKalmanTrack.h>
+#include "AliITSgeomTGeo.h"
+#include "AliITSgeom.h"
+#include "AliMagF.h"
+#include "AliMagFMaps.h"
+#include <AliHLTITSclusterer.h>
+#include <AliHLTITSVertexerZ.h>
+#include <AliHLTITStracker.h>
 #endif
 
-
 //_____________________________________________________________________________
 class AliGDCInterruptHandler : public TSignalHandler {
 public:
@@ -64,7 +72,7 @@ AliGDCInterruptHandler::AliGDCInterruptHandler() :
 
 
 //_____________________________________________________________________________
-#ifdef DATE_SYS
+#ifdef ALI_DATE
 int main(int argc, char** argv)
 {
   // set ROOT in batch mode
@@ -94,9 +102,36 @@ int main(int argc, char** argv)
   if (status) ::Fatal("monitorDeclareMp", monitorDecodeError(status));
 
   // initialize HLT transformations
-  if (!AliL3Transform::Init("./", kFALSE)) {
-    ::Fatal("AliL3Transform::Init", "HLT initialization failed");
+  if (!AliHLTTransform::Init("./", kFALSE)) {
+    ::Fatal("AliHLTTransform::Init", "HLT initialization failed");
+  }
+  AliESDEvent *esd = new AliESDEvent;
+  esd->CreateStdContent();
+  //  AliKalmanTrack::SetConvConst(
+  //     1000/0.299792458/AliHLTTransform::GetSolenoidField()
+  //  );
+  AliITSgeom *geom = new AliITSgeom();
+  geom->ReadNewFile("$ALICE_ROOT/ITS/ITSgeometry_vPPRasymmFMD.det");
+  if (!geom) return 1;
+  Int_t sfield = 0;
+  switch ((Int_t)(AliHLTTransform::GetSolenoidField()+0.5)) {
+  case 2:
+    sfield = AliMagFMaps::k2kG;
+    break;
+  case 4:
+    sfield = AliMagFMaps::k4kG;
+    break;
+  case 5:
+    sfield = AliMagFMaps::k5kG;
+    break;
+  default:
+    ::Fatal("AliHLTTransform::GetSolenoidField", "Incorrect magnetic field");
   }
+  AliMagF* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., sfield);
+  AliTracker::SetFieldMap(field,kTRUE);
+
+  // Init PID
+  AliPID pid;
 
   // create the signal handler
   AliGDCInterruptHandler* handler = new AliGDCInterruptHandler;
@@ -132,69 +167,117 @@ int main(int argc, char** argv)
 
       } else {
 
-       AliL3Benchmark *fBenchmark = new AliL3Benchmark();
+       AliHLTBenchmark *fBenchmark = new AliHLTBenchmark();
        fBenchmark->Start("Overall timing");
 
-       Float_t ptmin = 0.1*AliL3Transform::GetSolenoidField();
+       // ITS clusterer and vertexer
+       fBenchmark->Start("ITS Clusterer");
+       AliHLTITSclusterer clusterer(0);
+       AliRawReader *itsrawreader=new AliRawReaderDate(ptr);
+       TTree* treeClusters = new TTree("TreeL3ITSclusters"," "); //make a tree
+       clusterer.Digits2Clusters(itsrawreader,treeClusters);
+       fBenchmark->Stop("ITS Clusterer");
+       
+       AliHLTITSVertexerZ vertexer;
+       AliESDVertex *vertex = vertexer.FindVertexForCurrentEvent(geom,treeClusters);
+       Double_t vtxPos[3];
+       Double_t vtxErr[3]={0.005,0.005,0.010};
+       vertex->GetXYZ(vtxPos);
+       //      vertex->GetSigmaXYZ(vtxErr);
+       esd->SetVertex(vertex);
+
+       // TPC Hough reconstruction
+       Float_t ptmin = 0.1*AliHLTTransform::GetSolenoidField();
+       Float_t zvertex = vtxPos[2];
 
        // Run the Hough Transformer
        fBenchmark->Start("Init");
-       AliL3Hough *hough1 = new AliL3Hough();
+       AliHLTHough *hough1 = new AliHLTHough();
 
        hough1->SetThreshold(4);
        hough1->CalcTransformerParams(ptmin);
        hough1->SetPeakThreshold(70,-1);
        //      printf("Pointer is %x\n",ptr);
-       hough1->Init("./", kFALSE, 100, kFALSE,4,0,(Char_t*)ptr,0.0);
+       hough1->Init("./", kFALSE, 100, kFALSE,4,0,(Char_t*)ptr,zvertex);
        hough1->SetAddHistograms();
        fBenchmark->Stop("Init");
 
        fBenchmark->Start("Init");
-       AliL3Hough *hough2 = new AliL3Hough();
+       AliHLTHough *hough2 = new AliHLTHough();
 
        hough2->SetThreshold(4);
        hough2->CalcTransformerParams(ptmin);
        hough2->SetPeakThreshold(70,-1);
        //      printf("Pointer is %x\n",ptr);
-       hough2->Init("./", kFALSE, 100, kFALSE,4,0,(Char_t*)ptr,0.0);
+       hough2->Init("./", kFALSE, 100, kFALSE,4,0,(Char_t*)ptr,zvertex);
        hough2->SetAddHistograms();
        fBenchmark->Stop("Init");
 
-       Int_t n_global_tracks = 0;
+       Int_t nglobaltracks = 0;
+       /*
        hough1->StartProcessInThread(0,17);
        hough2->StartProcessInThread(18,35);
 
        //      gSystem->Sleep(20000);
        if(hough1->WaitForThreadFinish())
-         ::Fatal("AliL3Hough::WaitForThreadFinish"," Can not join the required thread! ");
+         ::Fatal("AliHLTHough::WaitForThreadFinish"," Can not join the required thread! ");
        if(hough2->WaitForThreadFinish())
-         ::Fatal("AliL3Hough::WaitForThreadFinish"," Can not join the required thread! ");
+         ::Fatal("AliHLTHough::WaitForThreadFinish"," Can not join the required thread! ");
 
        gSystem->MakeDirectory("hough1");
        hough1->WriteTracks("./hough1");
        gSystem->MakeDirectory("hough2");
        hough2->WriteTracks("./hough2");
+       */
 
-       /*
-       for(int slice=0; slice<=35; slice++)
+       for(int slice=0; slice<=17; slice++)
        {
          //      cout<<"Processing slice "<<slice<<endl;
          fBenchmark->Start("ReadData");
-         hough->ReadData(slice,0);
+         hough1->ReadData(slice,0);
          fBenchmark->Stop("ReadData");
          fBenchmark->Start("Transform");
-         hough->Transform();
+         hough1->Transform();
          fBenchmark->Stop("Transform");
-         hough->AddAllHistogramsRows();
-         hough->FindTrackCandidatesRow();
+         hough1->AddAllHistogramsRows();
+         hough1->FindTrackCandidatesRow();
          fBenchmark->Start("AddTracks");
-         hough->AddTracks();
+         hough1->AddTracks();
          fBenchmark->Stop("AddTracks");
 
-         AliL3TrackArray* tracks = (AliL3TrackArray*)hough->GetTracks(0);
-         n_global_tracks += tracks->GetNTracks();
+         //      AliHLTTrackArray* tracks = (AliHLTTrackArray*)hough1->GetTracks(0);
+         //      nglobaltracks += tracks->GetNTracks();
        }
-       */
+       for(int slice=18; slice<=35; slice++)
+       {
+         //      cout<<"Processing slice "<<slice<<endl;
+         fBenchmark->Start("ReadData");
+         hough2->ReadData(slice,0);
+         fBenchmark->Stop("ReadData");
+         fBenchmark->Start("Transform");
+         hough2->Transform();
+         fBenchmark->Stop("Transform");
+         hough2->AddAllHistogramsRows();
+         hough2->FindTrackCandidatesRow();
+         fBenchmark->Start("AddTracks");
+         hough2->AddTracks();
+         fBenchmark->Stop("AddTracks");
+
+         //      AliHLTTrackArray* tracks = (AliHLTTrackArray*)hough2->GetTracks(0);
+         //      nglobaltracks += tracks->GetNTracks();
+       }
+
+       nglobaltracks += hough1->FillESD(esd);
+       nglobaltracks += hough2->FillESD(esd);
+
+       // ITS tracker
+       AliHLTITStracker itsTracker(0);
+       itsTracker.SetVertex(vtxPos,vtxErr);
+
+       itsTracker.LoadClusters(treeClusters);
+       itsTracker.Clusters2Tracks(esd);
+       itsTracker.UnloadClusters();
+
        fBenchmark->Stop("Overall timing");
        time.Set();
        if (file) fprintf(file, "%s\n", time.AsString());
@@ -204,7 +287,7 @@ int main(int argc, char** argv)
                          rawReader.GetEventId()[1]);
        if (errorCode) fprintf(file, "ERROR: %d\n", errorCode);
 
-       if (file) fprintf(file, "Hough Transformer found %d tracks\n",n_global_tracks);
+       if (file) fprintf(file, "Hough Transformer found %d tracks\n",nglobaltracks);
 
        hough1->DoBench("hough1");
        hough2->DoBench("hough2");
@@ -240,6 +323,8 @@ int main(int argc, char** argv)
 
        delete hough1;
        delete hough2;
+
+       esd->Reset();
       }
     //    }