]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
The new class AliTrackReference used (M.Ivanov)
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 27 May 2002 14:33:15 +0000 (14:33 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 27 May 2002 14:33:15 +0000 (14:33 +0000)
TPC/AliTPC.cxx
TPC/AliTPC.h
TPC/AliTPCv2.cxx

index 742552ddc035ca2071e2d39d8685a625805d276d..a71d5c712ba4957a5caf85a77245d217ca44fbe9 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.57  2002/05/07 17:23:11  kowal2
+Linear gain inefficiency instead of the step one at the wire edges.
+
 Revision 1.56  2002/04/04 16:26:33  kowal2
 Digits (Sdigits) go to separate files now.
 
@@ -205,6 +208,7 @@ Introduction of the Copyright and cvs Log
 #include <fstream.h>
 #include "AliMC.h"
 #include "AliMagF.h"
+#include "AliTrackReference.h"
 
 
 #include "AliTPCParamSR.h"
@@ -275,7 +279,7 @@ AliTPC::AliTPC()
   fDefaults = 0;
   fTrackHits = 0; 
   fTrackHitsOld = 0;   
-  fHitType = 4; //default CONTAINERS - based on ROOT structure 
+  fHitType = 2; //default CONTAINERS - based on ROOT structure 
   fTPCParam = 0;    
   fNoiseTable = 0;
   fActiveSectors =0;
@@ -310,7 +314,7 @@ AliTPC::AliTPC(const char *name, const char *title)
 
   fNoiseTable =0;
 
-  fHitType = 4;
+  fHitType = 2;
   fActiveSectors = 0;
   //
   // Initialise counters
@@ -368,6 +372,21 @@ void AliTPC::AddHit(Int_t track, Int_t *vol, Float_t *hits)
   if (fHitType>1)
    AddHit2(track,vol,hits);
 }
+
+void  AliTPC::AddTrackReference(Int_t lab, TLorentzVector p, TLorentzVector x){
+  //
+  // add a trackrefernce to the list
+  if (!fTrackReferences) {
+    cerr<<"Container trackrefernce not active\n";
+    return;
+  }
+  Int_t nref = fTrackReferences->GetEntriesFast();
+  TClonesArray &lref = *fTrackReferences;
+  AliTrackReference * ref =  new(lref[nref]) AliTrackReference;
+  ref->SetMomentum(p[0],p[1],p[2]);
+  ref->SetPosition(x[0],x[1],x[2]);
+  ref->SetTrack(lab);
+}
  
 //_____________________________________________________________________________
 void AliTPC::BuildGeometry()
@@ -1314,6 +1333,11 @@ void AliTPC::Hits2ExactClustersSector(Int_t isec)
          Float_t detbz=currentIndex*(sumxz*sumx4-sumx2z*sumx3)-sumz*(sumx*sumx4-sumx2*sumx3)+
            sumx2*(sumx*sumx2z-sumx2*sumxz);
          
+         if (TMath::Abs(det)<0.00001){
+            tpcHit = (AliTPChit*)NextHit();
+           continue;
+         }
+       
          Float_t y=detay/det+centralPad;
          Float_t z=detaz/det;  
          Float_t by=detby/det; //y angle
index ca7d325c4c857fbbdd074024102ff57a95ff7357..0e1fea79d51042e48356c7366cbbbe279962c600 100644 (file)
@@ -11,6 +11,8 @@
 #include "AliDetector.h"
 #include "AliHit.h" 
 #include "AliDigit.h" 
+#include "TLorentzVector.h" 
+
 
 
 class TMatrix;
@@ -59,6 +61,7 @@ public:
   AliTPC(const char *name, const char *title);
   virtual      ~AliTPC();
   virtual void  AddHit(Int_t a1, Int_t *a2, Float_t *a3);
+  virtual void  AddTrackReference(Int_t lab,  TLorentzVector p, TLorentzVector x);
   Int_t         DistancetoPrimitive(Int_t px, Int_t py);
   virtual void  BuildGeometry();
   virtual void  CreateGeometry() {}
@@ -115,8 +118,6 @@ public:
    virtual AliHit* NextHit();
    virtual AliHit* FirstHit2(Int_t track);
    virtual AliHit* NextHit2();
-   
-   Int_t GetHitType(){return fHitType;}
    virtual void LoadPoints(Int_t dummy);
    virtual void LoadPoints2(Int_t dummy);
    virtual void LoadPoints3(Int_t dumy);
@@ -133,8 +134,8 @@ public:
    void    GenerNoise(Int_t tablasize);  // make noise table
    Bool_t  IsSectorActive(Int_t sec);    // check if the sector is active
    void    SetActiveSectors(Int_t * sectors, Int_t n);  //set active sectors
+   Int_t GetHitType(){return fHitType;}
    void    SetActiveSectors(Int_t flag=0); //loop over al hits and set active only hitted sectors
-
 private:
   //
    Bool_t  TrackInVolume(Int_t id,Int_t track);  //return true if current track is in volume
index 841635d169ef64e57eadeadf4c4ba10c0ca57d15..841121f40b086ab940ba1f3a7f8e0c1b9b349862 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.40  2002/01/21 17:12:00  kowal2
+New track hits structure using root containers
+
 Revision 1.39  2001/05/16 14:57:25  alibrary
 New files for folders and Stack
 
@@ -1959,6 +1962,25 @@ void AliTPCv2::StepManager()
 
   id = gMC->CurrentVolID(copy); // current volume Id
 
+  if (gMC->IsTrackEntering() && ( (id == fIdLSec) || (id == fIdUSec))){
+    //    printf("track  %d entering volume %d\n",gAlice->CurrentTrack(),id);
+    TLorentzVector p;
+    TLorentzVector x;
+    gMC->TrackMomentum(p);
+    gMC->TrackPosition(x);
+    AddTrackReference(gAlice->CurrentTrack(),p,x);
+  }
+
+  if (gMC->IsTrackExiting() && ( (id == fIdLSec) || (id == fIdUSec))){
+    //    printf("track  %d exiting volume %d\n",gAlice->CurrentTrack(),id);
+    TLorentzVector p;
+    TLorentzVector x;
+    gMC->TrackMomentum(p);
+    gMC->TrackPosition(x);
+    AddTrackReference(gAlice->CurrentTrack(),p,x);
+  }
+
+
   if(id == fIdLSec){
     vol[0] = copy-1; // lower sector number
   }