本文整理汇总了C++中HLTMod类的典型用法代码示例。如果您正苦于以下问题:C++ HLTMod类的具体用法?C++ HLTMod怎么用?C++ HLTMod使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了HLTMod类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: runPixelTreeMaker
void runPixelTreeMaker(Bool_t doMC = 0,
const char *files = 0,
const char *outfile = 0,
UInt_t nev = 0,
Float_t SDRelFrac = 1.)
{
gDebugMask = Debug::kAnalysis;
gDebugLevel = 1;
gErrorIgnoreLevel = kInfo;
// setup analysis object
Analysis *ana = new Analysis;
ana->SetUseHLT(1);
if (nev>0)
ana->SetProcessNEvents(nev);
TString ofname(gSystem->Getenv("MIT_OUTPUTFILE"));
if (!ofname.IsNull())
ana->SetOutputName(ofname);
if (files) {
TString dummy(files);
TString suffix(dummy(dummy.Length()-4,dummy.Length()));
if (suffix.CompareTo("root")==0)
ana->AddFile(files);
else
ana->AddFiles(files);
}
HLTMod *hmod = new HLTMod;
hmod->SetPrintTable(1);
ana->AddSuperModule(hmod);
// setup modules
PixelsMakerMod *mod = new PixelsMakerMod;
mod->SetIsMC(doMC);
mod->AddVertexName("Pixel3Vertexes");
mod->AddVertexName("TrackletVertexes");
mod->AddVertexName("ClusterVertexes");
mod->AddVertexName("PixelVertexes");
mod->AddVertexName("PrimaryVertexes");
mod->AddVertexName("PrimaryVertexesBeamSpot");
// - diffractive study -
mod->SetUseHfOnly(true);
mod->SetSDRelFrac(SDRelFrac);
if (outfile)
mod->SetFileName(Form("%s_SDRelFrac%.1f.root",outfile,SDRelFrac));
else
mod->SetFileName("pixeltree.root");
ana->AddSuperModule(mod);
// run the analysis after successful initialisation
ana->Run(!gROOT->IsBatch());
}
示例2: runWWAnalysisChain
void runWWAnalysisChain(TString inputfiles, TString outputfileName, TString PlotType, TString JetsName) {
//Trigger
HLTMod *hltmod = new HLTMod;
hltmod->SetPrintTable(kFALSE);
// hltmod->AddTrigger("HLT_IsoMu15");
// hltmod->AddTrigger("HLT_IsoEle15_L1I");
hltmod->AddTrigger("HLT_Mu5");
hltmod->AddTrigger("HLT_Ele10_SW_L1R");
hltmod->SetTrigObjsName("myhltobjs");
//PreSelection
HwwEvtPreSelMod *preSelectionMod = new HwwEvtPreSelMod;
//Object ID and Cleaning Sequence;
MuonIDMod *muonID = new MuonIDMod;
ElectronIDMod *electronID = new ElectronIDMod;
JetIDMod *JetID = new JetIDMod; //default names are IC5
JetID->SetJetName(JetsName); //for SC5 I have to set the names
JetID->SetGoodJetsName(TString("GoodJets"));
ElectronCleaningMod *electronCleaning = new ElectronCleaningMod;
JetCleaningMod *JetCleaning = new JetCleaningMod; //default names are ok for IC5
JetCleaning->SetGoodJetsName(TString("GoodJets"));
JetCleaning->SetCleanJetsName(TString("CleanJets"));
//Event Selection modules
WWEvtSelMod *eventSelectionMod = new WWEvtSelMod;
eventSelectionMod->SetLoadGenParticles(false);
eventSelectionMod->SetCleanJetsName(TString("CleanJets"));
eventSelectionMod->SetPlotType(PlotType);
eventSelectionMod->SetPrintDebug(false);
//chain modules together
hltmod->Add(preSelectionMod);
preSelectionMod->Add(muonID);
muonID->Add(electronID);
electronID->Add(JetID);
JetID->Add(electronCleaning);
electronCleaning->Add(JetCleaning);
JetCleaning->Add(eventSelectionMod);
// set up analysis
Analysis *ana = new Analysis;
//ana->SetUseHLT(false);
ana->SetKeepHierarchy(kFALSE);
ana->SetSuperModule(preSelectionMod);
ana->AddFile(inputfiles);
ana->SetOutputName(outputfileName.Data());
// run the analysis after successful initialisation
ana->Run(! gROOT->IsBatch());
cout << "HLTMod: Accepted " << hltmod->GetNAccepted()
<< " of " << hltmod->GetNEvents() << " events" << endl;
return;
}
示例3: runHLTExample
//--------------------------------------------------------------------------------------------------
void runHLTExample(const char *trigger="HLT_Mu15_v1",
//const char *files = "XX-MITDATASET-XX_000.root",
const char *files = "/castor/cern.ch/user/p/paus/filefi/020/p11-h160ww2l-gf-v1g1-pu/342631BD-F250-E011-9C32-00A0D1EE8B54.root",
Int_t nEvs = 0)
{
using namespace mithep;
gDebugMask = Debug::kAnalysis;
gDebugLevel = 1;
HLTMod *hltmod = new HLTMod;
hltmod->SetPrintTable(kTRUE);
hltmod->AddTrigger(trigger);
hltmod->SetTrigObjsName("myhltobjs");
HLTExampleMod *hltexmod = new HLTExampleMod;
hltexmod->SetTrigObjsName("myhltobjs");
hltmod->Add(hltexmod);
// set up analysis
Analysis *ana = new Analysis;
if (0) {
hltmod->SetBitsName("HLTBits");
ana->SetHLTTreeName("HLT");
ana->SetHLTObjsName("HLTObjects");
}
if (nEvs)
ana->SetProcessNEvents(nEvs);
ana->SetSuperModule(hltmod);
ana->AddFile(files);
if (gROOT->IsBatch())
ana->SetOutputName("mit-hlt-hist.root");
// run the analysis after successful initialisation
ana->Run(!gROOT->IsBatch());
cout << "HLTMod: Accepted " << hltmod->GetNAccepted()
<< " of " << hltmod->GetNEvents() << " events" << endl;
}
示例4: runIoTest
//--------------------------------------------------------------------------------------------------
void runIoTest(const char *fileset = "0000",
const char *skim = "noskim",
const char *dataset = "r12b-dmu-j22-v1",
const char *book = "t2mit/filefi/032",
const char *catalogDir = "/home/cmsprod/catalog",
const char *outputName = "iotest",
int nEvents = 200000)
{
//------------------------------------------------------------------------------------------------
// some parameters get passed through the environment
//------------------------------------------------------------------------------------------------
TString cataDir = getCatalogDir(catalogDir);
TString mitData = Utils::GetEnv("MIT_DATA");
TString json = Utils::GetEnv("MIT_PROD_JSON");
TString jsonFile = getJsonFile("/home/cmsprod/cms/json");
Bool_t isData = (json.CompareTo("~") != 0);
printf("\n Initialization worked. Data?: %d\n\n",isData);
//------------------------------------------------------------------------------------------------
// some global setups
//------------------------------------------------------------------------------------------------
using namespace mithep;
gDebugMask = ( Debug::kAnalysis && Debug::kTreeIO );
gDebugLevel = 1;
//------------------------------------------------------------------------------------------------
// set up information for master module
//------------------------------------------------------------------------------------------------
RunLumiSelectionMod *runLumiSel = new RunLumiSelectionMod;
runLumiSel->SetAcceptMC(kTRUE); // Monte Carlo events are always accepted
// only select on run- and lumisection numbers when valid json file present
if (json.CompareTo("~") != 0 && json.CompareTo("-") != 0) {
runLumiSel->AddJSONFile(jsonFile.Data());
}
if (json.CompareTo("-") == 0) {
printf("\n WARNING -- Looking at data without JSON file: always accept.\n\n");
runLumiSel->SetAbortIfNotAccepted(kFALSE); // accept all events if there is no valid JSON file
}
printf("\n Run lumi worked. \n\n");
//------------------------------------------------------------------------------------------------
// setup analysis
//------------------------------------------------------------------------------------------------
Analysis *ana = new Analysis;
ana->SetUseCacher(1);
ana->SetUseHLT(kTRUE);
ana->SetKeepHierarchy(kTRUE);
ana->SetSuperModule(runLumiSel);
ana->SetPrintScale(100);
if (nEvents >= 0)
ana->SetProcessNEvents(nEvents);
//------------------------------------------------------------------------------------------------
// organize input
//------------------------------------------------------------------------------------------------
Catalog *c = new Catalog(cataDir.Data());
TString skimdataset = TString(dataset)+TString("/") +TString(skim);
Dataset *d = NULL;
TString bookstr = book;
Int_t local = 3;
if (TString(skim).CompareTo("noskim") == 0)
d = c->FindDataset(bookstr,dataset,fileset,local);
else
d = c->FindDataset(bookstr,skimdataset.Data(),fileset,local);
ana->AddDataset(d);
//------------------------------------------------------------------------------------------------
// organize output
//------------------------------------------------------------------------------------------------
TString rootFile = TString(outputName);
rootFile += TString("_") + TString(dataset) + TString("_") + TString(skim);
if (TString(fileset) != TString(""))
rootFile += TString("_") + TString(fileset);
TString ntupleFile = rootFile + TString("_ntuple.root");
rootFile += TString(".root");
ana->SetOutputName(rootFile.Data());
ana->SetCacheSize(0);
//------------------------------------------------------------------------------------------------
// HLT information
//------------------------------------------------------------------------------------------------
HLTMod *hltModP = new HLTMod("HLTModP");
hltModP->SetBitsName("HLTBits");
hltModP->SetTrigObjsName("HltObjsMonoJet");
hltModP->SetAbortIfNotAccepted(isData);
hltModP->SetPrintTable(kFALSE);
// monojet triggers
const int nMjtTrigs = 1;
TString monoJetTriggers[nMjtTrigs] = { "HLT_MonoCentralPFJet80_PFMETnoMu105_NHEF0p95_v4" };
for (int i=0; i<nMjtTrigs; i++)
hltModP->AddTrigger(TString("!+"+monoJetTriggers[i]),0,999999);
//------------------------------------------------------------------------------------------------
// making analysis chain
//------------------------------------------------------------------------------------------------
runLumiSel ->Add(hltModP);
//.........这里部分代码省略.........
示例5: runMonoJetSkim
//--------------------------------------------------------------------------------------------------
void runMonoJetSkim(const char *fileset = "0000",
const char *skim = "noskim",
const char *dataset = "s12-zjets-ptz100-v7a",
const char *book = "t2mit/filefi/032",
const char *catalogDir = "/home/cmsprod/catalog",
const char *outputLabel = "monojet",
int nEvents = 1000)
{
//------------------------------------------------------------------------------------------------
// json parameters get passed through the environment
// for MC, the value must be "~"
//------------------------------------------------------------------------------------------------
TString json(gSystem->Getenv("MIT_PROD_JSON"));
if (json.Length() == 0) {
printf(" JSON file was not properly defined. EXIT!\n");
return;
}
TString jsonFile = TString("/home/cmsprod/cms/json/") + json;
Bool_t isData = (json != "~");
TString MitData(gSystem->Getenv("MIT_DATA"));
if(MitData.Length() == 0){
MitData = gSystem->Getenv("CMSSW_BASE");
MitData += "/src/MitPhysics/data";
}
printf("\n Initialization worked: \n\n");
printf(" JSON : %s (file: %s)\n", json.Data(), jsonFile.Data());
printf(" isData : %d\n\n",isData);
//------------------------------------------------------------------------------------------------
// some global setups
//------------------------------------------------------------------------------------------------
using namespace mithep;
gDebugMask = Debug::kGeneral;
gDebugLevel = 3;
//------------------------------------------------------------------------------------------------
// set up information
//------------------------------------------------------------------------------------------------
RunLumiSelectionMod *runLumiSel = new RunLumiSelectionMod;
runLumiSel->SetAcceptMC(kTRUE); // Monte Carlo events are always accepted
// only select on run- and lumisection numbers when valid json file present
if ((jsonFile.CompareTo("/home/cmsprod/cms/json/~") != 0) &&
(jsonFile.CompareTo("/home/cmsprod/cms/json/-") != 0) ) {
printf("\n Jason file added: %s \n\n",jsonFile.Data());
runLumiSel->AddJSONFile(jsonFile.Data());
}
if ((jsonFile.CompareTo("/home/cmsprod/cms/json/-") == 0) ) {
printf("\n WARNING -- Looking at data without JSON file: always accept.\n\n");
runLumiSel->SetAbortIfNotAccepted(kFALSE); // accept all events if there is no valid JSON file
}
printf("\n Run lumi worked. \n\n");
// Generator info
GeneratorMod *generatorMod = new GeneratorMod;
generatorMod->SetPrintDebug(kFALSE);
generatorMod->SetPtLeptonMin(0.0);
generatorMod->SetEtaLeptonMax(2.7);
generatorMod->SetPtPhotonMin(0.0);
generatorMod->SetEtaPhotonMax(2.7);
generatorMod->SetPtRadPhotonMin(0.0);
generatorMod->SetEtaRadPhotonMax(2.7);
generatorMod->SetIsData(isData);
generatorMod->SetFillHist(! isData);
generatorMod->SetApplyISRFilter(kFALSE);
generatorMod->SetApplyVVFilter(kFALSE);
generatorMod->SetApplyVGFilter(kFALSE);
generatorMod->SetFilterBTEvents(kFALSE);
//-----------------------------------------------------------------------------------------------------------
// HLT information : trigger not applied (neither for data nor for MC, store info to apply selection offline
//-----------------------------------------------------------------------------------------------------------
HLTMod *hltModP = new HLTMod("HLTModP");
// monojet triggers
const int nMjtTrigs = 12;
TString monoJetTriggers[nMjtTrigs] = { "HLT_MonoCentralPFJet80_PFMETnoMu105_NHEF0p95_v4",
"HLT_MonoCentralPFJet80_PFMETnoMu105_NHEF0p95_v3",
"HLT_MonoCentralPFJet80_PFMETnoMu105_NHEF0p95_v1",
"HLT_MonoCentralPFJet80_PFMETnoMu95_NHEF0p95_v5",
"HLT_MonoCentralPFJet80_PFMETnoMu95_NHEF0p95_v4",
"HLT_MonoCentralPFJet80_PFMETnoMu95_NHEF0p95_v3",
"HLT_MonoCentralPFJet80_PFMETnoMu95_NHEF0p95_v2",
"HLT_MET120_HBHENoiseCleaned_v6",
"HLT_MET120_HBHENoiseCleaned_v5",
"HLT_MET120_HBHENoiseCleaned_v4",
"HLT_MET120_HBHENoiseCleaned_v3",
"HLT_MET120_HBHENoiseCleaned_v2" };
for (int i=0; i<nMjtTrigs; i++)
hltModP->AddTrigger(TString("!+"+monoJetTriggers[i]),0,999999);
// VBF triggers
const int nVbfTrigs = 7;
TString vbfTriggers[nVbfTrigs] = { "HLT_DiPFJet40_PFMETnoMu65_MJJ800VBF_AllJets_v9",
"HLT_DiPFJet40_PFMETnoMu65_MJJ800VBF_AllJets_v8",
//.........这里部分代码省略.........
示例6: runMonoPhoton
//--------------------------------------------------------------------------------------------------
void runMonoPhoton(const char *fileset = "0000",
const char *skim = "noskim",
const char *dataset = "s12-zgllg-v7a",
const char *book = "cern/filefi/031",
const char *catalogDir = "~/scratch0/catalog",
const char *outputName = "test/jmet",
int nEvents = 10000)
{
//------------------------------------------------------------------------------------------------
// some parameters get passed through the environment
//------------------------------------------------------------------------------------------------
char json[1024], overlap[1024];
TString jsonFile = "";
float overlapCut = -1;
Bool_t isData = false;
printf("\n Initialization worked \n");
//------------------------------------------------------------------------------------------------
// some global setups
//------------------------------------------------------------------------------------------------
using namespace mithep;
gDebugMask = Debug::kAnalysis;
gDebugLevel = 3;
//------------------------------------------------------------------------------------------------
// set up information
//------------------------------------------------------------------------------------------------
MCProcessSelectionMod *mcselmod = new MCProcessSelectionMod;
MVASystematicsMod *sysMod = new MVASystematicsMod;
sysMod->SetMCR9Scale(1.0035, 1.0035);
sysMod->SetIsData(isData);
RunLumiSelectionMod *runLumiSel = new RunLumiSelectionMod;
runLumiSel->SetAcceptMC(!isData);
runLumiSel->AddJSONFile(string(getenv("CMSSW_BASE")+string("/src/json/Cert_Current_JSON.txt")));
printf("\n Run lumi worked\n");
// Dataset Flags
bool isDataSinglePh = false;
bool isDataPhHad = false;
if (TString(dataset).Contains("-pho-") || TString(dataset).Contains("-sph-")) isDataSinglePh = true;
if (TString(dataset).Contains("-phh-")) isDataPhHad = true;
// Generator info
GeneratorMod *generatorMod = new GeneratorMod;
generatorMod->SetPrintDebug(kFALSE);
generatorMod->SetPtLeptonMin(0.0);
generatorMod->SetEtaLeptonMax(2.7);
generatorMod->SetPtPhotonMin(15.0);
generatorMod->SetEtaPhotonMax(2.7);
generatorMod->SetPtRadPhotonMin(10.0);
generatorMod->SetEtaRadPhotonMax(2.7);
generatorMod->SetIsData(isData);
generatorMod->SetFillHist(!isData);
generatorMod->SetApplyISRFilter(kFALSE);
generatorMod->SetApplyVVFilter(kFALSE);
generatorMod->SetApplyVGFilter(kFALSE);
generatorMod->SetFilterBTEvents(kFALSE);
//------------------------------------------------------------------------------------------------
// HLT information
//------------------------------------------------------------------------------------------------
HLTMod *hltModP = new HLTMod("HLTModP");
//------------------------------------------------------------------------------------------------
// Run2011
//------------------------------------------------------------------------------------------------
hltModP->AddTrigger("HLT_Photon75_CaloIdVL_v*",160404,165087);
hltModP->AddTrigger("HLT_Photon125_v*",165088,163869);
hltModP->AddTrigger("HLT_Photon135_v*",167039,190455);
//------------------------------------------------------------------------------------------------
// Run2012
//------------------------------------------------------------------------------------------------
if (isData){//DATA
if (isDataSinglePh){
hltModP->AddTrigger("HLT_Photon135_v*",190456,193686);
hltModP->AddTrigger("HLT_Photon150_v*",193687,199695);
hltModP->AddTrigger("HLT_Photon135_v*",199696,209151);
}
else if (isDataPhHad){
hltModP->AddTrigger("!HLT_Photon135_v*&HLT_Photon70_CaloIdXL_PFMET100_v*",190456,193686);
hltModP->AddTrigger("!HLT_Photon150_v*&HLT_Photon70_CaloIdXL_PFMET100_v*",193687,199695);
hltModP->AddTrigger("!HLT_Photon135_v*&HLT_Photon70_CaloIdXL_PFMET100_v*",199696,209151);
}
else{
printf("ERROR, WRONG DATASET IDENTIFICATION FOR: %s\n",dataset);
return;
}
}
else{//MC
hltModP->AddTrigger("HLT_Photon135_v*",0,999999);
hltModP->AddTrigger("HLT_Photon70_CaloIdXL_PFMET100*",0,999999);
hltModP->AddTrigger("HLT_MonoCentralPFJet80_PFMETnoMu95_NHEF0p95_v*",0,999999);
hltModP->AddTrigger("HLT_MonoCentralPFJet80_PFMETnoMu105_NHEF0p95_v*",0,999999);
hltModP->AddTrigger("HLT_MET120_HBHENoiseCleaned_v*",0,999999);
//.........这里部分代码省略.........
示例7: runHgg2012HCP
//--------------------------------------------------------------------------------------------------
void runHgg2012HCP(const char *fileset = "0000",
const char *skim = "noskim",
//const char *dataset = "f11--h120gg-gf-v14b-pu",
//const char *dataset = "r11a-pho-j16-v1",
//const char *dataset = "meridiani2012-diphoj-v9",
//const char *dataset = "s12-h125gg-gf-v9",
//const char *dataset = "s12-pj40-2em-v9",
//const char *dataset = "s12-diphoj-3-v9",
//const char *dataset = "s12-zllm50-v9",
//const char *dataset = "f11--h121gg-gf-v14b-pu",
//const char *dataset = "r12a-pho-pr-v1",
//const char *dataset = "s12-pj40-2em-v9",
//const char *dataset = "s12-h125gg-vbf-v7a",
const char *dataset = "s12-h125gg-vh-v7a",
//const char *dataset = "s12-h125gg-gf-v7a",
//const char *dataset = "r12a-pho-j13-v1",
//const char *dataset = "r12b-dph-j13-v1",
const char *book = "t2mit/filefi/029",
const char *catalogDir = "/home/cmsprod/catalog",
const char *outputName = "hgg",
int nEvents = 1000)
{
//------------------------------------------------------------------------------------------------
// some parameters get passed through the environment
//------------------------------------------------------------------------------------------------
char json[1024], overlap[1024];
float overlapCut = -1;
if (gSystem->Getenv("MIT_PROD_JSON"))
sprintf(json, "%s",gSystem->Getenv("MIT_PROD_JSON"));
else {
sprintf(json, "%s", "~");
//printf(" JSON file was not properly defined. EXIT!\n");
//return;
}
TString jsonFile = TString("/home/fabstoec/cms/json/") + TString(json);
//TString jsonFile = TString("/home/fabstoec/cms/json/") + TString("Cert_136033-149442_7TeV_Dec22ReReco_Collisions10_JSON_v4.txt");
Bool_t isData = ( (jsonFile.CompareTo("/home/fabstoec/cms/json/~") != 0) );
if (gSystem->Getenv("MIT_PROD_OVERLAP")) {
sprintf(overlap,"%s",gSystem->Getenv("MIT_PROD_OVERLAP"));
if (EOF == sscanf(overlap,"%f",&overlapCut)) {
printf(" Overlap was not properly defined. EXIT!\n");
return;
}
}
else {
sprintf(overlap,"%s", "-1.0");
//printf(" OVERLAP file was not properly defined. EXIT!\n");
//return;
}
printf("\n Initialization worked. \n\n");
//------------------------------------------------------------------------------------------------
// some global setups
//------------------------------------------------------------------------------------------------
using namespace mithep;
gDebugMask = Debug::kGeneral;
gDebugLevel = 3;
//------------------------------------------------------------------------------------------------
// set up information
//------------------------------------------------------------------------------------------------
RunLumiSelectionMod *runLumiSel = new RunLumiSelectionMod;
runLumiSel->SetAcceptMC(kTRUE); // Monte Carlo events are always accepted
MCProcessSelectionMod *mcselmod = new MCProcessSelectionMod;
MVASystematicsMod *sysMod = new MVASystematicsMod;
sysMod->SetMCR9Scale(1.0035, 1.0035);
sysMod->SetIsData(isData);
// only select on run- and lumisection numbers when valid json file present
if ((jsonFile.CompareTo("/home/fabstoec/cms/json/~") != 0) &&
(jsonFile.CompareTo("/home/fabstoec/cms/json/-") != 0) ) {
runLumiSel->AddJSONFile(jsonFile.Data());
}
if ((jsonFile.CompareTo("/home/fabstoec/cms/json/-") == 0) ) {
printf("\n WARNING -- Looking at data without JSON file: always accept.\n\n");
runLumiSel->SetAbortIfNotAccepted(kFALSE); // accept all events if there is no valid JSON file
}
printf("\n Run lumi worked. \n\n");
//------------------------------------------------------------------------------------------------
// HLT information
//------------------------------------------------------------------------------------------------
HLTMod *hltModM = new HLTMod("HLTModM");
hltModM->AddTrigger("HLT_Mu9");
hltModM->AddTrigger("HLT_Mu11");
hltModM->AddTrigger("HLT_Mu15_v1");
hltModM->SetTrigObjsName("MyHltMuonObjs");
hltModM->SetAbortIfNotAccepted(kFALSE);
HLTMod *hltModE = new HLTMod("HLTModE");
hltModE->AddTrigger("HLT_Ele17_CaloIdL_CaloIsoVL_Ele8_CaloIdL_CaloIsoVL_v1",150000,161176);
hltModE->AddTrigger("HLT_Ele17_CaloIdL_CaloIsoVL_Ele8_CaloIdL_CaloIsoVL_v2",161179,163261);
//.........这里部分代码省略.........
示例8: WWSelection
//--------------------------------------------------------------------------------------------------
void WWSelection(const char *fileset = "",
const char *dataset = "s8-ttbar-id9",
const char *book = "mit/filler/004",
const char *catalogDir = "/home/mitprod/catalog",
const char *outputName = "WWSelection",
int nEvents = -1)
{
//------------------------------------------------------------------------------------------------
// some global setups
//------------------------------------------------------------------------------------------------
using namespace mithep;
gDebugMask = Debug::kAnalysis;
gDebugLevel = 3;
//------------------------------------------------------------------------------------------------
// generator information
//------------------------------------------------------------------------------------------------
GeneratorMod *GeneratorMod = new GeneratorMod;
//------------------------------------------------------------------------------------------------
// HLT information
//------------------------------------------------------------------------------------------------
HLTMod *hltmod = new HLTMod;
hltmod->SetPrintTable(kTRUE);
hltmod->AddTrigger("HLT_IsoEle15_L1I");
hltmod->AddTrigger("HLT_Ele15_SW_L1R");
hltmod->AddTrigger("HLT_IsoEle15_LW_L1I");
hltmod->AddTrigger("HLT_IsoEle18_L1R");
hltmod->AddTrigger("HLT_Ele15_LW_L1R");
hltmod->AddTrigger("HLT_LooseIsoEle15_LW_L1R");
hltmod->AddTrigger("HLT_IsoMu15");
hltmod->AddTrigger("HLT_Mu15");
hltmod->SetTrigObjsName("myhltobjs");
//------------------------------------------------------------------------------------------------
// object id and cleaning sequence
//------------------------------------------------------------------------------------------------
MuonIDMod *muonID = new MuonIDMod;
muonID->SetMuonIDType("Loose");
muonID->SetMuonIsoType("TrackCaloSliding");
ElectronIDMod *electronID = new ElectronIDMod;
electronID->SetElectronIDType(TString("Tight"));
electronID->SetElectronIsoType(TString("TrackJuraSliding"));
JetIDMod *JetID = new JetIDMod;
JetID->SetJetBranchName(TString("SisCone5Jets")); //name of jet algorithm
JetID->SetGoodJetsName(TString("GoodJets"));
JetID->SetUseJetCorrection(true);
JetID->SetJetEtCut(30.0);
ElectronCleaningMod *electronCleaning = new ElectronCleaningMod;
JetCleaningMod *JetCleaning = new JetCleaningMod;
JetCleaning->SetGoodJetsName (TString("GoodJets"));
JetCleaning->SetCleanJetsName(TString("CleanJets"));
//------------------------------------------------------------------------------------------------
// analyses modules
//------------------------------------------------------------------------------------------------
WWEvtSelMod *analysisMod = new WWEvtSelMod;
analysisMod->SetLoadGenParticles(false);
analysisMod->SetCleanJetsName(TString("CleanJets"));
analysisMod->SetPrintDebug(false);
//------------------------------------------------------------------------------------------------
// making analysis chain
//------------------------------------------------------------------------------------------------
//GeneratorMod->Add(hltmod); hltmod->Add(muonID);
GeneratorMod->Add(muonID);
muonID->Add(electronID);
electronID->Add(JetID);
JetID->Add(electronCleaning);
electronCleaning->Add(JetCleaning);
JetCleaning->Add(analysisMod);
//------------------------------------------------------------------------------------------------
// setup analysis
//------------------------------------------------------------------------------------------------
Analysis *ana = new Analysis;
ana->SetUseHLT(true);
ana->SetKeepHierarchy(false);
if (nEvents >= 0)
ana->SetProcessNEvents(nEvents);
ana->SetSuperModule(GeneratorMod);
//------------------------------------------------------------------------------------------------
// organize input
//------------------------------------------------------------------------------------------------
printf("\nRely on Catalog: %s\n",catalogDir);
printf(" -> Book: %s Dataset: %s Fileset: %s <-\n\n",book,dataset,fileset);
Catalog *c = new Catalog(catalogDir);
Dataset *d = c->FindDataset(book,dataset,fileset);
ana->AddDataset(d);
//------------------------------------------------------------------------------------------------
// organize output
//------------------------------------------------------------------------------------------------
TString rootFile = TString(outputName);
rootFile += TString("_") + TString(dataset);
if (TString(fileset) != TString(""))
rootFile += TString("_") + TString(fileset);
rootFile += TString(".root");
printf("\nRoot output: %s\n\n",rootFile.Data());
//.........这里部分代码省略.........
示例9: executeComputeElectronFakeRateMod
//--------------------------------------------------------------------------------------------------
void executeComputeElectronFakeRateMod(const char *fileset = "",
const char *dataset = "s8-ttbar-id9",
const char *book = "mit/filler/006",
const char *catalogDir = "/home/mitprod/catalog",
const char *outputName = "JetChargeCorrelationStudy",
int nEvents = -1)
{
//------------------------------------------------------------------------------------------------
// some global setups
//------------------------------------------------------------------------------------------------
using namespace mithep;
gDebugMask = Debug::kAnalysis;
gDebugLevel = 3;
//------------------------------------------------------------------------------------------------
// generator information
//------------------------------------------------------------------------------------------------
GeneratorMod *generatorMod = new GeneratorMod;
generatorMod->SetFillHist(kTRUE);
//------------------------------------------------------------------------------------------------
// HLT information
//------------------------------------------------------------------------------------------------
HLTMod *hltmod = new HLTMod;
hltmod->SetPrintTable(kTRUE);
hltmod->AddTrigger("HLT_IsoEle15_L1I");
hltmod->AddTrigger("HLT_Ele15_SW_L1R");
hltmod->AddTrigger("HLT_IsoEle15_LW_L1I");
hltmod->AddTrigger("HLT_IsoEle18_L1R");
hltmod->AddTrigger("HLT_Ele15_LW_L1R");
hltmod->AddTrigger("HLT_LooseIsoEle15_LW_L1R");
hltmod->AddTrigger("HLT_IsoMu15");
hltmod->AddTrigger("HLT_Mu15");
hltmod->SetTrigObjsName("myhltobjs");
//------------------------------------------------------------------------------------------------
// object id and cleaning sequence
//------------------------------------------------------------------------------------------------
MuonIDMod *muonID = new MuonIDMod;
muonID->SetIDType("Loose");
muonID->SetIsoType("TrackCaloSliding");
ElectronIDMod *electronID = new ElectronIDMod;
electronID->SetIDType(TString("Tight"));
electronID->SetIsoType(TString("TrackJuraSliding"));
PhotonIDMod *photonID = new PhotonIDMod;
photonID->SetIDType(TString("Tight"));
photonID->SetPtMin(20.0);
JetIDMod *jetID = new JetIDMod;
jetID->SetInputName(TString("SisCone5Jets"));
jetID->SetUseCorrection(kTRUE);
jetID->SetPtCut(35.0);
ElectronCleaningMod *electronCleaning = new ElectronCleaningMod;
PhotonCleaningMod *photonCleaning = new PhotonCleaningMod;
JetCleaningMod *jetCleaning = new JetCleaningMod;
//------------------------------------------------------------------------------------------------
// merge modules
//------------------------------------------------------------------------------------------------
//MergeLeptonsMod *mergeLeptonsMod = new MergeLeptonsMod;
//------------------------------------------------------------------------------------------------
// analyses modules
//------------------------------------------------------------------------------------------------
JetChargeCorrelationStudyMod *analysisMod = new JetChargeCorrelationStudyMod;
analysisMod->SetVetoGeneratorLeptons(kTRUE);
//------------------------------------------------------------------------------------------------
// making analysis chain
//------------------------------------------------------------------------------------------------
hltmod->Add(muonID);
generatorMod->Add(muonID);
muonID->Add(electronID);
electronID->Add(photonID);
photonID->Add(jetID);
jetID->Add(electronCleaning);
electronCleaning->Add(photonCleaning);
photonCleaning->Add(jetCleaning);
jetCleaning->Add(analysisMod);
//------------------------------------------------------------------------------------------------
// setup analysis
//------------------------------------------------------------------------------------------------
Analysis *ana = new Analysis;
ana->SetUseHLT(kFALSE);
ana->SetKeepHierarchy(kTRUE);
if (nEvents >= 0)
ana->SetProcessNEvents(nEvents);
//ana->SetSuperModule(muonID);
ana->SetSuperModule(generatorMod);
//------------------------------------------------------------------------------------------------
// organize input
//------------------------------------------------------------------------------------------------
printf("\nRely on Catalog: %s\n",catalogDir);
printf(" -> Book: %s Dataset: %s Fileset: %s <-\n\n",book,dataset,fileset);
Catalog *c = new Catalog(catalogDir);
Dataset *d = c->FindDataset(book,dataset,fileset);
ana->AddDataset(d);
//------------------------------------------------------------------------------------------------
//.........这里部分代码省略.........
示例10: getCatalogDir
//--------------------------------------------------------------------------------------------------
void runBavantiBoostedV_Synch
(const char *fileset = "0000",
const char *skim = "noskim",
//const char *dataset = "s12-ttj-sl-v1-v7c",
const char *dataset = "GJets_HT-400ToInf_8TeV-madgraph+Summer12_DR53X-PU_S10_START53_V7A-v1+AODSIM",
const char *book = "t2mit/filefi/032",
const char *catalogDir = "/home/cmsprod/catalog",
const char *outputName = "boostedv",
int nEvents = 10)
{
//------------------------------------------------------------------------------------------------
// some parameters get passed through the environment
//------------------------------------------------------------------------------------------------
TString cataDir = getCatalogDir(catalogDir);
TString mitData = Utils::GetEnv("MIT_DATA");
TString json = Utils::GetEnv("MIT_PROD_JSON");
TString jsonFile = getJsonFile("/home/cmsprod/cms/json");
Bool_t isData = (json.CompareTo("~") != 0);
// only for synchrionization purposes
isData = kFALSE;
printf("\n Initialization worked. Data?: %d\n\n",isData);
//------------------------------------------------------------------------------------------------
// some global setups
//------------------------------------------------------------------------------------------------
// debugging config
using namespace mithep;
gDebugMask = (Debug::EDebugMask) (Debug::kGeneral | Debug::kTreeIO);
gDebugLevel = 3;
// Caching and how
Int_t local = 1, cacher = 1;
// local = 0 - as is,
// 1 - /mt/hadoop (MIT:SmartCache - preload one-by-one)
// 2 - /mnt/hadoop (MIT:SmartCache - preload complete fileset)
// 3 - ./ (xrdcp - preload one-by-one)
// cacher = 0 - no file by file caching
// 1 - file by file caching on
//------------------------------------------------------------------------------------------------
// set up information for master module
//------------------------------------------------------------------------------------------------
RunLumiSelectionMod *runLumiSel = new RunLumiSelectionMod;
runLumiSel->SetAcceptMC(kTRUE); // Monte Carlo events are always accepted
// only select on run- and lumisection numbers when valid json file present
if (json.CompareTo("~") != 0 && json.CompareTo("-") != 0) {
printf(" runBoostedV() - adding jsonFile: %s\n",jsonFile.Data());
runLumiSel->AddJSONFile(jsonFile.Data());
}
if (json.CompareTo("-") == 0) {
printf("\n WARNING -- Looking at data without JSON file: always accept.\n\n");
runLumiSel->SetAbortIfNotAccepted(kFALSE); // accept all events if there is no valid JSON file
}
printf("\n Run lumi worked. \n\n");
//------------------------------------------------------------------------------------------------
// setup analysis
//------------------------------------------------------------------------------------------------
Analysis *ana = new Analysis;
ana->SetUseCacher(cacher);
ana->SetUseHLT(kTRUE);
ana->SetKeepHierarchy(kTRUE);
ana->SetSuperModule(runLumiSel);
ana->SetPrintScale(100);
if (nEvents >= 0)
ana->SetProcessNEvents(nEvents);
//------------------------------------------------------------------------------------------------
// organize input
//------------------------------------------------------------------------------------------------
Catalog *c = new Catalog(cataDir.Data());
TString skimdataset = TString(dataset)+TString("/") +TString(skim);
Dataset *d = NULL;
TString bookstr = book;
if (TString(skim).CompareTo("noskim") == 0)
d = c->FindDataset(bookstr,dataset,fileset,local);
else
d = c->FindDataset(bookstr,skimdataset.Data(),fileset,local);
ana->AddDataset(d);
//------------------------------------------------------------------------------------------------
// organize output
//------------------------------------------------------------------------------------------------
TString rootFile = TString(outputName);
rootFile += TString("_") + TString(dataset) + TString("_") + TString(skim);
if (TString(fileset) != TString(""))
rootFile += TString("_") + TString(fileset);
TString ntupleFile = rootFile + TString("_ntuple");
rootFile += TString(".root");
ana->SetOutputName(rootFile.Data());
ana->SetCacheSize(0);
//------------------------------------------------------------------------------------------------
// HLT information
//------------------------------------------------------------------------------------------------
HLTMod *hltModP = new HLTMod("HLTModP");
//.........这里部分代码省略.........
示例11: runMonoJetTrigger
//--------------------------------------------------------------------------------------------------
void runMonoJetTrigger(const char *fileset = "0000",
const char *skim = "noskim",
const char *dataset = "s12-wglg-v7a",
const char *book = "t2mit/filefi/029",
const char *catalogDir = "/home/cmsprod/catalog",
const char *outputName = "gmet",
int nEvents = 1000)
{
//------------------------------------------------------------------------------------------------
// some parameters get passed through the environment
//------------------------------------------------------------------------------------------------
char json[1024], overlap[1024];
float overlapCut = -1;
if (gSystem->Getenv("MIT_PROD_JSON"))
sprintf(json, "%s",gSystem->Getenv("MIT_PROD_JSON"));
else {
sprintf(json, "%s", "~");
//printf(" JSON file was not properly defined. EXIT!\n");
//return;
}
TString jsonFile = TString("/home/cmsprod/cms/json/") + TString(json);
//TString jsonFile = TString("/home/cmsprod/cms/json/") + TString("Cert_136033-149442_7TeV_Dec22ReReco_Collisions10_JSON_v4.txt");
Bool_t isData = ( (jsonFile.CompareTo("/home/cmsprod/cms/json/~") != 0) );
if (gSystem->Getenv("MIT_PROD_OVERLAP")) {
sprintf(overlap,"%s",gSystem->Getenv("MIT_PROD_OVERLAP"));
if (EOF == sscanf(overlap,"%f",&overlapCut)) {
printf(" Overlap was not properly defined. EXIT!\n");
return;
}
}
else {
sprintf(overlap,"%s", "-1.0");
//printf(" OVERLAP file was not properly defined. EXIT!\n");
//return;
}
printf("\n Initialization worked \n");
//------------------------------------------------------------------------------------------------
// some global setups
//------------------------------------------------------------------------------------------------
using namespace mithep;
gDebugMask = Debug::kGeneral;
gDebugLevel = 3;
//------------------------------------------------------------------------------------------------
// set up information
//------------------------------------------------------------------------------------------------
MVASystematicsMod *sysMod = new MVASystematicsMod;
sysMod->SetMCR9Scale(1.0035, 1.0035);
sysMod->SetIsData(isData);
RunLumiSelectionMod *runLumiSel = new RunLumiSelectionMod;
runLumiSel->SetAcceptMC(!isData);
runLumiSel->SetAbortIfNotAccepted(kFALSE); // accept all events if there is no valid JSON file
// only select on run- and lumisection numbers when valid json file present
if ((jsonFile.CompareTo("/home/cmsprod/cms/json/~") != 0) &&
(jsonFile.CompareTo("/home/cmsprod/cms/json/-") != 0) ) {
runLumiSel->AddJSONFile(jsonFile.Data());
}
if ((jsonFile.CompareTo("/home/cmsprod/cms/json/-") == 0) ) {
printf("\n WARNING -- Looking at data without JSON file: always accept.\n\n");
// runLumiSel->SetAbortIfNotAccepted(kFALSE); // accept all events if there is no valid JSON file
}
printf("\n Run lumi worked\n");
//------------------------------------------------------------------------------------------------
// HLT information : [TBF]
//------------------------------------------------------------------------------------------------
HLTMod *hltModP = new HLTMod("HLTModP");
//------------------------------------------------------------------------------------------------
// Run2012
//------------------------------------------------------------------------------------------------
hltModP->AddTrigger("HLT_IsoMu24_eta2p1_v*",0,999999);
//store the relevant objects
hltModP->AddTrigger("HLT_MET120_HBHENoiseCleaned_v*",0,999999); //met type 87
hltModP->AddTrigger("!HLT_MET120_HBHENoiseCleaned_v*",0,999999); //met type 87
hltModP->AddTrigger("HLT_MonoCentralPFJet80_PFMETnoMu95_NHEF0p95_v*",0,999999); //jet 85 , met 90
hltModP->AddTrigger("!HLT_MonoCentralPFJet80_PFMETnoMu95_NHEF0p95_v*",0,999999); //jet 85 , met 90
hltModP->AddTrigger("HLT_MonoCentralPFJet80_PFMETnoMu105_NHEF0p95_v*",0,999999); //jet 85 , met 90
hltModP->AddTrigger("!HLT_MonoCentralPFJet80_PFMETnoMu105_NHEF0p95_v*",0,999999); //jet 85 , met 90
hltModP->SetTrigObjsName("MyHltObjs");
hltModP->SetAbortIfNotAccepted(isData);
hltModP->SetPrintTable(kFALSE); // set to true to print HLT table
//------------------------------------------------------------------------------------------------
// split pfcandidates to PFPU and PFnoPU
//------------------------------------------------------------------------------------------------
SeparatePileUpMod* SepPUMod = new SeparatePileUpMod;
// SepPUMod->SetUseAllVerteces(kFALSE);
//.........这里部分代码省略.........
示例12: runHgll_2012_resync_mu
//--------------------------------------------------------------------------------------------------
void runHgll_2012_resync_mu(const char *fileset = "0000",
const char *skim = "noskim",
const char *dataset = "r11a-del-j16-v1",
const char *book = "local/filefi/025",
const char *catalogDir = "/home/cmsprod/catalog",
const char *outputName = "hgll",
int nEvents = -1)
{
//------------------------------------------------------------------------------------------------
// some parameters get passed through the environment
//------------------------------------------------------------------------------------------------
char json[1024], overlap[1024];
float overlapCut = -1;
if (gSystem->Getenv("MIT_PROD_JSON"))
sprintf(json, "%s",gSystem->Getenv("MIT_PROD_JSON"));
else {
sprintf(json, "%s", "~");
//printf(" JSON file was not properly defined. EXIT!\n");
//return;
}
TString jsonFile = TString("/home/fabstoec/cms/json/") + TString(json);
//TString jsonFile = TString("/home/auhess/cms/json/") + TString("Cert_136033-149442_7TeV_Dec22ReReco_Collisions10_JSON_v4.txt");
Bool_t isData = ( (jsonFile.CompareTo("/home/fabstoec/cms/json/~") != 0) );
if (gSystem->Getenv("MIT_PROD_OVERLAP")) {
sprintf(overlap,"%s",gSystem->Getenv("MIT_PROD_OVERLAP"));
if (EOF == sscanf(overlap,"%f",&overlapCut)) {
printf(" Overlap was not properly defined. EXIT!\n");
return;
}
}
else {
sprintf(overlap,"%s", "-1.0");
//printf(" OVERLAP file was not properly defined. EXIT!\n");
//return;
}
printf("\n Initialization worked. \n\n");
//isData = kFALSE;
//------------------------------------------------------------------------------------------------
// some global setups
//------------------------------------------------------------------------------------------------
using namespace mithep;
gDebugMask = Debug::kGeneral;
gDebugLevel = 3;
//------------------------------------------------------------------------------------------------
// set up information
//------------------------------------------------------------------------------------------------
RunLumiSelectionMod *runLumiSel = new RunLumiSelectionMod;
runLumiSel->SetAcceptMC( kTRUE ); // Monte Carlo events are always accepted
MVASystematicsMod *sysMod = new MVASystematicsMod;
sysMod->SetMCR9Scale(1.0035, 1.0035);
sysMod->SetIsData(isData);
// only select on run- and lumisection numbers when valid json file present
if ((jsonFile.CompareTo("/home/fabstoec/cms/json/~") != 0) &&
(jsonFile.CompareTo("/home/fabstoec/cms/json/-") != 0) ) {
runLumiSel->AddJSONFile(jsonFile.Data());
}
if ((jsonFile.CompareTo("/home/fabstoec/cms/json/-") == 0) ) {
printf("\n WARNING -- Looking at data without JSON file: always accept.\n\n");
runLumiSel->SetAbortIfNotAccepted(kFALSE); // accept all events if there is no valid JSON file
}
//printf("\n Run lumi worked. \n\n");
//------------------------------------------------------------------------------------------------
// HLT information
//------------------------------------------------------------------------------------------------
HLTMod *hltModll = new HLTMod("HLTModll");
// hltModll->AddTrigger("HLT_Ele17_CaloIdT_TrkIdVL_CaloIsoVL_TrkIsoVL_Ele8_CaloIdT_TrkIdVL_CaloIsoVL_TrkIsoVL_v*",161217, 166967);
// hltModll->AddTrigger("HLT_Ele17_CaloIdT_CaloIsoVL_TrkIdVL_TrkIsoVL_Ele8_CaloIdT_CaloIsoVL_TrkIdVL_TrkIsoVL_v*",167039, 196531);
// hltModll->AddTrigger("HLT_DoubleMu7_v*", 160431, 163869);
// hltModll->AddTrigger("HLT_Mu13_Mu8_v*", 165088, 178380);
// hltModll->AddTrigger("HLT_Mu17_Mu8_v*", 178420, 196531);
hltModll->AddTrigger("HLT_Mu17_Mu8_v*", 0, 196531);
// hltModll->AddTrigger("HLT_Mu17_TkMu8_v*", 178420, 196531);
// hltModll->AddTrigger("HLT_Mu22_Mu8_v*", 178420, 196531);
//hltModll->AddTrigger("HLT_Mu22_TkMu8_v*", 178420, 196531);
// hltModll->AddTrigger("HLT_IsoMu24_v*", 178420, 196531);
// hltModll->AddTrigger("HLT_IsoMu24_eta2p1_v*", 178420, 196531);
hltModll->SetTrigObjsName("MyHltElecObjs");
// hltModll->SetAbortIfNotAccepted( false );
hltModll->SetAbortIfNotAccepted( true );
//------------------------------------------------------------------------------------------------
// select events with a good primary vertex
//------------------------------------------------------------------------------------------------
GoodPVFilterMod *goodPVFilterMod = new GoodPVFilterMod;
goodPVFilterMod->SetMinVertexNTracks(0);
goodPVFilterMod->SetMinNDof (4.0);
//.........这里部分代码省略.........
示例13: runPhRes
//--------------------------------------------------------------------------------------------------
void runPhRes(const char *fileset = "0000",
const char *skim = "noskim",
const char *dataset = "w10-zz-z2-v8-pu",
//const char *dataset = "r10b-pho-d22",
const char *book = "t2mit/filefi/017",
const char *catalogDir = "/home/cmsprod/catalog",
const char *outputName = "hgg",
int nEvents = 1000)
{
//------------------------------------------------------------------------------------------------
// some parameters get passed through the environment
//------------------------------------------------------------------------------------------------
char json[1024], overlap[1024];
float overlapCut = -1;
if (gSystem->Getenv("MIT_PROD_JSON"))
sprintf(json, "%s",gSystem->Getenv("MIT_PROD_JSON"));
else {
printf(" JSON file was not properly defined. EXIT!\n");
return;
}
//TString jsonFile = TString("/home/cmsprod/json/") + TString(json);
TString jsonFile = TString("/home/fabstoec/cms/json/") + TString(json);
Bool_t isData = ( (jsonFile.CompareTo("/home/fabstoec/cms/json/~") != 0) );
if (gSystem->Getenv("MIT_PROD_OVERLAP")) {
sprintf(overlap,"%s",gSystem->Getenv("MIT_PROD_OVERLAP"));
if (EOF == sscanf(overlap,"%f",&overlapCut)) {
printf(" Overlap was not properly defined. EXIT!\n");
return;
}
}
else {
printf(" OVERLAP file was not properly defined. EXIT!\n");
return;
}
printf("\n Initialization worked. \n\n");
//------------------------------------------------------------------------------------------------
// some global setups
//------------------------------------------------------------------------------------------------
using namespace mithep;
gDebugMask = Debug::kGeneral;
gDebugLevel = 3;
//------------------------------------------------------------------------------------------------
// set up information
//------------------------------------------------------------------------------------------------
RunLumiSelectionMod *runLumiSel = new RunLumiSelectionMod;
runLumiSel->SetAcceptMC(kTRUE); // Monte Carlo events are always accepted
// only select on run- and lumisection numbers when valid json file present
if ((jsonFile.CompareTo("/home/fabstoec/cms/json/~") != 0) &&
(jsonFile.CompareTo("/home/fabstoec/cms/json/-") != 0) ) {
runLumiSel->AddJSONFile(jsonFile.Data());
}
if ((jsonFile.CompareTo("/home/cmsprod/json/-") == 0) ) {
printf("\n WARNING -- Looking at data without JSON file: always accept.\n\n");
runLumiSel->SetAbortIfNotAccepted(kFALSE); // accept all events if there is no valid JSON file
}
printf("\n Run lumi worked. \n\n");
//------------------------------------------------------------------------------------------------
// HLT information
//------------------------------------------------------------------------------------------------
HLTMod *hltModEle = new HLTMod("HltModEle");
hltModEle->AddTrigger("HLT_Ele32_CaloIdL_CaloIsoVL_SC17_v1");
hltModEle->AddTrigger("HLT_Ele32_CaloIdL_CaloIsoVL_SC17_v2");
hltModEle->AddTrigger("HLT_Ele32_CaloIdL_CaloIsoVL_SC17_v3");
hltModEle->AddTrigger("HLT_Ele32_CaloIdL_CaloIsoVL_SC17_v4");
hltModEle->AddTrigger("HLT_Ele32_CaloIdL_CaloIsoVL_SC17_v5");
hltModEle->AddTrigger("HLT_Ele32_CaloIdL_CaloIsoVL_SC17_v6");
hltModEle->AddTrigger("HLT_Ele32_CaloIdL_CaloIsoVL_SC17_v7");
hltModEle->AddTrigger("HLT_Ele32_CaloIdL_CaloIsoVL_SC17_v8");
hltModEle->SetTrigObjsName("MyHltPhotObjsEle");
hltModEle->SetAbortIfNotAccepted(isData);
//------------------------------------------------------------------------------------------------
// select events with a good primary vertex
//------------------------------------------------------------------------------------------------
GoodPVFilterMod *goodPVFilterMod = new GoodPVFilterMod;
goodPVFilterMod->SetMinVertexNTracks(0);
goodPVFilterMod->SetMinNDof (5);
goodPVFilterMod->SetMaxAbsZ (24.0);
goodPVFilterMod->SetMaxRho (2.0);
goodPVFilterMod->SetIsMC(!isData);
PhotonIDMod *photId = new PhotonIDMod;
photId-> SetIsoType("MITPUCorrected");
photId-> SetApplySpikeRemoval(false);
photId-> SetApplyPixelSeed(false);
photId-> SetApplyElectronVetoConvRecovery(false);
photId-> SetApplyConversionId(false);
photId-> SetHadOverEmMax(0.05);
photId-> SetPtMin(20.);
photId-> SetEtaWidthEB(0.010);
photId-> SetEtaWidthEE(0.028);
//.........这里部分代码省略.........
示例14: runFlatMonoJet
//--------------------------------------------------------------------------------------------------
void runFlatMonoJet(const char *fileset = "0000",
const char *skim = "noskim",
const char *dataset = "s12-wjets-ptw100-v7a",
const char *book = "t2mit/filefi/031",
const char *catalogDir = "/home/cmsprod/catalog",
const char *outputName = "MonoJet_August13",
int nEvents = 100)
{
//------------------------------------------------------------------------------------------------
// some parameters get passed through the environment
//------------------------------------------------------------------------------------------------
char json[1024], overlap[1024];
float overlapCut = -1;
if (gSystem->Getenv("MIT_PROD_JSON"))
sprintf(json, "%s",gSystem->Getenv("MIT_PROD_JSON"));
else {
sprintf(json, "%s", "~");
}
TString jsonFile = TString("/home/cmsprod/cms/json/") + TString(json);
std::cout<<"JSON "<<jsonFile<<std::endl;
Bool_t isData = ( (jsonFile.CompareTo("/home/cmsprod/cms/json/~") != 0) );
std::cout<<"*********** Is data?? **********"<<isData<<std::endl;
if (gSystem->Getenv("MIT_PROD_OVERLAP")) {
sprintf(overlap,"%s",gSystem->Getenv("MIT_PROD_OVERLAP"));
if (EOF == sscanf(overlap,"%f",&overlapCut)) {
printf(" Overlap was not properly defined. EXIT!\n");
return;
}
}
else {
sprintf(overlap,"%s", "-1.0");
//printf(" OVERLAP file was not properly defined. EXIT!\n");
//return;
}
printf("\n Initialization worked \n");
//------------------------------------------------------------------------------------------------
// some global setups
//------------------------------------------------------------------------------------------------
using namespace mithep;
gDebugMask = Debug::kGeneral;
gDebugLevel = 3;
//------------------------------------------------------------------------------------------------
// set up information
//------------------------------------------------------------------------------------------------
RunLumiSelectionMod *runLumiSel = new RunLumiSelectionMod;
runLumiSel->SetAcceptMC(!isData);
runLumiSel->SetAbortIfNotAccepted(kFALSE); // accept all events if there is no valid JSON file
// only select on run- and lumisection numbers when valid json file present
if ((jsonFile.CompareTo("/home/cmsprod/cms/json/~") != 0) &&
(jsonFile.CompareTo("/home/cmsprod/cms/json/-") != 0) ) {
runLumiSel->AddJSONFile(jsonFile.Data());
}
if ((jsonFile.CompareTo("/home/cmsprod/cms/json/-") == 0) ) {
printf("\n WARNING -- Looking at data without JSON file: always accept.\n\n");
}
printf("\n Run lumi worked\n");
// Generator info
GeneratorMod *generatorMod = new GeneratorMod;
generatorMod->SetPrintDebug(kFALSE);
generatorMod->SetPtLeptonMin(0.0);
generatorMod->SetEtaLeptonMax(2.7);
generatorMod->SetPtPhotonMin(0.0);
generatorMod->SetEtaPhotonMax(2.7);
generatorMod->SetPtRadPhotonMin(0.0);
generatorMod->SetEtaRadPhotonMax(2.7);
generatorMod->SetIsData(isData);
generatorMod->SetFillHist(!isData);
generatorMod->SetApplyISRFilter(kFALSE);
generatorMod->SetApplyVVFilter(kFALSE);
generatorMod->SetApplyVGFilter(kFALSE);
generatorMod->SetFilterBTEvents(kFALSE);
//-----------------------------------------------------------------------------------------------------------
// HLT information : trigger not applied (neither for data nor for MC, store info to apply selection offline
//-----------------------------------------------------------------------------------------------------------
HLTMod *hltModP = new HLTMod("HLTModP");
// monojet triggers
TString monoJetTriggers[12] = {"HLT_MonoCentralPFJet80_PFMETnoMu105_NHEF0p95_v4", "HLT_MonoCentralPFJet80_PFMETnoMu105_NHEF0p95_v3", "HLT_MonoCentralPFJet80_PFMETnoMu105_NHEF0p95_v1", "HLT_MonoCentralPFJet80_PFMETnoMu95_NHEF0p95_v5", "HLT_MonoCentralPFJet80_PFMETnoMu95_NHEF0p95_v4", "HLT_MonoCentralPFJet80_PFMETnoMu95_NHEF0p95_v3", "HLT_MonoCentralPFJet80_PFMETnoMu95_NHEF0p95_v2","HLT_MET120_HBHENoiseCleaned_v6", "HLT_MET120_HBHENoiseCleaned_v5", "HLT_MET120_HBHENoiseCleaned_v4", "HLT_MET120_HBHENoiseCleaned_v3", "HLT_MET120_HBHENoiseCleaned_v2"};
for (int i=0; i<12; i++) {
hltModP->AddTrigger(monoJetTriggers[i],0,999999); //jet 85 , met 90
hltModP->AddTrigger(TString("!"+monoJetTriggers[i]),0,999999); //jet 85 , met 90
}
// VBF triggers
TString vbfTriggers[12] = {"HLT_DiPFJet40_PFMETnoMu65_MJJ800VBF_AllJets_v9", "HLT_DiPFJet40_PFMETnoMu65_MJJ800VBF_AllJets_v8", "HLT_DiPFJet40_PFMETnoMu65_MJJ800VBF_AllJets_v6", "HLT_DiPFJet40_PFMETnoMu65_MJJ800VBF_AllJets_v5", "HLT_DiPFJet40_PFMETnoMu65_MJJ800VBF_AllJets_v4", "HLT_DiPFJet40_PFMETnoMu65_MJJ800VBF_AllJets_v3", "HLT_DiPFJet40_PFMETnoMu65_MJJ800VBF_AllJets_v2"};
for (int i=0; i<12; i++) {
hltModP->AddTrigger(vbfTriggers[i],0,999999); //jet 85 , met 90
hltModP->AddTrigger(TString("!"+vbfTriggers[i]),0,999999); //jet 85 , met 90
//.........这里部分代码省略.........
示例15: runShowerCorrections
//--------------------------------------------------------------------------------------------------
void runShowerCorrections(const char *fileset = "0000",
const char *skim = "noskim",
// const char *dataset = "s12-zllm50-v7n",
// const char *dataset = "r10b-pho-d22",
const char *dataset = "r12a-pho-j22-v1",
// const char *book = "local/filefi/031",
// const char *book = "t2mit/filefi/030",
const char *book = "t2mit/filefi/029",
const char *catalogDir = "/home/cmsprod/catalog",
const char *outputName = "hgg",
int nEvents = 10000)
{
//------------------------------------------------------------------------------------------------
// some parameters get passed through the environment
//------------------------------------------------------------------------------------------------
char json[1024], overlap[1024];
float overlapCut = -1;
if (gSystem->Getenv("MIT_PROD_JSON"))
sprintf(json, "%s",gSystem->Getenv("MIT_PROD_JSON"));
else {
printf(" JSON file was not properly defined. EXIT!\n");
return;
}
//TString jsonFile = TString("/home/cmsprod/json/") + TString(json);
TString jsonFile = TString("/home/fabstoec/cms/json/") + TString(json);
Bool_t isData = ( (jsonFile.CompareTo("/home/fabstoec/cms/json/~") != 0) );
if (gSystem->Getenv("MIT_PROD_OVERLAP")) {
sprintf(overlap,"%s",gSystem->Getenv("MIT_PROD_OVERLAP"));
if (EOF == sscanf(overlap,"%f",&overlapCut)) {
printf(" Overlap was not properly defined. EXIT!\n");
return;
}
}
else {
printf(" OVERLAP file was not properly defined. EXIT!\n");
return;
}
//------------------------------------------------------------------------------------------------
// some global setups
//------------------------------------------------------------------------------------------------
using namespace mithep;
gDebugMask = Debug::kGeneral;
gDebugLevel = 3;
//------------------------------------------------------------------------------------------------
// set up information
//------------------------------------------------------------------------------------------------
RunLumiSelectionMod *runLumiSel = new RunLumiSelectionMod;
runLumiSel->SetAcceptMC(kTRUE); // Monte Carlo events are always accepted
// only select on run- and lumisection numbers when valid json file present
if ((jsonFile.CompareTo("/home/fabstoec/cms/json/~") != 0) &&
(jsonFile.CompareTo("/home/fabstoec/cms/json/-") != 0) ) {
runLumiSel->AddJSONFile(jsonFile.Data());
}
if ((jsonFile.CompareTo("/home/cmsprod/json/-") == 0) ) {
printf("\n WARNING -- Looking at data without JSON file: always accept.\n\n");
runLumiSel->SetAbortIfNotAccepted(kFALSE); // accept all events if there is no valid JSON file
}
printf("\n Run lumi worked. \n\n");
//------------------------------------------------------------------------------------------------
// HLT information
//------------------------------------------------------------------------------------------------
HLTMod *hltModE = new HLTMod("HLTModE");
/// HLT paths for tag and probe in 2012
hltModE->AddTrigger("HLT_Ele17_CaloIdVT_CaloIsoVT_TrkIdT_TrkIsoVT_Ele8_Mass50_v*");
hltModE->AddTrigger("HLT_Ele20_CaloIdVT_CaloIsoVT_TrkIdT_TrkIsoVT_SC4_Mass50_v*");
hltModE->AddTrigger("HLT_Ele32_CaloIdT_CaloIsoT_TrkIdT_TrkIsoT_SC17_Mass50_v*");
hltModE->SetTrigObjsName("MyHltElecObjs");
hltModE->SetAbortIfNotAccepted(kFALSE);
//------------------------------------------------------------------------------------------------
// select events with a good primary vertex
//------------------------------------------------------------------------------------------------
GoodPVFilterMod *goodPVFilterMod = new GoodPVFilterMod;
goodPVFilterMod->SetMinVertexNTracks(0);
goodPVFilterMod->SetMinNDof (5);
goodPVFilterMod->SetMaxAbsZ (24.0);
goodPVFilterMod->SetMaxRho (2.0);
goodPVFilterMod->SetIsMC (!isData);
// our MIT Photons ID with iverted veto - we are looking at electrons
PhotonIDMod *photidpreselinvert = new PhotonIDMod("PhotonIDModPreselInvert");
photidpreselinvert->SetPtMin(15.);
photidpreselinvert->SetOutputName("GoodPhotonsPreselidInvert");
photidpreselinvert->SetIDType("MITPFSelectionNoEcal");
//photidpreselinvert->SetIDType("TrivialSelection");
photidpreselinvert->SetIdMVAType("2013FinalIdMVA");
photidpreselinvert->SetApplyElectronVeto(kFALSE);
photidpreselinvert->SetInvertElectronVeto(kTRUE);
photidpreselinvert->SetIsData(isData);
//photidpreselinvert->SetApplyFiduciality(kFALSE);
//.........这里部分代码省略.........