Summary of changes:
authorcblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 8 Apr 2009 16:49:07 +0000 (16:49 +0000)
committercblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 8 Apr 2009 16:49:07 +0000 (16:49 +0000)
- Change sign of deflection length (previously inconsistent with TRAP  model,
  to be clarified which one is used in reality)
- decrease windows for track matching, possible due to better tracklet  parameters
- Change handling of output tree (not owned by current directory after  creation)
- check for a = 0 in pt-calculation
- added GetLabel to AliTRDtrackletGTU
- change CookLabel according to other changes (offset of 1 in label)

TRD/AliTRDgtuParam.cxx
TRD/AliTRDgtuParam.h
TRD/AliTRDgtuSim.cxx
TRD/AliTRDgtuTMU.cxx
TRD/AliTRDtrackGTU.cxx
TRD/AliTRDtrackGTU.h
TRD/AliTRDtrackletGTU.cxx
TRD/AliTRDtrackletGTU.h

index 9c66775cac3b8ce226e2a807c36377756ff94ff7..e73351a77eaa999f0b7126d520facf08be000fbc 100644 (file)
@@ -398,7 +398,9 @@ Float_t AliTRDgtuParam::GetRadius(Int_t a, Float_t b, Float_t x1, Float_t x2)
   Float_t c1 = x1 * x2 / 2;
 //  Float_t c2 = (x1 + x2) / (x1 * x2);
   printf("c1: %f\n", c1);
-  Float_t r = (375. / 10000.) * c1 * 256 / (a >> 1);
+  Float_t r = 0;
+  if ( (a >> 1) != 0)
+    r = (375. / 10000.) * c1 * 256 / (a >> 1);
   return r;
 
   Float_t y1 = a + b*x1;
