]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCcalibTracksCuts.cxx
Fixes for building of DA (Anshul)
[u/mrichter/AliRoot.git] / TPC / AliTPCcalibTracksCuts.cxx
index a126ce8642f35ffe9e13c65c9ac02bb790ef788a..e39032aeb597b8cbaafe7209eabd2f3cdc2188a4 100644 (file)
 #include <TString.h>
 #include <TChain.h>
 #include <TList.h>
+#include "AliTPCseed.h"
+#include "AliESDtrack.h"
 #include "AliTPCcalibTracksCuts.h"
 
 ClassImp(AliTPCcalibTracksCuts)
 
+
+AliTPCcalibTracksCuts::AliTPCcalibTracksCuts():
+  TNamed("calibTracksCuts", "calibTracksCuts"),
+  fMinClusters(0),            // number of clusters
+  fMinRatio(0),               // kMinRratio = 0.4
+  fMax1pt(0),                 // kMax1pt = 0.5
+  fEdgeYXCutNoise(0),         // kEdgeYXCutNoise = 0.13
+  fEdgeThetaCutNoise(0)      // kEdgeThetaCutNoise = 0.018
+{
+   // 
+   // default constructor
+   // 
+}
+
+
 AliTPCcalibTracksCuts::AliTPCcalibTracksCuts(Int_t minClusters, Float_t minRatio, Float_t max1pt,
-   Float_t edgeXZCutNoise, Float_t edgeThetaCutNoise, char* outputFileName):
-      TNamed("calibTracksCuts", "calibTracksCuts") {
+                                            Float_t edgeXZCutNoise, Float_t edgeThetaCutNoise):
+      TNamed("calibTracksCuts", "calibTracksCuts"),
+      fMinClusters(minClusters),            // number of clusters
+      fMinRatio(minRatio),                  // kMinRratio = 0.4
+      fMax1pt(max1pt),                      // kMax1pt = 0.5
+      fEdgeYXCutNoise(edgeXZCutNoise),      // kEdgeYXCutNoise = 0.13
+      fEdgeThetaCutNoise(edgeThetaCutNoise)   // kEdgeThetaCutNoise = 0.018
+{
    //
    // Constructor for AliTPCcalibTracksCuts
    // specify the cuts to be set on the processed tracks
    // default cuts are for comics
    //
-   fMinClusters = minClusters;
-   fMinRatio = minRatio;
-   fMax1pt = max1pt;
-   fEdgeYXCutNoise = edgeXZCutNoise;
-   fEdgeThetaCutNoise = edgeThetaCutNoise;
-   fOutputFileName = new TObjString(outputFileName);
 }
 
