]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
AliTPCcalibLaser.h - Adding run number
authormarian <marian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 26 Jun 2008 16:55:29 +0000 (16:55 +0000)
committermarian <marian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 26 Jun 2008 16:55:29 +0000 (16:55 +0000)
AliTPCcalibCosmic.cxx  -  Adding example how to extract data from debug streamer AliTPCcalibLaser.cxx  - Use new LaserTrack class
 AliTPCcalibAlign.cxx  - Change selection criterias  - use cuts on absolute distances

TPC/AliTPCcalibAlign.cxx
TPC/AliTPCcalibCosmic.cxx
TPC/AliTPCcalibLaser.cxx
TPC/AliTPCcalibLaser.h

index 026d1eb7d78d90c3e7ec6f472ee98b5530e201b9..106ae5c42c3c5b2f4a420203c666959330f4d620 100644 (file)
@@ -248,34 +248,29 @@ void AliTPCcalibAlign::ProcessTracklets(const AliExternalTrackParam &tp1,
   /*
     // Cuts to be justified with the debug streamer
     //
-    TCut c1pt("abs((tp1.fP[4]+tp2.fP[4])*0.5)<5"); // pt cut
-    TCut cd1pt("abs(tp1.fP[4]-tp2.fP[4])<0.5");
-    TCut c1ptpull("abs((tp1.fP[4]-tp2.fP[4])/sqrt(tp1.fC[14]+tp2.fC[14]))<5");
-    TCut csy("sqrt(tp1.fC[0]+tp2.fC[0])<0.5");
-    TCut csz("sqrt(tp1.fC[2]+tp2.fC[2])<0.3");
-    TCut cphi("abs(v1.fElements[3])<1")
-    TCut ctheta("abs(v1.fElements[4])<1")
+    TCut c1pt("abs((tp1.fP[4]+tp2.fP[4])*0.5)<3"); // pt cut  - OK
+    TCut cdy("abs(tp1.fP[0]-tp2.fP[0])<2");
+    TCut cdz("abs(tp1.fP[1]-tp2.fP[1])<2");
+    TCut cdphi("abs(tp1.fP[2]-tp2.fP[2])<0.02");
+    TCut cdt("abs(tp1.fP[3]-tp2.fP[3])<0.02");
+    TCut cd1pt("abs(tp1.fP[4]-tp2.fP[4])<0.3");    // delta 1/pt cut  -OK   
     //
     //
-    TCut acut =  c1ptpull+c1pt+cd1pt+csy+csz+cphi+ctheta;
+    TCut acut =  c1pt+cdy+cdz+cdphi+cdt+cd1pt;
   */
   //   1. pt cut
-  //   2. delta in curvature
-  //   3. pull in 1pt
-  //   4. sigma y
-  //   5. sigma z
-  //   6. angle phi
-  //   7. angle theta
-  Double_t sigma1pt  = TMath::Sqrt(tp1.GetSigma1Pt2()+tp1.GetSigma1Pt2());
-  Double_t delta1pt = (tp1.GetParameter()[4]-tp2.GetParameter()[4]);
-  Double_t pull1pt  = delta1pt/sigma1pt;
-  if (0.5*TMath::Abs(tp1.GetParameter()[4]+tp2.GetParameter()[4])>5) return;
-  if (TMath::Abs(delta1pt)>0.5) return;
-  if (TMath::Abs(pull1pt)>5)    return;
-  if (TMath::Sqrt(tp1.GetSigmaY2()+tp2.GetSigmaY2())>0.5)    return;
-  if (TMath::Sqrt(tp1.GetSigmaZ2()+tp2.GetSigmaZ2())>0.3)    return;
-  if (TMath::Abs(dydx1)>1.)    return;
-  if (TMath::Abs(dzdx1)>1.)    return;  
+  //   2. dy
+  //   3. dz
+  //   4. dphi
+  //   5. dtheta
+  //   6. d1pt
+
+  if (TMath::Abs(tp1.GetParameter()[0]-tp2.GetParameter()[0])>2)    return;
+  if (TMath::Abs(tp1.GetParameter()[1]-tp2.GetParameter()[1])>2)    return;
+  if (TMath::Abs(tp1.GetParameter()[2]-tp2.GetParameter()[2])>0.02) return;
+  if (TMath::Abs(tp1.GetParameter()[3]-tp2.GetParameter()[3])>0.02) return;
+  if (TMath::Abs(tp1.GetParameter()[4]-tp2.GetParameter()[4])>0.3)  return;
+  if (TMath::Abs((tp1.GetParameter()[4]+tp2.GetParameter()[4])*0.5)<3)  return;
   //
   // fill resolution histograms - previous cut included
   FillHisto(tp1,tp2,s1,s2);  
index 8009ec493f260cb21125146e8c6607341d4be8ed..b8f0b337f16563405b1da8ee264996dd8c177195 100644 (file)
@@ -356,19 +356,6 @@ void AliTPCcalibCosmic::FindPairs(AliESDEvent *event) {
   }  
 }    
 
