- Timestamp:
- Dec 12, 2014, 1:54:46 PM (10 years ago)
- Branches:
- ImprovedOutputFile, Timing, dual_readout, llp, master
- Children:
- 3d10d1f
- Parents:
- a8782e8
- Location:
- examples
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
examples/ExternalFastJetBasic.cpp
ra8782e8 r14ae668 19 19 /* 20 20 21 First, you need to set DELPHES_DIR, FASTJET_DIR and ROOT_DIR: 21 22 ######################################################################## 23 24 25 This simple example shows how to use Delphes with an external fastjet installation. 26 Events are specified via the multidimentionnal array "EVENTS" (for an example reading 27 an hepmc file see ExternalFastJetHepMC.cpp). 28 29 In order to run this example you first, you need to set the paths to your Delphes, FastJet 30 and ROOT installations (DELPHES_DIR, FASTJET_DIR and ROOT_DIR): 22 31 23 32 DELPHES_DIR=<path to Delphes installation> … … 25 34 ROOT_DIR=<path to ROOT installation> 26 35 27 Then run the following commands to build ExternalFastJetBasic:36 Then run the following commands to build the executable: 28 37 29 38 DELPHES_LIB="-L$DELPHES_DIR -lDelphesNoFastJet" … … 38 47 LDFLAGS="$FASTJET_LIB $ROOT_LIB $DELPHES_LIB" 39 48 40 g++ $CXXFLAGS $LDFLAGS ExternalFastJetBasic.cpp -o ExternalFastJetBasic 49 g++ $CXXFLAGS $LDFLAGS examples/ExternalFastJetBasic.cpp -o examples/ExternalFastJetBasic 50 51 Then run from the main Delphes dir: 52 53 ./examples/ExternalFastJetBasic cards/delphes_card_CMS_NoFastJet.tcl 54 55 56 ######################################################################## 57 41 58 42 59 */ … … 95 112 //--------------------------------------------------------------------------- 96 113 114 115 // this function converts input event array into Delphes candidates (defined below) 116 97 117 void ConvertInput(Int_t event, DelphesFactory *factory, TObjArray *allParticleOutputArray, TObjArray *stableParticleOutputArray, TObjArray *partonOutputArray); 118 119 120 //---------------------------------------------------------------------------------------------------------------------------- 98 121 99 122 int main(int argc, char *argv[]) … … 149 172 modularDelphes->InitTask(); 150 173 174 175 // fastjet definition 151 176 ClusterSequence::print_banner(); 152 177 definition = new JetDefinition(antikt_algorithm, 0.5); 153 154 inputArray = modularDelphes->ImportArray("Calorimeter/towers"); 178 179 // Define your input candidates to fastjet (by default particle-flow objects). 180 // If you want pure calorimeter towers change "EFlowMerger/eflow" into "Calorimeter/towers": 181 182 inputArray = modularDelphes->ImportArray("EFlowMerger/eflow"); 183 155 184 inputIterator = inputArray->MakeIterator(); 156 185 … … 159 188 { 160 189 modularDelphes->Clear(); 190 191 // convert EVENT input array into Delphes internal format 161 192 ConvertInput(event, factory, allParticleOutputArray, stableParticleOutputArray, partonOutputArray); 193 194 // run Delphes reconstruction 162 195 modularDelphes->ProcessTask(); 163 196 164 197 inputList.clear(); 165 198 inputIterator->Reset(); 199 200 201 // pass delphes candidates to fastjet clustering 166 202 while((candidate = static_cast<Candidate*>(inputIterator->Next()))) 167 203 { … … 170 206 inputList.push_back(jet); 171 207 } 208 209 // run clustering 172 210 ClusterSequence sequence(inputList, *definition); 173 211 outputList.clear(); … … 204 242 } 205 243 } 244 245 246 // ------------------------------------------------------------------------------------------------------------------------------------ 206 247 207 248 void ConvertInput(Int_t event, DelphesFactory *factory, TObjArray *allParticleOutputArray, TObjArray *stableParticleOutputArray, TObjArray *partonOutputArray) -
examples/ExternalFastJetHepMC.cpp
ra8782e8 r14ae668 18 18 19 19 /* 20 21 First, you need to set DELPHES_DIR, FASTJET_DIR and ROOT_DIR: 20 ######################################################################## 21 22 23 This simple example shows how to use Delphes with an external fastjet installation. 24 Events in hepmc format are read via the DelphesHepMC reader. 25 26 In order to run this example you first, you need to set the paths to your Delphes, FastJet 27 and ROOT installations (DELPHES_DIR, FASTJET_DIR and ROOT_DIR): 22 28 23 29 DELPHES_DIR=<path to Delphes installation> … … 25 31 ROOT_DIR=<path to ROOT installation> 26 32 27 Then run the following commands to build ExternalFastJetHepMC:33 Then run the following commands to build the executable: 28 34 29 35 DELPHES_LIB="-L$DELPHES_DIR -lDelphesNoFastJet" … … 38 44 LDFLAGS="$FASTJET_LIB $ROOT_LIB $DELPHES_LIB" 39 45 40 g++ $CXXFLAGS $LDFLAGS ExternalFastJetHepMC.cpp -o ExternalFastJetHepMC 46 g++ $CXXFLAGS $LDFLAGS examples/ExternalFastJetHepMC.cpp -o examples/ExternalFastJetHepMC 47 48 Then run from the main Delphes dir (you need an event file in hepmc format): 49 50 ./examples/ExternalFastJetHepMC cards/delphes_card_CMS_NoFastJet.tcl file.hepmc 51 52 53 ######################################################################## 41 54 42 55 */ … … 163 176 164 177 ClusterSequence::print_banner(); 178 165 179 // recomb = new WinnerTakeAllRecombiner(); 166 180 // definition = new JetDefinition(antikt_algorithm, 0.5, recomb, Best); 181 167 182 definition = new JetDefinition(antikt_algorithm, 0.5); 168 169 inputArray = modularDelphes->ImportArray("Calorimeter/towers"); 183 184 185 // Define your input candidates to fastjet (by default particle-flow objects). 186 // If you want pure calorimeter towers change "EFlowMerger/eflow" into "Calorimeter/towers": 187 188 inputArray = modularDelphes->ImportArray("EFlowMerger/eflow"); 189 170 190 inputIterator = inputArray->MakeIterator(); 191 192 193 // start reading hepmc file 171 194 172 195 i = 2; … … 204 227 } 205 228 229 206 230 reader->SetInputFile(inputFile); 207 231 … … 214 238 stableParticleOutputArray, partonOutputArray) && !interrupted) 215 239 { 216 if(reader->EventReady()) 240 241 // loop over events 242 if(reader->EventReady()) 217 243 { 218 244 ++eventCounter; … … 220 246 if(eventCounter > skipEvents) 221 247 { 222 modularDelphes->ProcessTask(); 248 249 // run delphes reconstruction 250 modularDelphes->ProcessTask(); 223 251 224 252 inputList.clear(); 225 253 inputIterator->Reset(); 226 while((candidate = static_cast<Candidate*>(inputIterator->Next()))) 254 255 256 // pass delphes candidates to fastjet clustering 257 while((candidate = static_cast<Candidate*>(inputIterator->Next()))) 227 258 { 228 259 momentum = candidate->Momentum; … … 230 261 inputList.push_back(jet); 231 262 } 232 ClusterSequence sequence(inputList, *definition); 263 264 // run fastjet clustering 265 ClusterSequence sequence(inputList, *definition); 233 266 outputList.clear(); 234 267 outputList = sorted_by_pt(sequence.inclusive_jets(0.0)); 235 268 236 // tell the user what was done 269 270 // Prints for the first event: 237 271 // - the description of the algorithm used 238 272 // - show the inclusive jets as 239 273 // {index, rapidity, phi, pt} 240 274 //---------------------------------------------------------- 241 if(eventCounter == skipEvents + 1) 275 276 if(eventCounter == skipEvents + 1) 242 277 { 243 278 cout << "Ran " << definition->description() << endl; … … 258 293 reader->Clear(); 259 294 } 260 } 295 } // end of event loop 261 296 262 297 if(inputFile != stdin) fclose(inputFile);
Note:
See TracChangeset
for help on using the changeset viewer.