AliAnalysisTask *AddTask_Remi_LMEEPbPb2011AOD_Cent(Char_t* outputFileName="LMEEoutput.root", Bool_t runAll=kFALSE,Bool_t setMC=kFALSE,Bool_t getFromAlien=kFALSE, Bool_t PIDbaseline=kFALSE, Bool_t rejOnly=kTRUE) {
-
+
Bool_t bESDANA=kFALSE; //Autodetect via InputHandler
//get the current analysis manager
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if (!mgr) {
- Error("AddTask_Remi_LMEEPbPb2011", "No analysis manager found.");
- return 0;
+ Error("AddTask_Remi_LMEEPbPb2011", "No analysis manager found.");
+ return 0;
}
-
-
-// create task and add it to the manager
-// gSystem->AddIncludePath("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE");
-
-
+
+
+ // create task and add it to the manager
+ // gSystem->AddIncludePath("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE");
+
+
TString configBasePath("$TRAIN_ROOT/cbaumann_dielectron/");
TString trainRoot=gSystem->Getenv("TRAIN_ROOT");
- // if (trainRoot.IsNull()) configBasePath= "/home/tanizaki/nfs/LMee_Deflection/";
+ // if (trainRoot.IsNull()) configBasePath= "/home/tanizaki/nfs/LMee_Deflection/ver1/";
if (trainRoot.IsNull()) configBasePath= "$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/";
-
-
+
+
if (getFromAlien &&
(!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/ConfigRemiLMEEPbPb2011AOD.C .")) &&
(!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/LMEECutLibRemi.C ."))
- ) {
- configBasePath=Form("%s/",gSystem->pwd());
+ ) {
+ configBasePath=Form("%s/",gSystem->pwd());
}
-
+
TString configFile("ConfigRemiLMEEPbPb2011AOD.C");
TString configLMEECutLib("LMEECutLibRemi.C");
-
+
TString configFilePath(configBasePath+configFile);
TString configLMEECutLibPath(configBasePath+configLMEECutLib);
-
+
//AOD Usage currently tested with separate task, to be merged
if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){
- ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration");
+ ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration");
}
else if (mgr->GetInputEventHandler()->IsA()==AliESDInputHandler::Class()){
- ::Info("AddTaskLMEEPbPb2011AOD","switching on ESD specific code");
- bESDANA=kTRUE;
+ ::Info("AddTaskLMEEPbPb2011AOD","switching on ESD specific code");
+ bESDANA=kTRUE;
}
-
-
+
+
//Do we have an MC handler?
Bool_t hasMC=setMC;
if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0)
- hasMC=kTRUE;
-
-
-
+ hasMC=kTRUE;
+
+
+
if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data()))
- gROOT->LoadMacro(configLMEECutLibPath.Data());
+ gROOT->LoadMacro(configLMEECutLibPath.Data());
if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data()))
- gROOT->LoadMacro(configFilePath.Data());
-
-
+ gROOT->LoadMacro(configFilePath.Data());
+
+
LMEECutLibRemi* cutlib = new LMEECutLibRemi();
AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEData");
if (!hasMC) task->UsePhysicsSelection();
task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
-// task->SelectCollisionCandidates(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
-// task->SetRejectPileup();
+ // task->SelectCollisionCandidates(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
+ // task->SetRejectPileup();
task->SelectCollisionCandidates(AliVEvent::kAny);
- task->SetEventFilter(cutlib->GetEventCuts(LMEECutLibRemi::kPbPb2011TPCandTOF)); //
-
+ task->SetEventFilter(cutlib->GetEventCuts(LMEECutLibRemi::kPbPb2011pidITSTPCTOF)); //
+
//load dielectron configuration file
-
+
//add dielectron analysis with different cuts to the task
-
-
-if (rejOnly) {
+
+
AliDielectron *lowmass1=ConfigRemiLMEEPbPb2011AOD(1,hasMC,bESDANA);
task->AddDielectron(lowmass1);
printf("add: %s\n",lowmass1->GetName());
+
+ AliDielectron *lowmass5=ConfigRemiLMEEPbPb2011AOD(5,hasMC,bESDANA);
+ task->AddDielectron(lowmass5);
+ printf("add: %s\n",lowmass5->GetName());
+ AliDielectron *lowmass9=ConfigRemiLMEEPbPb2011AOD(9,hasMC,bESDANA);
+ task->AddDielectron(lowmass9);
+ printf("add: %s\n",lowmass9->GetName());
+ AliDielectron *lowmass13=ConfigRemiLMEEPbPb2011AOD(13,hasMC,bESDANA);
+ task->AddDielectron(lowmass13);
+ printf("add: %s\n",lowmass13->GetName());
+
+
+ AliDielectron *lowmass17=ConfigRemiLMEEPbPb2011AOD(17,hasMC,bESDANA);
+ task->AddDielectron(lowmass17);
+ printf("add: %s\n",lowmass17->GetName());
+ AliDielectron *lowmass21=ConfigRemiLMEEPbPb2011AOD(21,hasMC,bESDANA);
+ task->AddDielectron(lowmass21);
+ printf("add: %s\n",lowmass21->GetName());
+ AliDielectron *lowmass25=ConfigRemiLMEEPbPb2011AOD(25,hasMC,bESDANA);
+ task->AddDielectron(lowmass25);
+ printf("add: %s\n",lowmass25->GetName());
-
- // AliDielectron *lowmass2=ConfigRemiLMEEPbPb2011AOD(2,hasMC,bESDANA);
- // task->AddDielectron(lowmass2);
- // printf("add: %s\n",lowmass2->GetName());
-
- // AliDielectron *lowmass3=ConfigRemiLMEEPbPb2011AOD(3,hasMC,bESDANA);
- // task->AddDielectron(lowmass3);
- // printf("add: %s\n",lowmass3->GetName());
-
- // AliDielectron *lowmass4=ConfigRemiLMEEPbPb2011AOD(4,hasMC,bESDANA);
- // task->AddDielectron(lowmass4);
- // printf("add: %s\n",lowmass4->GetName());
-
-
- // AliDielectron *lowmass5=ConfigRemiLMEEPbPb2011AOD(5,hasMC,bESDANA);
- // task->AddDielectron(lowmass5);
- // printf("add: %s\n",lowmass5->GetName());
-
-
-
-}
-else {
- AliDielectron *lowmass4=ConfigRemiLMEEPbPb2011AOD(4,hasMC,bESDANA);
- task->AddDielectron(lowmass4);
- printf("add: %s\n",lowmass4->GetName());
-
-
- AliDielectron *lowmass1=ConfigRemiLMEEPbPb2011AOD(1,hasMC,bESDANA);
- task->AddDielectron(lowmass1);
- printf("add: %s\n",lowmass1->GetName());
-
-
-if (PIDbaseline) {
- AliDielectron *lowmass7=ConfigRemiLMEEPbPb2011AOD(7,hasMC,bESDANA);
- task->AddDielectron(lowmass7);
- printf("add: %s\n",lowmass7->GetName());
-
-}
-}
mgr->AddTask(task);
AliAnalysisTask *AddTask_Remi_LMEEPbPb2011AOD_Peri(Char_t* outputFileName="LMEEoutput.root", Bool_t runAll=kFALSE,Bool_t setMC=kFALSE,Bool_t getFromAlien=kFALSE, Bool_t PIDbaseline=kFALSE, Bool_t rejOnly=kTRUE) {
-
+
Bool_t bESDANA=kFALSE; //Autodetect via InputHandler
//get the current analysis manager
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if (!mgr) {
- Error("AddTask_Remi_LMEEPbPb2011", "No analysis manager found.");
- return 0;
+ Error("AddTask_Remi_LMEEPbPb2011", "No analysis manager found.");
+ return 0;
}
-
-
-// create task and add it to the manager
-// gSystem->AddIncludePath("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE");
-
-
+
+
+ // create task and add it to the manager
+ // gSystem->AddIncludePath("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE");
+
+
TString configBasePath("$TRAIN_ROOT/cbaumann_dielectron/");
TString trainRoot=gSystem->Getenv("TRAIN_ROOT");
- // if (trainRoot.IsNull()) configBasePath= "/home/tanizaki/nfs/LMee_Deflection/";
+ // if (trainRoot.IsNull()) configBasePath= "/home/tanizaki/nfs/LMee_Deflection/ver1/";
if (trainRoot.IsNull()) configBasePath= "$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/";
-
-
+
+
if (getFromAlien &&
(!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/ConfigRemiLMEEPbPb2011AOD.C .")) &&
(!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/LMEECutLibRemi.C ."))
) {
configBasePath=Form("%s/",gSystem->pwd());
}
-
-
+
+
TString configFile("ConfigRemiLMEEPbPb2011AOD.C");
TString configLMEECutLib("LMEECutLibRemi.C");
-
+
TString configFilePath(configBasePath+configFile);
TString configLMEECutLibPath(configBasePath+configLMEECutLib);
-
+
//AOD Usage currently tested with separate task, to be merged
if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){
- ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration");
+ ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration");
}
else if (mgr->GetInputEventHandler()->IsA()==AliESDInputHandler::Class()){
- ::Info("AddTaskLMEEPbPb2011AOD","switching on ESD specific code");
- bESDANA=kTRUE;
+ ::Info("AddTaskLMEEPbPb2011AOD","switching on ESD specific code");
+ bESDANA=kTRUE;
}
-
-
+
+
//Do we have an MC handler?
Bool_t hasMC=setMC;
if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0)
- hasMC=kTRUE;
-
-
-
+ hasMC=kTRUE;
+
+
+
if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data()))
- gROOT->LoadMacro(configLMEECutLibPath.Data());
+ gROOT->LoadMacro(configLMEECutLibPath.Data());
if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data()))
- gROOT->LoadMacro(configFilePath.Data());
-
-
+ gROOT->LoadMacro(configFilePath.Data());
+
+
LMEECutLibRemi* cutlib = new LMEECutLibRemi();
AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEData");
if (!hasMC) task->UsePhysicsSelection();
task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
-// task->SelectCollisionCandidates(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
-// task->SetRejectPileup();
+ // task->SelectCollisionCandidates(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
+ // task->SetRejectPileup();
task->SelectCollisionCandidates(AliVEvent::kAny);
- task->SetEventFilter(cutlib->GetEventCuts(LMEECutLibRemi::kPbPb2011TPCandTOF)); //
-
+ task->SetEventFilter(cutlib->GetEventCuts(LMEECutLibRemi::kPbPb2011pidITSTPCTOF)); //
+
//load dielectron configuration file
-
+
//add dielectron analysis with different cuts to the task
-
-
-if (rejOnly) {
-
- // AliDielectron *lowmass1=ConfigRemiLMEEPbPb2011AOD(1,hasMC,bESDANA);
- // task->AddDielectron(lowmass1);
- // printf("add: %s\n",lowmass1->GetName());
-
- // AliDielectron *lowmass2=ConfigRemiLMEEPbPb2011AOD(2,hasMC,bESDANA);
- // task->AddDielectron(lowmass2);
- // printf("add: %s\n",lowmass2->GetName());
-
- // AliDielectron *lowmass3=ConfigRemiLMEEPbPb2011AOD(3,hasMC,bESDANA);
- // task->AddDielectron(lowmass3);
- // printf("add: %s\n",lowmass3->GetName());
-
AliDielectron *lowmass4=ConfigRemiLMEEPbPb2011AOD(4,hasMC,bESDANA);
task->AddDielectron(lowmass4);
printf("add: %s\n",lowmass4->GetName());
+ AliDielectron *lowmass8=ConfigRemiLMEEPbPb2011AOD(8,hasMC,bESDANA);
+ task->AddDielectron(lowmass8);
+ printf("add: %s\n",lowmass8->GetName());
+ AliDielectron *lowmass12=ConfigRemiLMEEPbPb2011AOD(12,hasMC,bESDANA);
+ task->AddDielectron(lowmass12);
+ printf("add: %s\n",lowmass12->GetName());
+ AliDielectron *lowmass16=ConfigRemiLMEEPbPb2011AOD(16,hasMC,bESDANA);
+ task->AddDielectron(lowmass16);
+ printf("add: %s\n",lowmass16->GetName());
+
+ AliDielectron *lowmass20=ConfigRemiLMEEPbPb2011AOD(20,hasMC,bESDANA);
+ task->AddDielectron(lowmass20);
+ printf("add: %s\n",lowmass20->GetName());
+ AliDielectron *lowmass24=ConfigRemiLMEEPbPb2011AOD(24,hasMC,bESDANA);
+ task->AddDielectron(lowmass24);
+ printf("add: %s\n",lowmass24->GetName());
+ AliDielectron *lowmass28=ConfigRemiLMEEPbPb2011AOD(28,hasMC,bESDANA);
+ task->AddDielectron(lowmass28);
+ printf("add: %s\n",lowmass28->GetName());
- // AliDielectron *lowmass5=ConfigRemiLMEEPbPb2011AOD(5,hasMC,bESDANA);
- // task->AddDielectron(lowmass5);
- // printf("add: %s\n",lowmass5->GetName());
-
-
-}
-else {
- AliDielectron *lowmass4=ConfigRemiLMEEPbPb2011AOD(4,hasMC,bESDANA);
- task->AddDielectron(lowmass4);
- printf("add: %s\n",lowmass4->GetName());
-
-
- AliDielectron *lowmass1=ConfigRemiLMEEPbPb2011AOD(1,hasMC,bESDANA);
- task->AddDielectron(lowmass1);
- printf("add: %s\n",lowmass1->GetName());
-
-
-if (PIDbaseline) {
- AliDielectron *lowmass7=ConfigRemiLMEEPbPb2011AOD(7,hasMC,bESDANA);
- task->AddDielectron(lowmass7);
- printf("add: %s\n",lowmass7->GetName());
-
-}
-}
-
mgr->AddTask(task);
//create output container
AliAnalysisTask *AddTask_Remi_LMEEPbPb2011AOD_SemiCent1(Char_t* outputFileName="LMEEoutput.root", Bool_t runAll=kFALSE,Bool_t setMC=kFALSE,Bool_t getFromAlien=kFALSE, Bool_t PIDbaseline=kFALSE, Bool_t rejOnly=kTRUE) {
-
+
Bool_t bESDANA=kFALSE; //Autodetect via InputHandler
//get the current analysis manager
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if (!mgr) {
- Error("AddTask_Remi_LMEEPbPb2011", "No analysis manager found.");
- return 0;
+ Error("AddTask_Remi_LMEEPbPb2011", "No analysis manager found.");
+ return 0;
}
-
-
-// create task and add it to the manager
-// gSystem->AddIncludePath("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE");
-
-
+
+
+ // create task and add it to the manager
+ // gSystem->AddIncludePath("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE");
+
+
TString configBasePath("$TRAIN_ROOT/cbaumann_dielectron/");
TString trainRoot=gSystem->Getenv("TRAIN_ROOT");
- // if (trainRoot.IsNull()) configBasePath= "/home/tanizaki/nfs/LMee_Deflection/";
+ // if (trainRoot.IsNull()) configBasePath= "/home/tanizaki/nfs/LMee_Deflection/ver1/";
if (trainRoot.IsNull()) configBasePath= "$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/";
-
-
+
+
if (getFromAlien &&
(!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/ConfigRemiLMEEPbPb2011AOD.C .")) &&
(!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/LMEECutLibRemi.C ."))
) {
configBasePath=Form("%s/",gSystem->pwd());
}
-
-
+
+
TString configFile("ConfigRemiLMEEPbPb2011AOD.C");
TString configLMEECutLib("LMEECutLibRemi.C");
-
+
TString configFilePath(configBasePath+configFile);
TString configLMEECutLibPath(configBasePath+configLMEECutLib);
-
+
//AOD Usage currently tested with separate task, to be merged
if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){
- ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration");
+ ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration");
}
else if (mgr->GetInputEventHandler()->IsA()==AliESDInputHandler::Class()){
- ::Info("AddTaskLMEEPbPb2011AOD","switching on ESD specific code");
- bESDANA=kTRUE;
+ ::Info("AddTaskLMEEPbPb2011AOD","switching on ESD specific code");
+ bESDANA=kTRUE;
}
-
-
+
+
//Do we have an MC handler?
Bool_t hasMC=setMC;
if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0)
- hasMC=kTRUE;
-
-
-
+ hasMC=kTRUE;
+
+
+
if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data()))
- gROOT->LoadMacro(configLMEECutLibPath.Data());
+ gROOT->LoadMacro(configLMEECutLibPath.Data());
if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data()))
- gROOT->LoadMacro(configFilePath.Data());
-
-
+ gROOT->LoadMacro(configFilePath.Data());
+
+
LMEECutLibRemi* cutlib = new LMEECutLibRemi();
AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEData");
if (!hasMC) task->UsePhysicsSelection();
task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
-// task->SelectCollisionCandidates(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
-// task->SetRejectPileup();
+ // task->SelectCollisionCandidates(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
+ // task->SetRejectPileup();
task->SelectCollisionCandidates(AliVEvent::kAny);
- task->SetEventFilter(cutlib->GetEventCuts(LMEECutLibRemi::kPbPb2011TPCandTOF)); //
-
+ task->SetEventFilter(cutlib->GetEventCuts(LMEECutLibRemi::kPbPb2011pidITSTPCTOF)); //
+
//load dielectron configuration file
//add dielectron analysis with different cuts to the task
AliDielectron *lowmass2=ConfigRemiLMEEPbPb2011AOD(2,hasMC,bESDANA);
task->AddDielectron(lowmass2);
printf("add: %s\n",lowmass2->GetName());
+ AliDielectron *lowmass6=ConfigRemiLMEEPbPb2011AOD(6,hasMC,bESDANA);
+ task->AddDielectron(lowmass6);
+ printf("add: %s\n",lowmass6->GetName());
+ AliDielectron *lowmass10=ConfigRemiLMEEPbPb2011AOD(10,hasMC,bESDANA);
+ task->AddDielectron(lowmass10);
+ printf("add: %s\n",lowmass10->GetName());
+ AliDielectron *lowmass14=ConfigRemiLMEEPbPb2011AOD(14,hasMC,bESDANA);
+ task->AddDielectron(lowmass14);
+ printf("add: %s\n",lowmass14->GetName());
+
+ AliDielectron *lowmass18=ConfigRemiLMEEPbPb2011AOD(18,hasMC,bESDANA);
+ task->AddDielectron(lowmass18);
+ printf("add: %s\n",lowmass18->GetName());
+ AliDielectron *lowmass22=ConfigRemiLMEEPbPb2011AOD(22,hasMC,bESDANA);
+ task->AddDielectron(lowmass22);
+ printf("add: %s\n",lowmass22->GetName());
+ AliDielectron *lowmass26=ConfigRemiLMEEPbPb2011AOD(26,hasMC,bESDANA);
+ task->AddDielectron(lowmass26);
+ printf("add: %s\n",lowmass26->GetName());
mgr->AddTask(task);
AliAnalysisTask *AddTask_Remi_LMEEPbPb2011AOD_SemiCent2(Char_t* outputFileName="LMEEoutput.root", Bool_t runAll=kFALSE,Bool_t setMC=kFALSE,Bool_t getFromAlien=kFALSE, Bool_t PIDbaseline=kFALSE, Bool_t rejOnly=kTRUE) {
-
+
Bool_t bESDANA=kFALSE; //Autodetect via InputHandler
//get the current analysis manager
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if (!mgr) {
- Error("AddTask_Remi_LMEEPbPb2011", "No analysis manager found.");
- return 0;
+ Error("AddTask_Remi_LMEEPbPb2011", "No analysis manager found.");
+ return 0;
}
-
-
-// create task and add it to the manager
-// gSystem->AddIncludePath("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE");
-
-
+
+
+ // create task and add it to the manager
+ // gSystem->AddIncludePath("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE");
+
+
TString configBasePath("$TRAIN_ROOT/cbaumann_dielectron/");
TString trainRoot=gSystem->Getenv("TRAIN_ROOT");
- // if (trainRoot.IsNull()) configBasePath= "/home/tanizaki/nfs/LMee_Deflection/";
+ // if (trainRoot.IsNull()) configBasePath= "/home/tanizaki/nfs/LMee_Deflection/ver1/";
if (trainRoot.IsNull()) configBasePath= "$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/";
-
-
+
+
if (getFromAlien &&
(!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/ConfigRemiLMEEPbPb2011AOD.C .")) &&
(!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/LMEECutLibRemi.C ."))
) {
configBasePath=Form("%s/",gSystem->pwd());
}
-
-
+
+
TString configFile("ConfigRemiLMEEPbPb2011AOD.C");
TString configLMEECutLib("LMEECutLibRemi.C");
-
+
TString configFilePath(configBasePath+configFile);
TString configLMEECutLibPath(configBasePath+configLMEECutLib);
-
+
//AOD Usage currently tested with separate task, to be merged
if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){
- ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration");
+ ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration");
}
else if (mgr->GetInputEventHandler()->IsA()==AliESDInputHandler::Class()){
- ::Info("AddTaskLMEEPbPb2011AOD","switching on ESD specific code");
- bESDANA=kTRUE;
+ ::Info("AddTaskLMEEPbPb2011AOD","switching on ESD specific code");
+ bESDANA=kTRUE;
}
-
-
+
+
//Do we have an MC handler?
Bool_t hasMC=setMC;
if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0)
- hasMC=kTRUE;
-
-
-
+ hasMC=kTRUE;
+
+
+
if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data()))
- gROOT->LoadMacro(configLMEECutLibPath.Data());
+ gROOT->LoadMacro(configLMEECutLibPath.Data());
if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data()))
- gROOT->LoadMacro(configFilePath.Data());
-
-
+ gROOT->LoadMacro(configFilePath.Data());
+
+
LMEECutLibRemi* cutlib = new LMEECutLibRemi();
AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEData");
if (!hasMC) task->UsePhysicsSelection();
task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
-// task->SelectCollisionCandidates(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
-// task->SetRejectPileup();
+ // task->SelectCollisionCandidates(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
+ // task->SetRejectPileup();
task->SelectCollisionCandidates(AliVEvent::kAny);
- task->SetEventFilter(cutlib->GetEventCuts(LMEECutLibRemi::kPbPb2011TPCandTOF)); //
-
+ task->SetEventFilter(cutlib->GetEventCuts(LMEECutLibRemi::kPbPb2011pidITSTPCTOF)); //
+
//load dielectron configuration file
-
+
//add dielectron analysis with different cuts to the task
-
-
-if (rejOnly) {
-
- // AliDielectron *lowmass1=ConfigRemiLMEEPbPb2011AOD(1,hasMC,bESDANA);
- // task->AddDielectron(lowmass1);
- // printf("add: %s\n",lowmass1->GetName());
-
- // AliDielectron *lowmass2=ConfigRemiLMEEPbPb2011AOD(2,hasMC,bESDANA);
- // task->AddDielectron(lowmass2);
- // printf("add: %s\n",lowmass2->GetName());
-
+
+ if (rejOnly) {
+
+ // AliDielectron *lowmass1=ConfigRemiLMEEPbPb2011AOD(1,hasMC,bESDANA);
+ // task->AddDielectron(lowmass1);
+ // printf("add: %s\n",lowmass1->GetName());
+
+
+ // AliDielectron *lowmass2=ConfigRemiLMEEPbPb2011AOD(2,hasMC,bESDANA);
+ // task->AddDielectron(lowmass2);
+ // printf("add: %s\n",lowmass2->GetName());
+
AliDielectron *lowmass3=ConfigRemiLMEEPbPb2011AOD(3,hasMC,bESDANA);
task->AddDielectron(lowmass3);
printf("add: %s\n",lowmass3->GetName());
+ AliDielectron *lowmass7=ConfigRemiLMEEPbPb2011AOD(7,hasMC,bESDANA);
+ task->AddDielectron(lowmass7);
+ printf("add: %s\n",lowmass7->GetName());
+
+ AliDielectron *lowmass11=ConfigRemiLMEEPbPb2011AOD(11,hasMC,bESDANA);
+ task->AddDielectron(lowmass11);
+ printf("add: %s\n",lowmass11->GetName());
+
+ AliDielectron *lowmass15=ConfigRemiLMEEPbPb2011AOD(15,hasMC,bESDANA);
+ task->AddDielectron(lowmass15);
+ printf("add: %s\n",lowmass15->GetName());
+
+ AliDielectron *lowmass19=ConfigRemiLMEEPbPb2011AOD(19,hasMC,bESDANA);
+ task->AddDielectron(lowmass19);
+ printf("add: %s\n",lowmass19->GetName());
+ AliDielectron *lowmass23=ConfigRemiLMEEPbPb2011AOD(23,hasMC,bESDANA);
+ task->AddDielectron(lowmass23);
+ printf("add: %s\n",lowmass23->GetName());
+ AliDielectron *lowmass27=ConfigRemiLMEEPbPb2011AOD(27,hasMC,bESDANA);
+ task->AddDielectron(lowmass27);
+ printf("add: %s\n",lowmass27->GetName());
+
// AliDielectron *lowmass4=ConfigRemiLMEEPbPb2011AOD(4,hasMC,bESDANA);
//#include "PWGDQ/dielectron/macrosLMEE/LMEECutLib.C"
-
void InitHistograms(AliDielectron *die, Int_t cutDefinition);
void InitCF(AliDielectron* die, Int_t cutDefinition);
void EnableMC();
-TString names=("noPairing;TPCTOFCentnoRej;TPCTOFSemiCent1noRej;TPCTOFSemiCent2noRej;TPCTOFPerinoRej;TPCTOFAllCentnoRej;TPCTOFCentRej;TPCTOFSemiCent1Rej;TPCTOFSemiCent2Rej;TPCTOFPeriRej;TPCTOFAllCentRej;");
+TString names=("noPairing;ITSTPCTOFCentnoRej;ITSTPCTOFSemiCent1noRej;ITSTPCTOFSemiCent2noRej;ITSTPCTOFPerinoRej;ITSTPCTOFCentInvMLowRP;ITSTPCTOFSemiCent1InvMLowRP;ITSTPCTOFSemiCent2InvMLowRP;ITSTPCTOFPeriInvMLowRP;ITSTPCTOFCentInvMMiddleRP;ITSTPCTOFSemiCent1InvMMiddleRP;ITSTPCTOFSemiCent2InvMMiddleRP;ITSTPCTOFPeriInvMMiddleRP;ITSTPCTOFCentInvMHighRP;ITSTPCTOFSemiCent1InvMHighRP;ITSTPCTOFSemiCent2InvMHighRP;ITSTPCTOFPeriInvMHighRP;ITSTPCTOFCentInvMLowMag;ITSTPCTOFSemiCent1InvMLowMag;ITSTPCTOFSemiCent2InvMLowMag;ITSTPCTOFPeriInvMLowMag;ITSTPCTOFCentInvMMiddleMag;ITSTPCTOFSemiCent1InvMMiddleMag;ITSTPCTOFSemiCent2InvMMiddleMag;ITSTPCTOFPeriInvMMiddleMag;ITSTPCTOFCentInvMHighMag;ITSTPCTOFSemiCent1InvMHighMag;ITSTPCTOFSemiCent2InvMHighMag;ITSTPCTOFPeriInvMHighMag");
TObjArray *arrNames=names.Tokenize(";");
const Int_t nDie=arrNames->GetEntries();
Int_t selectedPID=-1;
Int_t selectedCentrality=-1;
- Int_t selectedPairCut=-1;
+ Int_t selectedPairInvMassCut=-1;
+ Int_t selectedPairInOutCut = -1;
Bool_t rejectionStep=kFALSE;
- Bool_t PairCut=kFALSE;
+ Bool_t PairInvMassCut=kFALSE;
+ Bool_t PairInOutCut=kFALSE;
LMEECutLibRemi* LMCL = new LMEECutLibRemi();
//
new AliDielectron(Form
("%s",name.Data()),
Form("Track cuts: %s",name.Data()));
- // die->SetZDCRecenteringFilename("/home/tanizaki/nfs/ZDCrpH1Recentering/ZDCRecenteringProfile.root");
- // die->SetZDCRecenteringFilename("alien:///alice/cern.ch/user/r/rtanizak/ZDCrpH1/ZDCRecentProf/ZDCRecenteringProfile.root")
+
+ // TString ZDCRecenteringfile = "alien:///alice/cern.ch/user/r/rtanizak/ZDCrpH1/ZDCRecentProf/ZDCRecenteringProfile.root";
+ TString ZDCRecenteringfile = "/home/tanizaki/nfs/ZDCrpH1Recentering/ZDCRecenteringProfile.root";
+
+ die->SetZDCRecenteringFilename(ZDCRecenteringfile);
+
//Setup AnalysisSelection:
if (cutDefinition==0) {
//not yet implemented
}
else if (cutDefinition==1) {
- selectedPID = LMEECutLibRemi::kPbPb2011TPCandTOFwide;
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
selectedCentrality = LMEECutLibRemi::kPbPb2011Central;
rejectionStep = kFALSE;
- PairCut = kFALSE;
+ PairInvMassCut = kFALSE;
}
else if (cutDefinition==2) {
- selectedPID = LMEECutLibRemi::kPbPb2011TPCandTOFwide;
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
selectedCentrality = LMEECutLibRemi::kPbPb2011SemiCentral1;
rejectionStep = kFALSE;
- PairCut = kFALSE;
+ PairInvMassCut = kFALSE;
}
else if (cutDefinition==3) {
- selectedPID = LMEECutLibRemi::kPbPb2011TPCandTOFwide;
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
selectedCentrality = LMEECutLibRemi::kPbPb2011SemiCentral2;
rejectionStep = kFALSE;
- PairCut = kFALSE;
+ PairInvMassCut = kFALSE;
}
else if (cutDefinition==4) {
- selectedPID = LMEECutLibRemi::kPbPb2011TPCandTOFwide;
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
selectedCentrality = LMEECutLibRemi::kPbPb2011Peripheral;
rejectionStep = kFALSE;
- PairCut = kFALSE;
+ PairInvMassCut = kFALSE;
}
+
+ //////////////////////////////////////////////////////////
+
else if (cutDefinition==5) {
- selectedPID = LMEECutLibRemi::kPbPb2011TPCandTOFwide;
- selectedCentrality = LMEECutLibRemi::kPbPb2011AllCentral;
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011Central;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011MassLow;
+ selectedPairInOutCut = LMEECutLibRemi::kPbPb2011RP;
rejectionStep = kFALSE;
- PairCut = kFALSE;
+ PairInvMassCut = kTRUE;
+ PairInOutCut = kTRUE;
+ }
+ else if (cutDefinition==6) {
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011SemiCentral1;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011MassLow;
+ selectedPairInOutCut = LMEECutLibRemi::kPbPb2011RP;
+ rejectionStep = kFALSE;
+ PairInvMassCut = kTRUE;
+ PairInOutCut = kTRUE;
}
- else if (cutDefinition==6) {
- selectedPID = LMEECutLibRemi::kPbPb2011TPCandTOFwide;
- selectedCentrality = LMEECutLibRemi::kPbPb2011Central;
- rejectionStep = kFALSE;
- PairCut = kTRUE;
+ else if (cutDefinition==7) {
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011SemiCentral2;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011MassLow;
+ selectedPairInOutCut = LMEECutLibRemi::kPbPb2011RP;
+ rejectionStep = kFALSE;
+ PairInvMassCut = kTRUE;
+ PairInOutCut = kTRUE;
+ }
+ else if (cutDefinition==8) {
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011Peripheral;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011MassLow;
+ selectedPairInOutCut = LMEECutLibRemi::kPbPb2011RP;
+ rejectionStep = kFALSE;
+ PairInvMassCut = kTRUE;
+ PairInOutCut = kTRUE;
}
- else if (cutDefinition==7) {
- selectedPID = LMEECutLibRemi::kPbPb2011TPCandTOFwide;
+
+ else if (cutDefinition==9) {
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011Central;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011MassMiddle;
+ selectedPairInOutCut = LMEECutLibRemi::kPbPb2011RP;
+ rejectionStep = kFALSE;
+ PairInvMassCut = kTRUE;
+ PairInOutCut = kTRUE;
+ }
+
+ else if (cutDefinition==10) {
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
selectedCentrality = LMEECutLibRemi::kPbPb2011SemiCentral1;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011MassMiddle;
+ selectedPairInOutCut = LMEECutLibRemi::kPbPb2011RP;
rejectionStep = kFALSE;
- PairCut = kTRUE;
+ PairInvMassCut = kTRUE;
+ PairInOutCut = kTRUE;
+ }
+ else if (cutDefinition==11) {
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011SemiCentral2;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011MassMiddle;
+ selectedPairInOutCut = LMEECutLibRemi::kPbPb2011RP;
+ rejectionStep = kFALSE;
+ PairInvMassCut = kTRUE;
+ PairInOutCut = kTRUE;
}
- else if (cutDefinition==8) {
+
+ else if (cutDefinition==12) {
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011Peripheral;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011MassMiddle;
+ selectedPairInOutCut = LMEECutLibRemi::kPbPb2011RP;
+ rejectionStep = kFALSE;
+ PairInvMassCut = kTRUE;
+ PairInOutCut = kTRUE;
+ }
+
+ else if (cutDefinition==13) {
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011Central;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011MassHigh;
+ selectedPairInOutCut = LMEECutLibRemi::kPbPb2011RP;
+ rejectionStep = kFALSE;
+ PairInvMassCut = kTRUE;
+ PairInOutCut = kTRUE;
+ }
+
+ else if (cutDefinition==14) {
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011SemiCentral1;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011MassHigh;
+ selectedPairInOutCut = LMEECutLibRemi::kPbPb2011RP;
+ rejectionStep = kFALSE;
+ PairInvMassCut = kTRUE;
+ PairInOutCut = kTRUE;
+ }
+
+ else if (cutDefinition==15) {
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011SemiCentral2;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011MassHigh;
+ selectedPairInOutCut = LMEECutLibRemi::kPbPb2011RP;
+ rejectionStep = kFALSE;
+ PairInvMassCut = kTRUE;
+ PairInOutCut = kTRUE;
+ }
+
+ else if (cutDefinition==16) {
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011Peripheral;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011MassHigh;
+ selectedPairInOutCut = LMEECutLibRemi::kPbPb2011RP;
+ rejectionStep = kFALSE;
+ PairInvMassCut = kTRUE;
+ PairInOutCut = kTRUE;
+
+ }
+
+ //////////////////////////////////////////////////////////
+
+ else if (cutDefinition==17) {
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011Central;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011MassLow;
+ selectedPairInOutCut = LMEECutLibRemi::kPbPb2011Mag;
+ rejectionStep = kFALSE;
+ PairInvMassCut = kTRUE;
+ PairInOutCut = kTRUE;
+ }
+
+ else if (cutDefinition==18) {
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011SemiCentral1;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011MassLow;
+ selectedPairInOutCut = LMEECutLibRemi::kPbPb2011Mag;
+ rejectionStep = kFALSE;
+ PairInvMassCut = kTRUE;
+ PairInOutCut = kTRUE;
+ }
+ else if (cutDefinition==19) {
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011SemiCentral2;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011MassLow;
+ selectedPairInOutCut = LMEECutLibRemi::kPbPb2011Mag;
+ rejectionStep = kFALSE;
+ PairInvMassCut = kTRUE;
+ PairInOutCut = kTRUE;
+ }
+
+ else if (cutDefinition==20) {
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011Peripheral;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011MassLow;
+ selectedPairInOutCut = LMEECutLibRemi::kPbPb2011Mag;
+ rejectionStep = kFALSE;
+ PairInvMassCut = kTRUE;
+ PairInOutCut = kTRUE;
+ }
+
+ else if (cutDefinition==21) {
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011Central;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011MassMiddle;
+ selectedPairInOutCut = LMEECutLibRemi::kPbPb2011Mag;
+ rejectionStep = kFALSE;
+ PairInvMassCut = kTRUE;
+ PairInOutCut = kTRUE;
+ }
+
+ else if (cutDefinition==22) {
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011SemiCentral1;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011MassMiddle;
+ selectedPairInOutCut = LMEECutLibRemi::kPbPb2011Mag;
+ rejectionStep = kFALSE;
+ PairInvMassCut = kTRUE;
+ PairInOutCut = kTRUE;
+ }
+ else if (cutDefinition==23) {
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011SemiCentral2;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011MassMiddle;
+ selectedPairInOutCut = LMEECutLibRemi::kPbPb2011Mag;
+ rejectionStep = kFALSE;
+ PairInvMassCut = kTRUE;
+ PairInOutCut = kTRUE;
+ }
+ else if (cutDefinition==24) {
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011Peripheral;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011MassMiddle;
+ selectedPairInOutCut = LMEECutLibRemi::kPbPb2011Mag;
+ rejectionStep = kFALSE;
+ PairInvMassCut = kTRUE;
+ PairInOutCut = kTRUE;
+ }
+
+ else if (cutDefinition==25) {
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011Central;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011MassHigh;
+ selectedPairInOutCut = LMEECutLibRemi::kPbPb2011Mag;
+ rejectionStep = kFALSE;
+ PairInvMassCut = kTRUE;
+ PairInOutCut = kTRUE;
+ }
+ else if (cutDefinition==26) {
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011SemiCentral1;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011MassHigh;
+ selectedPairInOutCut = LMEECutLibRemi::kPbPb2011Mag;
+ rejectionStep = kFALSE;
+ PairInvMassCut = kTRUE;
+ PairInOutCut = kTRUE;
+ }
+ else if (cutDefinition==27) {
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011SemiCentral2;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011MassHigh;
+ selectedPairInOutCut = LMEECutLibRemi::kPbPb2011Mag;
+ rejectionStep = kFALSE;
+ PairInvMassCut = kTRUE;
+ PairInOutCut = kTRUE;
+ }
+ else if (cutDefinition==28) {
+ selectedPID = LMEECutLibRemi::kPbPb2011pidITSTPCTOF;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011Peripheral;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011MassHigh;
+ selectedPairInOutCut = LMEECutLibRemi::kPbPb2011Mag;
+ rejectionStep = kFALSE;
+ PairInvMassCut = kTRUE;
+ PairInOutCut = kTRUE;
+ }
+
+
+
+
+
+ /*
+ ///////////////////////////////////////////////////////////
+ else if (cutDefinition==21) {
+ selectedPID = LMEECutLibRemi::kPbPb2011TPCandTOFwide
+ selectedCentrality = LMEECutLibRemi::kPbPb2011Central;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011RP;
+ //selectedPairMCut = LMEECutLibRemi::kPbPb2011MassAll;
+ rejectionStep = kFALSE;
+ PairCut=kTRUE;
+ PolaCut=kTRUE;
+ }
+ else if (cutDefinition==22) {
+ selectedPID = LMEECutLibRemi::kPbPb2011TPCandTOFwide;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011SemiCentral1;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011RP;
+ // selectedPairMCut = LMEECutLibRemi::kPbPb2011MassMiddle;
+ rejectionStep = kFALSE;
+ PairCut=kTRUE;
+ PolaCut=kTRUE;
+ }
+ else if (cutDefinition==23) {
selectedPID = LMEECutLibRemi::kPbPb2011TPCandTOFwide;
selectedCentrality = LMEECutLibRemi::kPbPb2011SemiCentral2;
+ // selectedPairMCut = LMEECutLibRemi::kPbPb2011MassMiddle;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011RP;
rejectionStep = kFALSE;
- PairCut = kTRUE;
+ PairCut=kTRUE;
+ PolaCut=kTRUE;
}
- else if (cutDefinition==9) {
+ else if (cutDefinition==24) {
selectedPID = LMEECutLibRemi::kPbPb2011TPCandTOFwide;
selectedCentrality = LMEECutLibRemi::kPbPb2011Peripheral;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011RP;
+ // selectedPairMCut = LMEECutLibRemi::kPbPb2011MassMiddle;
rejectionStep = kFALSE;
- PairCut = kTRUE;
+ PairCut=kTRUE;
+ PolaCut=kTRUE;
}
- else if (cutDefinition==10) {
+
+ /////////////////////////////////////////////////////////
+ else if (cutDefinition==25) {
selectedPID = LMEECutLibRemi::kPbPb2011TPCandTOFwide;
- selectedCentrality = LMEECutLibRemi::kPbPb2011AllCentral;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011Central;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011Mag;
+ // selectedPairMCut = LMEECutLibRemi::kPbPb2011MassAll;
rejectionStep = kFALSE;
- PairCut = kTRUE;
+ PairCut=kTRUE;
+ PolaCut=kTRUE;
}
+ else if (cutDefinition==26) {
+ selectedPID = LMEECutLibRemi::kPbPb2011TPCandTOFwide;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011SemiCentral1;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011Mag;
+ // selectedPairMCut = LMEECutLibRemi::kPbPb2011MassMiddle;
+ rejectionStep = kFALSE;
+ PairCut=kTRUE;
+ PolaCut=kTRUE;
+
+ }
+ else if (cutDefinition==27) {
+ selectedPID = LMEECutLibRemi::kPbPb2011TPCandTOFwide;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011SemiCentral2;
+ // selectedPairMCut = LMEECutLibRemi::kPbPb2011MassMiddle;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011Mag;
+ rejectionStep = kFALSE;
+ PairCut=kTRUE;
+ PolaCut=kTRUE;
+
+ }
+ else if (cutDefinition==28) {
+ selectedPID = LMEECutLibRemi::kPbPb2011TPCandTOFwide;
+ selectedCentrality = LMEECutLibRemi::kPbPb2011Peripheral;
+ selectedPairInvMassCut = LMEECutLibRemi::kPbPb2011Mag;
+ // selectedPairMCut = LMEECutLibRemi::kPbPb2011MassMiddle;
+ rejectionStep = kFALSE;
+ PairCut=kTRUE;
+ PolaCut=kTRUE;
+
+ }
+
+ */
+
else {
cout << " =============================== " << endl;
cout << " ==== INVALID CONFIGURATION ==== " << endl;
//switch off KF PArticle:
die->SetUseKF(kFALSE);
-
+ /*
if (selectedPID == LMEECutLibRemi::kPbPb2011NoPID) {
die->SetNoPairing();
}
+ */
+
+
+
+ die->GetEventFilter().AddCuts( LMCL->GetCentralityCuts(selectedCentrality));
+
+ // die->GetTrackFilter().AddCuts( LMCL->GetTrackCutsAna(selectedPID) );
+ die->GetTrackFilter().AddCuts( LMCL->GetPIDCutsAna(selectedPID) );
+ // die->GetPairFilter().AddCuts( LMCL->GetPairCutsAna(selectedPID,kFALSE) );
+
+
+ if (PairInvMassCut)
+ die->GetPairFilter().AddCuts( LMCL->GetPairCutsInvMass(selectedPairInvMassCut));
+
+
+
+ if(PairInOutCut)
+ die->GetPairFilter().AddCuts( LMCL->GetPairCutsInOut(selectedPairInOutCut));
+
+
+ /*
+
+ if(PairCut){
+ if (rejectionStep) {
+ die->GetPairPreFilterLegs().AddCuts(LMCL->GetPIDCutsAna(selectedPID) );
+ die->GetPairPreFilter().AddCuts( LMCL->GetPairPreFilterCuts(selectedPairCut));
+ die->GetPairFilter().AddCuts( LMCL->GetPairCuts(selectedPairCut));
+ }
+ else {
+ // die->GetPairFilter().AddCuts( LMCL->GetPairCutsInvMass(selectedPairCut));
+ die->GetPairFilter().AddCuts( LMCL->GetPairCuts(selectedPID));
+
+
+ // die->GetPairFilter().AddCuts( LMCL->GetPairCuts4(selectedPairMCut));
+ }
+ }
+ */
+
+ /*
if (rejectionStep) {
if (ESDanalysis) {
die->GetTrackFilter().AddCuts( LMCL->GetESDTrackCutsAna(selectedPID) );
}
//Introduce NULL-check for pp?
die->GetEventFilter().AddCuts(LMCL->GetCentralityCuts(selectedCentrality));
-
+ */
1,0.,1.,AliDielectronVarManager::kNevents);
histos->UserHistogram("Event","Centrality","Centrality;Centrality [%]","0,10,20,40,80,100,101",
AliDielectronVarManager::kCentrality);
- /* histos->UserHistogram("Event","v0ACrpH2","VZERO-AC;v0ACrpH2",
+
+
+ histos->UserHistogram("Event","v0ACrpH2","VZERO-AC;v0ACrpH2",
100,-2.0,2.0,
AliDielectronVarManager::kv0ACrpH2);
- histos->UserHistogram("Event","v0ArpH2","VZERO-A;v0ArpH2",
+ histos->UserHistogram("Event","v0ArpH2","VZERO-A;v0ArpH2",
100,-2.0,2.0,
AliDielectronVarManager::kv0ArpH2);
- histos->UserHistogram("Event","v0CrpH2","VZERO-C;v0CrpH2",
+ histos->UserHistogram("Event","v0CrpH2","VZERO-C;v0CrpH2",
100,-2.0,2.0,
AliDielectronVarManager::kv0CrpH2);
- histos->UserHistogram("Event","v0ArpH2_vs_v0CrpH2","VZERO-A vs VZERO-C;v0ArpH2;v0CrpH2",
- 100,-2.0,2.0,100, -2.0, 2.0,
- AliDielectronVarManager::kv0ArpH2,AliDielectronVarManager::kv0CrpH2);
- // histos->UserHistgram("Event","resov0ACrpH2","VZERO-A;v0ArpH2",
- // 100, -2.0,2.0, AliDielectronVarManager::kresov0ACrpH2);
- */
+ histos->UserHistogram("Event","RadomRP","RandomRP;RandomRP",
+ 100,-2.0,2.0,
+ AliDielectronVarManager::kRandomRP);
+
histos->UserHistogram("Event","ZDCArpH1","ZDC-ZN-A;ZDCrpH1",
100,-3.5,3.5,
- AliDielectronVarManager::kZDCArpH1);
- /* histos->UserHistogram("Event","ZDCrpResH1","ZDC;ZDCrpResH1",
- 100,-3.5,3.5,
- AliDielectronVarManager::kZDCrpResH1);
- histos->UserHistogram("Event","v0ZDCrpRes","ZDC;v0ZDCrpRes",
- 100,-3.5,3.5,
- AliDielectronVarManager::kv0ZDCrpRes);
- */
+ AliDielectronVarManager::kZDCACrpH1);
+
histos->UserProfile("Event","ZDCrpResH1Prof","ZDC;ZDCrpResH1",
AliDielectronVarManager::kZDCrpResH1,
10, 0, 100,
histos->UserHistogram("Event","kYvPrim","VartexY;vertex_y",
100,0.2,0.3,
AliDielectronVarManager::kYvPrim);
-
-
- histos->UserHistogram("Pair","InvMassAllPairplaneMagInPro","Inner Product of Mag and ee plane vs Inv.Mass;Inv. Mass [GeV];Phi [rad]",
- 1000, 0.0,1.0,100,-2.0,2.0,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneMagInPro);
- histos->UserHistogram("Pair","InvMassLowPairplaneMagInPro","ee plane Mag component vs Inv.Mass;Inv. Mass [GeV];Phi [rad]",
- 300, 0.0,0.03,100,-2.0,2.0,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneMagInPro);
- histos->UserHistogram("Pair","InvMassMiddlePairplaneMagInPro","ee plane Mag component vs Inv.Mass;Inv. Mass [GeV];Phi [rad]",
- 180,0.12, 0.3,100,-2.0,2.0,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneMagInPro);
- histos->UserHistogram("Pair","InvMassHighPairplaneMagInPro","ee plane Mag component vs Inv.Mass;Inv. Mass [GeV];Phi [rad]",
- 200, 0.3, 0.5,100,-2.0,2.0,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneMagInPro);
-
-
- histos->UserHistogram("Pair","PtAllPairplaneMagInPro","ee plane Mag component vs Pt;Pt [GeV];Phi [rad]",
- 500,0.0,10.0,100,-2.0,2.0,AliDielectronVarManager::kPt,AliDielectronVarManager::kPairPlaneMagInPro);
- histos->UserHistogram("Pair","PtLowPairplaneMagInPro","ee plane Mag component vs Pt;Pt [GeV];Phi [rad]",
- 100,0.0,1.0,100,-2.0,2.0,AliDielectronVarManager::kPt,AliDielectronVarManager::kPairPlaneMagInPro);
- histos->UserHistogram("Pair","PtMiddlePairplaneMagInPro","ee plane Mag component vs Pt;Pt [GeV];Phi [rad]",
- 100,1.0,2.0,100,-2.0,2.0,AliDielectronVarManager::kPt,AliDielectronVarManager::kPairPlaneMagInPro);
- histos->UserHistogram("Pair","PtHighPairplaneMagInPro","ee plane Mag component vs Pt;Pt [GeV];Phi [rad]",
- 200,2.0,10.0,100,-2.0,2.0,AliDielectronVarManager::kPt,AliDielectronVarManager::kPairPlaneMagInPro);
-
-
- /* histos->UserHistogram("Pair","AllInvMassPtPairplaneMagInPro","ee plane Mag component",
- 1000,0.0 ,0.5,500,0.0,10.0,100,-2.0,2.0,
- AliDielectronVarManager::kM,AliDielectronVarManager::kPt,AliDielectronVarManager::kPairPlaneMagInPro,
- kFALSE,kFALSE,kFALSE,999);
- */
- // histos->UserHistogram("Pair","AllInvMassPtPairplaneMagInPro","ee plane Mag component vs Pt;Inv.Mass[GeV];Pt [GeV];Phi [rad]",
- // 1000,0.0,0.5,500,0.0,10.0,100,-2.0,2.0,
- // AliDielectronVarManager::kM,AliDielectronVarManager::kPt,AliDielectronVarManager::kPairPlaneMagInPro);
-
+
//add histograms to Track classes
- /* histos->UserHistogram("Track","Pt","Pt;Pt [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPt);
- histos->UserHistogram("Track","Px","Px;Px [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPx);
- histos->UserHistogram("Track","Py","Py;Py [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPy);
- histos->UserHistogram("Track","Pz","Pz;Pz [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPz);
- histos->UserHistogram("Track","P","P;P [GeV];#tracks",200,0,20.,AliDielectronVarManager::kP);
- */
+
+ histos->UserHistogram("Track","Pt","Pt;Pt [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPt);
+ histos->UserHistogram("Track","Px","Px;Px [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPx);
+ histos->UserHistogram("Track","Py","Py;Py [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPy);
+ histos->UserHistogram("Track","Pz","Pz;Pz [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPz);
+
+
+ histos->UserHistogram("Track","Eta","Eta; Eta;#tracks",
+ 200,-2,2,AliDielectronVarManager::kEta);
+ histos->UserHistogram("Track","Phi","Phi; Phi;#tracks",
+ 200,0.,3.15,AliDielectronVarManager::kPhi);
+
+
/*
histos->UserHistogram("Track","NclsSFracTPC","NclsSFracTPC; NclsSFracTPC;#tracks",200,0,10.,AliDielectronVarManager::kNclsSFracTPC);
histos->UserHistogram("Track","TPCclsDiff","TPCclsDiff; TPCclsDiff;#tracks",200,0,10.,AliDielectronVarManager::kTPCclsDiff);
histos->UserHistogram("Pair","InvMassOpeningAngle","Opening Angle vs Inv.Mass;Inv. Mass [GeV];#pairs",
500,0.0,5.0,200,0.,6.3,AliDielectronVarManager::kM,AliDielectronVarManager::kOpeningAngle);
+
+
+ histos->UserHistogram("Pair","Pt","Pt;Pt [GeV];#tracks",300,0,30.,AliDielectronVarManager::kPt);
+ histos->UserHistogram("Pair","Px","Px;Px [GeV];#tracks",300,0,30.,AliDielectronVarManager::kPx);
+ histos->UserHistogram("Pair","Py","Py;Py [GeV];#tracks",300,0,30.,AliDielectronVarManager::kPy);
+ histos->UserHistogram("Pair","Pz","Pz;Pz [GeV];#tracks",300,0,30.,AliDielectronVarManager::kPz);
+ histos->UserHistogram("Pair","Phi","Phi;Phi[rad];#counts",100,-3.15,3.15,AliDielectronVarManager::kPhi );
+
+
+ histos->UserHistogram("Pair","DeltaPhiv0ArpH2","Phi;Phi[rad];#counts",
+ 100,-3.15,3.15,AliDielectronVarManager::kDeltaPhiv0ArpH2);
+ histos->UserHistogram("Pair","DeltaPhiv0CrpH2","Phi;Phi[rad];#counts",
+ 100,-3.15,3.15,AliDielectronVarManager::kDeltaPhiv0CrpH2);
+ histos->UserHistogram("Pair","DeltaPhiv0ACrpH2","Phi;Phi[rad];#counts",
+ 100,-3.15,3.15,AliDielectronVarManager::kDeltaPhiv0ACrpH2);
+ histos->UserHistogram("Pair","DeltaPhiRandomRP","Phi;Phi[rad];#counts",
+ 100,-3.15,3.15,AliDielectronVarManager::kDeltaPhiRandomRP);
+
+
+ histos->UserHistogram("Pair","PairPlaneAngle2C","Phi;Phi[rad];#counts",
+ 100,0,1.6,AliDielectronVarManager::kPairPlaneAngle2C);
+ histos->UserHistogram("Pair","PairPlaneAngle3C","Phi;Phi[rad];#counts",
+ 100,0,1.6,AliDielectronVarManager::kPairPlaneAngle3C);
+ histos->UserHistogram("Pair","PairPlaneAngle4C","Phi;Phi[rad];#counts",
+ 100,0,1.6,AliDielectronVarManager::kPairPlaneAngle4C);
+ histos->UserHistogram("Pair","PairPlaneAngleRan","Phi;Phi[rad];#counts",
+ 100,0,1.6,AliDielectronVarManager::kPairPlaneAngle3Ran);
+
+
+ //2D Histo Plot
+
+ histos->UserHistogram("Pair","InvMAllPP1C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]",500,0.0,0.50,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle1C);
+
+ histos->UserHistogram("Pair","InvMAllPP2C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]",500,0.0,0.50,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle2C);
+
+ histos->UserHistogram("Pair","InvMAllPP3C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]",500,0.0,0.50,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle3C);
+
+ histos->UserHistogram("Pair","InvMAllPP4C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]",500,0.0,0.50,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle4C);
+
+
+ histos->UserHistogram("Pair","PtAllPP1C","Pair Pt vs PairPlaneAngle;Pt [GeV];Phi [rad]",
+ 500,0.,10.0,100,0.,3.15,AliDielectronVarManager::kPt, AliDielectronVarManager::kPairPlaneAngle1C);
+
+ histos->UserHistogram("Pair","PtAllPP2C","Pair Pt vs PairPlaneAngle;Pt [GeV];Phi [rad]",
+ 500,0.,10.0,100,0.,3.15,AliDielectronVarManager::kPt, AliDielectronVarManager::kPairPlaneAngle2C);
+
+ histos->UserHistogram("Pair","PtAllPP3C","Pair Pt vs PairPlaneAngle;Pt [GeV];Phi [rad]",
+ 500,0.,10.0,100,0.,3.15,AliDielectronVarManager::kPt, AliDielectronVarManager::kPairPlaneAngle3C);
+
+ histos->UserHistogram("Pair","PtAllPP4C","Pair Pt vs PairPlaneAngle;Pt [GeV];Phi [rad]",
+ 500,0.,10.0,100,0.,3.15,AliDielectronVarManager::kPt, AliDielectronVarManager::kPairPlaneAngle4C);
+
/*
+ histos->UserHistogram("Pair","InvMassAllPairplaneMagInPro","Inner Product of Mag and ee plane vs Inv.Mass;Inv. Mass [GeV];Phi [rad]",
+ 1000, 0.0,1.0,100,-2.0,2.0,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneMagInPro);
+ histos->UserHistogram("Pair","InvMassLowPairplaneMagInPro","ee plane Mag component vs Inv.Mass;Inv. Mass [GeV];Phi [rad]",
+ 300, 0.0,0.03,100,-2.0,2.0,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneMagInPro);
+ histos->UserHistogram("Pair","InvMassMiddlePairplaneMagInPro","ee plane Mag component vs Inv.Mass;Inv. Mass [GeV];Phi [rad]",
+ 180,0.12, 0.3,100,-2.0,2.0,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneMagInPro);
+ histos->UserHistogram("Pair","InvMassHighPairplaneMagInPro","ee plane Mag component vs Inv.Mass;Inv. Mass [GeV];Phi [rad]",
+ 200, 0.3, 0.5,100,-2.0,2.0,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneMagInPro);
+ */
+
+ histos->UserHistogram("Pair","DeltaPhiv0CrpH2","Phi;Phi[rad];#counts",
+ 100,-3.15,3.15,AliDielectronVarManager::kDeltaPhiv0CrpH2);
+
+ histos->UserHistogram("Pair","PtAllPairplaneMagInPro","ee plane Mag component vs Pt;Pt [GeV];Phi [rad]",
+ 500,0.0,10.0,100,-2.0,2.0,AliDielectronVarManager::kPt,AliDielectronVarManager::kPairPlaneMagInPro);
+ histos->UserHistogram("Pair","PtLowPairplaneMagInPro","ee plane Mag component vs Pt;Pt [GeV];Phi [rad]",
+ 100,0.0,1.0,100,-2.0,2.0,AliDielectronVarManager::kPt,AliDielectronVarManager::kPairPlaneMagInPro);
+ histos->UserHistogram("Pair","PtMiddlePairplaneMagInPro","ee plane Mag component vs Pt;Pt [GeV];Phi [rad]",
+ 100,1.0,2.0,100,-2.0,2.0,AliDielectronVarManager::kPt,AliDielectronVarManager::kPairPlaneMagInPro);
+ histos->UserHistogram("Pair","PtHighPairplaneMagInPro","ee plane Mag component vs Pt;Pt [GeV];Phi [rad]",
+ 200,2.0,10.0,100,-2.0,2.0,AliDielectronVarManager::kPt,AliDielectronVarManager::kPairPlaneMagInPro);
+
+
+ /*
+ histos->UserHistogram("Pair","AllInvMassPtPairplaneMagInPro","ee plane Mag component;Inv.Mass[GeV];Pt[GeV];Phi[red]",
+ 1000,0.0 ,0.5,500,0.0,10.0,100,-2.0,2.0,
+ AliDielectronVarManager::kM,AliDielectronVarManager::kPt,AliDielectronVarManager::kPairPlaneMagInPro);
+ */
+
+
+ // histos->UserHistogram("Pair","AllInvMassPtPairplaneMagInPro","ee plane Mag component vs Pt;Inv.Mass[GeV];Pt [GeV];Phi [rad]",
+ // 1000,0.0,0.5,500,0.0,10.0,100,-2.0,2.0,
+ // AliDielectronVarManager::kM,AliDielectronVarManager::kPt,AliDielectronVarManager::kPairPlaneMagInPro);
+
+
+ /*
+
+
//add histograms to Track classes
histos->UserHistogram("Pre","Pt","Pt;Pt [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPt);
MCenabled=kTRUE;
}
+
+// LocalWords: cutDefinition
kPbPb2011TPCorTOF,
kpp2010TPCandTOF,
kpp2010TPCorTOF,
+ kPbPb2011pidITSTPCTOF,
kCUTSETMAX
};
static enum LMMECentSel {
kPbPb2011Central,
kPbPb2011SemiCentral1,
- kPbPb2011SemiCentral2,
+ kPbPb2011SemiCentral2,
kPbPb2011Peripheral,
- kPbPb2011AllCentral,
- kCENTSELMAX
+ kCENTSELMAX
};
static enum LMEEPairCutSet{
- kPbPb2011MassLow,
- kPbPb2011MassMiddle,
- kPbPb2011MassHigh,
- kPbPb2011MassAll,
+ kPbPb2011RP,
+ kPbPb2011Mag,
+ kPbPb2011MassLow,
+ kPbPb2011MassMiddle,
+ kPbPb2011MassHigh,
+ kPbPb2011MassAll,
- kPAIRCUTSETMAX
+ kPAIRCUTSETMAX
};
-
//char* LMEECutNames[kCUTSETMAX] = { "PbPb2011TPCandTOF","PbPb2011TPCorTOF"};
AliAnalysisCuts* GetPairCuts2(Int_t cutSet,Bool_t tooglePC=kFALSE);
AliAnalysisCuts* GetPairCuts(Int_t cutSet);
AliAnalysisCuts* GetPairCutsInvMass(Int_t cutSet);
+ AliAnalysisCuts* GetPairCutsInOut(Int_t cutSet);
AliAnalysisCuts* GetTrackCutsAna(Int_t cutSet);
AliAnalysisCuts* GetTrackCutsPre(Int_t cutSet);
case kPbPb2011TPCorTOF :
case kpp2010TPCandTOF :
case kpp2010TPCorTOF :
+ case kPbPb2011pidITSTPCTOF:
+
+ //Basic Event Cuts for pp and Pb-Pb, additional cuts may be in the AddTask
eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0");
eventCuts->SetVertexType(AliDielectronEventCuts::kVtxSPD); // AOD
- //eventCuts->SetVertexType(AliDielectronEventCuts::kVtxTPC); // AOD
- // eventCuts->SetCentralityRange(0.0,80.0);
+ // eventCuts->SetVertexType(AliDielectronEventCuts::kVtxTPC); // AOD
+ // eventCuts->SetCentralityRange(0.0,80.0);
+ // eventCuts->SetVertexType(AliDielectronEventCuts::kVtxAny); // AOD
+
eventCuts->SetRequireVertex();
eventCuts->SetMinVtxContributors(1);
eventCuts->SetVertexZ(-10.,10.);
return eventCuts;
}
- AliAnalysisCuts* GetCentralityCuts(Int_t centSel) {
- AliDielectronVarCuts* centCuts = 0x0;
- switch (centSel) {
- case kPbPb2011Central:
- centCuts = new AliDielectronVarCuts("centCuts","CentralityPbPb2011Central");
- centCuts->AddCut(AliDielectronVarManager::kCentrality,0.,10.);
- break;
- case kPbPb2011SemiCentral1:
- centCuts = new AliDielectronVarCuts("centCuts","CentralityPbPb2011SemiCentral1");
- //Restrict to 50%, Trigger selction
- centCuts->AddCut(AliDielectronVarManager::kCentrality,10.,30.);
- break;
- case kPbPb2011SemiCentral2:
- centCuts = new AliDielectronVarCuts("centCuts","CentralityPbPb2011SemiCentral2");
- //Restrict to 50%, Trigger selction
- centCuts->AddCut(AliDielectronVarManager::kCentrality,30.,50.);//
- break;
- case kPbPb2011Peripheral:
- centCuts = new AliDielectronVarCuts("centCuts","CentralityPbPb2011Peripheral");
- centCuts->AddCut(AliDielectronVarManager::kCentrality,50.,90.);
- break;
-
- case kPbPb2011AllCentral:
- centCuts = new AliDielectronVarCuts("centCuts","CentralityPbPb2011AllCentral");
- centCuts->AddCut(AliDielectronVarManager::kCentrality,0.,100.);
- break;
+ //Selection of relatively 'flat' centralities
+ AliAnalysisCuts* GetCentralityCuts(Int_t centSel) {
+ AliDielectronVarCuts* centCuts = 0x0;
+ switch (centSel) {
+ case kPbPb2011Central:
+ centCuts = new AliDielectronVarCuts("centCuts","CentralityPbPb2011Central");
+ centCuts->AddCut(AliDielectronVarManager::kCentrality,0.,10.);
+ break;
+ case kPbPb2011SemiCentral1:
+ centCuts = new AliDielectronVarCuts("centCuts","CentralityPbPb2011SemiCentral1");
+ //Restrict to 50%, Trigger selction
+ centCuts->AddCut(AliDielectronVarManager::kCentrality,10.,30.);
+ break;
+ case kPbPb2011SemiCentral2:
+ centCuts = new AliDielectronVarCuts("centCuts","CentralityPbPb2011SemiCentral2");
+ //Restrict to 50%, Trigger selction
+ centCuts->AddCut(AliDielectronVarManager::kCentrality,30.,50.);//
+ break;
- default: cout << "No Centrality selected" << endl;
+ case kPbPb2011Peripheral:
+ centCuts = new AliDielectronVarCuts("centCuts","CentralityPbPb2011Peripheral");
+ centCuts->AddCut(AliDielectronVarManager::kCentrality,50.,90.);
+ break;
+
+ default: cout << "No Centrality selected" << endl;
+
+
+ }
+ return centCuts;
+ }
- }
- return centCuts;
- }
+ //Basic track rotator settings from J/Psi, more investigation needed
AliDielectronTrackRotator* GetTrackRotator(Int_t cutSet) {
AliDielectronTrackRotator* trackRotator = 0x0;
switch (cutSet) {
case kPbPb2011TPCorTOF :
case kpp2010TPCandTOF :
case kpp2010TPCorTOF :
+ case kPbPb2011pidITSTPCTOF :
+
trackRotator = new AliDielectronTrackRotator();
trackRotator->SetIterations(20);
trackRotator->SetConeAnglePhi(TMath::Pi()/180*165);
AliDielectronMixingHandler* mixingHandler = 0x0;
switch (cutSet) {
case kPbPb2011TPCorTOF :
-/*
- mixingHandler = new AliDielectronMixingHandler;
- mixingHandler->AddVariable(AliDielectronVarManager::kZvPrim,"-10,-5,0,5,10");
- mixingHandler->AddVariable(AliDielectronVarManager::kCentrality,"0,5,10,20,40,80");
- mixingHandler->SetDepth(25);
- mixingHandler->SetMixType(AliDielectronMixingHandler::kAll);
- break;
-*/
case kPbPb2011NoPID:
case kPbPb2011TPCandTOF :
case kPbPb2011TPCandTOFHPT:
case kPbPb2011TPC :
case kPbPb2011TPCandTOFwide :
+ case kPbPb2011pidITSTPCTOF :
+
mixingHandler = new AliDielectronMixingHandler;
mixingHandler->AddVariable(AliDielectronVarManager::kZvPrim,"-10,-5,0,5,10");
mixingHandler->AddVariable(AliDielectronVarManager::kCentrality,"0,5,10,20,40,80");
- mixingHandler->AddVariable(AliDielectronVarManager::kv0ACrpH2,"-6*(TMath::Pi()/6),-5*(TMath::Pi()/6),-4*(TMath::Pi()/6),-3*(TMath::Pi()/6),-2*(TMath::Pi()/6),-1*(TMath::Pi()/6),0,1*(TMath::Pi()/6),2*(TMath::Pi()/6),3*(TMath::Pi()/6),4*(TMath::Pi()/6),5*(TMath::Pi()/6),6*(TMath::Pi()/6)");
- //mixingHandler->SetDepth(50);
- mixingHandler->SetDepth(15);
+ mixingHandler->AddVariable(AliDielectronVarManager::kv0ACrpH2,"-6*(TMath::Pi()/6),-5*(TMath::Pi()/6),-4*(TMath::Pi()/6),-3*(TMath::Pi()/6),-2*(TMath::Pi()/6),-1*(TMath::Pi()/6),0,1*(TMath::Pi()/6),2*(TMath::Pi()/6),3*(TMath::Pi()/6),4*(TMath::Pi()/6),5*(TMath::Pi()/6),6*(TMath::Pi()/6)");
+
+ mixingHandler->SetDepth(20);
+ // mixingHandler->SetDepth(15);
mixingHandler->SetMixType(AliDielectronMixingHandler::kAll);
break;
case kpp2010TPCandTOF :
case kpp2010TPCorTOF :
+ //ATTENTION: Trivial 1 Bin Variable on Nacc needed: Not understood bug, mixing breaks
+ //when just adding one variable *****************!!!
mixingHandler = new AliDielectronMixingHandler;
mixingHandler->AddVariable(AliDielectronVarManager::kZvPrim,"-10,-5,0,5,10");
mixingHandler->AddVariable(AliDielectronVarManager::kNacc,"0,10000");
return mixingHandler;
}
+ /*
+ //Pair Cuts for PREFILTER step
+ // cuts = REJECTION!!!
+ AliAnalysisCuts* GetPairCutsPre(Int_t cutSet) {
+ cout << " >>>>>>>>>>>>>>>>>>>>>> GetPairCutsPre() >>>>>>>>>>>>>>>>>>>>>> " << endl;
+ AliAnalysisCuts* pairCuts=0x0;
+ switch (cutSet) {
+ case kPbPb2011_pidITSTPC_trkSPDfirst_3:
+ case kPbPb2011_pidTPC_trkSPDfirst_3:
+ case kPbPb2011_pidITS2gevTPCTOFif_trkSPD5orSDD4cls_6_tight:
+ case kPbPb2011_pidITS2gevTPCTOFif_trkSPDfirst5cls_6_tight:
+ case kPbPb2011_pidITS2gevTPCTOFif_trkSPDorSDD_5_tight:
+ case kPbPb2011_pidITS2gevTPCTOFif_trkSPDfirst_5_tight:
+ case kPbPb2011_pidITSTPCTOFif_trkSPD5orSDD4cls_4:
+ case kPbPb2011_pidITSTPCTOFif_trkSPDfirst5cls_4:
+ case kPbPb2011_pidITSTPCTOFif_trkSPDorSDD_1:
+ case kPbPb2011pidITSTPCTOF:
+ case kPbPb2011_pidTPCTOF_trkSPDorSDD_1:
+ case kPbPb2011_pidTPCTOF_trkSPDfirst_1:
+ case kPbPb2011_TPCITS_TOFif1:
+ case kPbPb2011_TPCTOF_Semi2:
+ AliDielectronVarCuts* pairCutsInvM =new AliDielectronVarCuts("pairCutsInvM","pairCutsInvM");
+ pairCutsInvM->AddCut(AliDielectronVarManager::kM, 0.0, 0.02); // in upgrade: 0.01
+ AliDielectronVarCuts* pairCutsOpAng =new AliDielectronVarCuts("pairCutsOpAng","pairCutsOpAng");
+ pairCutsOpAng->AddCut(AliDielectronVarManager::kOpeningAngle, 0.0, 0.05); // in upgrade: 0.05
+
+ AliDielectronCutGroup* pairCutsCG =new AliDielectronCutGroup("pairCutsCG","pairCutsCG",AliDielectronCutGroup::kCompAND);
+ pairCutsCG->AddCut(pairCutsInvM);
+ pairCutsCG->AddCut(pairCutsOpAng);
+ //pairCutsCG->AddCut(pairCutsPhiv);
+ pairCuts = pairCutsCG;
+ break;
- AliAnalysisCuts* GetPIDCutsAna(Int_t cutSet) {
- AliAnalysisCuts* anaCuts=0x0;
+ case kPbPb2011_TPCTOF_Semi1:
+ //[...] // PhiV and InvMass
+ default: cout << "No Prefilter Pair Cuts defined " << endl;
+ }
+ return pairCuts;
+ }
+ */
- // + [2] added for Dec2010 Cut!
- TF1 *lowerCut = new TF1("lowerCut", "[0] * TMath::Exp([1]*x) + [2]", 0, 20);
- /* until Nov2010
- lowerCut->SetParameter(0, -2.7);
- lowerCut->SetParameter(1, -0.4357);
- */
- /* 18.01.2011 ALiHFEpid.cxx */
- lowerCut->SetParameter(0,-3.7);
- lowerCut->SetParameter(1,-0.8);
- lowerCut->SetParameter(2,-0.35);
-
- if (MCenabled) { //overwrite parameters
- lowerCut->SetParameter(0,-2.5);
- lowerCut->SetParameter(2,-2.2);
- }
- //---------------------------------------------
- AliDielectronPID *pidTPCTOFeOnly = new AliDielectronPID("TPC-TOF","TPC-TOF");
- pidTPCTOFeOnly->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-3,3.,0.0,100.,kFALSE);
- pidTPCTOFeOnly->AddCut(AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.0 , 100., kFALSE );
+ AliAnalysisCuts* GetPIDCutsAna(Int_t cutSet) {
+ AliAnalysisCuts* anaCuts=0x0;
- AliDielectronPID *pidTPCandTOF = new AliDielectronPID("TPC-TOF-HFE","TPC-TOF-HFE");
- pidTPCandTOF->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-3.,3.,0.0,100.,kFALSE);
- pidTPCandTOF->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-3.,3.,0.,100.,kTRUE);
- pidTPCandTOF->AddCut(AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.0 , 100., kFALSE );
+ //-----------------------------------------------
+ //Define different PID Cuts, that are used later
+ //-----------------------------------------------
+
+ //TPC: UPPER HALF inclusion of electron
+ // 3sigma exclusion of Pions
+ //TOF: 3sigma inclusion of electrons
+ AliDielectronPID *pidTPCTOFeOnly = new AliDielectronPID("TPC-TOF","TPC-TOF");
+ pidTPCTOFeOnly->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-0.,3.,0.0,100.,kFALSE);
+ pidTPCTOFeOnly->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-3.,3.,0.,100.,kTRUE);
+ pidTPCTOFeOnly->AddCut(AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.0 , 1.5, kFALSE );
+
+ //TPC: 3sigma inclusion of electron
+ // 3sigma exclusion of Pions
+ //TOF: 3sigma inclusion of electrons in region where p,K cross electrons in TPC
+ AliDielectronPID *pidTPCandTOF = new AliDielectronPID("TPC-TOF-HFE","TPC-TOF-HFE");
+ pidTPCandTOF->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-3.,3.,0.0,100.,kFALSE);
+ pidTPCandTOF->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-3.,3.,0.,100.,kTRUE);
+ pidTPCandTOF->AddCut(AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.0 , 1.5, kFALSE );
+
+ //Apply ITS cuts (see Hongyan's talks):
+ //3 sigma inclusion of electrons in TPC
+ //3 sigma exclusion of pions in TPC
+ //3 sigma inclusion of electrons in ITS,TOF for p<1.5GeV, where p,K contamination
+ AliDielectronPID *pidTPCandITSandTOF = new AliDielectronPID("TPC-TOFANDITS","TPC-TOFANDITS");
+ pidTPCandITSandTOF->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-3.,3.,0.0,100.,kFALSE);
+ pidTPCandITSandTOF->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-3.,3.,0.,100.,kTRUE);
+ pidTPCandITSandTOF->AddCut(AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.0 , 1.5, kFALSE);
+ pidTPCandITSandTOF->AddCut(AliDielectronPID::kITS ,AliPID::kElectron , -6. , 3. , 0.0 , 1.5, kFALSE );
+
+ //Apply ITS cuts (see Hongyan's talks):
+ //3 sigma inclusion of electrons in TPC
+ //3 sigma exclusion of pions in TPC
+ //3 sigma inclusion of electrons in ITS,TOF for p<1.5GeV, where p,K contamination
+ //TOF only IF available!
+ AliDielectronPID *pidTPCandITSTOF = new AliDielectronPID("TPC-TOF-ITS","TPC-TOF-ITS");
+ pidTPCandITSTOF->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-3.,3.,0.0,100.,kFALSE);
+ pidTPCandITSTOF->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-3.,3.,0.,100.,kTRUE);
+ pidTPCandITSTOF->AddCut(AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.0 , 1.5, kFALSE,AliDielectronPID::kIfAvailable );
+ pidTPCandITSTOF->AddCut(AliDielectronPID::kITS ,AliPID::kElectron , -6. , 3. , 0.0 , 1.5, kFALSE );
- AliDielectronPID *pidTPChardTOF = new AliDielectronPID("TPC-TOF-HFE","TPC-TOF-HFE");
- pidTPChardTOF->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,lowerCut,3.,0.0,100.,kFALSE);
- pidTPChardTOF->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-3,3.,0.,100.,kTRUE);
- pidTPChardTOF->AddCut(AliDielectronPID::kTPC,AliPID::kProton,-3.,3.,0.,100.,kTRUE);
- pidTPChardTOF->AddCut(AliDielectronPID::kTPC,AliPID::kKaon,-3.,3.,0.,100.,kTRUE);
- pidTPChardTOF->AddCut(AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.0 , 100., kFALSE );
- //___________________________________________
- AliDielectronPID *pidTT = new AliDielectronPID("TPC-TOF","TPC-TOF");
- pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-1.5,3.,0.2,0.4,kFALSE);
- pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-3,3.,0.4,100.,kFALSE);
- pidTT->AddCut(AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.2 , 100., kFALSE );
-
- pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-3,3.,0.,100.,kTRUE);
- pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kProton,-3.,3.,0.,100.,kTRUE);
- pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kKaon,-3.,3.,0.,100.,kTRUE);
//___________________________________________
+ //Direct cuts on TPC signal used for QM12
AliDielectronVarCuts *pidTPCsignal = new AliDielectronVarCuts("pidTPCsignal","cut on the TPC signal");
if (MCenabled) {
pidTPCsignal->AddCut(AliDielectronVarManager::kTPCsignal,65.,85.);
}
//___________________________________________
- AliDielectronVarCuts *pidTPCsignalWide = new AliDielectronVarCuts("pidTPCsignalWide","cut on the TPC signal");
- pidTPCsignalWide->AddCut(AliDielectronVarManager::kTPCsignal,75.,90.);
-
-
- AliDielectronVarCuts *pTPCHPT = new AliDielectronVarCuts("P>.4hpt","P>.4hpt");
- pTPCHPT->AddCut(AliDielectronVarManager::kPt,.4,3.0);
-
+ //low pT cut-off 0.4 - Pb-Pb
AliDielectronVarCuts *pTPC = new AliDielectronVarCuts("P>.4","P>.4");
- pTPC->AddCut(AliDielectronVarManager::kPt,.4,2.0);
+ pTPC->AddCut(AliDielectronVarManager::kPt,.4,3.5);
+ //low pT cut-off 0.4 - pp
AliDielectronVarCuts *pMin = new AliDielectronVarCuts("P>.2","P>.2");
pMin->AddCut(AliDielectronVarManager::kPt,.2,2.5);
+ //
+ //
+ //TPC: electron inclusion asymmetric
+ // pion exclusion 3sigma
+ //ITS: electron inclusion asymmetric OVER FULL MOMENTUM RANGE
+ //TOF: electron inclusion 3sigma - BUT ONLY IF AVAILABLE
+ AliDielectronPID *pidTPCITS_TOFif2 = new AliDielectronPID("pidTPCITS_TOFif2","pidTPCITS_TOFif2");
+ pidTPCITS_TOFif2->AddCut(AliDielectronPID::kTPC,AliPID::kElectron, -1.5, 3. , 0. ,100., kFALSE);
+ pidTPCITS_TOFif2->AddCut(AliDielectronPID::kTPC,AliPID::kPion, -3. , 3. , 0. ,100., kTRUE);
+ pidTPCITS_TOFif2->AddCut(AliDielectronPID::kITS,AliPID::kElectron, -4. , 1. , 0. ,100., kFALSE);
+ pidTPCITS_TOFif2->AddCut(AliDielectronPID::kTOF,AliPID::kElectron, -3. , 3. , 0. ,100., kFALSE, AliDielectronPID::kIfAvailable);
+
+ // eta range:
+ AliDielectronVarCuts *etaRange090 = new AliDielectronVarCuts("etaRange090","etaRange090");
+ etaRange090->AddCut(AliDielectronVarManager::kEta, -0.90, 0.90);
+ AliDielectronVarCuts *etaRange084 = new AliDielectronVarCuts("etaRange084","etaRange084");
+ etaRange084->AddCut(AliDielectronVarManager::kEta, -0.84, 0.84);
+ AliDielectronVarCuts *etaRange076 = new AliDielectronVarCuts("etaRange076","etaRange076");
+ etaRange076->AddCut(AliDielectronVarManager::kEta, -0.76, 0.76);
+ // pt range:
+ AliDielectronVarCuts *ptRange400to3500 = new AliDielectronVarCuts("ptRange400to3500","ptRange400to3500");
+ ptRange400to3500->AddCut(AliDielectronVarManager::kPt, .4, 3.5);
+
+
+
+ //Now see what Config actually loads and assemble final cuts
switch (cutSet) {
case kPbPb2011NoPID:
AliDielectronCutGroup* cgSecondTrackFilterNoPID = new AliDielectronCutGroup("cgNoPID","cgNoPID",AliDielectronCutGroup::kCompAND);
anaCuts= cgSecondTrackFilterNoPID;
break;
case kPbPb2011TPCandTOFHPT:
+ //test Hongyan's cut
AliDielectronCutGroup* cgSecondTrackFilterPIDTPC1 = new AliDielectronCutGroup("cgPIDTPC1","cgPIDTPC1",AliDielectronCutGroup::kCompAND);
- cgSecondTrackFilterPIDTPC1->AddCut(pTPCHPT);
- cgSecondTrackFilterPIDTPC1->AddCut(pidTPCTOFeOnly);
- cgSecondTrackFilterPIDTPC1->AddCut(pidTPCsignal);
+ cgSecondTrackFilterPIDTPC1->AddCut(pTPC);
+ cgSecondTrackFilterPIDTPC1->AddCut(pidTPCandITSTOF);
anaCuts = cgSecondTrackFilterPIDTPC1;
+ break;
case kPbPb2011TPCandTOF :
AliDielectronCutGroup* cgSecondTrackFilterPIDTPC1 = new AliDielectronCutGroup("cgPIDTPC1","cgPIDTPC1",AliDielectronCutGroup::kCompAND);
cgSecondTrackFilterPIDTPC1->AddCut(pTPC);
- //cgSecondTrackFilterPIDTPC1->AddCut(pidTPChardTOF);
- cgSecondTrackFilterPIDTPC1->AddCut(pidTPCTOFeOnly);
- cgSecondTrackFilterPIDTPC1->AddCut(pidTPCsignal);
+ cgSecondTrackFilterPIDTPC1->AddCut(pidTPCandTOF);
anaCuts = cgSecondTrackFilterPIDTPC1;
break;
case kPbPb2011TPC :
- AliDielectronCutGroup* cgSecondTrackFilterPIDTPC1 = new AliDielectronCutGroup("cgPIDTPC1","cgPIDTPC1",AliDielectronCutGroup::kCompAND);
- cgSecondTrackFilterPIDTPC1->AddCut(pTPC);
- cgSecondTrackFilterPIDTPC1->AddCut(pidTPCsignalWide);
- anaCuts = cgSecondTrackFilterPIDTPC1;
- break;
+ //Old, QM12
+ AliDielectronCutGroup* cgSecondTrackFilterPIDTPC1 = new AliDielectronCutGroup("cgPIDTPC1","cgPIDTPC1",AliDielectronCutGroup::kCompAND);
+ cgSecondTrackFilterPIDTPC1->AddCut(pTPC);
+ cgSecondTrackFilterPIDTPC1->AddCut(pidTPCsignal);
+ anaCuts = cgSecondTrackFilterPIDTPC1;
+ break;
case kPbPb2011TPCandTOFwide :
- AliDielectronCutGroup* cgSecondTrackFilterPIDTPC1 = new AliDielectronCutGroup("cgPIDTPC1","cgPIDTPC1",AliDielectronCutGroup::kCompAND);
- cgSecondTrackFilterPIDTPC1->AddCut(pTPC);
- cgSecondTrackFilterPIDTPC1->AddCut(pidTPCandTOF);
- cgSecondTrackFilterPIDTPC1->AddCut(pidTPCsignalWide);
- anaCuts = cgSecondTrackFilterPIDTPC1;
- break;
+ AliDielectronCutGroup* cgSecondTrackFilterPIDTPC1 = new AliDielectronCutGroup("cgPIDTPC1","cgPIDTPC1",AliDielectronCutGroup::kCompAND);
+ cgSecondTrackFilterPIDTPC1->AddCut(pTPC);
+ cgSecondTrackFilterPIDTPC1->AddCut(pidTPCandTOF);
+ cgSecondTrackFilterPIDTPC1->AddCut(pidTPCsignal);
+ anaCuts = cgSecondTrackFilterPIDTPC1;
+ break;
case kPbPb2011TPCorTOF :
+ //unused
AliDielectronCutGroup* cgSecondTrackFilterPIDTPC2 = new AliDielectronCutGroup("cgPIDTPC2","cgPIDTPC2",AliDielectronCutGroup::kCompAND);
- cgSecondTrackFilterPIDTPC2->AddCut(pMin);
- cgSecondTrackFilterPIDTPC2->AddCut(pidTT);
- cgSecondTrackFilterPIDTPC2->AddCut(pidTPCsignal);
+ cgSecondTrackFilterPIDTPC2->AddCut(pTPC);
+// cgSecondTrackFilterPIDTPC2->AddCut(pidTT);
anaCuts = cgSecondTrackFilterPIDTPC2;
break;
case kpp2010TPCandTOF :
+ //unused
AliDielectronCutGroup* cgSecondTrackFilterPIDTPC = new AliDielectronCutGroup("cgPIDTPC","cgPIDTPC",AliDielectronCutGroup::kCompAND);
cgSecondTrackFilterPIDTPC->AddCut(pTPC);
- //cgSecondTrackFilterPIDTPC->AddCut(pidTPChardTOF);
- cgSecondTrackFilterPIDTPC->AddCut(pidTPCTOFeOnly);
+ cgSecondTrackFilterPIDTPC->AddCut(pidTPCandTOF);
anaCuts = cgSecondTrackFilterPIDTPC;
break;
case kpp2010TPCorTOF :
+ //unused
AliDielectronCutGroup* cgSecondTrackFilterPIDTPC = new AliDielectronCutGroup("cgPIDTPC","cgPIDTPC",AliDielectronCutGroup::kCompAND);
- cgSecondTrackFilterPIDTPC->AddCut(pMin);
- cgSecondTrackFilterPIDTPC->AddCut(pidTT);
+ cgSecondTrackFilterPIDTPC->AddCut(pTPC);
+ /// cgSecondTrackFilterPIDTPC->AddCut(pidTT);
anaCuts = cgSecondTrackFilterPIDTPC;
break;
+ case kPbPb2011pidITSTPCTOF:
+ AliDielectronCutGroup* cgPIDCutsAna = new AliDielectronCutGroup("cgPIDCutsAna","cgPIDCutsAna",AliDielectronCutGroup::kCompAND);
+ cgPIDCutsAna->AddCut(etaRange076);
+ cgPIDCutsAna->AddCut(ptRange400to3500);
+ cgPIDCutsAna->AddCut(pidTPCITS_TOFif2);
+ cgPIDCutsAna->AddCut(GetTrackCutsAna(cutSet));
+ anaCuts = cgPIDCutsAna;
+ break;
+
default: cout << "No Analysis PID Cut defined " << endl;
}
return anaCuts;
}
+
+ //Relaxed PID cuts for additional rejectin step, do not use blindly
AliAnalysisCuts* GetPIDCutsPre(Int_t cutSet) {
AliAnalysisCuts* anaCuts=0x0;
switch (cutSet) {
case kPbPb2011TPCandTOFHPT:
case kPbPb2011TPC :
case kPbPb2011TPCandTOFwide :
- case kPbPb2011TPCorTOF :
case kpp2010TPCandTOF :
case kpp2010TPCorTOF :
AliDielectronCutGroup* cgSecondTrackFilterPIDTPC = new AliDielectronCutGroup("cgPIDTPC","cgPIDTPC",AliDielectronCutGroup::kCompAND);
AliDielectronCutGroup* cgITSTPC = new AliDielectronCutGroup("cgITSTPC","cgITSTPC",AliDielectronCutGroup::kCompAND);
AliDielectronPID *pidITSTPC = new AliDielectronPID("TPCpre","TPCpre");
+
pidITSTPC->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-3.,3.);
+ pidITSTPC->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-3,3.,0.,100.,kTRUE);
+ pidITSTPC->AddCut(AliDielectronPID::kTPC,AliPID::kProton,-3.,3.,0.,0.4,kTRUE);
+ pidITSTPC->AddCut(AliDielectronPID::kTPC,AliPID::kKaon,-3.,3.,0.,0.4,kTRUE);
+ pidITSTPC->AddCut(AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.4 , 100., kFALSE );
cgITSTPC->AddCut(pidITSTPC);
+ AliDielectronVarCuts *pTPCHPT = new AliDielectronVarCuts("P>.4hpt","P>.4hpt");
+ pTPCHPT->AddCut(AliDielectronVarManager::kPt,.2,3.5);
+ cgITSTPC->AddCut(pTPCHPT);
+
+ cgITSTPC->AddCut(GetTrackCutsAna(cutSet));
+
AliDielectronCutGroup* cgITSSA = new AliDielectronCutGroup("cgITSSA","cgITSSA",AliDielectronCutGroup::kCompAND);
AliDielectronPID *pidITSSA = new AliDielectronPID("pidITSSA","pidITSSA");
pidITSSA->AddCut(AliDielectronPID::kITS,AliPID::kElectron,-3.,3.);
cgITSSA->AddCut(pidITSSA);
- // cgITSSA->AddCut(GetTrackCutsPre(cutSet));
+ AliDielectronVarCuts *pITSPT = new AliDielectronVarCuts("P>.4hpt","P>.4hpt");
+ pITSPT->AddCut(AliDielectronVarManager::kPt,0.0,0.8);
+ cgITSSA->AddCut(pITSPT);
+ cgITSSA->AddCut(GetTrackCutsPre(cutSet));
AliDielectronCutGroup* cgInitialTrackFilter = new AliDielectronCutGroup("cgInitialTrackFilter","cgInitialTrackFilter",AliDielectronCutGroup::kCompOR);
cgInitialTrackFilter->AddCut(cgITSTPC);
cgInitialTrackFilter->AddCut(cgITSSA);
anaCuts = cgInitialTrackFilter;
break;
+
+
+ case kPbPb2011TPCorTOF :
+ AliDielectronCutGroup* cgSecondTrackFilterPIDTPC = new AliDielectronCutGroup("cgPIDTPC","cgPIDTPC",AliDielectronCutGroup::kCompAND);
+ AliDielectronCutGroup* cgITSTPCalone = new AliDielectronCutGroup("cgITSTPCalone","cgITSTPCalone",AliDielectronCutGroup::kCompAND);
+ AliDielectronPID *pidITSTPCalone = new AliDielectronPID("TPCpre","TPCpre");
+
+ pidITSTPCalone->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-3.,3.);
+ pidITSTPCalone->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-3,3.,0.,100.,kTRUE);
+ pidITSTPCalone->AddCut(AliDielectronPID::kTPC,AliPID::kProton,-3.,3.,0.,0.4,kTRUE);
+ pidITSTPCalone->AddCut(AliDielectronPID::kTPC,AliPID::kKaon,-3.,3.,0.,0.4,kTRUE);
+ pidITSTPCalone->AddCut(AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.4 , 100., kFALSE );
+ cgITSTPCalone->AddCut(pidITSTPCalone);
+
+ AliDielectronVarCuts *pTPCHPT = new AliDielectronVarCuts("P>.4hpt","P>.4hpt");
+ pTPCHPT->AddCut(AliDielectronVarManager::kPt,.2,3.5);
+ cgITSTPCalone->AddCut(pTPCHPT);
+
+ cgITSTPCalone->AddCut(GetTrackCutsAna(cutSet));
+
+
+
+ anaCuts = cgITSTPCalone;
+ break;
+
+ case kPbPb2011pidITSTPCTOF:
+
+ // eta range:
+ AliDielectronVarCuts *etaRangePre1 = new AliDielectronVarCuts("etaRangePre1","etaRangePre1");
+ etaRangePre1->AddCut(AliDielectronVarManager::kEta,-0.9,0.9);
+ // pt range:
+ AliDielectronVarCuts *ptRangePre1 = new AliDielectronVarCuts("ptRangePre1","ptRangePre1");
+ ptRangePre1->AddCut(AliDielectronVarManager::kPt, .2, 3.5); // 0.2 is realistic. turnon at ~180MeV
+ //AliDielectronVarCuts *ptRangePre2 = new AliDielectronVarCuts("ptRangePre2","ptRangePre2");
+ //ptRangePre2->AddCut(AliDielectronVarManager::kPt, .4, 3.5);
+ //AliDielectronVarCuts *ptRangePre3 = new AliDielectronVarCuts("ptRangePre3","ptRangePre3");
+ //ptRangePre3->AddCut(AliDielectronVarManager::kPt, 0.05, 1.5);
+
+ AliDielectronCutGroup* cgITSTPCTOFpre = new AliDielectronCutGroup("cgITSTPCTOFpre","cgITSTPCTOFpre",AliDielectronCutGroup::kCompAND);
+ AliDielectronPID *pidITSTPCTOFpre = new AliDielectronPID("pidITSTPCTOFpre","pidITSTPCTOFpre");
+ pidITSTPCTOFpre->AddCut(AliDielectronPID::kTPC,AliPID::kElectron, -3. , 3., 0. ,100., kFALSE);
+ pidITSTPCTOFpre->AddCut(AliDielectronPID::kTPC,AliPID::kPion, -3. , 3., 0. ,100., kTRUE);
+ // ITS will be used:
+ // pidITSTPCTOFpre->AddCut(AliDielectronPID::kITS,AliPID::kElectron, -3. , 3., 0. ,1.7 , kFALSE);
+ // TOF will be used if available, and with pt instead of p:
+ // pidITSTPCTOFpre->AddCut(AliDielectronPID::kTOF,AliPID::kElectron, -3. , 3., 0.4,100., kFALSE,
+ // AliDielectronPID::kIfAvailable, AliDielectronVarManager::kPt);
+ cgITSTPCTOFpre->AddCut(pidITSTPCTOFpre);
+ cgITSTPCTOFpre->AddCut(etaRangePre1);
+ cgITSTPCTOFpre->AddCut(ptRangePre1);
+ cgITSTPCTOFpre->AddCut(GetTrackCutsAna(cutSet));
+ AliDielectronCutGroup* cgInitialTrackFilter = new AliDielectronCutGroup("cgInitialTrackFilter","cgInitialTrackFilter",AliDielectronCutGroup::kCompOR);
+ cgInitialTrackFilter->AddCut(GetPIDCutsAna(cutSet)); // in case the prefilter cuts do not include all needed global tracks.
+ cgInitialTrackFilter->AddCut(cgITSTPCTOFpre);
+ //cgInitialTrackFilter->AddCut(cgTPCpre);
+ //cgInitialTrackFilter->AddCut(cgITSSA);
+ anaCuts = cgInitialTrackFilter; // kCompOR works!!! <- checked with 'SetNoPairing()' and commented out 'GetPIDCutsAna(selectedPID)'
+ //cout << " ========== anaCuts prefilter: ========== " << endl;
+ //anaCuts->Print();
+ break;
+
+
default: cout << "No Pre-PID Cut defined " << endl;
}
return anaCuts;
- AliAnalysisCuts* GetPairCuts2(Int_t cutSet, Bool_t togglePC /*=kFALSE*/) {
- AliAnalysisCuts* pairCuts=0x0;
- switch (cutSet) {
- case kPbPb2011TPCorTOF :
- case kpp2010TPCandTOF :
- AliDielectronVarCuts* pairCutsV= new AliDielectronVarCuts("InvMass","InvMass > 150 MeV");
- pairCutsV->AddCut(AliDielectronVarManager::kM,0.15,100.,kTRUE);
- pairCuts = pairCutsV;
- break;
- case kPbPb2011NoPID:
- case kPbPb2011TPCandTOF :
- case kPbPb2011TPC :
- case kPbPb2011TPCandTOFHPT:
- case kPbPb2011TPCandTOFwide :
- case kpp2010TPCorTOF :
- if (!togglePC) {
-
- AliDielectronCutGroup* pairCutsCG2 =new AliDielectronCutGroup("pairCutsCG2","pairCutsCG2",AliDielectronCutGroup::kCompOR);
- AliDielectronCutGroup* pairCutsCG =new AliDielectronCutGroup("pairCutsCG","pairCutsCG",AliDielectronCutGroup::kCompAND);
- pairCutsPhiv =new AliDielectronVarCuts("Phiv Cuts","Phiv<2.0rad");
- pairCutsPhiv->AddCut(AliDielectronVarManager::kPhivPair, 0.0, 2.0);
- pairCutsInvM =new AliDielectronVarCuts("InvM Cuts","InvM<0.3");
- pairCutsInvM->AddCut(AliDielectronVarManager::kM, 0.0, 0.3);
- pairCutsInvMgood =new AliDielectronVarCuts("InvM Cuts good","InvM>0.3");
- pairCutsInvMgood->AddCut(AliDielectronVarManager::kM, 0.3, 99999.);
- pairCutsCG->AddCut(pairCutsPhiv);
- pairCutsCG->AddCut(pairCutsInvM);
- pairCutsCG2->AddCut(pairCutsInvMgood);
- pairCutsCG2->AddCut(pairCutsCG);
- pairCuts = pairCutsCG2;
- }
- else {
- AliDielectronVarCuts* pairCutsV =new AliDielectronVarCuts("OpeningAngle","Opening angle > .035rad");
- pairCutsV->AddCut(AliDielectronVarManager::kOpeningAngle, 0. , 0.035,kTRUE);
- pairCuts = pairCutsV;
- }
- break;
- default: cout << "No Pair Cuts defined " << endl;
- }
- return pairCuts;
- }
+
+ //Pair Cuts for Analysis step - take care of logic - inverted compared to other PairCuts!!
+ AliAnalysisCuts* GetPairCuts2(Int_t cutSet, Bool_t togglePC /*=kFALSE*/) {
+ AliAnalysisCuts* pairCuts=0x0;
+ switch (cutSet) {
+ case kPbPb2011TPCorTOF :
+ case kpp2010TPCandTOF :
+ AliDielectronVarCuts* pairCutsV= new AliDielectronVarCuts("InvMass","InvMass > 150 MeV");
+ pairCutsV->AddCut(AliDielectronVarManager::kM,0.15,100.,kTRUE);
+ pairCuts = pairCutsV;
+ break;
+ case kPbPb2011NoPID:
+ case kPbPb2011TPCandTOF :
+ case kPbPb2011TPC :
+ case kPbPb2011TPCandTOFHPT:
+ case kPbPb2011TPCandTOFwide :
+ case kpp2010TPCorTOF :
+ if (!togglePC) {
+
+ AliDielectronCutGroup* pairCutsCG2 =new AliDielectronCutGroup("pairCutsCG2","pairCutsCG2",AliDielectronCutGroup::kCompOR);
+ AliDielectronCutGroup* pairCutsCG =new AliDielectronCutGroup("pairCutsCG","pairCutsCG",AliDielectronCutGroup::kCompAND);
+ pairCutsPhiv =new AliDielectronVarCuts("Phiv Cuts","Phiv<2.0rad");
+ pairCutsPhiv->AddCut(AliDielectronVarManager::kPhivPair, 0.0, 2.0);
+ pairCutsInvM =new AliDielectronVarCuts("InvM Cuts","InvM<0.3");
+ pairCutsInvM->AddCut(AliDielectronVarManager::kM, 0.0, 0.05);
+ pairCutsInvMgood =new AliDielectronVarCuts("InvM Cuts good","InvM>0.3");
+ pairCutsInvMgood->AddCut(AliDielectronVarManager::kM, 0.05, 99999.);
+ pairCutsCG->AddCut(pairCutsPhiv);
+ pairCutsCG->AddCut(pairCutsInvM);
+ pairCutsCG2->AddCut(pairCutsInvMgood);
+ pairCutsCG2->AddCut(pairCutsCG);
+ pairCuts = pairCutsCG2;
+ }
+ else {
+ AliDielectronVarCuts* pairCutsV =new AliDielectronVarCuts("OpeningAngle","Opening angle > .035rad");
+ pairCutsV->AddCut(AliDielectronVarManager::kOpeningAngle, 0. , 0.035,kTRUE);
+ pairCuts = pairCutsV;
+ }
+ break;
+ default: cout << "No Pair Cuts defined " << endl;
+ }
+ return pairCuts;
+ }
+
+ //Pair Cuts for PREFILTER step
AliAnalysisCuts* GetPairCuts(Int_t cutSet) {
- AliAnalysisCuts* pairCuts=0x0;
- switch (cutSet) {
- case kPbPb2011TPCorTOF :
- case kpp2010TPCandTOF :
+ AliAnalysisCuts* pairCuts=0x0;
+ switch (cutSet) {
+ case kPbPb2011TPCorTOF :
+ case kpp2010TPCandTOF :
AliDielectronVarCuts* pairCutsM=0x0;
pairCutsM = new AliDielectronVarCuts("InvMass","InvMass > 150 MeV");
pairCutsM->AddCut(AliDielectronVarManager::kM,0.15,100.,kTRUE);
case kPbPb2011TPC :
case kPbPb2011TPCandTOFwide :
case kPbPb2011TPCandTOFHPT:
- case kpp2010TPCorTOF :
+/* case kpp2010TPCorTOF :
+ AliDielectronCutGroup* pairCutsCG =new AliDielectronCutGroup("pairCutsCG","pairCutsCG",AliDielectronCutGroup::kCompAND);
+ //AliDielectronVarCuts* pairCutsPhiv =new AliDielectronVarCuts("Phiv Cuts","Phiv<2.0rad");
+ //pairCutsPhiv->AddCut(AliDielectronVarManager::kPhivPair, 2.0, 3.2);
+ AliDielectronVarCuts* pairCutsPhiv =new AliDielectronVarCuts("Phiv Cuts","Phiv<2.0rad");
+ pairCutsPhiv->AddCut(AliDielectronVarManager::kOpeningAngle, 0.0, 0.05);
+ AliDielectronVarCuts* pairCutsInvM =new AliDielectronVarCuts("InvM Cuts","InvM<0.3");
+ pairCutsInvM->AddCut(AliDielectronVarManager::kM, 0.0, 0.01);
+ pairCutsCG->AddCut(pairCutsPhiv);
+ pairCutsCG->AddCut(pairCutsInvM);
+*/
AliDielectronCutGroup* pairCutsCG =new AliDielectronCutGroup("pairCutsCG","pairCutsCG",AliDielectronCutGroup::kCompAND);
AliDielectronVarCuts* pairCutsPhiv =new AliDielectronVarCuts("Phiv Cuts","Phiv<2.0rad");
pairCutsPhiv->AddCut(AliDielectronVarManager::kPhivPair, 2.0, 3.2);
+ //AliDielectronVarCuts* pairCutsPhiv =new AliDielectronVarCuts("Phiv Cuts","Phiv<2.0rad");
+ //pairCutsPhiv->AddCut(AliDielectronVarManager::kOpeningAngle, 0.0, 0.05);
AliDielectronVarCuts* pairCutsInvM =new AliDielectronVarCuts("InvM Cuts","InvM<0.3");
- pairCutsInvM->AddCut(AliDielectronVarManager::kM, 0.0, 0.3);
+ pairCutsInvM->AddCut(AliDielectronVarManager::kM, 0.0, 0.05);
pairCutsCG->AddCut(pairCutsPhiv);
pairCutsCG->AddCut(pairCutsInvM);
-
- pairCuts = pairCutsCG;
+ pairCuts = pairCutsCG;
//pairCuts =new AliDielectronVarCuts("OpeningAngle","Opening angle > .035rad");
return pairCuts;
}
+
+ AliAnalysisCuts* GetPairCutsInvMass(Int_t cutSet) {
+ cout << " >>>>>>>>>>>>>>>>>>>>>>>>>>>>> GetPairCutsInvMass() >>>>>>>>>>>>>>>>>>>>>>>>>>>>>" << endl;
+ AliAnalysisCuts* pairCuts=0x0;
+ switch (cutSet) {
+ case kPbPb2011MassLow :
+ AliDielectronVarCuts* pairCutsInvSelect = new AliDielectronVarCuts("InvMass","0 MeV < InvMass < 30 MeV");
+ pairCutsInvSelect->AddCut(AliDielectronVarManager::kM, 0.,0.03);
+ break;
+ case kPbPb2011MassMiddle :
+ AliDielectronVarCuts* pairCutsInvSelect = new AliDielectronVarCuts("InvMass","120 MeV < InvMass < 300 MeV");
+ pairCutsInvSelect->AddCut(AliDielectronVarManager::kM, 0.12,0.30);
+ break;
+ case kPbPb2011MassHigh :
+ AliDielectronVarCuts* pairCutsInvSelect = new AliDielectronVarCuts("InvMass","300 MeV < InvMass < 500 MeV");
+ pairCutsInvSelect->AddCut(AliDielectronVarManager::kM, 0.30,0.50);
+ break;
+ case kPbPb2011MassAll :
+ AliDielectronVarCuts* pairCutsInvSelect = new AliDielectronVarCuts("InvMass","0 GeV < InvMass < 10 GeV");
+ pairCutsInvSelect->AddCut(AliDielectronVarManager::kM, 0.0,10.0);
+ break;
+
+ default: cout << "No Pair Cuts defined " << endl;
+ }
+
+ pairCuts = pairCutsInvSelect;
+ return pairCuts;
+ }
+
+
+ AliAnalysisCuts* GetPairCutsInOut(Int_t cutSet){
+ AliAnalysisCuts* pairCut=0x0;
+ switch (cutSet) {
+ case kPbPb2011RP:
+ AliDielectronCutGroup* pairCutsPhiRP =new AliDielectronCutGroup("pairCutsCG","pairCutsCG",AliDielectronCutGroup::kCompOR);
+ AliDielectronVarCuts* pairCutsPhi1 =new AliDielectronVarCuts("Phi Cuts","-pi/4<Phi<pi/4");
+ pairCutsPhi1->AddCut(AliDielectronVarManager::kDeltaPhiv0CrpH2, (-1.0)*TMath::Pi()/4., TMath::Pi()/4.);
+ AliDielectronVarCuts* pairCutsPhi2 =new AliDielectronVarCuts("Phi Cuts","3*pi/4<Phi");
+ pairCutsPhi2->AddCut(AliDielectronVarManager::kDeltaPhiv0CrpH2, 3.0*TMath::Pi()/4., TMath::Pi());
+ AliDielectronVarCuts* pairCutsPhi3 =new AliDielectronVarCuts("Phi Cuts","-3*pi/4<Phi");
+ pairCutsPhi3->AddCut(AliDielectronVarManager::kDeltaPhiv0CrpH2, (-1.0)*TMath::Pi(),(-3.0)*TMath::Pi()/4.);
+
+ pairCutsPhiRP->AddCut(pairCutsPhi1);
+ pairCutsPhiRP->AddCut(pairCutsPhi2);
+ pairCutsPhiRP->AddCut(pairCutsPhi3);
+
+ pairCuts = pairCutsPhiRP;
+
+ break;
+ case kPbPb2011Mag:
+ AliDielectronCutGroup* pairCutsPhiMag=new AliDielectronCutGroup("pairCutsCG","pairCutsCG",AliDielectronCutGroup::kCompOR);
+ AliDielectronVarCuts* pairCutsPhi4 =new AliDielectronVarCuts("Phi Cuts","-3*pi/4<Phi");
+ pairCutsPhi4->AddCut(AliDielectronVarManager::kDeltaPhiv0CrpH2, TMath::Pi()/4.,3.0*TMath::Pi()/4.);
+ AliDielectronVarCuts* pairCutsPhi5 =new AliDielectronVarCuts("Phi Cuts","-3*pi/4<Phi");
+ pairCutsPhi5->AddCut(AliDielectronVarManager::kDeltaPhiv0CrpH2,(-3.0)*TMath::Pi()/4.,(-1.0)*TMath::Pi()/4.);
+
+ pairCutsPhiMag->AddCut(pairCutsPhi4);
+ pairCutsPhiMag->AddCut(pairCutsPhi5);
+
+ pairCuts = pairCutsPhiMag;
+ //pairCuts =new AliDielectronVarCuts("OpeningAngle","Opening angle > .035rad");
+ //pairCuts->AddCut(AliDielectronVarManager::kOpeningAngle, 0. , 0.035);
+ break;
+ default: cout << "No Pair Cuts defined " << endl;
+ }
+ return pairCuts;
+ }
+
+
+
+
+ //*******************************************************************************
+ //*******************************************************************************
+ //** ESD TRACK CUTS TUNED FOR AGREEMENT BETWEEN AODS AND ESDS ******************
+ //** NOT NECESSARILY 100% OPTIMIZED FOR DIEL-ANALYSIS ******************
+ //*******************************************************************************
+ //*******************************************************************************
+
+ //WHEN RUNNING ON ESDs: LOAD Default Cuts for AODs
AliAnalysisCuts* GetESDTrackCutsAna(Int_t cutSet) {
AliESDtrackCuts* esdTrackCutsH = 0x0;
switch (cutSet) {
case kpp2010TPCandTOF :
case kpp2010TPCorTOF :
// standard cuts with very loose DCA: Bit4 (Int: 16), AOD095&115
+
esdTrackCutsH = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kFALSE);
esdTrackCutsH->SetMaxDCAToVertexXY(2.4);
esdTrackCutsH->SetMaxDCAToVertexZ(3.2);
esdTrackCutsH->SetDCAToVertex2D(kTRUE);
- /*
+ //The cuts below should be the onyl ones that are missing
+ //explicitely in the TrackCutsAna method
+ //To be sure, StandardITSTPCTrackCuts is loaded however
+ /*
esdTrackCutsH = new AliESDtrackCuts();
esdTrackCutsH->SetAcceptKinkDaughters(kFALSE);
//Not done so far via dielectron cuts:
*/
break;
+
default: cout << "No Analysis Track Cut defined " << endl;
}
return esdTrackCutsH;
}
- AliAnalysisCuts* GetPairCutsInvMass(Int_t cutSet) {
- AliDielectronVarCuts* pairCuts=0x0;
- switch (cutSet) {
- case kPbPb2011MassLow :
- pairCuts = new AliDielectronVarCuts("InvMass","0 MeV < InvMass < 30 MeV");
- pairCuts->AddCut(AliDielectronVarManager::kM, 0.,0.03);
- break;
- case kPbPb2011MassMiddle :
- pairCuts = new AliDielectronVarCuts("InvMass","120 MeV < InvMass < 300 MeV");
- pairCuts->AddCut(AliDielectronVarManager::kM, 0.12,0.30);
- break;
- case kPbPb2011MassHigh :
- pairCuts = new AliDielectronVarCuts("InvMass","300 MeV < InvMass < 500 MeV");
- pairCuts->AddCut(AliDielectronVarManager::kM, 0.30,0.50);
- break;
- case kPbPb2011MassAll :
- pairCuts = new AliDielectronVarCuts("InvMass","0 GeV < InvMass < 10 GeV");
- pairCuts->AddCut(AliDielectronVarManager::kM, 0.0,10.0);
- break;
-
- default: cout << "No Pair Cuts defined " << endl;
- }
- return pairCuts;
- }
-
+ //Make/Tighten track Cuts that are *NOT* already
+ //done in the AOD production
+ //**IMPORTANT**: For AODs, select FilterBit
+ //the method is ignored for ESDs
+
AliAnalysisCuts* GetTrackCutsAna(Int_t cutSet) {
AliDielectronCutGroup* trackCuts=0x0;
switch (cutSet) {
trackCuts->AddCut(trackCutsDiel);
trackCuts->AddCut(trackCutsAOD);
break;
+
+ case kPbPb2011pidITSTPCTOF:
+ AliDielectronVarCuts* trackCutsAOD =new AliDielectronVarCuts("trackCutsAOD","trackCutsAOD");
+ trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParXY, -1.0, 1.0);
+ trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParZ, -3.0, 3.0);
+ trackCutsAOD->AddCut(AliDielectronVarManager::kNclsITS, 4.0, 100.0); // means at least 2 with PID
+ trackCutsAOD->AddCut(AliDielectronVarManager::kTPCchi2Cl, 0.0, 4.0);
+ trackCutsAOD->AddCut(AliDielectronVarManager::kNFclsTPCr, 100.0, 160.0);
+ trackCutsAOD->AddCut(AliDielectronVarManager::kNFclsTPCfCross, 0.8, 1.1); // lower limit 0.8 in most filterbits! // 1.1 since 26.02.2014
+ AliDielectronTrackCuts *trackCutsDiel = new AliDielectronTrackCuts("trackCutsDiel","trackCutsDiel");
+ trackCutsDiel->SetAODFilterBit(1<<4); // (=16) filterbit 4! //GetStandardITSTPCTrackCuts2011(kFALSE); loose DCA, 2D cut
+ trackCutsDiel->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst);
+
+ cgTrackCutsAnaSPDfirst = new AliDielectronCutGroup("cgTrackCutsAnaSPDfirst","cgTrackCutsAnaSPDfirst",AliDielectronCutGroup::kCompAND);
+ cgTrackCutsAnaSPDfirst->AddCut(trackCutsDiel);
+ cgTrackCutsAnaSPDfirst->AddCut(trackCutsAOD);
+ trackCuts = cgTrackCutsAnaSPDfirst;
+ break;
+
+
+
default: cout << "No Analysis Track Cut defined " << endl;
}
return trackCuts;
}
+
+ //Possibly different cut sets for Prefilter step
+ //Not used at the moment
AliAnalysisCuts* GetTrackCutsPre(Int_t cutSet) {
- AliESDtrackCuts* trackCuts=0x0;
+ AliDielectronCutGroup* trackCuts=0x0;
switch (cutSet) {
case kPbPb2011NoPID:
case kPbPb2011TPCandTOF :
case kPbPb2011TPCorTOF :
case kpp2010TPCandTOF :
case kpp2010TPCorTOF :
-/*
- trackCuts = new AliESDtrackCuts();
- trackCuts->SetDCAToVertex2D(kTRUE);
- trackCuts->SetMaxDCAToVertexZ(3.0);
- trackCuts->SetMaxDCAToVertexXY(1.0);
- trackCuts->SetEtaRange( -0.84 , 0.84 );
- trackCuts->SetPtRange( 0.05 , 0.5);
- trackCuts->SetAcceptKinkDaughters(kFALSE);
- trackCuts->SetRequireITSRefit(kTRUE);
- trackCuts->SetRequireITSStandAlone(kTRUE);
- trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst);
- trackCuts->SetMinNClustersITS(3); //PhotonGroup-Dalitz: 2?!
-*/
- cout << "No Pre-Track Cut defined for AODs at the moment " << endl;
+ trackCuts = new AliDielectronCutGroup("cgPIDTPC1","cgPIDTPC1",AliDielectronCutGroup::kCompAND);
+
+ AliDielectronVarCuts* trackCutsAOD =new AliDielectronVarCuts("trackCutsAOD","trackCutsAOD");
+ trackCutsAOD->AddCut(AliDielectronVarManager::kPt,0.05,0.2);
+ trackCutsAOD->AddCut(AliDielectronVarManager::kEta,-0.84,0.84);
+ //DCA Cut
+ trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParXY, -1.0, 1.0);
+ trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParZ, -3.0, 3.0);
+ trackCutsAOD->AddCut(AliDielectronVarManager::kNclsITS, 3.0, 100.0);
+ AliDielectronTrackCuts *trackCutsDiel = new AliDielectronTrackCuts("trackCutsDiel","trackCutsDiel");
+ trackCutsDiel->SetAODFilterBit(1); //does nothing for ESDs, ITSSA
+ trackCutsDiel->SetRequireITSRefit(kTRUE);
+
+ trackCutsDiel->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst);
+ trackCuts->AddCut(trackCutsDiel);
+ trackCuts->AddCut(trackCutsAOD);
+ // cout << "No Pre-Track Cut defined for AODs at the moment " << endl;
break;
+
+ case kPbPb2011pidITSTPCTOF:
+
+ AliDielectronVarCuts* trackCutsAOD =new AliDielectronVarCuts("trackCutsAOD","trackCutsAOD");
+ trackCutsAOD->AddCut(AliDielectronVarManager::kEta,-0.84,0.84);
+ trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParXY, -1.0, 1.0);
+ trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParZ, -3.0, 3.0);
+ trackCutsAOD->AddCut(AliDielectronVarManager::kNclsITS, 3.0, 100.0);
+ AliDielectronTrackCuts *trackCutsDiel = new AliDielectronTrackCuts("trackCutsDiel","trackCutsDiel");
+ trackCutsDiel->SetAODFilterBit(1); //does nothing for ESDs, ITSSA(???) // maybe use FilterBit(2) instead!
+
+ cgTrackCutsPre = new AliDielectronCutGroup("cgTrackCutsPre","cgTrackCutsPre",AliDielectronCutGroup::kCompAND);
+ cgTrackCutsPre->AddCut(trackCutsDiel);
+ cgTrackCutsPre->AddCut(trackCutsAOD);
+ trackCuts = cgTrackCutsPre;
+ break;
+
default: cout << "No Pre-Track Cut defined " << endl;
}
return trackCuts;