00001
00002 #include <XANADOO/domain/interface/XANAEsdEvent.h>
00003 #include <XANADOO/XANAClusters/interface/XANACluster.h>
00004 #include <XANADOO/XANAClusters/interface/XANACaloRecHit.h>
00005 #include <XANADOO/XANAClusters/interface/XANAEmCluster.h>
00006 #include <XANADOO/XANAClusters/interface/XANASuperCluster.h>
00007 #include <XANADOO/XANAClusters/interface/XANAHadCluster.h>
00008 #include <XANADOO/XANATracks/interface/XANATrack.h>
00009 #include <XANADOO/XANAMcInfo/interface/XANAGeneratorEvent.h>
00010 #include <XANADOO/XANAMcInfo/interface/XANAGeantEvent.h>
00011 #include <XANADOO/XANAMcInfo/interface/XANAGeneratorParticle.h>
00012 #include <XANADOO/XANAElectronCandidate/interface/XANAElectronCandidate.h>
00013 #include <XANADOO/XANAElectronCandidate/interface/XANAElectronTrack.h>
00014 #include <XANADOO/XANAElectronCandidate/interface/XANAElectronSeed.h>
00015 #include <XANADOO/XANAMuons/interface/XANAMuonCandidate.h>
00016 #include <XANADOO/XANATriggerInfo/interface/XANATriggerInfo.h>
00017 #include <XANADOO/XANAJets/interface/XANAJet.h>
00018
00019 #include <XANADOO/XANAGeometry/interface/XANAEcalGeometry.h>
00020
00021 #include <XANADOO/XANAnalysisRS/interface/RSElecSelector.h>
00022 #include <XANADOO/XANAnalysisRS/interface/RSCorrectionFunc.h>
00023 #include <XANADOO/XANAnalysisRS/interface/RSSaturation.h>
00024 #include <XANADOO/XANAnalysisRS/interface/RSPhotonAssoc.h>
00025 #include <XANADOO/XANAnalysisRS/interface/ClassRSElec.h>
00026 #include <XANADOO/XANAnalysisRS/interface/RSVertexCorr.h>
00027 #include <XANADOO/XANAnalysisRS/interface/RSDistribAng.h>
00028 #include <XANADOO/XANAnalysisRS/interface/RSMassEstim.h>
00029
00030 #include "TTree.h"
00031 #include "TBits.h"
00032 #include "TObjectTable.h"
00033 #include "TFile.h"
00034 #include "TBranch.h"
00035 #include "TClonesArray.h"
00036 #include "TObjArray.h"
00037 #include "TH1.h"
00038 #include "TH2.h"
00039 #include "TSystem.h"
00040 #include "TChain.h"
00041
00042 #include <string>
00043
00044 using namespace std;
00045
00046 Short_t ne_candidatelectron=0,ns_supercluster=0;
00047 TObjArray *genpart = 0;
00048 TObjArray *clusters = 0;
00049 TObjArray *hadClusters = 0;
00050 TObjArray *superClusters = 0;
00051 TObjArray *preshClusters = 0;
00052 TRefArray *hits = 0;
00053 TObjArray *tracks = 0;
00054 TObjArray *vertices = 0;
00055 TObjArray *electrons = 0;
00056 TObjArray *electronTracks = 0;
00057 TObjArray *muons = 0;
00058
00059
00060
00061 int main(int argc, char** argv)
00062 {
00063
00064 TFile *f;
00065
00066 if (argc==1) f = new TFile("/data/scratch/collard/Production_xana151/zprim/famos/xZprimALRM_m1tev.root");
00067
00068 else f = new TFile(*++argv);
00069
00070
00071 TTree *T = (TTree*)f->Get("ESD");
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084 XANAEsdEvent *event = new XANAEsdEvent();
00085 T->SetBranchAddress("Event.",&event);
00086
00087 XANAGeneratorEvent *generatorEvent = new XANAGeneratorEvent();
00088 T->SetBranchAddress("GeneratorEvent.",&generatorEvent);
00089
00090 XANAGeantEvent *geantEvent = new XANAGeantEvent();
00091 T->SetBranchAddress("GeantEvent.",&geantEvent);
00092
00093
00094
00095
00096
00097
00098 TH1F *histo1000 = new TH1F("histo1000","M RSgrav gen ee ",180,0.,4.5);
00099 TH1F *histo1001 = new TH1F("histo1001","M RSgrav gen",180,0.,4.5);
00100 TH1F *histo1002 = new TH1F("histo1002","M RSgrav rec",180,0.,4.5);
00101 TH1F *histo1003 = new TH1F("histo1003","Delta M ",100,-50.,50.);
00102 TH1F *histo1004 = new TH1F("histo1004","CosTheta gen",20,-1.,1.);
00103 TH1F *histo1005 = new TH1F("histo1005","CosTheta rec",20,-1.,1.);
00104 TH1F *histo1006 = new TH1F("histo1006","CosTheta gen",10,-1.,1.);
00105 TH1F *histo1007 = new TH1F("histo1007","CosTheta rec",10,-1.,1.);
00106 TH1F *histo1008 = new TH1F("histo1008","Delta Cos th",100,-0.5,0.5);
00107 TH1F *histo1009 = new TH1F("histo1009","Delta Cos th",100,-0.2,0.2);
00108
00109
00110 TH1F *histo2000 = new TH1F("histo2000","M RSgrav gen ee ",50, 1.5,2.5);
00111 TH1F *histo2001 = new TH1F("histo2001","M RSgrav gen ",50, 1.5,2.5);
00112 TH1F *histo2002 = new TH1F("histo2002","M RSgrav rec ",50, 1.5,2.5);
00113 TH1F *histo2003 = new TH1F("histo2003","M RSgrav gen ",100, 1.5,2.5);
00114 TH1F *histo2004 = new TH1F("histo2004","M RSgrav rec ",100, 1.5,2.5);
00115 TH1F *histo2005 = new TH1F("histo2005","M RSgrav gen ",1000,1.5,2.5);
00116 TH1F *histo2006 = new TH1F("histo2006","M RSgrav rec ",1000,1.5,2.5);
00117 TH1F *histo2007 = new TH1F("histo2007","CosTheta gen ",20,-1.,1.);
00118 TH1F *histo2008 = new TH1F("histo2008","CosTheta rec ",20,-1.,1.);
00119 TH1F *histo2009 = new TH1F("histo2009","CosTheta gen ",10,-1.,1.);
00120 TH1F *histo2010 = new TH1F("histo2010","CosTheta rec ",10,-1.,1.);
00121
00122
00123 TH1F *histo2100 = new TH1F("histo2100","M RSgrav gen ee ",50, 2.0,3.0);
00124 TH1F *histo2101 = new TH1F("histo2101","M RSgrav gen ",50, 2.0,3.0);
00125 TH1F *histo2102 = new TH1F("histo2102","M RSgrav rec ",50, 2.0,3.0);
00126 TH1F *histo2103 = new TH1F("histo2103","M RSgrav gen ",100, 2.0,3.0);
00127 TH1F *histo2104 = new TH1F("histo2104","M RSgrav rec ",100, 2.9,3.0);
00128 TH1F *histo2105 = new TH1F("histo2105","M RSgrav gen ",1000,2.0,3.0);
00129 TH1F *histo2106 = new TH1F("histo2106","M RSgrav rec ",1000,2.0,3.0);
00130 TH1F *histo2107 = new TH1F("histo2107","CosTheta gen ",20,-1.,1.);
00131 TH1F *histo2108 = new TH1F("histo2108","CosTheta rec ",20,-1.,1.);
00132 TH1F *histo2109 = new TH1F("histo2109","CosTheta gen ",10,-1.,1.);
00133 TH1F *histo2110 = new TH1F("histo2110","CosTheta rec ",10,-1.,1.);
00134
00135
00136 TH1F *histo2200 = new TH1F("histo2200","M RSgrav gen ee ",50, 2.5,3.5);
00137 TH1F *histo2201 = new TH1F("histo2201","M RSgrav gen ",50, 2.5,3.5);
00138 TH1F *histo2202 = new TH1F("histo2202","M RSgrav rec ",50, 2.5,3.5);
00139 TH1F *histo2203 = new TH1F("histo2203","M RSgrav gen ",100, 2.5,3.5);
00140 TH1F *histo2204 = new TH1F("histo2204","M RSgrav rec ",100, 2.5,3.5);
00141 TH1F *histo2205 = new TH1F("histo2205","M RSgrav gen ",1000,2.5,3.5);
00142 TH1F *histo2206 = new TH1F("histo2206","M RSgrav rec ",1000,2.5,3.5);
00143 TH1F *histo2207 = new TH1F("histo2207","CosTheta gen ",20,-1.,1.);
00144 TH1F *histo2208 = new TH1F("histo2208","CosTheta rec ",20,-1.,1.);
00145 TH1F *histo2209 = new TH1F("histo2209","CosTheta gen ",10,-1.,1.);
00146 TH1F *histo2210 = new TH1F("histo2210","CosTheta rec ",10,-1.,1.);
00147
00148
00149 TH1F *histo2300 = new TH1F("histo2300","M RSgrav gen ee ",50, 3.0,4.0);
00150 TH1F *histo2301 = new TH1F("histo2301","M RSgrav gen ",50, 3.0,4.0);
00151 TH1F *histo2302 = new TH1F("histo2302","M RSgrav rec ",50, 3.0,4.0);
00152 TH1F *histo2303 = new TH1F("histo2303","M RSgrav gen ",100, 3.0,4.0);
00153 TH1F *histo2304 = new TH1F("histo2304","M RSgrav rec ",100, 3.0,4.0);
00154 TH1F *histo2305 = new TH1F("histo2305","M RSgrav gen ",1000,3.0,4.0);
00155 TH1F *histo2306 = new TH1F("histo2306","M RSgrav rec ",1000,3.0,4.0);
00156 TH1F *histo2307 = new TH1F("histo2307","CosTheta gen ",20,-1.,1.);
00157 TH1F *histo2308 = new TH1F("histo2308","CosTheta rec ",20,-1.,1.);
00158 TH1F *histo2309 = new TH1F("histo2309","CosTheta gen ",10,-1.,1.);
00159 TH1F *histo2310 = new TH1F("histo2310","CosTheta rec ",10,-1.,1.);
00160
00161
00162 TH1F *histo2400 = new TH1F("histo2400","M RSgrav gen ee ",50, 3.0,4.0);
00163 TH1F *histo2401 = new TH1F("histo2401","M RSgrav gen ",50, 3.0,4.0);
00164 TH1F *histo2402 = new TH1F("histo2402","M RSgrav rec ",50, 3.0,4.0);
00165 TH1F *histo2403 = new TH1F("histo2403","M RSgrav gen ",100, 3.0,4.0);
00166 TH1F *histo2404 = new TH1F("histo2404","M RSgrav rec ",100, 3.0,4.0);
00167 TH1F *histo2405 = new TH1F("histo2405","M RSgrav gen ",1000,3.0,4.0);
00168 TH1F *histo2406 = new TH1F("histo2406","M RSgrav rec ",1000,3.0,4.0);
00169 TH1F *histo2407 = new TH1F("histo2407","CosTheta gen ",20,-1.,1.);
00170 TH1F *histo2408 = new TH1F("histo2408","CosTheta rec ",20,-1.,1.);
00171 TH1F *histo2409 = new TH1F("histo2409","CosTheta gen ",10,-1.,1.);
00172 TH1F *histo2410 = new TH1F("histo2410","CosTheta rec ",10,-1.,1.);
00173
00174
00175 TH1F *histo2500 = new TH1F("histo2500","M RSgrav gen ee ",50, 3.5,4.5);
00176 TH1F *histo2501 = new TH1F("histo2501","M RSgrav gen ",50, 3.5,4.5);
00177 TH1F *histo2502 = new TH1F("histo2502","M RSgrav rec ",50, 3.5,4.5);
00178 TH1F *histo2503 = new TH1F("histo2503","M RSgrav gen ",100, 3.5,4.5);
00179 TH1F *histo2504 = new TH1F("histo2504","M RSgrav rec ",100, 3.5,4.5);
00180 TH1F *histo2505 = new TH1F("histo2505","M RSgrav gen ",1000,3.5,4.5);
00181 TH1F *histo2506 = new TH1F("histo2506","M RSgrav rec ",1000,3.5,4.5);
00182 TH1F *histo2507 = new TH1F("histo2507","CosTheta gen ",20,-1.,1.);
00183 TH1F *histo2508 = new TH1F("histo2508","CosTheta rec ",20,-1.,1.);
00184 TH1F *histo2509 = new TH1F("histo2509","CosTheta gen ",10,-1.,1.);
00185 TH1F *histo2510 = new TH1F("histo2510","CosTheta rec ",10,-1.,1.);
00186
00187
00188 TH1F *histo2600 = new TH1F("histo2600","M RSgrav gen ee ",50, 3.5,4.5);
00189 TH1F *histo2601 = new TH1F("histo2601","M RSgrav gen ",50, 3.5,4.5);
00190 TH1F *histo2602 = new TH1F("histo2602","M RSgrav rec ",50, 3.5,4.5);
00191 TH1F *histo2603 = new TH1F("histo2603","M RSgrav gen ",100, 3.5,4.5);
00192 TH1F *histo2604 = new TH1F("histo2604","M RSgrav rec ",100, 3.5,4.5);
00193 TH1F *histo2605 = new TH1F("histo2605","M RSgrav gen ",1000,3.5,4.5);
00194 TH1F *histo2606 = new TH1F("histo2606","M RSgrav rec ",1000,3.5,4.5);
00195 TH1F *histo2607 = new TH1F("histo2607","CosTheta gen ",20,-1.,1.);
00196 TH1F *histo2608 = new TH1F("histo2608","CosTheta rec ",20,-1.,1.);
00197 TH1F *histo2609 = new TH1F("histo2609","CosTheta gen ",10,-1.,1.);
00198 TH1F *histo2610 = new TH1F("histo2610","CosTheta rec ",10,-1.,1.);
00199
00200
00201 TH1F *histo2700 = new TH1F("histo2700","M RSgrav gen ee ",50, 4.0,5.0);
00202 TH1F *histo2701 = new TH1F("histo2701","M RSgrav gen ",50, 4.0,5.0);
00203 TH1F *histo2702 = new TH1F("histo2702","M RSgrav rec ",50, 4.0,5.0);
00204 TH1F *histo2703 = new TH1F("histo2703","M RSgrav gen ",100, 4.0,5.0);
00205 TH1F *histo2704 = new TH1F("histo2704","M RSgrav rec ",100, 4.0,5.0);
00206 TH1F *histo2705 = new TH1F("histo2705","M RSgrav gen ",1000,4.0,5.0);
00207 TH1F *histo2706 = new TH1F("histo2706","M RSgrav rec ",1000,4.0,5.0);
00208 TH1F *histo2707 = new TH1F("histo2707","CosTheta gen ",20,-1.,1.);
00209 TH1F *histo2708 = new TH1F("histo2708","CosTheta rec ",20,-1.,1.);
00210 TH1F *histo2709 = new TH1F("histo2709","CosTheta gen ",10,-1.,1.);
00211 TH1F *histo2710 = new TH1F("histo2710","CosTheta rec ",10,-1.,1.);
00212
00213
00214 TH1F *histo2800 = new TH1F("histo2800","M RSgrav gen ee ",50, 4.0,5.0);
00215 TH1F *histo2801 = new TH1F("histo2801","M RSgrav gen ",50, 4.0,5.0);
00216 TH1F *histo2802 = new TH1F("histo2802","M RSgrav rec ",50, 4.0,5.0);
00217 TH1F *histo2803 = new TH1F("histo2803","M RSgrav gen ",100, 4.0,5.0);
00218 TH1F *histo2804 = new TH1F("histo2804","M RSgrav rec ",100, 4.0,5.0);
00219 TH1F *histo2805 = new TH1F("histo2805","M RSgrav gen ",1000,4.0,5.0);
00220 TH1F *histo2806 = new TH1F("histo2806","M RSgrav rec ",1000,4.0,5.0);
00221 TH1F *histo2807 = new TH1F("histo2807","CosTheta gen ",20,-1.,1.);
00222 TH1F *histo2808 = new TH1F("histo2808","CosTheta rec ",20,-1.,1.);
00223 TH1F *histo2809 = new TH1F("histo2809","CosTheta gen ",10,-1.,1.);
00224 TH1F *histo2810 = new TH1F("histo2810","CosTheta rec ",10,-1.,1.);
00225
00226
00227 Int_t nb = 0;
00228 Int_t nevent = (Int_t)T->GetEntries();
00229
00230
00231
00232
00233 cout << "Nombre d entrees a traiter : " << nevent << endl;
00234 for (Int_t i=0; i<nevent; i++) {
00235 nb += T->GetEntry(i);
00236
00237
00238
00239
00240
00241 Short_t mc_np = 0, mc_nsp = 0, mc_nssp = 0, mc_npp = 0, mc_nspp = 0 ;
00242 mc_np = generatorEvent->getNumberOfParticles();
00243 mc_nsp = generatorEvent->getNumberOfSignalParticles();
00244 mc_nssp = generatorEvent->getNumberOfStableSignalParticles();
00245 mc_npp = generatorEvent->getNumberOfPileupParticles();
00246 mc_nspp = generatorEvent->getNumberOfStablePileupParticles();
00247 genpart=generatorEvent->getParticles();
00248 int npart=0,iRSgrav=11,ilink1=0,ilink2=0;
00249 for (int gp=0;gp<mc_np;gp++) {
00250 XANAGeneratorParticle *gpart = (XANAGeneratorParticle *)((*genpart)[gp]);
00251 if ((gpart->getPartId()==11 || gpart->getPartId()==-11) && gpart->getMo1()==12 )
00252 {
00253 if (npart==0)
00254 {
00255
00256 npart++;
00257 ilink1=gp;
00258 }
00259 else if (npart==1)
00260 {
00261
00262 npart++;
00263 ilink2=gp;
00264 }
00265 else
00266 {
00267 cout << " pas possible d'avoir 3 electrons rattaches au RSgrav " << endl;
00268 }
00269 }
00270 }
00271 XANAGeneratorParticle *gRSgrav = (XANAGeneratorParticle *)((*genpart)[iRSgrav]);
00272 XANAGeneratorParticle *gElec1 = (XANAGeneratorParticle *)((*genpart)[ilink1]);
00273 XANAGeneratorParticle *gElec2 = (XANAGeneratorParticle *)((*genpart)[ilink2]);
00274
00275 float trueMassGen=gRSgrav->getMass();
00276 float eeMassGen=RSMassGen(gElec1,gElec2);
00277 float costhetaGen = RSdistribAngGen(gElec1,gElec2);
00278
00279 histo1000->Fill( eeMassGen/1000.);
00280 histo2000->Fill( eeMassGen/1000.);
00281 histo2100->Fill( eeMassGen/1000.);
00282 histo2200->Fill( eeMassGen/1000.);
00283 histo2300->Fill( eeMassGen/1000.);
00284 histo2400->Fill( eeMassGen/1000.);
00285 histo2500->Fill( eeMassGen/1000.);
00286 histo2600->Fill( eeMassGen/1000.);
00287 histo2700->Fill( eeMassGen/1000.);
00288 histo2800->Fill( eeMassGen/1000.);
00289
00290 histo1001->Fill( trueMassGen/1000.);
00291
00292 histo2001->Fill( trueMassGen/1000.);
00293 histo2003->Fill( trueMassGen/1000.);
00294 histo2005->Fill( trueMassGen/1000.);
00295
00296 histo2101->Fill( trueMassGen/1000.);
00297 histo2103->Fill( trueMassGen/1000.);
00298 histo2105->Fill( trueMassGen/1000.);
00299
00300 histo2201->Fill( trueMassGen/1000.);
00301 histo2203->Fill( trueMassGen/1000.);
00302 histo2205->Fill( trueMassGen/1000.);
00303
00304 histo2301->Fill( trueMassGen/1000.);
00305 histo2303->Fill( trueMassGen/1000.);
00306 histo2305->Fill( trueMassGen/1000.);
00307
00308 histo2401->Fill( trueMassGen/1000.);
00309 histo2403->Fill( trueMassGen/1000.);
00310 histo2405->Fill( trueMassGen/1000.);
00311
00312 histo2501->Fill( trueMassGen/1000.);
00313 histo2503->Fill( trueMassGen/1000.);
00314 histo2505->Fill( trueMassGen/1000.);
00315
00316 histo2601->Fill( trueMassGen/1000.);
00317 histo2603->Fill( trueMassGen/1000.);
00318 histo2605->Fill( trueMassGen/1000.);
00319
00320 histo2701->Fill( trueMassGen/1000.);
00321 histo2703->Fill( trueMassGen/1000.);
00322 histo2705->Fill( trueMassGen/1000.);
00323
00324 histo2801->Fill( trueMassGen/1000.);
00325 histo2803->Fill( trueMassGen/1000.);
00326 histo2805->Fill( trueMassGen/1000.);
00327
00328 histo1004->Fill( costhetaGen );
00329 histo1006->Fill( costhetaGen );
00330
00331
00332
00333
00334 Short_t nc = 0, nh = 0, nhc = 0, npc = 0, nt = 0, nv = 0, nvt = 0;
00335 Short_t nm = 0, nelt = 0 ;
00336
00337
00338 nc = event->getNumberOfEmClusters(); clusters = event->getEmClusters();
00339 nh = event->getNumberOfTrackHits(); hits = event->getEmClusterHits();
00340 nhc = event->getNumberOfHadClusters(); hadClusters = event->getHadClusters();
00341 ns_supercluster = event->getNumberOfSuperClusters();
00342 superClusters = event->getSuperClusters();
00343 npc = event->getNumberOfPreshClusters(); preshClusters = event->getPreshClusters();
00344 nt = event->getNumberOfTracks(); tracks = event->getTracks();
00345 nv = event->getNumberOfVertices(); vertices = event->getVertices();
00346 nvt = event->getNumberOfVertexTracks();
00347 ne_candidatelectron = event->getNumberOfElectronCandidates();
00348 electrons = event->getElectronCandidates();
00349 nm = event->getNumberOfMuonCandidates(); muons = event->getMuonCandidates();
00350 nelt = event->getNumberOfElectronTracks(); electronTracks = event->getElectronTracks();
00351
00352
00353
00354
00355 Int_t indexel1=-1, indexel2=-1;
00356
00357
00358
00359 RSSelection(indexel1, indexel2);
00360
00361
00362
00363 if (indexel1>-1 && indexel2>-1)
00364 {
00365 XANAElectronCandidate *elec1 = (XANAElectronCandidate*)((*electrons)[indexel1]);
00366 XANAElectronCandidate *elec2 = (XANAElectronCandidate*)((*electrons)[indexel2]);
00367
00368 float energy1 =elec1->getSuperClusterEnergy()/elec1->getSuperCluster()->getEnergyScaleFactor();
00369 float eta1 =elec1->getSuperCluster()->getPosition().eta();
00370 float phi1 =elec1->getSuperCluster()->getPosition().phi();
00371
00372 float energy2 =elec2->getSuperClusterEnergy()/elec2->getSuperCluster()->getEnergyScaleFactor();
00373 float eta2 =elec2->getSuperCluster()->getPosition().eta();
00374 float phi2 =elec2->getSuperCluster()->getPosition().phi();
00375
00376
00377 int iflag_satur=0;
00378 RSSaturation(elec1, energy1, iflag_satur);
00379 RSSaturation(elec2, energy2, iflag_satur);
00380
00381
00382 float EtIsol1=0.;
00383 float EtIsol2=0.;
00384 RSAssocPhoton(elec1, energy1, EtIsol1);
00385 RSAssocPhoton(elec2, energy2, EtIsol2);
00386
00387
00388
00389 bool FAMOS=true;
00390 float xcor1=RSCorrectionFunc(energy1, eta1, FAMOS);
00391 float xcor2=RSCorrectionFunc(energy2, eta2, FAMOS);
00392 xcor1=1./xcor1;
00393 xcor2=1./xcor2;
00394 energy1*=xcor1;
00395 energy2*=xcor2;
00396
00397
00398
00399 RSElec *cElec1 = new RSElec(elec1,energy1,eta1,phi1,EtIsol1);
00400 RSElec *cElec2 = new RSElec(elec2,energy2,eta2,phi2,EtIsol2);
00401
00402
00403 float eeMassRec=RSMassRec(cElec1,cElec2);
00404
00405
00406 if ( cElec1->getElecIsol()< 0.02* cElec1->getElecEt() &&
00407 cElec2->getElecIsol()< 0.02* cElec2->getElecEt() )
00408 {
00409 float costhetaRec = RSdistribAngRec(cElec1,cElec2);
00410
00411 histo1002->Fill( eeMassRec /1000. );
00412 histo1003->Fill( trueMassGen-eeMassRec);
00413
00414 histo1005->Fill(costhetaRec);
00415 histo1007->Fill(costhetaRec);
00416 histo1008->Fill( costhetaGen-costhetaRec);
00417 histo1009->Fill( costhetaGen-costhetaRec);
00418
00419 histo2002->Fill( eeMassRec /1000. );
00420 histo2004->Fill( eeMassRec /1000. );
00421 histo2006->Fill( eeMassRec /1000. );
00422
00423 histo2102->Fill( eeMassRec /1000. );
00424 histo2104->Fill( eeMassRec /1000. );
00425 histo2106->Fill( eeMassRec /1000. );
00426
00427 histo2202->Fill( eeMassRec /1000. );
00428 histo2204->Fill( eeMassRec /1000. );
00429 histo2206->Fill( eeMassRec /1000. );
00430
00431 histo2302->Fill( eeMassRec /1000. );
00432 histo2304->Fill( eeMassRec /1000. );
00433 histo2306->Fill( eeMassRec /1000. );
00434
00435 histo2502->Fill( eeMassRec /1000. );
00436 histo2504->Fill( eeMassRec /1000. );
00437 histo2506->Fill( eeMassRec /1000. );
00438
00439 histo2702->Fill( eeMassRec /1000. );
00440 histo2704->Fill( eeMassRec /1000. );
00441 histo2706->Fill( eeMassRec /1000. );
00442
00443 if (iflag_satur==0)
00444 {
00445 histo2402->Fill( eeMassRec /1000. );
00446 histo2404->Fill( eeMassRec /1000. );
00447 histo2406->Fill( eeMassRec /1000. );
00448
00449 histo2602->Fill( eeMassRec /1000. );
00450 histo2604->Fill( eeMassRec /1000. );
00451 histo2606->Fill( eeMassRec /1000. );
00452
00453 histo2802->Fill( eeMassRec /1000. );
00454 histo2804->Fill( eeMassRec /1000. );
00455 histo2806->Fill( eeMassRec /1000. );
00456 }
00457
00458 if (1900<eeMassRec && eeMassRec<2100)
00459 {
00460 histo2007->Fill( costhetaGen );
00461 histo2008->Fill( costhetaRec );
00462 histo2009->Fill( costhetaGen );
00463 histo2010->Fill( costhetaRec );
00464 }
00465 else if (2400<eeMassRec && eeMassRec<2600)
00466 {
00467 histo2107->Fill( costhetaGen );
00468 histo2108->Fill( costhetaRec );
00469 histo2109->Fill( costhetaGen );
00470 histo2110->Fill( costhetaRec );
00471 }
00472 else if (2900<eeMassRec && eeMassRec<3100)
00473 {
00474 histo2207->Fill( costhetaGen );
00475 histo2208->Fill( costhetaRec );
00476 histo2209->Fill( costhetaGen );
00477 histo2210->Fill( costhetaRec );
00478 }
00479 else if (3400<eeMassRec && eeMassRec<3600)
00480 {
00481 histo2307->Fill( costhetaGen );
00482 histo2308->Fill( costhetaRec );
00483 histo2309->Fill( costhetaGen );
00484 histo2310->Fill( costhetaRec );
00485 if (iflag_satur==0)
00486 {
00487 histo2407->Fill( costhetaGen );
00488 histo2408->Fill( costhetaRec );
00489 histo2409->Fill( costhetaGen );
00490 histo2410->Fill( costhetaRec );
00491 }
00492 }
00493 else if (3900<eeMassRec && eeMassRec<4100)
00494 {
00495 histo2507->Fill( costhetaGen );
00496 histo2508->Fill( costhetaRec );
00497 histo2509->Fill( costhetaGen );
00498 histo2510->Fill( costhetaRec );
00499 if (iflag_satur==0)
00500 {
00501 histo2607->Fill( costhetaGen );
00502 histo2608->Fill( costhetaRec );
00503 histo2609->Fill( costhetaGen );
00504 histo2610->Fill( costhetaRec );
00505 }
00506 }
00507 else if (4400<eeMassRec && eeMassRec<4600)
00508 {
00509 histo2707->Fill( costhetaGen );
00510 histo2708->Fill( costhetaRec );
00511 histo2709->Fill( costhetaGen );
00512 histo2710->Fill( costhetaRec );
00513 if (iflag_satur==0)
00514 {
00515 histo2807->Fill( costhetaGen );
00516 histo2808->Fill( costhetaRec );
00517 histo2809->Fill( costhetaGen );
00518 histo2810->Fill( costhetaRec );
00519 }
00520 }
00521
00522
00523
00524 }
00525
00526
00527
00528 }
00529
00530
00531 event->clear();
00532 generatorEvent->clear();
00533 geantEvent->clear();
00534 }
00535
00536
00537
00538 TFile *filehisto = new TFile("Mass_0.root","RECREATE");
00539
00540 histo1000->Write();
00541 histo1001->Write();
00542 histo1002->Write();
00543 histo1003->Write();
00544 histo1004->Write();
00545 histo1005->Write();
00546 histo1006->Write();
00547 histo1007->Write();
00548 histo1008->Write();
00549 histo1009->Write();
00550
00551
00552 histo2000->Write();
00553 histo2001->Write();
00554 histo2002->Write();
00555 histo2003->Write();
00556 histo2004->Write();
00557 histo2005->Write();
00558 histo2006->Write();
00559 histo2007->Write();
00560 histo2008->Write();
00561 histo2009->Write();
00562 histo2010->Write();
00563
00564 histo2100->Write();
00565 histo2101->Write();
00566 histo2102->Write();
00567 histo2103->Write();
00568 histo2104->Write();
00569 histo2105->Write();
00570 histo2106->Write();
00571 histo2107->Write();
00572 histo2108->Write();
00573 histo2109->Write();
00574 histo2110->Write();
00575
00576 histo2200->Write();
00577 histo2201->Write();
00578 histo2202->Write();
00579 histo2203->Write();
00580 histo2204->Write();
00581 histo2205->Write();
00582 histo2206->Write();
00583 histo2207->Write();
00584 histo2208->Write();
00585 histo2209->Write();
00586 histo2210->Write();
00587
00588 histo2300->Write();
00589 histo2301->Write();
00590 histo2302->Write();
00591 histo2303->Write();
00592 histo2304->Write();
00593 histo2305->Write();
00594 histo2306->Write();
00595 histo2307->Write();
00596 histo2308->Write();
00597 histo2309->Write();
00598 histo2310->Write();
00599
00600 histo2400->Write();
00601 histo2401->Write();
00602 histo2402->Write();
00603 histo2403->Write();
00604 histo2404->Write();
00605 histo2405->Write();
00606 histo2406->Write();
00607 histo2407->Write();
00608 histo2408->Write();
00609 histo2409->Write();
00610 histo2410->Write();
00611
00612 histo2500->Write();
00613 histo2501->Write();
00614 histo2502->Write();
00615 histo2503->Write();
00616 histo2504->Write();
00617 histo2505->Write();
00618 histo2506->Write();
00619 histo2507->Write();
00620 histo2508->Write();
00621 histo2509->Write();
00622 histo2510->Write();
00623
00624 histo2600->Write();
00625 histo2601->Write();
00626 histo2602->Write();
00627 histo2603->Write();
00628 histo2604->Write();
00629 histo2605->Write();
00630 histo2606->Write();
00631 histo2607->Write();
00632 histo2608->Write();
00633 histo2609->Write();
00634 histo2610->Write();
00635
00636 histo2700->Write();
00637 histo2701->Write();
00638 histo2702->Write();
00639 histo2703->Write();
00640 histo2704->Write();
00641 histo2705->Write();
00642 histo2706->Write();
00643 histo2707->Write();
00644 histo2708->Write();
00645 histo2709->Write();
00646 histo2710->Write();
00647
00648 histo2800->Write();
00649 histo2801->Write();
00650 histo2802->Write();
00651 histo2803->Write();
00652 histo2804->Write();
00653 histo2805->Write();
00654 histo2806->Write();
00655 histo2807->Write();
00656 histo2808->Write();
00657 histo2809->Write();
00658 histo2810->Write();
00659
00660 filehisto->Close();
00661
00662
00663 }
00664
00665
00666