]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGLF/RESONANCES/macros/train/AddRsnInputHandlerNew.C
Split: removed dirs now in AliPhysics
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / macros / train / AddRsnInputHandlerNew.C
diff --git a/PWGLF/RESONANCES/macros/train/AddRsnInputHandlerNew.C b/PWGLF/RESONANCES/macros/train/AddRsnInputHandlerNew.C
deleted file mode 100644 (file)
index 5ff71a2..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-//
-// This macro adds the specific RSN input handler, with all single particle cuts
-//
-void AddRsnInputHandler(Bool_t isMC, AliMultiInputEventHandler *multi)
-{
-   void myError  (const char *msg) {::Error  ("AddRsnInputHandler", msg);}
-   void myWarning(const char *msg) {::Warning("AddRsnInputHandler", msg);}
-   void myInfo   (const char *msg) {::Info   ("AddRsnInputHandler", msg);}
-   
-   if (!multi) {
-      ::Error("AddRsnInputHandler", "Required a WELL INITIALIZED AliMultiInputEventHandler object");
-      return;
-   }
-   
-   //---------------------------------------------
-   //  Define single cuts
-   //---------------------------------------------
-
-   // Track quality for ITS standalone:
-   // this cut is used to select tracks of good quality, irrespective of the PID.
-   // When adding status flags, the second argument tells if each considered flag
-   // must be active or not in the track status, since the ITS-SA tracks need that
-   // some of them are OFF (e.g.: kTPCin)
-   AliRsnCutTrackQuality *cutQualityITS = new AliRsnCutTrackQuality("cutQualityITS");
-   cutQualityITS->AddStatusFlag(AliESDtrack::kITSin    , kTRUE);
-   cutQualityITS->AddStatusFlag(AliESDtrack::kTPCin    , kFALSE);
-   cutQualityITS->AddStatusFlag(AliESDtrack::kITSrefit , kTRUE);
-   cutQualityITS->AddStatusFlag(AliESDtrack::kTPCrefit , kFALSE);
-   cutQualityITS->AddStatusFlag(AliESDtrack::kITSpureSA, kFALSE);
-   cutQualityITS->AddStatusFlag(AliESDtrack::kITSpid   , kTRUE);
-   cutQualityITS->SetPtRange(0.15, 1E+20);
-   cutQualityITS->SetEtaRange(-0.8, 0.8);
-   cutQualityITS->SetDCARPtFormula("0.0595+0.0182/pt^1.55");
-   cutQualityITS->SetDCAZmax(2.0);
-   cutQualityITS->SetSPDminNClusters(1);
-   cutQualityITS->SetITSminNClusters(4);
-   cutQualityITS->SetITSmaxChi2(2.0);
-   cutQualityITS->SetTPCminNClusters(0);
-   cutQualityITS->SetTPCmaxChi2(1E+10);
-   cutQualityITS->SetRejectKinkDaughters();
-      
-   // Track quality for TPC+ITS:
-   // works exactly like the one above, but has settings for selecting TPC+ITS tracks
-   // in this case, the flags required are all necessary, so here the procedure is simpler
-   AliRsnCutTrackQuality *cutQualityTPC = new AliRsnCutTrackQuality("cutQualityTPC");
-   cutQualityTPC->AddStatusFlag(AliESDtrack::kTPCin   , kTRUE);
-   cutQualityTPC->AddStatusFlag(AliESDtrack::kTPCrefit, kTRUE);
-   cutQualityTPC->AddStatusFlag(AliESDtrack::kITSrefit, kTRUE);
-   cutQualityTPC->SetPtRange(0.15, 1E+20);
-   cutQualityTPC->SetEtaRange(-0.8, 0.8);
-   cutQualityTPC->SetDCARPtFormula("0.0182+0.0350/pt^1.01");
-   cutQualityTPC->SetDCAZmax(2.0);
-   cutQualityTPC->SetSPDminNClusters(1);
-   cutQualityTPC->SetITSminNClusters(0);
-   cutQualityTPC->SetITSmaxChi2(1E+20);
-   cutQualityTPC->SetTPCminNClusters(70);
-   cutQualityTPC->SetTPCmaxChi2(4.0);
-   cutQualityTPC->SetRejectKinkDaughters();
-   
-   // PID cuts for all needed detectors:
-   // use new implementation based on AliPIDResponse and its related task
-   // requires that AliAnalysisTaskPIDResponse is added otherwise it will raise errors
-   AliRsnCutPIDNSigma *cutPIDITSpion   = new AliRsnCutPIDNSigma("cutPIDITSpion"  , AliPID::kPion, AliRsnCutPIDNSigma::kITS, 3.0);
-   AliRsnCutPIDNSigma *cutPIDTPCpion   = new AliRsnCutPIDNSigma("cutPIDTPCpion"  , AliPID::kPion, AliRsnCutPIDNSigma::kTPC, 3.0);
-   AliRsnCutPIDNSigma *cutPIDTOFpion   = new AliRsnCutPIDNSigma("cutPIDITSpion"  , AliPID::kPion, AliRsnCutPIDNSigma::kTOF, 3.0);
-   AliRsnCutPIDNSigma *cutPIDITSkaon   = new AliRsnCutPIDNSigma("cutPIDITSkaon"  , AliPID::kKaon, AliRsnCutPIDNSigma::kITS, 3.0);
-   AliRsnCutPIDNSigma *cutPIDTPCkaonLo = new AliRsnCutPIDNSigma("cutPIDTPCkaonLo", AliPID::kKaon, AliRsnCutPIDNSigma::kTPC, 5.0);
-   AliRsnCutPIDNSigma *cutPIDTPCkaonHi = new AliRsnCutPIDNSigma("cutPIDTPCkaonHi", AliPID::kKaon, AliRsnCutPIDNSigma::kTPC, 3.0);
-   AliRsnCutPIDNSigma *cutPIDTOFkaon   = new AliRsnCutPIDNSigma("cutPIDITSkaon"  , AliPID::kKaon, AliRsnCutPIDNSigma::kTOF, 3.0);
-   
-   // ITS PID:
-   // - reject unmatched tracks
-   cutPIDITSpion->SetRejectUnmatched();
-   cutPIDITSkaon->SetRejectUnmatched();
-   
-   // TPC PID:
-   // - pions               --> 3 sigma cut
-   // - kaons below 350 MeV --> 5 sigma cut
-   // - kaons above 350 MeV --> 3 sigma cut
-   // - reject unmatched tracks
-   cutPIDTPCkaonLo->SetMomentumRange(0.00, 0.35);
-   cutPIDTPCkaonHi->SetMomentumRange(0.35, 1E20);
-   cutPIDTPCkaonLo->SetRejectOutside();
-   cutPIDTPCkaonHi->SetRejectOutside();
-   cutPIDTPCpion  ->SetRejectUnmatched();
-   cutPIDTPCkaonLo->SetRejectUnmatched();
-   cutPIDTPCkaonHi->SetRejectUnmatched();
-   
-   // TOF PID:
-   // must specify that unmatched tracks must be accepted
-   cutPIDTOFpion->SetRejectUnmatched(kFALSE);
-   cutPIDTOFkaon->SetRejectUnmatched(kFALSE);
-   
-   //---------------------------------------------
-   //  Combine cuts
-   //---------------------------------------------
-   
-   // make several combinations of cuts:
-   // ITS and TPC standard
-   //AliRsnCutSet *cutsQualityITS = new AliRsnCutSet("qualityITS", AliRsnTarget::kDaughter);
-   AliRsnCutSet *cutsQualityTPC = new AliRsnCutSet("qualityTPC", AliRsnTarget::kDaughter);
-   //AliRsnCutSet *cutsPionITS    = new AliRsnCutSet("pionITS"   , AliRsnTarget::kDaughter);
-   AliRsnCutSet *cutsPionTPC    = new AliRsnCutSet("pionTPC"   , AliRsnTarget::kDaughter);
-   //AliRsnCutSet *cutsKaonITS    = new AliRsnCutSet("kaonITS"   , AliRsnTarget::kDaughter);
-   AliRsnCutSet *cutsKaonTPC    = new AliRsnCutSet("kaonTPC"   , AliRsnTarget::kDaughter);
-   
-   // ITS standalone: quality only
-   //cutsQualityITS->AddCut(cutQualityITS);
-   //cutsQualityITS->SetCutScheme(cutQualityITS->GetName());
-   
-   // TPC+ITS: quality only
-   cutsQualityTPC->AddCut(cutQualityTPC);
-   cutsQualityTPC->SetCutScheme(cutQualityTPC->GetName());
-   
-   // ITS standalone: quality and ITS PID
-   //cutsPionITS->AddCut(cutQualityITS);
-   //cutsPionITS->AddCut(cutPIDITSpion);
-   //cutsPionITS->SetCutScheme(Form("%s&%s", cutQualityITS->GetName(), cutPIDITSpion->GetName()));
-   //cutsKaonITS->AddCut(cutQualityITS);
-   //cutsKaonITS->AddCut(cutPIDITSkaon);
-   //cutsKaonITS->SetCutScheme(Form("%s&%s", cutQualityITS->GetName(), cutPIDITSkaon->GetName()));
-   
-   // TPC standalone: quality and TPC PID
-   cutsPionTPC->AddCut(cutQualityTPC);
-   cutsPionTPC->AddCut(cutPIDTPCpion);
-   cutsPionTPC->AddCut(cutPIDTOFpion);
-   cutsPionTPC->SetCutScheme(Form("%s&%s&%s", cutQualityTPC->GetName(), cutPIDTPCpion->GetName(), cutPIDTOFpion->GetName()));
-   
-   cutsKaonTPC->AddCut(cutQualityTPC);
-   cutsKaonTPC->AddCut(cutPIDTPCkaonLo);
-   cutsKaonTPC->AddCut(cutPIDTPCkaonHi);
-   cutsKaonTPC->AddCut(cutPIDTOFkaon);
-   cutsKaonTPC->SetCutScheme(Form("%s&(%s|%s)&%s", cutQualityTPC->GetName(), cutPIDTPCkaonLo->GetName(), cutPIDTPCkaonHi->GetName(), cutPIDTOFkaon->GetName()));
-   
-   // setup selector in the handler and add RSN input handler
-   AliRsnInputHandler *rsnIH = new AliRsnInputHandler();
-   AliRsnDaughterSelector *sel = rsnIH->GetSelector();
-   //sel->Add(cutsQualityITS, kTRUE);
-   sel->Add(cutsQualityTPC, kTRUE);
-   //sel->Add(cutsPionITS, kTRUE);
-   sel->Add(cutsPionTPC, kTRUE);
-   //sel->Add(cutsKaonITS, kTRUE);
-   sel->Add(cutsKaonTPC, kTRUE);
-   //sel->Add(cutsKaonAll, kTRUE);
-   sel->Init();
-   multi->AddInputEventHandler(rsnIH);
-}