- update GTU simulation to allow for running during analysis
authorjklein <jklein@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 28 Oct 2013 14:33:21 +0000 (14:33 +0000)
committerjklein <jklein@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 28 Oct 2013 14:33:21 +0000 (14:33 +0000)
- allow for re-running of TRD on-line track matching without
  actually updating the references

TRD/AliTRDgtuSim.cxx
TRD/AliTRDgtuSim.h
TRD/AliTRDgtuTMU.cxx
TRD/AliTRDgtuTMU.h
TRD/AliTRDonlineTrackMatching.cxx
TRD/AliTRDonlineTrackMatching.h
TRD/AliTRDtrackGTU.h

index 2063326..1d941f4 100644 (file)
@@ -173,7 +173,7 @@ Bool_t AliTRDgtuSim::RunGTUFromTrackletFile(TString filename, Int_t event, Int_t
   return kTRUE;
 }
 
-Bool_t AliTRDgtuSim::RunGTU(AliLoader *loader, AliESDEvent *esd, Int_t label)
+Bool_t AliTRDgtuSim::RunGTU(AliLoader *loader, AliESDEvent *esd, Int_t label, Int_t outLabel)
 {
   // run the GTU on tracklets taken from the loader
   // if specified the GTU tracks are written to the ESD event
@@ -220,7 +220,7 @@ Bool_t AliTRDgtuSim::RunGTU(AliLoader *loader, AliESDEvent *esd, Int_t label)
            if(fTMU) {
                fTMU->SetStack(iStackPrev);
                fTMU->SetSector(iSecPrev);
-               fTMU->RunTMU(listOfTracks);
+               fTMU->RunTMU(listOfTracks, 0x0, outLabel);
                WriteTracksToLoader(listOfTracks);
                WriteTracksToESD(listOfTracks, esd);
                fTMU->Reset();
@@ -242,7 +242,7 @@ Bool_t AliTRDgtuSim::RunGTU(AliLoader *loader, AliESDEvent *esd, Int_t label)
     if (fTMU) {
        fTMU->SetStack(iStackPrev);
        fTMU->SetSector(iSecPrev);
-       fTMU->RunTMU(listOfTracks);
+       fTMU->RunTMU(listOfTracks, 0x0, outLabel);
        WriteTracksToLoader(listOfTracks);
        WriteTracksToESD(listOfTracks, esd);
        delete fTMU;
index 6be6f9c..acbdd30 100644 (file)
@@ -30,7 +30,7 @@ class AliTRDgtuSim : public TObject {
   Bool_t LoadTracklets(AliLoader * const loader);
   Bool_t LoadTracklets(const AliESDEvent * const esd, Int_t label = -1);
 
-  Bool_t RunGTU(AliLoader *loader, AliESDEvent *esd = 0x0, Int_t label = -1);
+  Bool_t RunGTU(AliLoader *loader, AliESDEvent *esd = 0x0, Int_t label = -1, Int_t outLabel = -1);
   Bool_t RunGTUFromTrackletFile(TString filename, Int_t event, Int_t noev = 1);
 
   Bool_t WriteTracksToDataFile(TList *listOfTracks, Int_t event);
index 8e8a590..7755e9a 100644 (file)
@@ -162,7 +162,7 @@ Bool_t AliTRDgtuTMU::AddTracklet(AliTRDtrackletGTU *tracklet, Int_t link)
 }
 
 
-Bool_t AliTRDgtuTMU::RunTMU(TList *ListOfTracks, AliESDEvent *esd)
+Bool_t AliTRDgtuTMU::RunTMU(TList *ListOfTracks, AliESDEvent *esd, Int_t outLabel)
 {
   // performs the analysis as in a TMU module of the GTU, i. e.
   // track matching
@@ -215,7 +215,10 @@ Bool_t AliTRDgtuTMU::RunTMU(TList *ListOfTracks, AliESDEvent *esd)
   // ----- label calculation and ESD storage -----
   TIter next(ListOfTracks);
   while (AliTRDtrackGTU *trk = (AliTRDtrackGTU*) next()) {
-    trk->CookLabel();
+    if (outLabel == -1)
+      trk->CookLabel();
+    else
+      trk->SetLabel(outLabel);
     if (esd) {
       AliESDTrdTrack *trdtrack = trk->CreateTrdTrack();
       esd->AddTrdTrack(trdtrack);
index 8310b09..ac87bb8 100644 (file)
@@ -32,7 +32,7 @@ class AliTRDgtuTMU : public TObject {
 
   Bool_t AddTracklet(AliTRDtrackletGTU *tracklet, Int_t link);
 
-  Bool_t RunTMU(TList *ListOfTracks = 0x0, AliESDEvent *esd = 0x0);
+  Bool_t RunTMU(TList *ListOfTracks = 0x0, AliESDEvent *esd = 0x0, Int_t outLabel = -1);
   Bool_t Reset();
 
   // ----- successive stages of the processing in the TMU -----
index 24df691..c6e2de1 100644 (file)
@@ -319,7 +319,7 @@ Bool_t AliTRDonlineTrackMatching::AcceptTrack(const AliESDtrack* esdTrack, const
   return kTRUE;
 }
 
-Bool_t AliTRDonlineTrackMatching::ProcessEvent(AliESDEvent *esdEvent) {
+Bool_t AliTRDonlineTrackMatching::ProcessEvent(AliESDEvent *esdEvent, Bool_t updateRef, Int_t label) {
 
   // performs track matching for all TRD online tracks of the ESD event
 
@@ -476,6 +476,10 @@ Bool_t AliTRDonlineTrackMatching::ProcessEvent(AliESDEvent *esdEvent) {
   for (UInt_t iTrdTrack = 0; iTrdTrack < numTrdTracks; ++iTrdTrack){
 
     trdTrack = esdEvent->GetTrdTrack(iTrdTrack);
+    if ((label != -1) &&
+       (trdTrack->GetLabel() != label))
+      continue;
+
     stack = TrdSecSiLsi(trdTrack->GetSector(), trdTrack->GetStack());
     trdPt = (esdEvent->GetMagneticField() > 0.) ? (-1.*trdTrack->Pt()) : trdTrack->Pt();
     matchTrack = NULL;
@@ -530,9 +534,12 @@ Bool_t AliTRDonlineTrackMatching::ProcessEvent(AliESDEvent *esdEvent) {
             trdTrack->GetSector(), trdTrack->GetStack(), iTrdTrack, matchEsdTrackIndexInStack,
             trdPt, matchTrack->GetSignedPt());
 #endif
-      trdTrack->SetTrackMatchReference(matchTrack);
-    } else
-      trdTrack->SetTrackMatchReference(NULL);
+      if (updateRef)
+       trdTrack->SetTrackMatchReference(matchTrack);
+    } else {
+      if (updateRef)
+       trdTrack->SetTrackMatchReference(NULL);
+    }
 
   } // loop over TRD online tracks
 
index 27cb34e..e7d9fc9 100644 (file)
@@ -58,7 +58,7 @@ class AliTRDonlineTrackMatching : public TObject {
   void SetHistMatchRating(TH1* hist) { fHistMatchRating = hist; };
 
   static Bool_t AcceptTrack(const AliESDtrack* esdTrack, const AliESDEvent* esdEvent);
-  Bool_t ProcessEvent(AliESDEvent *esdEvent);
+  Bool_t ProcessEvent(AliESDEvent *esdEvent, Bool_t updateRef = kTRUE, Int_t label = -1);
 
  protected:
 
index df1ddb1..c6d8ff5 100644 (file)
@@ -57,6 +57,7 @@ class AliTRDtrackGTU : public TObject {
   void SetStack(Int_t stack) { fStack = stack; }
   void SetSector(Int_t sector) { fSector = sector; }
   void SetPID(Int_t pid) { fPID = pid; }
+  void SetLabel(Int_t label) { fLabel = label; }
 
   void SetZChannel(Int_t zch) { fZChannel = zch; }
   void SetRefLayerIdx(Int_t reflayer) { fRefLayerIdx = reflayer; }