00001 #include <StMaker.h>
00002
00003 #include <StjTPC.h>
00004 #include <StjBEMC.h>
00005
00006 #include <StjTrackListCut.h>
00007 #include <StjTrackCutDca.h>
00008 #include <StjTrackCutEta.h>
00009 #include <StjTrackCutPossibleHitRatio.h>
00010 #include <StjTrackCutFlag.h>
00011 #include <StjTrackCutNHits.h>
00012
00013 #include <StjTowerEnergyListCut.h>
00014 #include <StjTowerEnergyCutBemcWestOnly.h>
00015 #include <StjTowerEnergyCutEnergy.h>
00016 #include <StjTowerEnergyCutBemcStatus.h>
00017 #include <StjTowerEnergyCutAdc.h>
00018
00019 #include <StjTowerEnergyCorrectionForTracks.h>
00020
00021 #include <StjTowerEnergyListVariation.h>
00022 #include <StjTowerEnergyVariationEnergy.h>
00023
00024 #include <StjTrackTowerEnergyListToFourVecList.h>
00025
00026 #include <StjFourVecListCut.h>
00027 #include <StjFourVecCutPt.h>
00028
00029 #include <StjRunJetFinder.h>
00030 #include <StJetFinder/StConePars.h>
00031
00032 #include <StjJetListCut.h>
00033 #include <StjJetCutPt.h>
00034 #include <StjJetCutTrgBHT.h>
00035 #include <StjJetCutTrgBJP.h>
00036 #include <StjJetCutDetectorEta.h>
00037
00038 #include <StjTrgBEMCJetPatchTowerIdMap2005.h>
00039
00040 #include <StjJetListWriter.h>
00041 #include <StjDijetListWriter.h>
00042
00043 #include <StjTrackPrint.h>
00044 #include <StjTowerEnergyPrint.h>
00045 #include <StjFourVecPrint.h>
00046 #include <StjJetPrint.h>
00047
00048
00049 #include <StjDijetList.h>
00050 #include <StjDijetPrint.h>
00051
00052 #include <StjFormDijet.h>
00053
00054 #include <StjTrg.h>
00055 #include <StjVertex.h>
00056
00057 #include <TDirectory.h>
00058
00059 class StJetMakerB : public StMaker {
00060
00061 public:
00062
00063 StJetMakerB(const Char_t *name,
00064 StjTPC* tpc, StjBEMC* bemc,
00065 StjVertex* vertex,
00066 StjTrg* trgBJP1, StjTrg* trgBJP2, StjTrg* trgBHT1, StjTrg* trgBHT2,
00067 TDirectory* file)
00068 : StMaker(name), _file(file)
00069 , _tpc(tpc), _bemc(bemc)
00070 , _vertex(vertex)
00071 , _trgBJP1(trgBJP1), _trgBJP2(trgBJP2), _trgBHT1(trgBHT1), _trgBHT2(trgBHT2)
00072 { }
00073 virtual ~StJetMakerB() { }
00074
00075 private:
00076
00077 TDirectory* _file;
00078
00079 StjTPC* _tpc;
00080 StjBEMC* _bemc;
00081
00082 StjVertex* _vertex;
00083
00084 StjTrackListCut _tpcCut1;
00085 StjTrackListCut _tpcCut2;
00086
00087 StjTowerEnergyListCut _bemcCut1;
00088 StjTowerEnergyListCut _bemcCut2;
00089
00090 StjTowerEnergyCorrectionForTracks _towerEnergyCorrectionForTracks;
00091
00092 StjTowerEnergyListVariation _energyVariationNull;
00093 StjTowerEnergyListVariation _energyVariationPlus5;
00094 StjTowerEnergyListVariation _energyVariationMinus5;
00095 StjTowerEnergyListVariation _energyVariationPlus10;
00096 StjTowerEnergyListVariation _energyVariationMinus10;
00097
00098 StjTrackTowerEnergyListToFourVecList _toP4;
00099
00100 StjFourVecListCut _fourCut;
00101
00102 StjRunJetFinder _jetFinder;
00103
00104 StjJetListCut _jetCut;
00105 StjJetListCut _jetCutBHT2;
00106 StjJetListCut _jetCutBJP2;
00107 StjJetListCut _jetCut2;
00108
00109 StjJetListWriter* _jetListWriter;
00110
00111 StjFormDijet _formDijet;
00112
00113 StjDijetListWriter* _dijetListWriter;
00114
00115
00116 StjTrg* _trgBJP1;
00117 StjTrg* _trgBJP2;
00118 StjTrg* _trgBHT1;
00119 StjTrg* _trgBHT2;
00120
00121
00122 Int_t Init()
00123 {
00124 _tpcCut1.addCut(new StjTrackCutDca(3.0));
00125 _tpcCut1.addCut(new StjTrackCutEta(-2.0, 2.0));
00126 _tpcCut1.addCut(new StjTrackCutPossibleHitRatio(0.51));
00127
00128 _bemcCut1.addCut(new StjTowerEnergyCutBemcWestOnly());
00129 _bemcCut1.addCut(new StjTowerEnergyCutEnergy(0.0));
00130 _bemcCut1.addCut(new StjTowerEnergyCutBemcStatus(1));
00131 _bemcCut1.addCut(new StjTowerEnergyCutAdc(0, 2.0));
00132
00133 _tpcCut2.addCut(new StjTrackCutFlag(0));
00134 _tpcCut2.addCut(new StjTrackCutNHits(20));
00135
00136 _bemcCut2.addCut(new StjTowerEnergyCutEnergy(0.0));
00137
00138 _energyVariationNull.addVariation(new StjTowerEnergyVariationEnergy(0));
00139 _energyVariationPlus5.addVariation(new StjTowerEnergyVariationEnergy(0.05));
00140 _energyVariationMinus5.addVariation(new StjTowerEnergyVariationEnergy(-0.05));
00141 _energyVariationPlus10.addVariation(new StjTowerEnergyVariationEnergy(0.1));
00142 _energyVariationMinus10.addVariation(new StjTowerEnergyVariationEnergy(-0.1));
00143
00144 _fourCut.addCut(new StjFourVecCutPt(0.2));
00145
00146 StConePars* cpars = new StConePars();
00147 cpars->setGridSpacing(56, -1.6, 1.6, 120, -3.141592613589793, 3.141592613589793);
00148 cpars->setConeRadius(0.4);
00149 cpars->setSeedEtMin(0.5);
00150 cpars->setAssocEtMin(0.1);
00151 cpars->setSplitFraction(0.5);
00152 cpars->setPerformMinimization(true);
00153 cpars->setAddMidpoints(true);
00154 cpars->setRequireStableMidpoints(true);
00155 cpars->setDoSplitMerge(true);
00156 cpars->setDebug(false);
00157 _jetFinder.Init(cpars);
00158
00159 _jetCut.addCut(new StjJetCutPt(5.0));
00160
00161 _jetCutBHT2.addCut(new StjJetCutTrgBHT(_trgBHT2));
00162 _jetCutBJP2.addCut(new StjJetCutTrgBJP(_trgBJP2, new StjTrgBEMCJetPatchTowerIdMap2005));
00163
00164 _jetListWriter = new StjJetListWriter("jets", "fours", _file);
00165
00166 _jetCut2.addCut(new StjJetCutDetectorEta(0.2, 0.8));
00167
00168 _dijetListWriter = new StjDijetListWriter("dijets", _file);
00169
00170 return kStOk;
00171 }
00172
00173 Int_t Make()
00174 {
00175 StjTrackPrint trackprint;
00176 StjTowerEnergyPrint towerprint;
00177 StjFourVecPrint fourprint;
00178 StjJetPrint jetprint;
00179 StjDijetPrint dijetprint;
00180
00181 StjTrackList trackList = _tpc->getTrackList();
00182 StjTowerEnergyList energyList = _bemc->getEnergyList();
00183
00184
00185
00186 trackList = _tpcCut1(trackList);
00187 energyList = _bemcCut1(energyList);
00188
00189 energyList = _towerEnergyCorrectionForTracks(energyList, trackList);
00190
00191 trackList = _tpcCut2(trackList);
00192
00193 energyList = _bemcCut2(energyList);
00194
00195 StjFourVecList fourList = _toP4(trackList, energyList);
00196
00197 fourList = _fourCut(fourList);
00198
00199 vector<StjJet> jetList = _jetFinder(fourList);
00200
00201 jetList = _jetCut(jetList);
00202
00203 vector<StjJet> jetListBHT2 = _jetCutBHT2(jetList);
00204 vector<StjJet> jetListBJP2 = _jetCutBJP2(jetList);
00205
00206 _jetListWriter->Fill(jetList, fourList);
00207
00208 jetList = _jetCut2(jetList);
00209
00210 StjDijetList dijetList = _formDijet(jetList);
00211
00212 dijetprint(dijetList);
00213
00214 _dijetListWriter->Fill(dijetList);
00215
00216 return kStOk;
00217 }
00218
00219 Int_t Finish()
00220 {
00221 _jetListWriter->Finish();
00222
00223 _dijetListWriter->Finish();
00224
00225 return kStOk;
00226 }
00227
00228 ClassDef(StJetMakerB, 1)
00229 };