Print

Print


Commit in lcsim-contrib/src/main/java/org/lcsim/contrib/SteveMagill on MAIN
CherClusDriver.java+127-221.1 -> 1.2

lcsim-contrib/src/main/java/org/lcsim/contrib/SteveMagill
CherClusDriver.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- CherClusDriver.java	12 Aug 2009 18:23:26 -0000	1.1
+++ CherClusDriver.java	14 Feb 2012 19:35:08 -0000	1.2
@@ -24,7 +24,8 @@
 //  use DIGISIM - makes threshold and timing cuts from steering file CCAL001.steer
        add(new CalHitMapDriver());
        DigiSimDriver digi = new DigiSimDriver();
-       String dsteer = ("C:\\LC Data\\CCAL002M10.steer");
+//       String dsteer = ("C:\\LC Data\\CCAL002M10.steer");
+       String dsteer = ("C:\\LC Data\\CCAL002M50.steer");
        digi.setSteeringFile(dsteer);
        add(digi);
        add(new SimCalorimeterHitsDriver());
@@ -134,6 +135,7 @@
 
 //  check MC for qqbar M and E and make MC Particle jets if generated this way
 //  make the perfect DR objects into perfect ReconstructedParticles
+//  Also calculates deltaM from true MC tracks
        MCqqbarME mcme = new MCqqbarME();
        String mcrpname = ("MCFSRecoParticles");
        mcme.setMCParticleName(fname);
@@ -141,7 +143,7 @@
        add(mcme);
 
 //  get tracks from MC for now, eventually get from reconstructed track list
-//  need tracks for some algorithms
+//  need tracks for some algorithms  DONT NEED THIS ANYMORE
 //       String outptrack = ("PerfectTracks");
 //       MCFSTrackDriver ptrack = new MCFSTrackDriver();
 //       ptrack.setMCFSNames(fname);
@@ -155,6 +157,38 @@
        mtprop.setTrMCRelationName(mtrelation);
        add(mtprop);
 
+//  make a track to RP routine so jet finding can be done with tracks only
+       TrackToRPDriver trpdriver = new TrackToRPDriver();
+       trpdriver.setInputTrackList(outFastMC);
+       trpdriver.setTrRPName("TrackRecoParticles");
+       add(trpdriver);
+
+//  check value of event mass using Nayeli's combined true deltaM and ceren corrections
+//  argument is fraction of total ESum (uncorrected Scin) required to eliminate leakage
+//       double tefrac = 0.90;
+//       double scal = 1.0079;
+//       double ccal = 7711.4;
+//       TotalEventMassDriver temdriver = new TotalEventMassDriver(scal, ccal, tefrac);
+//       temdriver.setMCFSRecoPNames(mcrpname);
+//       temdriver.setDeltaMName("MCDelM");
+//       add(temdriver);
+
+//  find jets with tracks and calculate deltaM for each track jet
+       JetDriver trjet = new JetDriver();
+       trjet.setInputCollectionName("TrackRecoParticles");
+       trjet.setOutputCollectionName("TrRPJets");
+//       JetFinder tworealjets = new FixNumberOfJetsFinder(2);  // uses Jade by default
+//       mcjet.setFinder(tworealjets);
+       DurhamJetFinder kttrjet = new DurhamJetFinder(0.02);
+       JetFinder twokttrjets = new FixNumberOfJetsFinder(2,kttrjet);
+       trjet.setFinder(twokttrjets);
+//       JetFinder sixrealjets = new FixNumberOfJetsFinder(6);
+//       PFAjet.setFinder(sixrealjets);
+       //  for Durham jet, ycut = 0.25 at ZPole, 0.01 at 500 GeV ZZ
+//       JetFinder rktjet = new DurhamJetFinder(0.1025);
+//       mcjet.setFinder(rktjet);
+       add(trjet);
+
 //  now get mip hits - use cerenkov light to find mip trace and interaction point
 //  this calorimeter has large visible back-scattering since no non-active absorber
 //  interaction layer is embedded in the shower and found by directional light going
@@ -174,6 +208,21 @@
        tmcdriver.setTrMipClusName("TMClusters");
        add(tmcdriver);
 
+//  add driver here to get delta M correction from all tracks and their endpoints
+       TrBMCorr tbmdriver = new TrBMCorr();
+       tbmdriver.setInputTrackList(outFastMC);
+       tbmdriver.setTrackSpacepointMap("TrackILPosMap");
+       tbmdriver.setDeltaMObjectName("TrDelM");
+       add(tbmdriver);
+
+       //  get DeltaM from tracks in each track jet and make map
+       TJetBMCorr tjbmdriver = new TJetBMCorr();
+       tjbmdriver.setInputJetList("TrRPJets");
+       tjbmdriver.setTrackSpacepointMap("TrackILPosMap");
+       tjbmdriver.setDeltaMObjectName("TJetDelM");
+       tjbmdriver.setTrackDelMMap("TJetDMMap");
+       add(tjbmdriver);
+
 //  make modified hit collections from hitmaps modified by mip finder
        HitMapToHitListDriver eblist = new HitMapToHitListDriver();
        eblist.setInputHitMap("ChEBarrhitmap");
@@ -222,6 +271,14 @@
        chadidmap.setOutMapname(chadidoutmap);
        add(chadidmap);
 
+       //  try to make one map for all cerenkov hits
+       IDHitMapDriver cidmap = new IDHitMapDriver();
+       String[] cidnames = {"Ceren_EcalBarrDigiHits","Ceren_EcalEndcapDigiHits","Ceren_HcalBarrDigiHits","Ceren_HcalEndcapDigiHits"};
+       String cidoutmap = "ChIDMap";
+       cidmap.setInHitnames(cidnames);
+       cidmap.setOutMapname(cidoutmap);
+       add(cidmap);
+
 //  make some test histos for cal
        ChCalHitDriver ccalhits = new ChCalHitDriver();
        String[] sccollnames = {"Edep_EcalBarrDigiHits","Edep_HcalBarrDigiHits","Edep_EcalEndcapDigiHits","Edep_HcalEndcapDigiHits"};
@@ -281,16 +338,6 @@
 //       DTHBdriver.setDebugLevel(idbug);
 //       add(DTHBdriver);
        
-       //  try out cluster pointing algorithm here
-//       double mdisip = 0.20;
-//       double mdisil = 0.04;  // default is 0.04 from ZZ events
-//       double mdiscl = 0.07;  // default 0.07  from ZZ events
-//       ClusterPointAlgDriver clpdriver = new ClusterPointAlgDriver(mdisip,mdisil,mdiscl);
-//       clpdriver.setInputClusterList("AllCandClusters");
-//       String[] ptclnames = {"IPClusters","ILSPClusters","NPClusters"};
-//       clpdriver.setOutputClusterLists(ptclnames);
-//       add(clpdriver);
-
 //  combine scintillator clusters into a single cluster list
        String[] inList = {"Edep_EcalBarrDigiHitsNNSClus","Edep_HcalBarrDigiHitsNNSClus","Edep_EcalEndcapDigiHitsNNSClus","Edep_HcalEndcapDigiHitsNNSClus"};
        String outList = "AllNNSClus";
@@ -328,9 +375,10 @@
        double mdisil = 0.04;  // .03 to .04 seems to be best for gas, scint
        double mdiscl = 0.07;
        ClPointDriver clpdriver = new ClPointDriver(mdisip,mdisil,mdiscl);
-       clpdriver.setInputClusterName("AllNNSClus");
+       clpdriver.setInputClusterList("AllNNSClus");
        String[] clpnames = {"ILSPClusters","IPClusters","NPClusters"};
-       clpdriver.setOutputClusterLists(clpnames);
+       clpdriver.setOutPointClusterLists(clpnames);
+       clpdriver.setTrackILPosMap("TrackILPosMap");
        add(clpdriver);
 
        //  try to merge em and had clusters for scintillator signal in barrel
@@ -405,8 +453,8 @@
 //       double ldist = 0.05;
 //       SChClLinkDriver linkdriver = new SChClLinkDriver(ldist);
 //       String linkmap = ("SChHClusMap");
-//       linkdriver.setInputScinClusterName(outshList);
-//       linkdriver.setInputCherClusterName(outchList);
+//       linkdriver.setInputScinClusterName("AllNNSClus");
+//       linkdriver.setInputCherClusterName("AllNNCClus");
 //       linkdriver.setOutputLinkMapName(linkmap);
 //       add(linkdriver);
 
@@ -415,9 +463,57 @@
 //       sccdriver.setScChMapName(linkmap);
 //       add(sccdriver);
 
-       //  make Scin clusters into Rec Part for input to jet algorithm
-       double scalib = 1.047;
-       ClusterToRPDriver clrpdriver = new ClusterToRPDriver(scalib);
+//  Make scintillator clusters into reco particles after correcting with ceren hits
+//  which match the scintillator cluster hits (use maps)
+       double scalib = 1.0079;
+       double ccalib = 7711.4;
+       double pa1 = 0.587;
+       double pa2 = 0.173;
+       double pa3 = -.291;
+       double pa4 = 0.531;
+       double scclus = 1.02;
+       double chclus = 1.05;
+       CorrScClusToRPDriver csdriver = new CorrScClusToRPDriver(scalib, ccalib, pa1, pa2, pa3, pa4, scclus, chclus);
+       String CorrRPName = ("CorrRecoParticles");
+       csdriver.setClusterNames("AllNNSClus");
+       csdriver.setRecoParticleName(CorrRPName);
+       add(csdriver);
+
+//  find jets with Corrected Scin Cluster Reco Particles
+       JetDriver cojet = new JetDriver();
+       cojet.setInputCollectionName(CorrRPName);
+       cojet.setOutputCollectionName("CorrRPJets");
+//       JetFinder tworealjets = new FixNumberOfJetsFinder(2);  // uses Jade by default
+//       cljet.setFinder(tworealjets);
+       DurhamJetFinder ktcojet = new DurhamJetFinder(0.02);
+       JetFinder twoktcojets = new FixNumberOfJetsFinder(2,ktcojet);
+       cojet.setFinder(twoktcojets);
+//       JetFinder sixrealjets = new FixNumberOfJetsFinder(6);
+//       PFAjet.setFinder(sixrealjets);
+       //  for Durham jet, ycut = 0.25 at ZPole, 0.01 at 500 GeV ZZ
+//       JetFinder rktjet = new DurhamJetFinder(0.1025);
+//       mcjet.setFinder(rktjet);
+       add(cojet);
+
+//  link these jets with track jets
+       double ctdist = 0.7;
+       STrJetLinkDriver cstdriver = new STrJetLinkDriver(ctdist);
+       String cstlinkmap = ("CSTrJetMap");
+       cstdriver.setInputScinJetName("CorrRPJets");
+       cstdriver.setInputTrackJetName("TrRPJets");
+       cstdriver.setOutputLinkMapName(cstlinkmap);
+       add(cstdriver);
+
+//  calculate (di)jet mass with these jets
+       CorrRPdijetm codjm = new CorrRPdijetm();
+       codjm.setInputScinJets("CorrRPJets");
+       codjm.setSTJetMap(cstlinkmap);
+       codjm.setTJetDMMap("TJetDMMap");
+       add(codjm);
+
+//  make Scin clusters into Rec Part for input to jet algorithm
+//       double scalib = 1.047;
+       CalibClusterToRPDriver clrpdriver = new CalibClusterToRPDriver(scalib);
        String RPname = ("SClusRecParticles");
 //       clrpdriver.setClusterNames("AllMergedSClus");  //  uses merged clusters
        clrpdriver.setClusterNames("AllNNSClus");  //  uses all Scin clusters
@@ -425,9 +521,9 @@
        clrpdriver.setRecoParticleName(RPname);
        add(clrpdriver);
 
-       //  make Ceren clusters into Rec Part for input to jet algorithm
-       double ccalib = 7913.0;
-       ClusterToRPDriver cclrpdriver = new ClusterToRPDriver(ccalib);
+//  make Ceren clusters into Rec Part for input to jet algorithm
+//       double ccalib = 7913.0;
+       CalibClusterToRPDriver cclrpdriver = new CalibClusterToRPDriver(ccalib);
        String cRPname = ("CClusRecParticles");
 //       cclrpdriver.setClusterNames("AllMergedCClus");  // uses merged clusters
        cclrpdriver.setClusterNames("AllNNCClus");  //  uses all Ceren clusters
@@ -495,6 +591,14 @@
        jlinkdriver.setOutputLinkMapName(jlinkmap);
        add(jlinkdriver);
 
+       //  link track jets and scintillator jets by map
+       STrJetLinkDriver tlinkdriver = new STrJetLinkDriver(jdist);
+       String tlinkmap = ("STrJetMap");
+       tlinkdriver.setInputScinJetName("SClusRPJets");
+       tlinkdriver.setInputTrackJetName("TrRPJets");
+       tlinkdriver.setOutputLinkMapName(tlinkmap);
+       add(tlinkdriver);
+
        MCRPdijetm djm = new MCRPdijetm();
        djm.setInputJets("MCRPJets");
        add(djm);
@@ -502,6 +606,7 @@
        SRPdijetm sdjm = new SRPdijetm();
        sdjm.setInputScChJetMap(jlinkmap);
        sdjm.setInputScinJets("SClusRPJets");
+       sdjm.setDeltaMCorr("TrDelM");
        add(sdjm);
 
    }
CVSspam 0.2.12


Use REPLY-ALL to reply to list

To unsubscribe from the LCD-CVS list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCD-CVS&A=1