index 394375fd4edf833e856d870de8f137d3514b82df..413eb7ad55da1365e5dc0006dd648716ac1f4de5 100644 (file)
@@ -75,8 +75,8 @@ class AliTRDgtuParam : public TObject {
   static const Int_t fgkNZChannels = 3; // No. of z-channels
   static const Int_t fgkNLinks = 12;   // No. of links
   static const Int_t fgkFixLayer = 2;  // which layer is fixed for the generation of the z-channel map
-  static const Int_t fgkDeltaY = 39;   // accepted deviation in y_proj, default: 9
-  static const Int_t fgkDeltaAlpha = 31; // accepted deviation in alpha, default: 11
+  static const Int_t fgkDeltaY = 19;   // accepted deviation in y_proj, default: 9
+  static const Int_t fgkDeltaAlpha = 21; // accepted deviation in alpha, default: 11
   static const Int_t fgkNRefLayers = 3;         // no. of reference layers
 
   static const Float_t fgkBinWidthY; // bin width for y-position
index 97297d475d02a3536be6512adafc2ec9221eb1c6..651cf9b2b4dc155d67a955d82784cbb08da2e615 100644 (file)
@@ -55,6 +55,7 @@ AliTRDgtuSim::AliTRDgtuSim(AliRunLoader *rl)
   fTrackletTree(0x0)
 {
   fTrackletTree = new TTree("gtutracklets", "Tree with GTU tracklets");
+  fTrackletTree->SetDirectory(0);
 }
 
 AliTRDgtuSim::~AliTRDgtuSim() 
@@ -342,8 +343,10 @@ Bool_t AliTRDgtuSim::WriteTracksToTree(TList *ListOfTracks, Int_t /*event*/)
   if (ListOfTracks->GetEntries() <= 0) 
     return kTRUE;
 
-  if (!fTrackTree)
+  if (!fTrackTree) {
     fTrackTree = new TTree("gtutracks", "GTU tracks");
+    fTrackTree->SetDirectory(0);
+  }
 
   AliTRDtrackGTU *trk = 0x0;
   TBranch *branch = fTrackTree->GetBranch("TRDgtuTrack");
index 0eed60f8253e29fef6bd0a950c0fa84d0dc24ccc..110d24a14443e75e86746f50c89460f4566899d2 100644 (file)
@@ -219,7 +219,7 @@ Bool_t AliTRDgtuTMU::RunInputUnit(Int_t layer)
     alpha = ( 2 * trk->GetdY() - (alpha >> fGtuParam->GetBitExcessAlpha()) + 1 ) >> 1;
     trk->SetAlpha(alpha);
 
-    Int_t yproj = trk->GetdY() * (fGtuParam->GetCiYProj(layer)); 
+    Int_t yproj = -1 * trk->GetdY() * (fGtuParam->GetCiYProj(layer)); //??? sign?
     yproj = ( ( ( (yproj >> fGtuParam->GetBitExcessYProj()) + trk->GetYbin() ) >> 2) + 1) >> 1;
     trk->SetYProj(yproj);
 
@@ -458,8 +458,12 @@ Bool_t AliTRDgtuTMU::RunTrackFinder(Int_t zch, TList* /* ListOfTracks */)
 
         Bool_t registerTrack = kTRUE;
         for (Int_t layerIdx = refLayerIdx; layerIdx > 0; layerIdx--) {
-            if (track->IsTrackletInLayer(fGtuParam->GetRefLayer(layerIdx)))
+           if (track->IsTrackletInLayer(fGtuParam->GetRefLayer(layerIdx))) {
+             if ((track->GetTracklet(fGtuParam->GetRefLayer(layerIdx)))->GetSubChannel(zch) > 0) {
+               AliInfo("Not registered");
                 registerTrack = kFALSE;
+             }
+           }
         }
         if (registerTrack) {
             track->SetZChannel(zch);
index b5ea940bf088844eda383db75be4727f139bcf6e..6a20c6f680ed50a034b01584fab8d32ea58722f8 100644 (file)
@@ -88,7 +88,10 @@ AliTRDtrackletGTU* AliTRDtrackGTU::GetTracklet(Int_t layer)
 {
 // get a pointer to the tracklet in the layer specified
 
-  return ((AliTRDtrackletGTU*) (*fTracklets)[layer]);
+  if (IsTrackletInLayer(layer))
+    return ((AliTRDtrackletGTU*) (*fTracklets)[layer]);
+  else 
+    return 0x0;
 }
 
 Int_t AliTRDtrackGTU::GetNTracklets() const
@@ -161,10 +164,12 @@ Bool_t AliTRDtrackGTU::CookLabel()
 {
     TH1F *h = new TH1F("trkref", "trkref", 100000, 0, 100000);
     for (Int_t iTracklet = 0; iTracklet < 6; iTracklet++) {
+      if (!IsTrackletInLayer(iTracklet))
+        continue;
        h->Fill( ((AliTRDtrackletGTU*) (*fTracklets)[iTracklet])->GetLabel());
     }
     if (h->GetEntries() > 0)
-       fLabel = h->GetMaximumBin();
+       fLabel = h->GetMaximumBin() - 1;
     else 
        fLabel = -1;
     delete h;
index f7971452675756792c278b6a2bf7ae0525dbf39e..d179b27ad8d2f1bd49daa2487743e95f72735283 100644 (file)
@@ -27,6 +27,7 @@ class AliTRDtrackGTU : public TObject {
   Int_t    GetPID() const { return fPID; }
   Int_t    GetSector() const { return fSector; }
   Int_t    GetStack() const { return fStack; }
+  Int_t GetLabel() const { return fLabel; }
 
   AliESDTrdTrack* CreateTrdTrack() const;
 
index d0f085c81a07c82d7d846de5cfdf7953917e9f68..94cb4dde88e41992041bded00dd27f41566595cf 100644 (file)
@@ -42,7 +42,7 @@ AliTRDtrackletBase* AliTRDtrackletGTU::fgkDummyTracklet = new AliTRDtrackletWord
 AliTRDtrackletGTU::AliTRDtrackletGTU() :
   AliTRDtrackletBase(),
   fGtuParam(AliTRDgtuParam::Instance()),
-  fTracklet(fgkDummyTracklet), 
+  fTracklet(0x0), //fgkDummyTracklet), 
   fSubChannel(0x0),
   fAssignedZ(kFALSE),
   fAlpha(0),
@@ -118,6 +118,7 @@ AliTRDtrackletGTU::~AliTRDtrackletGTU()
   // dtor
   if (fSubChannel)
     delete [] fSubChannel; 
+  fTracklet = 0x0;
 }
 
 Int_t AliTRDtrackletGTU::Compare(const TObject *o) const {
index f7aa236bfa9705ec61b22dc589fbb7d380069c4a..4b413a53be3d9f87236ff07ea98429ad36ecdb42 100644 (file)
@@ -73,7 +73,7 @@ class AliTRDtrackletGTU : public AliTRDtrackletBase {
 
  protected:
   AliTRDgtuParam *fGtuParam;    //!
-  const AliTRDtrackletBase *fTracklet; // always points to a valid tracklet
+  AliTRDtrackletBase *fTracklet; // pointer to the underlying tracklet
 
   Int_t *fSubChannel;          //! [AliTRDgtuParam::GetNZChannels()]
   Bool_t fAssignedZ;           // tracklet assigned to a Z-channel