Commit in lcsim-contrib/src/main/java/org/lcsim/contrib/SteveMagill on MAIN | |||
CherClusDriver.java | +127 | -22 | 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); }
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