-/*
-
-
-void AliTPCcalibCosmic::dEdxCorrection(){
-  TCut cutT("cutT","abs(Tr1.fP[3]+Tr0.fP[3])<0.03")
-  TCut cutD("cutD","abs(Tr0.fP[0]+Tr1.fP[0])<5")
-  TCut cutPt("cutPt","abs(Tr1.fP[4]+Tr0.fP[4])<1&&abs(Tr0.fP[4])+abs(Tr1.fP[4])<10");
-  TCut cutN("cutN","min(Orig0.fTPCncls,Orig1.fTPCncls)>70");
-}
-
-*/
-
-
 
 Long64_t AliTPCcalibCosmic::Merge(TCollection */*li*/) {
   
@@ -427,3 +414,49 @@ void AliTPCcalibCosmic::BinLogX(TH1 *h) {
   
 }
 
+
+
+/*
+
+
+void AliTPCcalibCosmic::dEdxCorrection(){
+  TCut cutT("cutT","abs(Tr1.fP[3]+Tr0.fP[3])<0.03");
+  TCut cutD("cutD","abs(Tr0.fP[0]+Tr1.fP[0])<5");
+  TCut cutPt("cutPt","abs(Tr1.fP[4]+Tr0.fP[4])<0.2&&abs(Tr0.fP[4])+abs(Tr1.fP[4])<10");
+  TCut cutN("cutN","min(Orig0.fTPCncls,Orig1.fTPCncls)>70");
+  TCut cutA=cutT+cutD+cutPt+cutN;
+
+
+  .x ~/rootlogon.C
+   gSystem->Load("libSTAT.so");
+
+  Double_t chi2=0;
+  Int_t    npoints=0;
+  TVectorD fitParam;
+  TMatrixD covMatrix;
+  
+  chain->Draw("Tr0.fP[4]+Tr1.fP[4]","OK"+cutA);
+  
+  TString strFit;
+  strFit+="(Tr0.fP[1]/250)++";
+  strFit+="(Tr0.fP[1]/250)^2++";
+  strFit+="(Tr0.fP[3])++";
+  strFit+="(Tr0.fP[3])^2++";
+
+  TString * ptParam = TStatToolkit::FitPlane(chain,"Tr0.fP[4]+Tr1.fP[4]", strFit.Data(),cutA, chi2,npoints,fitParam,covMatrix) 
+
+strFit+="(Tr0.fP[1]/250)++";
+strFit+="(Tr0.fP[1]/250)^2++";
+strFit+="(Tr0.fP[3])++";
+strFit+="(Tr0.fP[3])^2++";
+strFit+="(Tr0.fP[1]/250)^2*Tr0.fP[3]++";
+strFit+="(Tr0.fP[1]/250)^2*Tr0.fP[3]^2++";
+//
+
+strFit+="sign(Tr0.fP[1])++"
+strFit+="sign(Tr0.fP[1])*(1-abs(Tr0.fP[1]/250))"
+                                           
+TString * thetaParam = TStatToolkit::FitPlane(chain,"Tr0.fP[3]+Tr1.fP[3]", strFit.Data(),cutA, chi2,npoints,fitParam,covMatrix)
+*/
+
+
index 17fae5aa68ac91e12b39d576fa203513e3187c8d..b296e692fdf6d829d345b311dd1292b6605d462a 100644 (file)
 
 /*
   laser track clasification;
-  TCut cutFi("cutFi","abs((180*atan2(x1,x0)/pi-20)%60)<5");
+  TCut cutT("cutT","abs(Tr.fP[3])<0.06");
+  TCut cutPt("cutPt","abs(Tr.fP[4])<0.1");
+  TCut cutN("cutN","fTPCncls>100");
+
+  TCut cutFi("cutZB","");
   TCut cutFi("cutFi","abs((180*atan2(x1,x0)/pi-20)%40)<5");
   
 */
@@ -42,6 +46,8 @@
 #include "TTreeStream.h"
 #include <iostream>
 #include <sstream>
+#include "AliTPCLaserTrack.h"
+
 using namespace std;
 
 ClassImp(AliTPCcalibLaser)
@@ -71,7 +77,7 @@ AliTPCcalibLaser::~AliTPCcalibLaser() {
   //
 }
 
-void AliTPCcalibLaser::Process(AliESDtrack *track) {
+void AliTPCcalibLaser::Process(AliESDtrack *track, Int_t run) {
   //
   // 
   //
@@ -81,6 +87,11 @@ void AliTPCcalibLaser::Process(AliESDtrack *track) {
   AliExternalTrackParam param(*(track->GetOuterParam()));
   AliTracker::PropagateTrackTo(&param,270.,0.0005,3,kTRUE);
   AliTracker::PropagateTrackTo(&param,kRadius,0.0005,0.1,kTRUE);
+  AliTPCLaserTrack ltr;
+  AliTPCLaserTrack *ltrp=0x0;
+  Int_t id = AliTPCLaserTrack::IdentifyTrack(&param);
+  if (id!=-1) ltrp=(AliTPCLaserTrack*)AliTPCLaserTrack::GetTracks()->UncheckedAt(id);
+  else ltrp=&ltr;
   //
   if (fStreamLevel>0){
     TTreeSRedirector *cstream = GetDebugStreamer();
@@ -88,8 +99,22 @@ void AliTPCcalibLaser::Process(AliESDtrack *track) {
     Double_t pxyz[3];
     param.GetXYZ(xyz);
     param.GetPxPyPz(pxyz);
+    Int_t side = (param.GetZ()>0) ? 0:1;
+    Int_t beam = 0;
+    if (side==0) beam = TMath::Nint((180*atan2(xyz[1],xyz[0])/TMath::Pi()+20)/60.);
+    if (side==1) beam = TMath::Nint((180*atan2(xyz[1],xyz[0])/TMath::Pi()-20)/60.);
+    //Int_t id(180*atan2(x1,x0)/pi+20)/60.;
+    Int_t bundle=TMath::Nint(param.GetZ()/80.);
     if (cstream){
       (*cstream)<<"Track"<<
+       "run="<<run<<
+       "id="<<id<<
+       "fSide="<<side<<    // side A-C
+       "fBeam="<<beam<<   // phi id
+       "fBundle="<<bundle<< // laser Z
+       //
+        "LTr.="<<ltrp<<
+       "Esd.="<<track<<
        "Tr.="<<&param<<
        "x0="<<xyz[0]<<
        "x1="<<xyz[1]<<
@@ -109,12 +134,5 @@ void AliTPCcalibLaser::Analyze(){
 }
 
 
-void AliTPCcalibLaser::Terminate(){
-  //
-  //
-  //
-}
-
-
 
 
index 0a70af9f2141a067da0495c3da2b7ff8d23c8288..42837ac0416c57ab91ece7fe5efe80dafeddcb81 100644 (file)
@@ -23,9 +23,8 @@ public:
   AliTPCcalibLaser();
   AliTPCcalibLaser(const Text_t *name, const Text_t *title);
   virtual ~AliTPCcalibLaser();
-  virtual void Process(AliESDtrack *track);
+  virtual void Process(AliESDtrack *track, Int_t run);
   virtual void Analyze();
-  virtual void Terminate();  
   //
 
 private: