Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | File Members

rsAnalc0p01_o.cpp

Go to the documentation of this file.
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 #include <XANADOO/XANAVertex/interface/XANAVertex.h>
00019 
00020 #include <XANADOO/XANAGeometry/interface/XANAEcalGeometry.h>
00021 
00022 #include <XANADOO/XANAnalysisRS/interface/RSElecSelector.h>
00023 #include <XANADOO/XANAnalysisRS/interface/RSCorrectionFunc.h>
00024 #include <XANADOO/XANAnalysisRS/interface/RSSaturation.h>
00025 #include <XANADOO/XANAnalysisRS/interface/RSPhotonAssoc.h>
00026 #include <XANADOO/XANAnalysisRS/interface/ClassRSElec.h>
00027 #include <XANADOO/XANAnalysisRS/interface/RSVertexCorr.h>
00028 #include <XANADOO/XANAnalysisRS/interface/RSDistribAng.h>
00029 #include <XANADOO/XANAnalysisRS/interface/RSMassEstim.h>
00030 
00031 
00032 #include "TTree.h"
00033 #include "TBits.h"
00034 #include "TObjectTable.h"
00035 #include "TFile.h"
00036 #include "TBranch.h"
00037 #include "TClonesArray.h"
00038 #include "TObjArray.h"
00039 #include "TH1.h"
00040 #include "TH2.h"
00041 #include "TSystem.h"
00042 #include "TChain.h"
00043 
00044 #include <string>
00045 
00046 using namespace std;
00047 
00048 Short_t ne_candidatelectron=0,ns_supercluster=0;
00049 TObjArray *genpart = 0;  
00050 TObjArray *clusters = 0;
00051 TObjArray *hadClusters = 0;
00052 TObjArray *superClusters = 0;
00053 TObjArray *preshClusters = 0;
00054 TRefArray *hits = 0;
00055 TObjArray *tracks = 0;
00056 TObjArray *vertices = 0;
00057 TObjArray *electrons = 0;
00058 TObjArray *electronTracks = 0;
00059 TObjArray *muons = 0;
00060 
00061 
00062  
00063   
00064 int main(int argc, char** argv)
00065 {
00066    
00067 // version TChain
00068    TChain *T = new TChain("ESD");
00069    T->Add("/data/scratch/collard/Production_xana151/grav/oscar/oRSee_1500_c001_1.root");
00070    T->Add("/data/scratch/collard/Production_xana151/grav/oscar/oRSee_1500_c001_2.root");
00071    T->Add("/data/scratch/collard/Production_xana151/grav/oscar/oRSee_1500_c001_3.root");
00072    T->Add("/data/scratch/collard/Production_xana151/grav/oscar/oRSee_1500_c001_4.root");
00073    T->Add("/data/scratch/collard/Production_xana151/grav/oscar/oRSee_1500_c001_5.root");
00074    T->Add("/data/scratch/collard/Production_xana151/grav/oscar/oRSee_1500_c001_6.root");
00075    T->Add("/data/scratch/collard/Production_xana151/grav/oscar/oRSee_1500_c001_7.root");
00076    T->Add("/data/scratch/collard/Production_xana151/grav/oscar/oRSee_1500_c001_8.root");
00077    T->Add("/data/scratch/collard/Production_xana151/grav/oscar/oRSee_1500_c001_9.root");
00078    T->Add("/data/scratch/collard/Production_xana151/grav/oscar/oRSee_1500_c001_10.root");
00079  
00080 // example of how to suppress reading of branches
00081 // has to be put before setting the branch addresses!
00082 // T->SetBranchStatus("GeantEvent*",0);
00083 
00084 // Reconstructed event
00085   XANAEsdEvent *event = new XANAEsdEvent();  
00086   T->SetBranchAddress("Event.",&event);
00087   // MC information (generator and GEANT event)
00088   XANAGeneratorEvent *generatorEvent = new XANAGeneratorEvent();
00089   T->SetBranchAddress("GeneratorEvent.",&generatorEvent);
00090     
00091   XANAGeantEvent *geantEvent = new XANAGeantEvent();
00092   T->SetBranchAddress("GeantEvent.",&geantEvent);
00093   
00094 
00095 
00096  
00097   // Histo
00098   // sans contrainte de masse
00099   TH1F *histo1000 = new TH1F("histo1000","M RSgrav gen ee ",180,0.,4.5);
00100   TH1F *histo1001 = new TH1F("histo1001","M RSgrav gen",180,0.,4.5);
00101   TH1F *histo1002 = new TH1F("histo1002","M RSgrav rec",180,0.,4.5);
00102   TH1F *histo1003 = new TH1F("histo1003","Delta M     ",100,-50.,50.);
00103   TH1F *histo1004 = new TH1F("histo1004","CosTheta gen",20,-1.,1.);
00104   TH1F *histo1005 = new TH1F("histo1005","CosTheta rec",20,-1.,1.);
00105   TH1F *histo1006 = new TH1F("histo1006","CosTheta gen",10,-1.,1.);
00106   TH1F *histo1007 = new TH1F("histo1007","CosTheta rec",10,-1.,1.);
00107   TH1F *histo1008 = new TH1F("histo1008","Delta Cos th",100,-0.5,0.5);
00108   TH1F *histo1009 = new TH1F("histo1009","Delta Cos th",100,-0.2,0.2);
00109   
00110   // 0TeV75 
00111   TH1F *histo2000 = new TH1F("histo2000","M RSgrav gen ee ",50, 0.55,0.85);
00112   TH1F *histo2001 = new TH1F("histo2001","M RSgrav gen    ",50, 0.55,0.85);
00113   TH1F *histo2002 = new TH1F("histo2002","M RSgrav rec    ",50, 0.55,0.85);
00114   TH1F *histo2003 = new TH1F("histo2003","M RSgrav gen    ",100, 0.55,0.85);
00115   TH1F *histo2004 = new TH1F("histo2004","M RSgrav rec    ",100, 0.55,0.85);
00116   TH1F *histo2005 = new TH1F("histo2005","M RSgrav gen    ",200,0.55,0.85);
00117   TH1F *histo2006 = new TH1F("histo2006","M RSgrav rec    ",200,0.55,0.85);
00118   TH1F *histo2007 = new TH1F("histo2007","CosTheta gen    ",20,-1.,1.);
00119   TH1F *histo2008 = new TH1F("histo2008","CosTheta rec    ",20,-1.,1.);
00120   TH1F *histo2009 = new TH1F("histo2009","CosTheta gen    ",10,-1.,1.);
00121   TH1F *histo2010 = new TH1F("histo2010","CosTheta rec    ",10,-1.,1.);
00122 
00123   // 1TeV 
00124   TH1F *histo2100 = new TH1F("histo2100","M RSgrav gen ee ",50, 0.8,1.1);
00125   TH1F *histo2101 = new TH1F("histo2101","M RSgrav gen    ",50, 0.8,1.1);
00126   TH1F *histo2102 = new TH1F("histo2102","M RSgrav rec    ",50, 0.8,1.1);
00127   TH1F *histo2103 = new TH1F("histo2103","M RSgrav gen    ",100,0.8,1.1);
00128   TH1F *histo2104 = new TH1F("histo2104","M RSgrav rec    ",100,0.8,1.1);
00129   TH1F *histo2105 = new TH1F("histo2105","M RSgrav gen    ",200,0.8,1.1);
00130   TH1F *histo2106 = new TH1F("histo2106","M RSgrav rec    ",200,0.8,1.1);
00131   TH1F *histo2107 = new TH1F("histo2107","CosTheta gen    ",20,-1.,1.);
00132   TH1F *histo2108 = new TH1F("histo2108","CosTheta rec    ",20,-1.,1.);
00133   TH1F *histo2109 = new TH1F("histo2109","CosTheta gen    ",10,-1.,1.);
00134   TH1F *histo2110 = new TH1F("histo2110","CosTheta rec    ",10,-1.,1.);
00135 
00136   // 1TeV25 
00137   TH1F *histo2200 = new TH1F("histo2200","M RSgrav gen ee ",50, 1.05,1.35);
00138   TH1F *histo2201 = new TH1F("histo2201","M RSgrav gen    ",50, 1.05,1.35);
00139   TH1F *histo2202 = new TH1F("histo2202","M RSgrav rec    ",50, 1.05,1.35);
00140   TH1F *histo2203 = new TH1F("histo2203","M RSgrav gen    ",100,1.05,1.35);
00141   TH1F *histo2204 = new TH1F("histo2204","M RSgrav rec    ",100,1.05,1.35);
00142   TH1F *histo2205 = new TH1F("histo2205","M RSgrav gen    ",200,1.05,1.35);
00143   TH1F *histo2206 = new TH1F("histo2206","M RSgrav rec    ",200,1.05,1.35);
00144   TH1F *histo2207 = new TH1F("histo2207","CosTheta gen    ",20,-1.,1.);
00145   TH1F *histo2208 = new TH1F("histo2208","CosTheta rec    ",20,-1.,1.);
00146   TH1F *histo2209 = new TH1F("histo2209","CosTheta gen    ",10,-1.,1.);
00147   TH1F *histo2210 = new TH1F("histo2210","CosTheta rec    ",10,-1.,1.);
00148 
00149   // 1TeV5 
00150   TH1F *histo2300 = new TH1F("histo2300","M RSgrav gen ee ",50, 1.3,1.6);
00151   TH1F *histo2301 = new TH1F("histo2301","M RSgrav gen    ",50, 1.3,1.6);
00152   TH1F *histo2302 = new TH1F("histo2302","M RSgrav rec    ",50, 1.3,1.6);
00153   TH1F *histo2303 = new TH1F("histo2303","M RSgrav gen    ",100,1.3,1.6);
00154   TH1F *histo2304 = new TH1F("histo2304","M RSgrav rec    ",100,1.3,1.6);
00155   TH1F *histo2305 = new TH1F("histo2305","M RSgrav gen    ",200,1.3,1.6);
00156   TH1F *histo2306 = new TH1F("histo2306","M RSgrav rec    ",200,1.3,1.6);
00157   TH1F *histo2307 = new TH1F("histo2307","CosTheta gen    ",20,-1.,1.);
00158   TH1F *histo2308 = new TH1F("histo2308","CosTheta rec    ",20,-1.,1.);
00159   TH1F *histo2309 = new TH1F("histo2309","CosTheta gen    ",10,-1.,1.);
00160   TH1F *histo2310 = new TH1F("histo2310","CosTheta rec    ",10,-1.,1.);
00161 
00162   // 1TeV75 
00163   TH1F *histo2400 = new TH1F("histo2400","M RSgrav gen ee ",50, 1.55,1.85);
00164   TH1F *histo2401 = new TH1F("histo2401","M RSgrav gen    ",50, 1.55,1.85);
00165   TH1F *histo2402 = new TH1F("histo2402","M RSgrav rec    ",50, 1.55,1.85);
00166   TH1F *histo2403 = new TH1F("histo2403","M RSgrav gen    ",100,1.55,1.85);
00167   TH1F *histo2404 = new TH1F("histo2404","M RSgrav rec    ",100,1.55,1.85);
00168   TH1F *histo2405 = new TH1F("histo2405","M RSgrav gen    ",200,1.55,1.85);
00169   TH1F *histo2406 = new TH1F("histo2406","M RSgrav rec    ",200,1.55,1.85);
00170   TH1F *histo2407 = new TH1F("histo2407","CosTheta gen    ",20,-1.,1.);
00171   TH1F *histo2408 = new TH1F("histo2408","CosTheta rec    ",20,-1.,1.);
00172   TH1F *histo2409 = new TH1F("histo2409","CosTheta gen    ",10,-1.,1.);
00173   TH1F *histo2410 = new TH1F("histo2410","CosTheta rec    ",10,-1.,1.);
00174 
00175   // 2TeV 
00176   TH1F *histo2500 = new TH1F("histo2500","M RSgrav gen ee ",50, 1.8,2.1);
00177   TH1F *histo2501 = new TH1F("histo2501","M RSgrav gen    ",50, 1.8,2.1);
00178   TH1F *histo2502 = new TH1F("histo2502","M RSgrav rec    ",50, 1.8,2.1);
00179   TH1F *histo2503 = new TH1F("histo2503","M RSgrav gen    ",100,1.8,2.1);
00180   TH1F *histo2504 = new TH1F("histo2504","M RSgrav rec    ",100,1.8,2.1);
00181   TH1F *histo2505 = new TH1F("histo2505","M RSgrav gen    ",200,1.8,2.1);
00182   TH1F *histo2506 = new TH1F("histo2506","M RSgrav rec    ",200,1.8,2.1);
00183   TH1F *histo2507 = new TH1F("histo2507","CosTheta gen    ",20,-1.,1.);
00184   TH1F *histo2508 = new TH1F("histo2508","CosTheta rec    ",20,-1.,1.);
00185   TH1F *histo2509 = new TH1F("histo2509","CosTheta gen    ",10,-1.,1.);
00186   TH1F *histo2510 = new TH1F("histo2510","CosTheta rec    ",10,-1.,1.);
00187 
00188   // 2TeV5 
00189   TH1F *histo2600 = new TH1F("histo2600","M RSgrav gen ee ",50, 2.3,2.6);
00190   TH1F *histo2601 = new TH1F("histo2601","M RSgrav gen    ",50, 2.3,2.6);
00191   TH1F *histo2602 = new TH1F("histo2602","M RSgrav rec    ",50, 2.3,2.6);
00192   TH1F *histo2603 = new TH1F("histo2603","M RSgrav gen    ",100,2.3,2.6);
00193   TH1F *histo2604 = new TH1F("histo2604","M RSgrav rec    ",100,2.3,2.6);
00194   TH1F *histo2605 = new TH1F("histo2605","M RSgrav gen    ",200,2.3,2.6);
00195   TH1F *histo2606 = new TH1F("histo2606","M RSgrav rec    ",200,2.3,2.6);
00196   TH1F *histo2607 = new TH1F("histo2607","CosTheta gen    ",20,-1.,1.);
00197   TH1F *histo2608 = new TH1F("histo2608","CosTheta rec    ",20,-1.,1.);
00198   TH1F *histo2609 = new TH1F("histo2609","CosTheta gen    ",10,-1.,1.);
00199   TH1F *histo2610 = new TH1F("histo2610","CosTheta rec    ",10,-1.,1.);
00200 
00201 
00202   //   Start main loop on all events
00203   Int_t nb = 0; 
00204   Int_t nevent = (Int_t)T->GetEntries();
00205 
00206 //  nevent =10;
00207 
00208   
00209   cout <<  "Nombre d entrees a traiter : " << nevent << endl; 
00210   for (Int_t i=0; i<nevent; i++) {
00211     nb += T->GetEntry(i); 
00212 
00213 
00214        // Monte Carlo information
00215    
00216       // generator event
00217     Short_t mc_np = 0, mc_nsp = 0, mc_nssp = 0, mc_npp = 0, mc_nspp = 0 ;
00218     mc_np   = generatorEvent->getNumberOfParticles();
00219     mc_nsp  = generatorEvent->getNumberOfSignalParticles();
00220     mc_nssp = generatorEvent->getNumberOfStableSignalParticles();
00221     mc_npp  = generatorEvent->getNumberOfPileupParticles();
00222     mc_nspp = generatorEvent->getNumberOfStablePileupParticles();
00223     genpart=generatorEvent->getParticles();
00224     int npart=0,iRSgrav=11,ilink1=0,ilink2=0;
00225     for (int gp=0;gp<mc_np;gp++) {
00226          XANAGeneratorParticle *gpart = (XANAGeneratorParticle *)((*genpart)[gp]);
00227          if ((gpart->getPartId()==11 || gpart->getPartId()==-11) &&  gpart->getMo1()==12 )
00228          { 
00229                if (npart==0)
00230                {
00231                     // elec 1
00232                     npart++;
00233                     ilink1=gp;
00234                }
00235                else if (npart==1)
00236                {
00237                     //elec 2
00238                    npart++;
00239                    ilink2=gp;
00240                }
00241                else 
00242                {
00243                    cout << " pas possible d'avoir 3 electrons rattaches au RSgrav " << endl;
00244                }
00245          } 
00246     }
00247     XANAGeneratorParticle *gRSgrav = (XANAGeneratorParticle *)((*genpart)[iRSgrav]);
00248     XANAGeneratorParticle *gElec1 = (XANAGeneratorParticle *)((*genpart)[ilink1]);
00249     XANAGeneratorParticle *gElec2 = (XANAGeneratorParticle *)((*genpart)[ilink2]);
00250 
00251     float trueMassGen=gRSgrav->getMass();
00252     float eeMassGen=RSMassGen(gElec1,gElec2);
00253     float costhetaGen = RSdistribAngGen(gElec1,gElec2);
00254 
00255     histo1000->Fill( eeMassGen/1000.);
00256     histo2000->Fill( eeMassGen/1000.);
00257     histo2100->Fill( eeMassGen/1000.);
00258     histo2200->Fill( eeMassGen/1000.);
00259     histo2300->Fill( eeMassGen/1000.);
00260     histo2400->Fill( eeMassGen/1000.);
00261     histo2500->Fill( eeMassGen/1000.);
00262     histo2600->Fill( eeMassGen/1000.);
00263 
00264     histo1001->Fill( trueMassGen/1000.);
00265 
00266     histo2001->Fill( trueMassGen/1000.);
00267     histo2003->Fill( trueMassGen/1000.);
00268     histo2005->Fill( trueMassGen/1000.);
00269 
00270     histo2101->Fill( trueMassGen/1000.);
00271     histo2103->Fill( trueMassGen/1000.);
00272     histo2105->Fill( trueMassGen/1000.);
00273 
00274     histo2201->Fill( trueMassGen/1000.);
00275     histo2203->Fill( trueMassGen/1000.);
00276     histo2205->Fill( trueMassGen/1000.);
00277 
00278     histo2301->Fill( trueMassGen/1000.);
00279     histo2303->Fill( trueMassGen/1000.);
00280     histo2305->Fill( trueMassGen/1000.);
00281 
00282     histo2401->Fill( trueMassGen/1000.);
00283     histo2403->Fill( trueMassGen/1000.);
00284     histo2405->Fill( trueMassGen/1000.);
00285 
00286     histo2501->Fill( trueMassGen/1000.);
00287     histo2503->Fill( trueMassGen/1000.);
00288     histo2505->Fill( trueMassGen/1000.);
00289 
00290     histo2601->Fill( trueMassGen/1000.);
00291     histo2603->Fill( trueMassGen/1000.);
00292     histo2605->Fill( trueMassGen/1000.);
00293     
00294 
00295     histo1004->Fill( costhetaGen );
00296     histo1006->Fill( costhetaGen );
00297 
00298     // Reconstructed event
00299     
00300     // Definitions
00301     Short_t nc = 0, nh = 0, nhc = 0, npc = 0,  nt = 0, nv = 0, nvt = 0;
00302     Short_t nm = 0, nelt = 0 ;    
00303   
00304 
00305     nc  = event->getNumberOfEmClusters();         clusters = event->getEmClusters(); 
00306     nh  = event->getNumberOfTrackHits();          hits = event->getEmClusterHits();   
00307     nhc = event->getNumberOfHadClusters();        hadClusters = event->getHadClusters();   
00308     ns_supercluster  = event->getNumberOfSuperClusters(); 
00309                                                   superClusters = event->getSuperClusters(); 
00310     npc = event->getNumberOfPreshClusters();      preshClusters = event->getPreshClusters(); 
00311     nt  = event->getNumberOfTracks();             tracks = event->getTracks();
00312     nv  = event->getNumberOfVertices();           vertices = event->getVertices();   
00313     nvt = event->getNumberOfVertexTracks(); 
00314     ne_candidatelectron  = event->getNumberOfElectronCandidates(); 
00315                                                   electrons = event->getElectronCandidates(); 
00316     nm  = event->getNumberOfMuonCandidates();     muons = event->getMuonCandidates(); 
00317     nelt    = event->getNumberOfElectronTracks(); electronTracks = event->getElectronTracks();
00318 
00319 
00320       // z vertex 
00321     float zvertex=0;
00322     if (nv>0)
00323     {
00324      XANAVertex *vertexlink = (XANAVertex*)((*vertices)[0]);
00325      zvertex=vertexlink->getPosition().z();
00326     }
00327     
00328    
00329     
00330     // electrons
00331     Int_t indexel1=-1, indexel2=-1;
00332     
00333     // Selection des 2 candidats electrons les plus energetiques
00334 
00335     RSSelection(indexel1, indexel2);
00336 
00337     // On ne travaille qu'avec les 2 Candidats Electrons les + energetiques
00338     
00339     if (indexel1>-1 && indexel2>-1)
00340     {
00341                XANAElectronCandidate *elec1 = (XANAElectronCandidate*)((*electrons)[indexel1]);
00342                XANAElectronCandidate *elec2 = (XANAElectronCandidate*)((*electrons)[indexel2]);
00343               
00344                float energy1 =elec1->getSuperClusterEnergy()/elec1->getSuperCluster()->getEnergyScaleFactor();
00345                float eta1    =elec1->getSuperCluster()->getPosition().eta();
00346                float phi1    =elec1->getSuperCluster()->getPosition().phi();
00347                
00348                float energy2 =elec2->getSuperClusterEnergy()/elec2->getSuperCluster()->getEnergyScaleFactor();
00349                float eta2    =elec2->getSuperCluster()->getPosition().eta();
00350                float phi2    =elec2->getSuperCluster()->getPosition().phi();
00351               
00352                // Traitement de la saturation
00353                int iflag_satur=0;
00354                RSSaturation(elec1, energy1, iflag_satur);
00355                RSSaturation(elec2, energy2, iflag_satur);              
00356                
00357                // Association des photons
00358                float EtIsol1=0.;
00359                float EtIsol2=0.;
00360                RSAssocPhoton(elec1, energy1, EtIsol1);
00361                RSAssocPhoton(elec2, energy2, EtIsol2);
00362                
00363                // Correction de l'energie pour eta
00364                
00365                bool FAMOS=false;
00366                float xcor1=RSCorrectionFunc(energy1,  eta1,  FAMOS);
00367                float xcor2=RSCorrectionFunc(energy2,  eta2,  FAMOS);
00368                xcor1=1./xcor1;
00369                xcor2=1./xcor2;
00370                energy1*=xcor1;
00371                energy2*=xcor2;
00372 
00373                // Correction de la position du vertex
00374                RSZvertexCorrection(zvertex,eta1);
00375                RSZvertexCorrection(zvertex,eta2);
00376                
00377                // Candidat RSElec
00378                
00379                RSElec *cElec1 = new RSElec(elec1,energy1,eta1,phi1,EtIsol1);
00380                RSElec *cElec2 = new RSElec(elec2,energy2,eta2,phi2,EtIsol2);
00381 
00382                 // Masse Reconstruite
00383                 float eeMassRec=RSMassRec(cElec1,cElec2);
00384                 
00385                 // Cut en iso (H/E pas encore dispo dans FAMOS 1_2_0)
00386                 if ( cElec1->getElecIsol()< 0.02* cElec1->getElecEt() &&
00387                      cElec2->getElecIsol()< 0.02* cElec2->getElecEt() )
00388                     {
00389                         float costhetaRec = RSdistribAngRec(cElec1,cElec2);
00390 
00391                         histo1002->Fill( eeMassRec /1000. );
00392                         histo1003->Fill( trueMassGen-eeMassRec);
00393                         
00394                         histo1005->Fill(costhetaRec);
00395                         histo1007->Fill(costhetaRec);
00396                         histo1008->Fill( costhetaGen-costhetaRec);
00397                         histo1009->Fill( costhetaGen-costhetaRec);
00398 
00399                         histo2002->Fill( eeMassRec /1000. );
00400                         histo2004->Fill( eeMassRec /1000. );
00401                         histo2006->Fill( eeMassRec /1000. );
00402                         
00403                         histo2102->Fill( eeMassRec /1000. );
00404                         histo2104->Fill( eeMassRec /1000. );
00405                         histo2106->Fill( eeMassRec /1000. );
00406                         
00407                         histo2202->Fill( eeMassRec /1000. );
00408                         histo2204->Fill( eeMassRec /1000. );
00409                         histo2206->Fill( eeMassRec /1000. );
00410                         
00411                         histo2302->Fill( eeMassRec /1000. );
00412                         histo2304->Fill( eeMassRec /1000. );
00413                         histo2306->Fill( eeMassRec /1000. );
00414                         
00415                         histo2402->Fill( eeMassRec /1000. );
00416                         histo2404->Fill( eeMassRec /1000. );
00417                         histo2406->Fill( eeMassRec /1000. );
00418                         
00419                         histo2502->Fill( eeMassRec /1000. );
00420                         histo2504->Fill( eeMassRec /1000. );
00421                         histo2506->Fill( eeMassRec /1000. );
00422                         
00423                         histo2602->Fill( eeMassRec /1000. );
00424                         histo2604->Fill( eeMassRec /1000. );
00425                         histo2606->Fill( eeMassRec /1000. );
00426                         
00427                         if (725<eeMassRec && eeMassRec<775)
00428                         {
00429                           histo2007->Fill( costhetaGen );
00430                           histo2008->Fill( costhetaRec );
00431                           histo2009->Fill( costhetaGen );
00432                           histo2010->Fill( costhetaRec );
00433                         }
00434                         else if (975<eeMassRec && eeMassRec<1025)
00435                         {
00436                           histo2107->Fill( costhetaGen );
00437                           histo2108->Fill( costhetaRec );
00438                           histo2109->Fill( costhetaGen );
00439                           histo2110->Fill( costhetaRec );
00440                         }
00441                         else if (1225<eeMassRec && eeMassRec<1275)
00442                         {
00443                           histo2207->Fill( costhetaGen );
00444                           histo2208->Fill( costhetaRec );
00445                           histo2209->Fill( costhetaGen );
00446                           histo2210->Fill( costhetaRec );
00447                         }
00448                         else if (1475<eeMassRec && eeMassRec<1525)
00449                         {
00450                           histo2307->Fill( costhetaGen );
00451                           histo2308->Fill( costhetaRec );
00452                           histo2309->Fill( costhetaGen );
00453                           histo2310->Fill( costhetaRec );
00454                         }
00455                         else if (1725<eeMassRec && eeMassRec<1775)
00456                         {
00457                           histo2407->Fill( costhetaGen );
00458                           histo2408->Fill( costhetaRec );
00459                           histo2409->Fill( costhetaGen );
00460                           histo2410->Fill( costhetaRec );
00461                         }
00462                         else if (1975<eeMassRec && eeMassRec<2025)
00463                         {
00464                           histo2507->Fill( costhetaGen );
00465                           histo2508->Fill( costhetaRec );
00466                           histo2509->Fill( costhetaGen );
00467                           histo2510->Fill( costhetaRec );
00468                         }
00469                         else if (2475<eeMassRec && eeMassRec<2525)
00470                         {
00471                           histo2607->Fill( costhetaGen );
00472                           histo2608->Fill( costhetaRec );
00473                           histo2609->Fill( costhetaGen );
00474                           histo2610->Fill( costhetaRec );
00475                         }
00476 
00477 
00478 
00479                     }
00480 
00481 
00482 
00483     }
00484 
00485 
00486     event->clear(); 
00487     generatorEvent->clear();
00488     geantEvent->clear();
00489   }
00490   
00491 //  f.Close();
00492   //
00493      TFile *filehisto = new TFile("Mass_0.root","RECREATE");
00494 
00495      histo1000->Write();
00496      histo1001->Write();
00497      histo1002->Write();
00498      histo1003->Write();
00499      histo1004->Write();
00500      histo1005->Write();
00501      histo1006->Write();
00502      histo1007->Write();
00503      histo1008->Write();
00504      histo1009->Write();
00505 
00506 
00507      histo2000->Write();
00508      histo2001->Write();
00509      histo2002->Write();
00510      histo2003->Write();
00511      histo2004->Write();
00512      histo2005->Write();
00513      histo2006->Write();
00514      histo2007->Write();
00515      histo2008->Write();
00516      histo2009->Write();
00517      histo2010->Write();
00518 
00519      histo2100->Write();
00520      histo2101->Write();
00521      histo2102->Write();
00522      histo2103->Write();
00523      histo2104->Write();
00524      histo2105->Write();
00525      histo2106->Write();
00526      histo2107->Write();
00527      histo2108->Write();
00528      histo2109->Write();
00529      histo2110->Write();
00530 
00531      histo2200->Write();
00532      histo2201->Write();
00533      histo2202->Write();
00534      histo2203->Write();
00535      histo2204->Write();
00536      histo2205->Write();
00537      histo2206->Write();
00538      histo2207->Write();
00539      histo2208->Write();
00540      histo2209->Write();
00541      histo2210->Write();
00542 
00543      histo2300->Write();
00544      histo2301->Write();
00545      histo2302->Write();
00546      histo2303->Write();
00547      histo2304->Write();
00548      histo2305->Write();
00549      histo2306->Write();
00550      histo2307->Write();
00551      histo2308->Write();
00552      histo2309->Write();
00553      histo2310->Write();
00554 
00555      histo2400->Write();
00556      histo2401->Write();
00557      histo2402->Write();
00558      histo2403->Write();
00559      histo2404->Write();
00560      histo2405->Write();
00561      histo2406->Write();
00562      histo2407->Write();
00563      histo2408->Write();
00564      histo2409->Write();
00565      histo2410->Write();
00566 
00567      histo2500->Write();
00568      histo2501->Write();
00569      histo2502->Write();
00570      histo2503->Write();
00571      histo2504->Write();
00572      histo2505->Write();
00573      histo2506->Write();
00574      histo2507->Write();
00575      histo2508->Write();
00576      histo2509->Write();
00577      histo2510->Write();
00578 
00579      histo2600->Write();
00580      histo2601->Write();
00581      histo2602->Write();
00582      histo2603->Write();
00583      histo2604->Write();
00584      histo2605->Write();
00585      histo2606->Write();
00586      histo2607->Write();
00587      histo2608->Write();
00588      histo2609->Write();
00589      histo2610->Write();
00590 
00591      
00592      filehisto->Close();
00593 
00594   
00595 }
00596 
00597 
00598 

Generated on Thu Oct 27 21:59:45 2005 for XANADOO by doxygen 1.3.5