+AliTPCcalibTracksCuts::AliTPCcalibTracksCuts(AliTPCcalibTracksCuts *cuts):
+  TNamed(cuts->GetName(), cuts->GetTitle()),
+  fMinClusters(cuts->GetMinClusters()),             // number of clusters
+  fMinRatio(cuts->GetMinRatio()),                   // kMinRratio = 0.4
+  fMax1pt( cuts->GetMax1pt()),                      // kMax1pt = 0.5
+  fEdgeYXCutNoise(cuts->GetEdgeYXCutNoise()),       // kEdgeYXCutNoise = 0.13
+  fEdgeThetaCutNoise( cuts->GetEdgeThetaCutNoise())   // kEdgeThetaCutNoise = 0.018
+{
+  // 
+  // copy constructor
+  // 
+}
+
+
+
 AliTPCcalibTracksCuts::~AliTPCcalibTracksCuts(){
   //
   // Destructor
@@ -53,40 +85,12 @@ AliTPCcalibTracksCuts::~AliTPCcalibTracksCuts(){
 }
 
 
-AliTPCcalibTracksCuts::AliTPCcalibTracksCuts(AliTPCcalibTracksCuts *cuts){
-   // 
-   // copy constructor
-   // 
-   fMinClusters = cuts->GetMinClusters();
-   fMinRatio = cuts->GetMinRatio();
-   fMax1pt = cuts->GetMax1pt();
-   fEdgeYXCutNoise = cuts->GetEdgeYXCutNoise();
-   fEdgeThetaCutNoise = cuts->GetEdgeThetaCutNoise();
-   fOutputFileName = new TObjString(cuts->GetOutputFileName());
-}
 
-AliTPCcalibTracksCuts::AliTPCcalibTracksCuts(){
-   // 
-   // default constructor
-   // 
-   fMinClusters = 0;
-   fMinRatio = 0;
-   fMax1pt = 0;
-   fEdgeYXCutNoise = 0;
-   fEdgeThetaCutNoise = 0;
-   fOutputFileName = new TObjString("");
-}
 
-void AliTPCcalibTracksCuts::AddCuts(TChain * chain, char* ctype, char* outputFileName){
+ AliTPCcalibTracksCuts  * AliTPCcalibTracksCuts::CreateCuts(char* ctype){
    // 
-   // add predefined cuts to the chain for processing
+   // Create predefined cuts 
    // (creates AliTPCcalibTracksCuts object)
-   // the cuts are set in the following order:
-   // fMinClusters (number of clusters)
-   // fMinRatio 
-   // fMax1pt   1  over p_t
-   // fEdgeYXCutNoise
-   // fEdgeThetaCutNoise
    // 
    // The following predefined sets of cuts can be selected:
    // laser:      20, 0.4, 0.5, 0.13, 0.018
@@ -99,50 +103,76 @@ void AliTPCcalibTracksCuts::AddCuts(TChain * chain, char* ctype, char* outputFil
    cutType.ToUpper();
    AliTPCcalibTracksCuts *cuts = 0;
    if (cutType == "LASER")
-//       cuts = new AliTPCcalibTracksCuts(20, 0.4, 0.5, 0.13, 0.018);
-      cuts = new AliTPCcalibTracksCuts(20, 0.4, 5, 0.13, 0.018, outputFileName);
+     cuts = new AliTPCcalibTracksCuts(20, 0.4, 5, 0.13, 0.018);
    else if (cutType == "COSMIC")
-      cuts = new AliTPCcalibTracksCuts(20, 0.4, 0.5, 0.13, 0.018, outputFileName);
+      cuts = new AliTPCcalibTracksCuts(20, 0.4, 0.5, 0.13, 0.018);
    else if (cutType == "LOWFLUX")
-      cuts = new AliTPCcalibTracksCuts(20, 0.4, 5, 0.2, 0.0001, outputFileName);
+     cuts = new AliTPCcalibTracksCuts(20, 0.4, 5, 0.2, 0.0001);
    else if (cutType == "HIGHFLUX")
-      cuts = new AliTPCcalibTracksCuts(20, 0.4, 5, 0.2, 0.0001, outputFileName);
+     cuts = new AliTPCcalibTracksCuts(20, 0.4, 5, 0.2, 0.0001);
    else {
-      cuts = new AliTPCcalibTracksCuts(20, 0.4, 5, 0.2, 0.0001, outputFileName);
-      cerr << "WARNING! unknown type '" << ctype << "', cuts set to default values for cosmics." << endl;
-      cutType = "COSMIC";
+     cuts = new AliTPCcalibTracksCuts(20, 0.4, 5, 0.2, 0.0001);
+     cerr << "WARNING! unknown type '" << ctype << "', cuts set to default values for cosmics." << endl;
+     cutType = "COSMIC";
    }
-   chain->GetUserInfo()->AddLast(cuts);
    cout << "Cuts were set to predefined set: " << cutType << endl;
+   return cuts;
 }
 
-void AliTPCcalibTracksCuts::AddCuts(TChain * chain, Int_t minClusters, Float_t minRatio, Float_t max1pt,
-      Float_t edgeXZCutNoise, Float_t edgeThetaCutNoise, char* outputFileName){
-   // 
-   // add user defined cuts to the chain for processing
-   // (creates AliTPCcalibTracksCuts object)
-   // the cuts are set in the following order:
-   // fMinClusters (number of clusters)
-   // fMinRatio 
-   // fMax1pt   1  over p_t
-   // fEdgeYXCutNoise
-   // fEdgeThetaCutNoise
-   // 
-   chain->GetUserInfo()->AddLast(new AliTPCcalibTracksCuts(minClusters, minRatio, max1pt, edgeXZCutNoise, edgeThetaCutNoise, outputFileName));
-   printf("Cuts were set to the individal values: minClusters: %i, minRatio: %f, max1pt: %f, edgeXZCutNoise: %f, edgeThetaCutNoise: %f \n", 
-      minClusters, minRatio, max1pt, edgeXZCutNoise, edgeThetaCutNoise);
+
+
+Int_t AliTPCcalibTracksCuts::AcceptTrack(const AliTPCseed * track) const {
+  //
+  // Function, that decides wheather a given track is accepted for 
+  // the analysis or not. 
+  // Returns 0 if a track is accepted or an integer different from 0 
+  // to indicate the failed cut
+  //
+  
+  //
+  // edge induced noise tracks - NEXT RELEASE will be removed during tracking
+  if ( TMath::Abs(track->GetY() / track->GetX()) > fEdgeYXCutNoise )
+    if ( TMath::Abs(track->GetTgl()) < fEdgeThetaCutNoise ) return 1;
+  if (track->GetNumberOfClusters() < fMinClusters) return 2;
+  Float_t ratio = track->GetNumberOfClusters() / (track->GetNFoundable() + 1.);
+  if (ratio < fMinRatio) return 3;
+  //   Float_t mpt = track->Get1Pt();       // Get1Pt() doesn't exist any more
+  Float_t mpt = track->GetSigned1Pt();
+  if (TMath::Abs(mpt) > fMax1pt) return 4;
+  
+  return 0;
+}
+
+Int_t AliTPCcalibTracksCuts::AcceptTrack(const AliESDtrack * track) const {
+  //
+  // Function, that decides wheather a given track is accepted for 
+  // the analysis or not. 
+  // Returns 0 if a track is accepted or an integer different from 0 
+  // to indicate the failed cut
+  //
+  
+  //
+  // edge induced noise tracks - NEXT RELEASE will be removed during tracking
+  if ( TMath::Abs(track->GetY() / track->GetX()) > fEdgeYXCutNoise )
+    if ( TMath::Abs(track->GetTgl()) < fEdgeThetaCutNoise ) return 1;
+  if (track->GetTPCNcls() < fMinClusters) return 2;
+  Float_t ratio = track->GetTPCNcls() / (track->GetTPCNclsF() + 1.);
+  if (ratio < fMinRatio) return 3;
+  //   Float_t mpt = track->Get1Pt();       // Get1Pt() doesn't exist any more
+  Float_t mpt = track->GetSigned1Pt();
+  if (TMath::Abs(mpt) > fMax1pt) return 4;
+  
+  return 0;
 }
 
-void AliTPCcalibTracksCuts::Print(Option_t* option) {
+void AliTPCcalibTracksCuts::Print(Option_t*) const {
   //
   // Print the cut contents
   //
-   option = option;  // to avoid compiler warnings
-   cout << "<AliTPCcalibTracksCuts>: The following cuts are specified: " << endl;
-   cout << "fMinClusters: " << fMinClusters << endl;
-   cout << "fMinRatio: " << fMinRatio << endl;
-   cout << "fMax1pt: " << fMax1pt << endl;
-   cout << "fEdgeYXCutNoise: " << fEdgeYXCutNoise << endl;
-   cout << "fEdgeThetaCutNoise: " << fEdgeThetaCutNoise << endl;
-   cout << "fOutputFileName: " << fOutputFileName->String().Data() << endl;
+  cout << "<AliTPCcalibTracksCuts>: The following cuts are specified: " << endl;
+  cout << "fMinClusters: " << fMinClusters << endl;
+  cout << "fMinRatio: " << fMinRatio << endl;
+  cout << "fMax1pt: " << fMax1pt << endl;
+  cout << "fEdgeYXCutNoise: " << fEdgeYXCutNoise << endl;
+  cout << "fEdgeThetaCutNoise: " << fEdgeThetaCutNoise << endl;
 }  // Prints out the specified cuts