TPC/fastSimul/AliTPCclusterFast.cxx - iplement dEdx above threshold - several reco...
authormivanov <marian.ivanov@cern.ch>
Wed, 12 Feb 2014 13:04:31 +0000 (14:04 +0100)
committermivanov <marian.ivanov@cern.ch>
Wed, 12 Feb 2014 13:04:31 +0000 (14:04 +0100)
TPC/fastSimul/simul.C                 - adding example plots
TPC/fastSimul/simul.sh                - fix hardwired path of AliRoot

TPC/fastSimul/AliTPCclusterFast.cxx
TPC/fastSimul/simul.C
TPC/fastSimul/simul.sh

index 41c38b9..192ddc0 100644 (file)
@@ -1,3 +1,4 @@
+
 /*
   gSystem->Load("libSTAT.so");
   .x ~/NimStyle.C
@@ -82,6 +83,7 @@ public:
   static void Simul(const char* simul, Int_t ntracks);
   Double_t  CookdEdxNtot(Double_t f0,Float_t f1);
   Double_t  CookdEdxQtot(Double_t f0,Float_t f1);
+  Double_t  CookdEdxQtotThr(Double_t f0,Float_t f1, Double_t thr, Int_t mode);
   //
   Double_t  CookdEdxDtot(Double_t f0,Float_t f1, Float_t gain,Float_t thr, Float_t noise, Bool_t corr = kTRUE);
   Double_t  CookdEdxDmax(Double_t f0,Float_t f1,Float_t gain,Float_t thr, Float_t noise, Bool_t corr=kTRUE);
@@ -175,6 +177,60 @@ Double_t  AliTPCtrackFast::CookdEdxQtot(Double_t f0,Float_t f1){
   return CookdEdx(fN,amp,f0,f1);
 }
 
+Double_t  AliTPCtrackFast::CookdEdxQtotThr(Double_t f0,Float_t f1, Double_t thr, Int_t mode){
+  //
+  //
+  //
+  Double_t amp[160];
+  Int_t nUsed=0;
+  Int_t nBellow=0;
+  //
+  Double_t minAbove=-1;
+  for (Int_t i=0;i<fN;i++){ 
+    AliTPCclusterFast * cluster = ( AliTPCclusterFast *)((*fCl)[i]);
+    Double_t clQ= cluster->fQtot;
+    if (clQ<thr) {
+      nBellow++;
+      continue;
+    }
+    if (minAbove<0) minAbove=clQ;
+    if (minAbove>clQ) minAbove=clQ;
+  }
+  if (mode==-1) return Double_t(nBellow)/Double_t(fN);
+
+  for (Int_t i=0;i<fN;i++){ 
+    AliTPCclusterFast * cluster = ( AliTPCclusterFast *)((*fCl)[i]);
+    Double_t clQ= cluster->fQtot;
+    if (clQ<thr) nBellow++;
+    if (mode==0){              // mode0 - not threshold
+      amp[nUsed]=clQ;
+      nUsed++;
+    }
+    if (mode==1 && clQ>thr){   // mode1 - skip if bellow
+      amp[nUsed]=clQ;
+      nUsed++;
+    }
+    if (mode==2) {             // mode2 - use 0 if below
+      amp[nUsed]=(clQ>thr)?clQ:0;
+      nUsed++;
+    }
+    if (mode==3) {             // mode3 - use thr if below
+      amp[nUsed]=(clQ>thr)?clQ:thr;
+      nUsed++;
+    }
+    if (mode==4) {             // mode4 - use minimal above threshold if bellow thr
+      amp[nUsed]=(clQ>thr)?clQ:minAbove;
+      nUsed++;
+    }
+  }
+  if (nUsed*(f1-f0)<3) return 0;
+  return CookdEdx(nUsed,amp,f0,f1);
+}
+
+
+
+
+
 Double_t   AliTPCtrackFast::CookdEdxDtot(Double_t f0,Float_t f1, Float_t gain,Float_t thr, Float_t noise, Bool_t doCorr){
   //
   //
@@ -369,7 +425,9 @@ void AliTPCclusterFast::Digitize(){
        fDigits(2+di,3+dj)+=fac;
       }
   }
-  
+  //
+  //
+  //
 }
 
 
index 3b5f76b..29aa4d2 100644 (file)
@@ -6,6 +6,8 @@
 
 */
 
+Int_t  kmarkes[5]={20,21,24,25,23};
+Int_t  kcolors[5]={1,2,4,3,6};
 
 void simul(Int_t npoints){ 
   //
@@ -66,12 +68,16 @@ void DrawdEdxResolExample(){
   //
   chain->Draw("tr.CookdEdxDmax(0,0.6,1,0,1,0)/tr.CookdEdxDtot(0,0.6,1,0,1,0):tr.fMNprim>>hisQtotMax(10,10,50)","","prof",10000);
   //
-  // 2.) Non linearity due to the tucncation Qtot_{60%}/Qtot 100% 
+  // 2.) Non linearity due to the truncation Qtot_{60%}/Qtot 100% 
   //
   chain->Draw("tr.CookdEdxDtot(0,0.6,1,0,1,0)/tr.CookdEdxDtot(0,0.99,1,0,1,0):tr.fMNprim>>hisQtot60100(10,10,50)","","prof",10000);
   //
+  // 3.) 
   //
-  //
-
+  chain->Draw("tr.CookdEdxDtot(0,0.6,1,0,1,0)/tr.fMNprim:tr.fMNprim>>profQtot60(10,10,50)","","prof",10000);
+  chain->Draw("tr.CookdEdxDtot(0,0.99,1,0,1,0)/tr.fMNprim:tr.fMNprim>>profQtot100(10,10,50)","","profsame",10000);
 
 }
+
+
+
index 9d555b8..176277d 100755 (executable)
@@ -1,7 +1,4 @@
 #!/bin/sh
-
-
-
 main()
 {
   #
@@ -33,9 +30,9 @@ exampleCase(){
 #
 #  Example case to subit Toy MC jobs
 # 
-   source $ALICE_ROOT/TPCdev/TPC/fastSimul/simul.sh
+   source $ALICE_ROOT/TPC/fastSimul/simul.sh
    makeEnvLocal
-   makeSubmitRUN 40 100
+   makeSubmitRUN 80 400
    ls `pwd`/MC*/trackerSimul.root >  trackerSimul.list
 
 }