]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
updates for studying the drift cell structure
authorabercuci <abercuci@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 21 Jan 2009 15:48:01 +0000 (15:48 +0000)
committerabercuci <abercuci@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 21 Jan 2009 15:48:01 +0000 (15:48 +0000)
TRD/qaRec/AliTRDclusterResolution.cxx
TRD/qaRec/AliTRDclusterResolution.h
TRD/qaRec/AliTRDtrackingResolution.cxx
TRD/qaRec/AliTRDtrackingResolution.h
TRD/qaRec/run.C

index 557d854ad999a5bf85e756d75e3f997175a2aa25..346bbc5c87dafd342cbd0524c5b74e3f14aa7079 100644 (file)
 //   cdb->SetDefaultStorage("local://$ALICE_ROOT");
 //   cdb->SetRun(0);
 //   // initialize magnetic field.
-//   AliMagFMaps *field = new AliMagFMaps("Maps","Maps", 2, 1., 10., AliMagFMaps::k5kG);
+//   AliMagFCheb *field=new AliMagFCheb("Maps","Maps", 2, 1., 10., AliMagFCheb::k5kG);
 //   AliTracker::SetFieldMap(field, kTRUE);
 // 
 //   AliTRDclusterResolution *res = new AliTRDclusterResolution();
 //   res->SetMCdata();
 //   res->Load("TRD.TaskClErrParam.root");
-//   res->SetExB();
+//   res->SetExB();  
+//   res->SetVisual(); 
+//   //res->SetSaveAs();
+//   res->SetProcessCharge(kFALSE);
+//   res->SetProcessCenterPad(kFALSE);
+//   //res->SetProcessMean(kFALSE);
+//   res->SetProcessSigma(kFALSE);
 //   if(!res->PostProcess()) return;
 //   new TCanvas;
 //   res->GetRefFigure(fig);
@@ -190,8 +196,8 @@ ClassImp(AliTRDclusterResolution)
 
 
 //_______________________________________________________
-AliTRDclusterResolution::AliTRDclusterResolution()
-  : AliTRDrecoTask("ClErrParam", "Cluster Error Parametrization")
+AliTRDclusterResolution::AliTRDclusterResolution(const char *name)
+  : AliTRDrecoTask(name, "Cluster Error Parametrization")
   ,fCanvas(0x0)
   ,fInfo(0x0)
   ,fResults(0x0)
@@ -311,7 +317,7 @@ Bool_t AliTRDclusterResolution::GetRefFigure(Int_t ifig)
 TObjArray* AliTRDclusterResolution::Histos()
 {
   if(fContainer) return fContainer;
-  fContainer = new TObjArray(sizeof(AliTRDclusterResolution::EResultContainers));
+  fContainer = new TObjArray(sizeof(AliTRDclusterResolution::EResultContainer));
   //fContainer->SetOwner(kTRUE);
 
   TH2I *h2 = 0x0;
@@ -323,6 +329,7 @@ TObjArray* AliTRDclusterResolution::Histos()
   h2->SetZTitle("entries");
 
   fContainer->AddAt(arr = new TObjArray(AliTRDgeometry::kNlayer), kCenter);
+  arr->SetName("y(PadWidth)");
   for(Int_t ily=0; ily<AliTRDgeometry::kNlayer; ily++){
     arr->AddAt(h2 = new TH2I(Form("h_y%d", ily), Form("Ly[%d]", ily), 51, -.51, .51, 100, -.5, .5), ily);
     h2->SetXTitle("y_{w} [w]");
@@ -331,6 +338,7 @@ TObjArray* AliTRDclusterResolution::Histos()
   }
 
   fContainer->AddAt(arr = new TObjArray(kN), kSigm);
+  arr->SetName("Resolution");
   Int_t ih = 0;
   for(Int_t id=1; id<=fAd->GetNbins(); id++){
     for(Int_t it=1; it<=fAt->GetNbins(); it++){
@@ -342,6 +350,7 @@ TObjArray* AliTRDclusterResolution::Histos()
   }
 
   fContainer->AddAt(arr = new TObjArray(kN), kMean);
+  arr->SetName("Systematics");
   ih = 0;
   for(Int_t id=1; id<=fAd->GetNbins(); id++){
     for(Int_t it=1; it<=fAt->GetNbins(); it++){
@@ -433,7 +442,7 @@ Bool_t AliTRDclusterResolution::PostProcess()
   TH2 *h2 = 0x0; 
   if(!fResults){
     TGraphErrors *g = 0x0;
-    fResults = new TObjArray(sizeof(AliTRDclusterResolution::EResultContainers));
+    fResults = new TObjArray(sizeof(AliTRDclusterResolution::EResultContainer));
     fResults->SetOwner();
     fResults->AddAt(arr = new TObjArray(3), kQRes);
     arr->SetOwner();
index 126945742be91db5d86d54045655c20b8e7a2489..d974ad8ea805948aa831224c47eeaadd33eab057 100644 (file)
@@ -17,7 +17,7 @@ public:
     ,kND = 5
     ,kN  = kND*kNTB
   };
-  enum EResultContainers { // results containers
+  enum EResultContainer { // results container type
     kQRes   = 0
     ,kCenter= 1
     ,kSigm  = 2
@@ -33,7 +33,7 @@ public:
     ,kProcSigma     = 3
     ,kProcMean      = 4
   };
-  AliTRDclusterResolution();
+  AliTRDclusterResolution(const char *name="ClErrParam");
   virtual ~AliTRDclusterResolution();
 
   void    ConnectInputData(Option_t *);
index f7a3c070e00320c46ab0592a37f4a7c0fc2ee611..c8e0a83ef37f78c3c39abb180ed5535b7a375e76 100644 (file)
@@ -94,11 +94,10 @@ AliTRDtrackingResolution::AliTRDtrackingResolution()
   ,fGeo(0x0)
   ,fGraphS(0x0)
   ,fGraphM(0x0)
-  ,fClResiduals(0x0)
-  ,fTrkltResiduals(0x0)
-  ,fTrkltPhiResiduals(0x0)
-  ,fClResolution(0x0)
-  ,fTrkltResolution(0x0)
+  ,fCl(0x0)
+  ,fTrklt(0x0)
+  ,fMCcl(0x0)
+  ,fMCtrklt(0x0)
 {
   fReconstructor = new AliTRDReconstructor();
   fReconstructor->SetRecoParam(AliTRDrecoParam::GetLowFluxParam());
@@ -106,11 +105,10 @@ AliTRDtrackingResolution::AliTRDtrackingResolution()
 
   InitFunctorList();
 
-  DefineOutput(1+kCluster, TObjArray::Class());
-  DefineOutput(1+kTrackletY, TObjArray::Class());
-  DefineOutput(1+kTrackletPhi, TObjArray::Class());
-  DefineOutput(1+kMCcluster, TObjArray::Class());
-  DefineOutput(1+kMCtrackletY, TObjArray::Class());
+  DefineOutput(1, TObjArray::Class()); // cluster2track
+  DefineOutput(2, TObjArray::Class()); // tracklet2track
+  DefineOutput(3, TObjArray::Class()); // cluster2mc
+  DefineOutput(4, TObjArray::Class()); // tracklet2mc
 }
 
 //________________________________________________________
@@ -121,14 +119,10 @@ AliTRDtrackingResolution::~AliTRDtrackingResolution()
   delete fGeo;
   delete fReconstructor;
   if(gGeoManager) delete gGeoManager;
-  if(fClResiduals){fClResiduals->Delete(); delete fClResiduals;}
-  if(fTrkltResiduals){fTrkltResiduals->Delete(); delete fTrkltResiduals;}
-  if(fTrkltPhiResiduals){fTrkltPhiResiduals->Delete(); delete fTrkltPhiResiduals;}
-  if(fClResolution){
-    fClResolution->Delete(); 
-    delete fClResolution;
-  }
-  if(fTrkltResolution){fTrkltResolution->Delete(); delete fTrkltResolution;}
+  if(fCl){fCl->Delete(); delete fCl;}
+  if(fTrklt){fTrklt->Delete(); delete fTrklt;}
+  if(fMCcl){fMCcl->Delete(); delete fMCcl;}
+  if(fMCtrklt){fMCtrklt->Delete(); delete fMCtrklt;}
 }
 
 
@@ -140,34 +134,30 @@ void AliTRDtrackingResolution::CreateOutputObjects()
 
   fContainer = Histos();
 
-  fClResiduals = new TObjArray();
-  fClResiduals->SetOwner(kTRUE);
-  fTrkltResiduals = new TObjArray();
-  fTrkltResiduals->SetOwner(kTRUE);
-  fTrkltPhiResiduals = new TObjArray();
-  fTrkltPhiResiduals->SetOwner(kTRUE);
-  fClResolution = new TObjArray();
-  fClResolution->SetOwner(kTRUE);
-  fTrkltResolution = new TObjArray();
-  fTrkltResolution->SetOwner(kTRUE);
+  fCl = new TObjArray();
+  fCl->SetOwner(kTRUE);
+  fTrklt = new TObjArray();
+  fTrklt->SetOwner(kTRUE);
+  fMCcl = new TObjArray();
+  fMCcl->SetOwner(kTRUE);
+  fMCtrklt = new TObjArray();
+  fMCtrklt->SetOwner(kTRUE);
 }
 
 //________________________________________________________
 void AliTRDtrackingResolution::Exec(Option_t *opt)
 {
-  fClResiduals->Delete();
-  fTrkltResiduals->Delete();
-  fTrkltPhiResiduals->Delete();
-  fClResolution->Delete();
-  fTrkltResolution->Delete();
+  fCl->Delete();
+  fTrklt->Delete();
+  fMCcl->Delete();
+  fMCtrklt->Delete();
 
   AliTRDrecoTask::Exec(opt);
 
-  PostData(1+kCluster, fClResiduals);
-  PostData(1+kTrackletY, fTrkltResiduals);
-  PostData(1+kTrackletPhi, fTrkltPhiResiduals);
-  PostData(1+kMCcluster, fClResolution);
-  PostData(1+kMCtrackletY, fTrkltResolution);
+  PostData(1, fCl);
+  PostData(2, fTrklt);
+  PostData(3, fMCcl);
+  PostData(4, fMCtrklt);
 }
 
 //________________________________________________________
@@ -224,7 +214,7 @@ TH1* AliTRDtrackingResolution::PlotCluster(const AliTRDtrackV1 *track)
         if (d > 0.25) d  = 0.5 - d;
 
 /*        AliTRDclusterInfo *clInfo = new AliTRDclusterInfo;
-        fClResiduals->Add(clInfo);
+        fCl->Add(clInfo);
         clInfo->SetCluster(c);
         clInfo->SetGlobalPosition(yt, zt, dydx, dzdx);
         clInfo->SetResolution(dy);
@@ -448,7 +438,7 @@ TH1* AliTRDtrackingResolution::PlotResolution(const AliTRDtrackV1 *track)
       d -= ((Int_t)(2 * d)) / 2.0;
       if (d > 0.25) d  = 0.5 - d;
       AliTRDclusterInfo *clInfo = new AliTRDclusterInfo;
-      fClResolution->Add(clInfo);
+      fMCcl->Add(clInfo);
       clInfo->SetCluster(c);
       clInfo->SetMC(pdg, label);
       clInfo->SetGlobalPosition(yt, zt, dydx, dzdx);
index bfd48e35ff1879818fa21a42d5064f7f2e3955fd..63b412e8d27740e713d322555608ef31327d8327 100644 (file)
@@ -27,13 +27,13 @@ class AliTRDtrackingResolution : public AliTRDrecoTask
 {
 public:
   enum{
-    kCluster        = 0
+    kCluster        = 0 // cluster - track
     ,kTrackletY     = 1 // tracklet - track y pools
     ,kTrackletPhi   = 2 // tracklet - track angular pools residuals
-    ,kMCcluster     = 3/*5*/
-    ,kMCtrackletY   = 4/*6*/
-    ,kMCtrackletZ   = 5/*6*/
-    ,kMCtrackletPhi = 6/*7*/
+    ,kMCcluster     = 3 // cluster - mc residuals/systematics
+    ,kMCtrackletY   = 4 // tracklet - mc y resolution/systematics
+    ,kMCtrackletZ   = 5 // tracklet - mc z resolution/systematics (pad row cross)
+    ,kMCtrackletPhi = 6 // tracklet - mc phi resolution/systematics
     ,kMCtrackY      = 7 // Kalman Y resolution
     ,kMCtrackZ      = 8 // Kalman Z resolution
     ,kMCtrackPt     = 9 // Kalman Pt resolution
@@ -78,12 +78,11 @@ private:
   TObjArray           *fGraphM;         //! result holder - mean values
 
   // calibration containers
-  TObjArray           *fClResiduals;    //!
-  TObjArray           *fTrkltResiduals;    //!
-  TObjArray           *fTrkltPhiResiduals;    //!
-  TObjArray           *fClResolution;   //!
-  TObjArray           *fTrkltResolution;//!
+  TObjArray           *fCl;     //! cluster2track calib
+  TObjArray           *fTrklt;  //! tracklet2track calib
+  TObjArray           *fMCcl;   //! cluster2mc calib
+  TObjArray           *fMCtrklt;//! tracklet2mc calib
   
-  ClassDef(AliTRDtrackingResolution, 1) // tracking resolution task
+  ClassDef(AliTRDtrackingResolution, 1) // TRD tracking resolution task
 };
 #endif
index 58c1ada743b9df8d131c3a4569c00bdce44f1dc4..493304a27205553dccec6f3c2e8b3e45085c4928 100644 (file)
@@ -45,7 +45,7 @@
 #include "TGridCollection.h"
 #include "TGridResult.h"
 
-#include "AliMagFMaps.h"
+#include "AliMagFCheb.h"
 #include "AliTracker.h"
 #include "AliLog.h"
 #include "AliCDBManager.h"
@@ -98,9 +98,13 @@ void run(Char_t *tasks="ALL", const Char_t *files=0x0)
   cdbManager->SetDefaultStorage("local://$ALICE_ROOT");
   cdbManager->SetRun(0);
   cdbManager->SetCacheFlag(kFALSE);
-  // initialize magnetic field. We should use the GRP !
-  AliMagFMaps *field = new AliMagFMaps("Maps","Maps", 2, 1., 10., AliMagFMaps::k5kG);
+
+  // initialize magnetic field. TODO We should use the GRP !
+  AliMagFCheb *field = 0x0;
+  field = new AliMagFCheb("Maps","Maps", 2, 1., 10., AliMagFCheb::k5kG, kTRUE,"$(ALICE_ROOT)/data/maps/mfchebKGI_sym.root");
+  //field = new AliMagFCheb("Maps","Maps", 2, 0., 10., AliMagFCheb::k2kG);
   AliTracker::SetFieldMap(field, kTRUE);
+
   // initialize TRD settings
   AliTRDcalibDB *cal = AliTRDcalibDB::Instance();
   AliTRDtrackerV1::SetNTimeBins(cal->GetNumberOfTimeBins());
@@ -237,8 +241,8 @@ void run(Char_t *tasks="ALL", const Char_t *files=0x0)
     mgr->ConnectOutput(task, 0, mgr->CreateContainer(task->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Task%s.root", task->GetName())));
 
     // Create output containers for calibration tasks
-    const Int_t nc = 5;
-    const Char_t *cn[nc] = {"Cl", "TrkltY", "TrkltPhi", "ClMC", "TrkltYMC"}; 
+    const Int_t nc = 4;
+    const Char_t *cn[nc] = {"Cl", "Trklt", "MC_Cl", "MC_Trklt"}; 
     AliAnalysisDataContainer *co[nc]; 
     for(Int_t ic = 0; ic<nc; ic++){
       co[ic] = mgr->CreateContainer(Form("%s%s", task->GetName(), cn[ic]), TObjArray::Class(), AliAnalysisManager::kExchangeContainer);
@@ -253,11 +257,11 @@ void run(Char_t *tasks="ALL", const Char_t *files=0x0)
       mgr->ConnectInput(task, 0, co[0]);
       mgr->ConnectOutput(task, 0, mgr->CreateContainer(task->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Task%s.root", task->GetName())));
   
-      mgr->AddTask(task = new AliTRDclusterResolution());
+      mgr->AddTask(task = new AliTRDclusterResolution("ClErrParamMC"));
       taskPtr[(Int_t)kClErrParam+1] = task;
       ((AliTRDclusterResolution*)task)->SetExB();
-      mgr->ConnectInput(task, 0, co[3]);
-      mgr->ConnectOutput(task, 0, mgr->CreateContainer(Form("%sMC", task->GetName()), TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Task%sMC.root", task->GetName())));
+      mgr->ConnectInput(task, 0, co[2]);
+      mgr->ConnectOutput(task, 0, mgr->CreateContainer(task->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Task%s.root", task->GetName())));
     }
   }