]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Updated macros for lego train (M. Vala)
authorfbellini <fbellini@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 1 Nov 2012 14:01:00 +0000 (14:01 +0000)
committerfbellini <fbellini@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 1 Nov 2012 14:01:00 +0000 (14:01 +0000)
PWGLF/RESONANCES/macros/lego_train/AddAMRsn.C
PWGLF/RESONANCES/macros/lego_train/AddRsnDaughterCutsPhiNsigma.C
PWGLF/RESONANCES/macros/lego_train/AddRsnDaughterCutsRho.C
PWGLF/RESONANCES/macros/lego_train/AddRsnDaughterCutsRhoNsigma.C
PWGLF/RESONANCES/macros/lego_train/AddRsnPairsRho.C
PWGLF/RESONANCES/macros/lego_train/AddRsnTask.C
PWGLF/RESONANCES/macros/lego_train/AddRsnTaskTrain.C
PWGLF/RESONANCES/macros/lego_train/RsnQualityCut.C [new file with mode: 0644]

index 4adeba154db918448e91e3cd03249fd8633e4bda..5550c4269e09486ec8e6e8d40b75488637c12d1a 100644 (file)
@@ -17,8 +17,10 @@ Bool_t AddAMRsn(TString analysisSource = "proof", TString analysisMode = "test",
    TString rsnStr="Phi";
    // Rsn Cut
    TString rsnCutStr="PhiNsigma:KTPCnsig30";
-   
-   
+   // Rsn Quality Cut
+   TString rsnQualityCutStr = "";
+   // rsnQualityCutStr = "pp_LHC11_p4_120";
+
    input.ToLower();
    inputMC.ToLower();
    Bool_t useMC = !inputMC.CompareTo("mc");
index 39823d6e4090683a8d9c09ff99b796780fca7837..9fd1f4d855028f37ada59ab3ecf69a58b9848ae8 100644 (file)
@@ -7,8 +7,9 @@ Int_t AddRsnDaughterCutsPhiNsigma(AliPID::EParticleType type1,AliPID::EParticleT
    if (!rsnIH) return 0;
 
    Bool_t valid = kTRUE;
-   Int_t collisionType = AliRsnTrainManager::GetGlobalInt("IsCollisionType",valid);
+//   Int_t collisionType = AliRsnTrainManager::GetGlobalInt("IsCollisionType",valid);
    Int_t useCommonQualityCut = AliRsnTrainManager::GetGlobalInt("RsnCommonQualityCut",valid);
+   TString rsnQualityCut = AliRsnTrainManager::GetGlobalStr("RsnQualityCut",valid);
    Int_t isMC = AliRsnTrainManager::GetGlobalInt("IsMC",valid);
    Int_t isRsnMini = AliRsnTrainManager::GetGlobalInt("IsRsnMini",valid);
    Int_t isMixing = AliRsnTrainManager::GetGlobalInt("IsMixing",valid);
@@ -99,11 +100,17 @@ Int_t AddRsnDaughterCutsPhiNsigma(AliPID::EParticleType type1,AliPID::EParticleT
 
    TString scheme="";
    AliRsnCutTrackQuality *qualityCut = new AliRsnCutTrackQuality("cutQualityK");
-   if (useCommonQualityCut>=0) {
-      qualityCut->SetAODTestFilterBit(useCommonQualityCut);
+   if (!rsnQualityCut.IsNull()) {
+      AliESDtrackCuts *esdTK = RsnQualityCut(rsnQualityCut.Data());
+      qualityCut->SetESDtrackCuts(esdTK);
    } else {
-      qualityCut->SetDefaults2010();
+      if (useCommonQualityCut>=0) {
+         qualityCut->SetAODTestFilterBit(useCommonQualityCut);
+      } else {
+         qualityCut->SetDefaults2010();
+      }
    }
+
    cuts->AddCut(qualityCut);
    if (!scheme.IsNull()) scheme += "&";
    scheme += qualityCut->GetName();
index ee1c8b2333dfc045fba99c3e872b337051283137..6d44f69271a6b5d6751b782abdd5308ea71aed06 100644 (file)
@@ -50,15 +50,15 @@ Int_t AddRsnDaughterCutsRho(AliPID::EParticleType type1,AliPID::EParticleType ty
 \r
    Bool_t usetof = kFALSE;\r
    if(opt.Contains("tof")) {\r
-     Printf("Using tof PID range (%.2f,%.2f)",0.0,1E+20);\r
-     usetof = kTRUE;\r
+      Printf("Using tof PID range (%.2f,%.2f)",0.0,1E+20);\r
+      usetof = kTRUE;\r
    }\r
 \r
    Bool_t usetpc = kFALSE;\r
    if(opt.Contains("tpc")) {\r
-     Printf("Using tpc PID range (%.2f,%.2f)",0.0,1E+20);\r
-     usetpc = kTRUE;\r
-     }\r
+      Printf("Using tpc PID range (%.2f,%.2f)",0.0,1E+20);\r
+      usetpc = kTRUE;\r
+   }\r
 \r
 //---------------------------------------------\r
 //  Combine cuts\r
@@ -93,23 +93,23 @@ Int_t AddRsnDaughterCutsRho(AliPID::EParticleType type1,AliPID::EParticleType ty
    cuts->AddCut(qualityCut);\r
    if (!scheme.IsNull()) scheme += "&";\r
    scheme += qualityCut->GetName();\r
-   \r
+\r
    if (usetpc) {\r
-     AliRsnCutPIDNSigma *cutPiTPC = new AliRsnCutPIDNSigma("cutPIDNSigmaTPC",AliPID::kPion,AliRsnCutPIDNSigma::kTPC);\r
-     cutPiTPC->SinglePIDRange(nSigmaTPC);\r
-     //cutPiTPC->AddPIDRange(nSigmaTPC,0.0,0.7);\r
-     cuts->AddCut(cutPiTPC);\r
-     if (!scheme.IsNull()) scheme += "&";\r
-     scheme += cutPiTPC->GetName();\r
-  }\r
+      AliRsnCutPIDNSigma *cutPiTPC = new AliRsnCutPIDNSigma("cutPIDNSigmaTPC",AliPID::kPion,AliRsnCutPIDNSigma::kTPC);\r
+      cutPiTPC->SinglePIDRange(nSigmaTPC);\r
+      //cutPiTPC->AddPIDRange(nSigmaTPC,0.0,0.7);\r
+      cuts->AddCut(cutPiTPC);\r
+      if (!scheme.IsNull()) scheme += "&";\r
+      scheme += cutPiTPC->GetName();\r
+   }\r
 \r
    if(usetof) {\r
-       AliRsnCutPIDNSigma *cutPiTOF = new AliRsnCutPIDNSigma("cutPIDNSigmaTOF",AliPID::kPion,AliRsnCutPIDNSigma::kTOF);\r
-       cutPiTOF->SinglePIDRange(nSigmaTOF);\r
-       //cutPiTOF->AddPIDRange(nSigmaTOF,0.7,1e20);\r
-       cuts->AddCut(cutPiTOF);\r
-       if (!scheme.IsNull()) scheme += "&";\r
-       scheme += cutPiTOF->GetName();\r
+      AliRsnCutPIDNSigma *cutPiTOF = new AliRsnCutPIDNSigma("cutPIDNSigmaTOF",AliPID::kPion,AliRsnCutPIDNSigma::kTOF);\r
+      cutPiTOF->SinglePIDRange(nSigmaTOF);\r
+      //cutPiTOF->AddPIDRange(nSigmaTOF,0.7,1e20);\r
+      cuts->AddCut(cutPiTOF);\r
+      if (!scheme.IsNull()) scheme += "&";\r
+      scheme += cutPiTOF->GetName();\r
    }\r
 \r
    if (useEta) {\r
index cef8049b284a1eb6bc1631c0e003c97d447bdb2a..e803e824fd594dc5503ef86a48a382a82daaf750 100644 (file)
@@ -72,21 +72,21 @@ Int_t AddRsnDaughterCutsRhoNsigma(AliPID::EParticleType type1,AliPID::EParticleT
 \r
    AliRsnCutTrackQuality *qualityCut = new AliRsnCutTrackQuality("cutQuatityPi");\r
    //qualityCut->SetDefaults2010();\r
-               \r
-       qualityCut->SetDCAZmax(0.2);\r
-       qualityCut->SetDCARmax(0.02);\r
-       qualityCut->AddStatusFlag(AliESDtrack::kTPCin   , kTRUE);\r
-       qualityCut->AddStatusFlag(AliESDtrack::kTPCrefit, kTRUE);\r
-       qualityCut->AddStatusFlag(AliESDtrack::kITSrefit, kTRUE);\r
-       \r
-       qualityCut->SetPtRange(0.2, 1E+20);\r
-       qualityCut->SetEtaRange(-0.8, 0.8);\r
-       qualityCut->SetSPDminNClusters(0);\r
-       qualityCut->SetITSminNClusters(0);\r
-       qualityCut->SetITSmaxChi2(1E+20);\r
-       qualityCut->SetTPCminNClusters(70);\r
-       qualityCut->SetTPCmaxChi2(4.0);\r
-       qualityCut->SetRejectKinkDaughters();\r
+\r
+   qualityCut->SetDCAZmax(0.2);\r
+   qualityCut->SetDCARmax(0.02);\r
+   qualityCut->AddStatusFlag(AliESDtrack::kTPCin   , kTRUE);\r
+   qualityCut->AddStatusFlag(AliESDtrack::kTPCrefit, kTRUE);\r
+   qualityCut->AddStatusFlag(AliESDtrack::kITSrefit, kTRUE);\r
+\r
+   qualityCut->SetPtRange(0.2, 1E+20);\r
+   qualityCut->SetEtaRange(-0.8, 0.8);\r
+   qualityCut->SetSPDminNClusters(0);\r
+   qualityCut->SetITSminNClusters(0);\r
+   qualityCut->SetITSmaxChi2(1E+20);\r
+   qualityCut->SetTPCminNClusters(70);\r
+   qualityCut->SetTPCmaxChi2(4.0);\r
+   qualityCut->SetRejectKinkDaughters();\r
 \r
    cuts->AddCut(qualityCut);\r
    if (!scheme.IsNull()) scheme += "&";\r
index c58e9ccddb62181ff5ee1c0ae857394db883fe39..d46cb9c1dfcd331559c07ba55c409648b4dbd1c3 100644 (file)
@@ -16,13 +16,13 @@ void AddRsnPairsRho(AliAnalysisTaskSE *task,
    Printf("id1=%d id2=%d",listID1,listID2);\r
 \r
    // retrieve mass from PDG database\r
-       \r
-       // pdg rho = 133\r
-       // pdg omega = 223\r
-       // pdg eta = 221\r
-       // pdg eta' = 331\r
-       // pdg kshort = 310\r
-       \r
+\r
+   // pdg rho = 133\r
+   // pdg omega = 223\r
+   // pdg eta = 221\r
+   // pdg eta' = 331\r
+   // pdg kshort = 310\r
+\r
    Int_t         pdg  = 113;\r
    TDatabasePDG *db   = TDatabasePDG::Instance();\r
    TParticlePDG *part = db->GetParticle(pdg);\r
@@ -63,7 +63,7 @@ void AddPairOutputRho(AliRsnLoopPair *pair)
       outPair->AddValue(axisIM);\r
       outPair->AddValue(axisPt);\r
       outPair->AddValue(axisEta);\r
-         outPair->AddValue(axisY);\r
+      outPair->AddValue(axisY);\r
    }\r
    // add outputs to loop\r
    pair->AddOutput(outPair);\r
@@ -139,8 +139,8 @@ void AddPairOutputMiniRho(AliAnalysisTaskSE *task, Bool_t isMC,Bool_t isMixing,
          // axis Y: transverse momentum\r
          out->AddAxis(ptID, nPt, minPt, maxPt);\r
          out->AddAxis(etaID, nEta, minEta, maxEta);\r
-                out->AddAxis(yID, nY, minY, maxY);\r
-                 \r
+         out->AddAxis(yID, nY, minY, maxY);\r
+\r
          // axis Z: centrality\r
          if (collisionType==1) out->AddAxis(centID, nCent, minCent, maxCent);\r
       }\r
@@ -192,7 +192,7 @@ void AddPairOutputMiniRho(AliAnalysisTaskSE *task, Bool_t isMC,Bool_t isMixing,
          // axis Y: transverse momentum\r
          outMC->AddAxis(ptID, nPt, minPt, maxPt);\r
          outMC->AddAxis(etaID, nEta, minEta, maxEta);\r
-                outRes->AddAxis(yID, nY, minY, maxY);\r
+         outRes->AddAxis(yID, nY, minY, maxY);\r
          // axis Z: centrality\r
          if (collisionType==1) outMC->AddAxis(centID, nCent, minCent, maxCent);\r
       }\r
index 05be91bd6fbf09519bbd5319717b55a94dc7bd14..6c7fd2c3102caf29c0247e6a43f15dc4534dcf09 100644 (file)
@@ -41,7 +41,7 @@ AliAnalysisTaskSE *AddRsnTask(TString rsnPart,TString rsnCut,TString postfix="")
    TList *listRsn = new TList();
    listRsn->Add(new TNamed(rsnPart.Data(),rsnCut.Data()));
 
-   if (!RsnLoadMacro("RsnConfig.C")) return kFALSE;
+   if (!RsnLoadMacroTask("RsnConfig.C")) return 0;
    if (!RsnConfig(task,rsnIH,listRsn)) {
       Printf("Error in RsnConfig.C");
       return 0;
@@ -79,3 +79,26 @@ AliAnalysisTaskSE *AddRsnTask(TString rsnPart,TString rsnCut,TString postfix="")
 
    return task;
 }
+
+Bool_t RsnLoadMacroTask(TString macro,TString path="") {
+
+   Bool_t valid;
+   TString lego_path = AliAnalysisManager::GetGlobalStr("RsnLegoTrainPath",valid);
+   if (!valid) lego_path = "$ALICE_ROOT/PWGLF/RESONANCES/macros/lego_train";
+
+   if (!gSystem->AccessPathName(macro.Data())) {
+      gROOT->LoadMacro(macro.Data());
+      Printf("Macro loaded from %s/%s ...",gSystem->pwd(),macro.Data());
+      return kTRUE;
+   }
+
+   if (!gSystem->AccessPathName(gSystem->ExpandPathName(Form("%s/%s",lego_path.Data(),macro.Data())))) {
+      gROOT->LoadMacro(gSystem->ExpandPathName(Form("%s/%s",lego_path.Data(),macro.Data())));
+      Printf("Macro loaded from %s ...",gSystem->ExpandPathName(Form("%s/%s",lego_path.Data(),macro.Data())));
+      return kTRUE;
+   }
+
+   Printf("Error loading %s",macro.Data());
+
+   return kFALSE;
+}
\ No newline at end of file
index 8f0ebc50ede90a9910a6865897d36756360f3665..a64428fb875f864ac34d69617b8561386ad5a7d0 100644 (file)
@@ -1,4 +1,4 @@
-AliAnalysisTask *AddRsnTaskTrain(const char *commonStr,const char *rsnStr,const char *rsnCutStr) {
+AliAnalysisTask *AddRsnTaskTrain(const char *commonStr,const char *rsnStr,const char *rsnCutStr,TString rsnQualityCutStr="") {
    // rsnStr -> <Name>
    // rsnCutStr -> <CutName>
    // This will use AddRsnPairs<Name>.C
@@ -21,6 +21,12 @@ AliAnalysisTask *AddRsnTaskTrain(const char *commonStr,const char *rsnStr,const
    // Creating Rsn Train Manager
    AliRsnTrainManager *rsnMgr = new AliRsnTrainManager();
 
+   // Rsn Quality Cuts
+   if (!RsnLoadMacroTrain("RsnQualityCut.C")) return kFALSE;
+   if (!rsnQualityCutStr.IsNull()) AliRsnTrainManager::SetGlobalStr("RsnQualityCut",rsnQualityCutStr.Data());
+   //pp_LHC11_p4_120
+
+
    if (!RsnLoadMacroTrain("RsnTrainCommonSettings.C")) return kFALSE;
    RsnTrainCommonSettings(commonStr);
 
diff --git a/PWGLF/RESONANCES/macros/lego_train/RsnQualityCut.C b/PWGLF/RESONANCES/macros/lego_train/RsnQualityCut.C
new file mode 100644 (file)
index 0000000..fba0dab
--- /dev/null
@@ -0,0 +1,62 @@
+AliESDtrackCuts *RsnQualityCut(TString cut="pp_LHC11_p4_120") {
+
+   AliESDtrackCuts *esdTrackCuts = 0;
+   if (cut.Contains("pp_LHC11a_p4")) {
+      //esdTrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(Bool_t selPrimaries=kTRUE, Int_t clusterCut=1);
+      esdTrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE,1);
+
+      // std AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE,1)
+      esdTrackCuts->SetMaxChi2PerClusterTPC(4);
+      esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
+      esdTrackCuts->SetRequireTPCRefit(kTRUE);
+      // ITS
+
+      esdTrackCuts->SetRequireITSRefit(kTRUE);
+      esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
+                                             AliESDtrackCuts::kAny);
+      if(selPrimaries) {
+         // 7*(0.0015+0.0050/pt^1.1)
+         esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0105+0.0350/pt^1.1");
+         esdTrackCuts->SetMaxChi2TPCConstrainedGlobal(36);
+      }
+      esdTrackCuts->SetMaxDCAToVertexZ(2);
+      esdTrackCuts->SetDCAToVertex2D(kFALSE);
+      esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
+
+      // additional cuts by FilterBit 10
+
+      if (!cut.CompareTo("pp_LHC11a_p4_120")) esdTrackCuts->SetMinNCrossedRowsTPC(120);
+      if (!cut.CompareTo("pp_LHC11a_p4_70")) esdTrackCuts->SetMinNCrossedRowsTPC(70);
+
+      esdTrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.8);
+      esdTrackCuts->SetMaxChi2PerClusterITS(36);
+      esdTrackCuts->SetMaxFractionSharedTPCClusters(0.4);
+      esdTrackCuts->SetMaxChi2TPCConstrainedGlobal(36);
+      esdTrackCuts->SetEtaRange(-0.9,0.9);
+      esdTrackCuts->SetPtRange(0.15, 1e10);
+   } else if (cut.Contains("pp_LHC11a_p3")) {
+      //AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(Bool_t selPrimaries=kTRUE, Int_t clusterCut=0);
+      esdTrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE,0);
+
+      // std AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE,0);
+      esdTrackCuts->SetMinNClustersTPC(70);
+      esdTrackCuts->SetMaxChi2PerClusterTPC(4);
+      esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
+      esdTrackCuts->SetRequireTPCRefit(kTRUE);
+      // ITS
+      esdTrackCuts->SetRequireITSRefit(kTRUE);
+      esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
+                                             AliESDtrackCuts::kAny);
+      if(selPrimaries) {
+         // 7*(0.0026+0.0050/pt^1.01)
+         esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");
+         esdTrackCuts->SetMaxChi2TPCConstrainedGlobal(36);
+      }
+      esdTrackCuts->SetMaxDCAToVertexZ(2);
+      esdTrackCuts->SetDCAToVertex2D(kFALSE);
+      esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
+      esdTrackCuts->SetMaxChi2PerClusterITS(36)
+   }
+
+   return esdTrackCuts;
+}