]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
TRD Updates
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 8 Mar 2013 14:51:29 +0000 (14:51 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 8 Mar 2013 14:51:29 +0000 (14:51 +0000)
 Yvonne Pachmayer <Yvonne.Chiara.Pachmayer@cern.ch>

ANALYSIS/CMakelibTENDERSupplies.pkg
ANALYSIS/TenderSupplies/AddTaskTender.C
ANALYSIS/TenderSupplies/AliTRDTenderSupply.cxx
ANALYSIS/TenderSupplies/AliTRDTenderSupply.h

index 00948dcafe479fef404a25d70e3a15adb3f7dfb9..ef7be9029cc53ece6183c87864df2cab60a28e9d 100644 (file)
@@ -44,4 +44,4 @@ string ( REPLACE ".cxx" ".h"  HDRS "${SRCS}")
 
 set ( DHDR  TenderSuppliesLinkDef.h)
 
-set ( EINCLUDE  ANALYSIS ANALYSIS/Tender TOF TRD/Cal VZERO ANALYSIS/TenderSupplies TPC TPC/Base T0 OADB EMCAL STEER/STEER STEER/CDB STEER/ESD STEER/STEERBase)
+set ( EINCLUDE  ANALYSIS ANALYSIS/Tender TOF TRD/Cal VZERO ANALYSIS/TenderSupplies TPC TRD T0 OADB EMCAL STEER/STEER STEER/CDB STEER/ESD STEER/STEERBase TPC/Base)
index 5e3e6ef01aa1d6b755a5eff55547ec27fc621e42..5f90b8864172ba7a52f91dd7e992927f6852996e 100644 (file)
@@ -80,10 +80,11 @@ AliAnalysisTask *AddTaskTender(Bool_t useV0=kFALSE,
   if (useTRD) {
     AliTRDTenderSupply *trdSupply=new AliTRDTenderSupply("TRDtender");
 
-    trdSupply->SetLoadDeadChambersFromCDB();                    // Mask Bad chambers\r
+    trdSupply->SetLoadDeadChambersFromCDB();                    // Mask Bad chambers
     trdSupply->SetPIDmethod(AliTRDTenderSupply::k1DLQpid);
-    trdSupply->SwitchOffGainCorrection();                       // Correction only on pass 1\r
-    trdSupply->SetNormalizationFactor(0.12697,114737,130850);   // 1 otherwise\r
+    trdSupply->SwitchOffGainCorrection();                       // Correction only on pass 1
+    trdSupply->SetNormalizationFactor(0.12697,114737,130850);   // 1 otherwise
+    trdSupply->SetRedoTRDMatching(kTRUE);
     tender->AddSupply(trdSupply);
   }  
 
index 4e9dd467ccf262fd655064ded752927658c61ab9..5c8b2743e8129853f819ee1cabab4e19ba3ff89b 100644 (file)
@@ -34,6 +34,7 @@
 #include <AliCDBManager.h>
 #include <AliOADBContainer.h>
 #include <AliTRDCalDet.h>
+#include "AliTRDonlineTrackMatching.h"
 
 #include <AliLog.h>
 #include <TTree.h>
@@ -61,6 +62,7 @@ AliTRDTenderSupply::AliTRDTenderSupply() :
   AliTenderSupply(),
   fESD(NULL),
   fESDpid(NULL),
+  fTrdOnlineTrackMatcher(NULL),
   fChamberGainOld(NULL),
   fChamberGainNew(NULL),
   fChamberVdriftOld(NULL),
@@ -78,13 +80,14 @@ AliTRDTenderSupply::AliTRDTenderSupply() :
   fHasReferences(kFALSE),
   fHasNewCalibration(kTRUE),
   fDebugMode(kFALSE),
-  fNameRunByRunCorrection(),\r
-  fNormalizationFactorArray(NULL)\r
+  fRedoTrdMatching(kTRUE),
+  fNameRunByRunCorrection(),
+  fNormalizationFactorArray(NULL)
 {
   //
   // default ctor
   //
-  memset(fBadChamberID, 0, sizeof(Int_t) * kNChambers);\r
+  memset(fBadChamberID, 0, sizeof(Int_t) * kNChambers);
   memset(fSlicesForPID, 0, sizeof(UInt_t) * 2);
 }
 
@@ -93,6 +96,7 @@ AliTRDTenderSupply::AliTRDTenderSupply(const char *name, const AliTender *tender
   AliTenderSupply(name,tender),
   fESD(NULL),
   fESDpid(NULL),
+  fTrdOnlineTrackMatcher(NULL),
   fChamberGainOld(NULL),
   fChamberGainNew(NULL),
   fChamberVdriftOld(NULL),
@@ -110,8 +114,9 @@ AliTRDTenderSupply::AliTRDTenderSupply(const char *name, const AliTender *tender
   fHasReferences(kFALSE),
   fHasNewCalibration(kTRUE),
   fDebugMode(kFALSE),
-  fNameRunByRunCorrection(),\r
-  fNormalizationFactorArray(NULL)\r
+  fRedoTrdMatching(kTRUE),
+  fNameRunByRunCorrection(),
+  fNormalizationFactorArray(NULL)
 {
   //
   // named ctor
@@ -126,7 +131,8 @@ AliTRDTenderSupply::~AliTRDTenderSupply()
   //
   // dtor
   //
-  if(fNormalizationFactorArray) delete fNormalizationFactorArray;\r
+    if(fNormalizationFactorArray) delete fNormalizationFactorArray;
+    delete fTrdOnlineTrackMatcher;
 }
 
 //_____________________________________________________
@@ -150,7 +156,7 @@ void AliTRDTenderSupply::Init()
   //fESDpid->SetTRDslicesForPID(fSlicesForPID[0], fSlicesForPID[1]);
 
   if(fNameRunByRunCorrection.Length()) LoadRunByRunCorrection(fNameRunByRunCorrection.Data());
-
+  fTrdOnlineTrackMatcher=new AliTRDonlineTrackMatching();
   // Set Normalisation Factors
   if(mgr->GetMCtruthEventHandler()){
     // Assume MC
@@ -191,7 +197,17 @@ void AliTRDTenderSupply::ProcessEvent()
   if (!fESD) return;
   if(fNormalizationFactorArray) fNormalizationFactor = GetNormalizationFactor(fESD->GetRunNumber());\r
   Int_t ntracks=fESD->GetNumberOfTracks();
-   
+
+
+
+  if (fRedoTrdMatching) {
+      if (!fTrdOnlineTrackMatcher->ProcessEvent(fESD)) {
+         AliError("TRD online track matching failed!");
+      } 
+  }
+
+
+
   //
   // recalculate PID probabilities
   //
@@ -473,11 +489,11 @@ void AliTRDTenderSupply::ApplyRunByRunCorrection(AliESDtrack *const track) {
   //
 
   TVectorD *corrfactor = dynamic_cast<TVectorD *>(fRunByRunCorrection->GetObject(fTender->GetRun()));
-  if(!corrfactor){ \r
+  if(!corrfactor){ 
     // No correction available - simply return\r
-    AliDebug(2, "Couldn't derive gain correction factor from OADB");\r
-    return;\r
-  }\r
+    AliDebug(2, "Couldn't derive gain correction factor from OADB");
+    return;
+  }
   else AliDebug(2, Form("Gain factor from OADB %f", (*corrfactor)[0]));
   Double_t slice = 0;
   for(Int_t ily = 0; ily < kNPlanes; ily++){
@@ -488,42 +504,42 @@ void AliTRDTenderSupply::ApplyRunByRunCorrection(AliESDtrack *const track) {
       track->SetTRDslice(slice, ily, islice);
     }
   }
-}\r
-\r
-//_____________________________________________________\r
-void AliTRDTenderSupply::SetNormalizationFactor(Double_t norm, Int_t runMin, Int_t runMax) { \r
-  //\r
-  // Set the normalisation factor for a given run range\r
-  //\r
-  if(!fNormalizationFactorArray)\r
-    fNormalizationFactorArray = new TObjArray;\r
-  TVectorD *entry = new TVectorD(3);\r
-  TVectorD &myentry = *entry;\r
-  myentry(0) = runMin;\r
-  myentry(1) = runMax;\r
-  myentry(2) = norm;\r
-  fNormalizationFactorArray->Add(entry);\r
-}\r
-\r
-//_____________________________________________________\r
-Double_t AliTRDTenderSupply::GetNormalizationFactor(Int_t runnumber){\r
-  // \r
+}
+
+//_____________________________________________________
+void AliTRDTenderSupply::SetNormalizationFactor(Double_t norm, Int_t runMin, Int_t runMax) {
+  //
+  // Set the normalisation factor for a given run range
+  //
+  if(!fNormalizationFactorArray)
+    fNormalizationFactorArray = new TObjArray;
+  TVectorD *entry = new TVectorD(3);
+  TVectorD &myentry = *entry;
+  myentry(0) = runMin;
+  myentry(1) = runMax;
+  myentry(2) = norm;
+  fNormalizationFactorArray->Add(entry);
+}
+
+//_____________________________________________________
+Double_t AliTRDTenderSupply::GetNormalizationFactor(Int_t runnumber){
+  // 
   // Load the normalization factor\r
-  //\r
-  Double_t norm = 1.;\r
-  if(fNormalizationFactorArray){\r
-    TVectorD *entry;\r
-    Int_t runMin, runMax;\r
-    TIter entries(fNormalizationFactorArray);\r
-    while((entry = dynamic_cast<TVectorD *>(entries()))){\r
-      TVectorD &myentry = *entry;\r
-      runMin = TMath::Nint(myentry(0));\r
-      runMax = TMath::Nint(myentry(1));\r
-      if(runnumber >= runMin && runnumber <= runMax) norm = myentry(2);\r
-    }\r
-  }\r
-  AliDebug(1, Form("Gain normalization factor: %f\n", norm));\r
-  return norm;\r
+  //
+  Double_t norm = 1.;
+  if(fNormalizationFactorArray){
+    TVectorD *entry;
+    Int_t runMin, runMax;
+    TIter entries(fNormalizationFactorArray);
+    while((entry = dynamic_cast<TVectorD *>(entries()))){
+      TVectorD &myentry = *entry;
+      runMin = TMath::Nint(myentry(0));
+      runMax = TMath::Nint(myentry(1));
+      if(runnumber >= runMin && runnumber <= runMax) norm = myentry(2);
+    }
+  }
+  AliDebug(1, Form("Gain normalization factor: %f\n", norm));
+  return norm;
 }
 
 //_____________________________________________________
index 2c8bc149fd295fd73f02f2643ff489174026d92d..b38f4bb75fe285f51be54e7b1883e6f95e6bdade 100644 (file)
@@ -17,6 +17,7 @@
 class AliTRDCalDet;
 class AliESDEvent;
 class AliOADBContainer;
+class AliTRDonlineTrackMatching;
 
 class AliTRDTenderSupply: public AliTenderSupply {
   
@@ -35,11 +36,12 @@ public:
 //  void SetLoadReferencesFromFile() { fLoadReferences = kTRUE; fLoadReferencesFromCDB = kFALSE; }
   void SetLoadDeadChambersFromCDB(){ fLoadDeadChambers = kTRUE;} ;
   void SetPIDmethod(Int_t pidMethod) { fPIDmethod = pidMethod; }
-  void SetNormalizationFactor(Double_t norm, Int_t runMin, Int_t runMax);\r
+  void SetNormalizationFactor(Double_t norm, Int_t runMin, Int_t runMax);
   void SetNormalizationFactor(Double_t norm) { fNormalizationFactor = norm; }
   void SetCalibLowpThreshold(Double_t pmin) { fPthreshold = pmin; };
   void SetGeoFile(const char *filename) { fGeoFile = filename; }
   void SetDebugMode() { fDebugMode = kTRUE; }
+  void SetRedoTRDMatching(Bool_t redo = kTRUE) {fRedoTrdMatching = redo;}
 
   virtual void              Init();
   virtual void              ProcessEvent();
@@ -65,10 +67,11 @@ private:
   void LoadDeadChambersFromCDB();
   void LoadRunByRunCorrection(const char *filename);
   Bool_t IsBadChamber(Int_t chamberID);
-  Double_t GetNormalizationFactor(Int_t runnumber);\r
+  Double_t GetNormalizationFactor(Int_t runnumber);
   
   AliESDEvent           *fESD;       //! the ESD Event
   AliESDpid             *fESDpid;    //! ESD PID object
+  AliTRDonlineTrackMatching  *fTrdOnlineTrackMatcher;   //! TRD online track matcher
 
   AliTRDCalDet *fChamberGainOld;     // TRD Chamber Gain Factor used for producing the ESD
   AliTRDCalDet *fChamberGainNew;     // New TRD Chamber Gain Factor
@@ -90,6 +93,7 @@ private:
   Bool_t fHasReferences;             // has references loaded
   Bool_t fHasNewCalibration;         // has new calibration
   Bool_t fDebugMode;                 // Run in debug mode
+  Bool_t fRedoTrdMatching;           // Redo Track Matching
   TString fNameRunByRunCorrection;   // filename with the run-by-run gain correction
   TObjArray *fNormalizationFactorArray; // Array with normalisation Factors\r