attach_mrcc_path_near.h File Reference

Go to the source code of this file.

Functions

JobCPathattach_mrcc_path_near (JobC &jc, JobCPath &attach_to, int spill_m, TString config, bool blinding, SimFlag::SimFlag_t simflag, TString output_filename="ntupleMRNT.root")

Function Documentation

JobCPath& attach_mrcc_path_near ( JobC jc,
JobCPath attach_to,
int  spill_m,
TString  config,
bool  blinding,
SimFlag::SimFlag_t  simflag,
TString  output_filename = "ntupleMRNT.root" 
)

Definition at line 1 of file Dogwood/headers/attach_mrcc_path_near.h.

References JobCPath::Attach(), JobCModule::Cmd(), JobCPathModule::Create(), JobCNode::FilterOn(), Plot::Format(), SimFlag::kData, SimFlag::kMC, JobCPath::Mod(), JobCPath::Node(), JobC::Path, JobCPath::PushBack(), JobCModule::Set(), and JobCPath::SetAllFilters().

00008 {
00009   assert(simflag == SimFlag::kData || simflag == SimFlag::kMC);
00010 
00011   // For use in making unique job path names
00012   const TString blindStr = blinding ? "Blind" : "";
00013 
00014   JobCPath& removal = jc.Path.Create("muonremoval"+blindStr,
00015                                      "FiltTriggerPrescale::Ana ");
00016 
00017   JobCPath& muonreco = jc.Path.Create("muonreco"+blindStr);
00018 
00019   muonreco.PushBack("RemoveMuon", "Reco");
00020   muonreco.PushBack("StripCands", "Reco");
00021   muonreco.PushBack("StripSRListModule", "Reco");
00022   muonreco.PushBack("SliceSRListModule", "Reco");
00023   muonreco.PushBack("TrackCamListModule", "Reco");
00024   muonreco.PushBack("FitTrackCamListModule", "Reco");
00025   muonreco.PushBack("ClusterSRListModule", "Reco");
00026   muonreco.PushBack("SubShowerSRListModule", "Reco");
00027   muonreco.PushBack("ShowerSRListModule", "Reco");
00028   muonreco.PushBack("EventSRListModule", "Reco");
00029   muonreco.PushBack("RecordSetupModule", "Reco");
00030 
00031   if(simflag == SimFlag::kData)
00032     muonreco.PushBack("NtpBDLite", "Reco");
00033 
00034   muonreco.PushBack("NtpStModule", "Get");
00035   muonreco.PushBack("NtpSRModule", "Reco");
00036 
00037   if(simflag == SimFlag::kMC){
00038     muonreco.PushBack("NtpMCModule", "Reco"); //Necessary to write the MC info tree
00039     JobCModule& ntpmc = muonreco.Mod("NtpMCModule");
00040     ntpmc.Set("UseStandard=1");
00041     ntpmc.Set("RecordName=MuonRemoved");
00042 
00043     muonreco.PushBack("NtpTHModule", "Reco"); //Necessary to write the MC th tree
00044     JobCModule& ntpth = muonreco.Mod("NtpTHModule");
00045     ntpth.Set("UseStandard=1");
00046     ntpth.Set("RecordName=MuonRemoved");
00047   }
00048 
00049   muonreco.PushBack("FitTrackSAListModule", "Reco");
00050   muonreco.PushBack("NtpFitSAModule", "Reco");
00051   muonreco.PushBack("NtpMRModule", "Reco");
00052   muonreco.PushBack("Output", "Put");
00053 
00054   removal.Attach(&muonreco);
00055 
00056   removal.SetAllFilters(1);
00057 
00058   removal.Mod("FiltTriggerPrescale").Set(TString::Format("Spill_N=1    Spill_M=%d", spill_m));
00059 
00060   muonreco.SetAllFilters(0);
00061 
00062   //configure my code
00063   muonreco.Mod("RemoveMuon").Set("StripListOut=stripdigitlist");
00064   muonreco.Mod("StripCands").Set("keepdigitlist=stripdigitlist");
00065 
00066   //Post Muon removal reconstruction
00067   JobCModule& stripsrlist = muonreco.Mod("StripSRListModule");
00068   stripsrlist.Set("ListIn=canddigitlist");
00069 
00070   JobCModule& slicesrlist = muonreco.Mod("SliceSRListModule");
00071   slicesrlist.Set(("SliceListAlgConfig="+config).Data());
00072   slicesrlist.Set("ListIn=CandStripList");
00073 
00074   JobCModule& trackcamlist = muonreco.Mod("TrackCamListModule");
00075   trackcamlist.Set("TrackListAlgConfig=default");
00076   trackcamlist.Set("NameListIn=CandSliceList");
00077   trackcamlist.Set("NameListOut=CandTrackSRList");
00078 
00079   JobCModule& fittrackcam = muonreco.Mod("FitTrackCamListModule");
00080   fittrackcam.Set("NameListIn=CandTrackSRList");
00081   fittrackcam.Set("UseGeoSwimmer=1");
00082 
00083   muonreco.Mod("ClusterSRListModule").Set(("ClusterListAlgConfig="+config).Data());
00084   muonreco.Mod("SubShowerSRListModule").Set("SubShowerSRListAlgConfig=default");
00085   JobCModule& showersrlist = muonreco.Mod("ShowerSRListModule");
00086   showersrlist.Set("ShowerListAlgorithm=AlgShowerSSList");
00087   showersrlist.Set("ShowerListAlgConfig=default");
00088   showersrlist.Set("ListOut=CandShowerSRList");
00089 
00090   JobCModule& eventsrlist = muonreco.Mod("EventSRListModule");
00091   eventsrlist.Set("EventListAlgorithm=AlgEventSSList");
00092   eventsrlist.Set(("EventListAlgConfig="+config).Data());
00093 
00094 
00095   //configure output
00096   JobCModule& output = muonreco.Mod("Output");
00097   output.Set("FileName="+output_filename);
00098 
00099   muonreco.Mod("NtpStModule").Set("RecordName=MuonRemoved");
00100   muonreco.Mod("NtpSRModule").Set("UseStandard=1");
00101   muonreco.Mod("NtpSRModule").Set("RecordName=MuonRemoved");
00102 
00103   output.Cmd("DefineStream NtpSt NtpStRecord MuonRemoved");
00104   output.Cmd("DefineStream NtpMR NtpMRRecord");
00105   output.Set("Streams=NtpSt,NtpMR");
00106 
00107 
00108   if(blinding){
00109     JobCPath& mrblindpath = jc.Path.Create("mrblindpath",
00110                                            "Blinder::Ana "
00111                                            );
00112 
00113     //Explicitly turn on the Blinder Filtering
00114     mrblindpath.Node("Blinder::Ana").FilterOn();
00115 
00116     JobCPath& mrblindSR = jc.Path.Create("mrblindSR",
00117                                          "Output::Put ");
00118 
00119     mrblindSR.SetAllFilters(false);
00120 
00121     mrblindpath.Attach(&mrblindSR);
00122     muonreco.Attach(&mrblindpath);
00123 
00124     JobCModule& op = mrblindSR.Mod("Output");
00125     op.Set("FileName=ntupleMRNT.root");
00126     op.Cmd("DefineStream NtpSt NtpStRecord MuonRemoved");
00127     op.Cmd("DefineStream NtpMR NtpMRRecord");
00128     op.Set("Streams=NtpSt,NtpMR");
00129   } // end if blinding
00130 
00131 
00132   attach_to.Attach(&removal);
00133 
00134   return muonreco;
00135 }


Generated on 19 Jan 2018 for loon by  doxygen 1.6.1